Check the status of generated content and offer options for modified or stale files.
Flags
| Flag | Description |
|---|---|
--dry-run | Preview sync status report without interactive prompts or file modifications |
Purpose:
- Detect when generated skills/commands have been manually modified
- Detect when source PRDs have changed (making generated content stale)
- Offer appropriate actions: regenerate, promote to custom, or keep as-is
Steps:
- Read manifest:
cat docs/blueprint/manifest.json
- Extract generated.rules section - If no generated content, report "Nothing to sync"
- Check each generated rule: For each rule in
manifest.generated.rules: a. Verify file exists:test -f.claude/rules/{name}.mdb. Hash current content:sha256sum.claude/rules/{name}.md | cut -d' ' -f1c. Compare hashes: d. Check source freshness (for rules from PRDs):
- If content_hash matches → status: current - If content_hash differs → status: modified - Hash current PRD content - Compare with source_hash in manifest - If differs → status: stale
- Display sync report:
Generated Content Sync Status Rules (.claude/rules/): ✅ architecture-patterns.md: Current ⚠️ testing-strategies.md: Modified locally 🔄 implementation-guides.md: Stale (PRDs changed) ✅ quality-standards.md: Current Summary: - Current: 3 files - Modified: 1 file (user edited) - Stale: 1 file (source changed) - If
--dry-run: Output the sync report from Step 3 and exit. Skip all remaining steps. - For modified content, offer options:
question: "{name} has been modified locally. What would you like to do?" options: - label: "Keep modifications" description: "Mark as acknowledged, preserve your changes" - label: "Discard modifications (regenerate)" description: "Overwrite with fresh generation from PRDs" - label: "View diff" description: "See what changed before deciding" - label: "Skip this file" description: "Leave as-is for now"Based on selection:
- "Keep modifications" → Update content_hash to current, mark as acknowledged - "Regenerate" → Regenerate this rule from PRDs - "View diff" → Show diff then re-ask - "Skip" → Continue to next file
- For stale content, offer options:
question: "{name} is stale (PRDs have changed). What would you like to do?" options: - label: "Regenerate from PRDs (Recommended)" description: "Update with latest patterns from docs/prds/" - label: "Keep current version" description: "Mark as current without regenerating" - label: "View what changed in PRDs" description: "See PRD changes before deciding" - label: "Skip this file" description: "Leave stale for now"Based on selection:
- "Regenerate" → Regenerate this rule from PRDs - "Keep" → Update source_hash to current, mark as current - "View" → Show PRD diff then re-ask - "Skip" → Continue to next file
- Update manifest after changes:
- Update content_hash for regenerated files - Update source_hash if PRD changes acknowledged - Update status field appropriately
- Final report:
Sync Complete Actions taken: - testing-strategies.md: Modifications acknowledged - implementation-guides.md: Regenerated from PRDs Current state: - 4 generated rules (all current) Manifest updated.
Tips:
- Run
/blueprint:syncperiodically to check for drift - Acknowledge modifications you want to keep
- Regenerating will overwrite local changes
- Stale content still works, but may miss new patterns from PRDs