blueprint-plugin/skills/blueprint-sync/SKILL.md
Check for stale generated content and offer regeneration or promotion. Use when syncing blueprint after PRD changes, or reconciling .claude/rules/ drift.
npx skillsauth add laurigates/claude-plugins blueprint-syncInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Check the status of generated content and offer options for modified or stale files.
| Use this skill when... | Use blueprint-promote instead when... |
|---|---|
| You want to detect stale or modified generated rules/skills | You've decided to keep one specific edited rule (single artifact) |
| You're reconciling drift between .claude/rules/ and the manifest | You want to acknowledge modifications and stop sync warnings |
| You want regenerate/promote/keep options for many files at once | Use blueprint-generate-rules instead to (re)generate from PRDs |
| You preview status with --dry-run before changing anything | Use blueprint-sync-ids instead for ID assignment, not content drift |
| Flag | Description |
|------|-------------|
| --dry-run | Preview sync status report without interactive prompts or file modifications |
Before any closing AskUserQuestion menu, resolve the automation config:
bash "${CLAUDE_SKILL_DIR}/../../scripts/get-automation-config.sh"
When EFFECTIVE_INTERACTION_MODE=quiet and this invocation was
automation-initiated (autopilot, session bookend, drift-nudge follow-up — not
a slash command the user typed), skip closing navigation menus ("what next?" /
"create another?" style): apply the safe default and end with a one-line
receipt instead. Quiet mode never skips confirmation gates that guard writes —
only navigation menus. A direct user invocation always behaves fully
interactively (explicit intent overrides quiet; see ADR-0020).
Purpose:
Read manifest:
cat docs/blueprint/manifest.json
generated.rules sectionCheck each generated rule:
For each rule in manifest.generated.rules:
a. Verify file exists:
test -f .claude/rules/{name}.md
b. Hash current content:
sha256sum .claude/rules/{name}.md | cut -d' ' -f1
c. Compare hashes:
content_hash matches → status: currentcontent_hash differs → status: modifiedd. Check source freshness (for rules from PRDs):
source_hash in manifeststaleDisplay 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:
content_hash to current, mark as acknowledgedFor 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:
source_hash to current, mark as currentUpdate manifest after changes:
content_hash for regenerated filessource_hash if PRD changes acknowledgedstatus field appropriatelyFinal 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:
/blueprint:sync periodically to check for driftdevelopment
Debug HTTP APIs: trace requests, inspect headers. Use when a request fails: check status first.
documentation
Render architecture diagrams from text sources. Use when documenting system topology.
tools
Inspect JSON payloads and extract nested fields. Use when parsing API responses.
tools
--- name: no-description allowed-tools: Read --- # No Description This skill has no description and must be dropped with a warning.