Display the current blueprint configuration status with three-layer architecture breakdown.
When to Use This Skill
| Use this skill when... |
Use blueprint-execute instead when... |
| You want a read-only status report (PRD/ADR/PRP counts, traceability) |
You want auto-detection that takes the next action, not just reports |
| You want the three-layer architecture breakdown |
Use blueprint-feature-tracker-status instead for FR/phase progress |
| You want to audit orphan docs and stale generated content |
Use blueprint-sync instead for an actionable drift reconcile |
You run with --report-only for non-interactive auditing |
Use blueprint-upgrade instead when you've already spotted an upgrade |
Flags
| Flag |
Description |
--report-only |
Display status report and exit without prompting for next action |
Steps
Check if blueprint is initialized:
Read manifest and gather information:
- Parse
manifest.json for version and configuration
- Parse
id_registry for traceability metrics
- Count PRDs in
docs/prds/
- Count ADRs in
docs/adrs/
- Count PRPs in
docs/prps/
- For ADRs, also count:
- With domain tags (
grep -l "^domain:" docs/adrs/*.md | wc -l)
- With relationship declarations (supersedes, extends, related)
- By status (Accepted, Superseded, Deprecated)
- Count work-orders (pending, completed, archived)
- Resolve the configured rules path:
jq -r '.structure.generated_rules_path // ".claude/rules/"' docs/blueprint/manifest.json
- Count generated rules in the configured path (default
.claude/rules/)
- Count custom skills in
.claude/skills/
- Count custom commands in
.claude/commands/
- Check for
.claude/rules/ directory
- Check for
CLAUDE.md file
- Check for
docs/blueprint/feature-tracker.json
- If feature tracker exists, read statistics and last_updated
- Read
task_registry from manifest (if present)
- For each task, calculate schedule status:
ok: Not yet due based on schedule
due: Due for execution based on schedule
overdue: Past due by more than 1 schedule period (e.g., daily task not run in 2+ days)
disabled: enabled: false
never: last_completed_at is null (never tracked)
2a. Validate the manifest against its schema (issue #2136):
Every consumer of the manifest degrades gracefully on bad input, which is
correct at runtime but makes a typo indistinguishable from an intentional
omission — autonomy_levle: 3 reads as level 0, adr_dris: [...] reads as
unconfigured, and nothing says a word. Status is the read-only diagnostic
that already parses the whole manifest, so the schema check belongs here:
uv run --quiet --script "${CLAUDE_SKILL_DIR}/../../scripts/check-manifest-schema.py" --project-dir "$(pwd)"
It validates against
blueprint-plugin/schemas/manifest.schema.json
and emits the structured STATUS= / ISSUE_COUNT= convention. Blocks with a
fixed key set (automation, validation, structure, project,
workspaces, id_registry, and the root) are closed, so an unknown key is an
error naming the typo and its JSON pointer; task_registry,
custom_overrides, and the generated / documents / github_issues maps
stay open because their keys are user or registry data.
Read the emitted keys:
| Key |
Meaning |
STATUS=OK |
Manifest matches the schema (or there is nothing to validate) |
STATUS=ERROR + schema_violation issues |
Each issue names an AT=<json-pointer> and the offending key — surface all of them in the Step 5 report |
STATUS=WARN + format_version_below_schema |
The manifest predates the schema's format version; recommend /blueprint:upgrade rather than reporting schema findings |
SOURCE=…:no_validator |
Neither uv nor an installed jsonschema is available — the check is skipped, not failed. Say so instead of claiming the manifest is clean |
2b. Validate the feature tracker against its schema (if one exists):
schemas/feature-tracker.schema.json describes the tracker's shape, but
until the schema reconciliation nothing applied it — the file was consulted
by humans and by get-validation-config.sh's enum read, and no run ever
validated a tracker against it. The same engine as Step 2a does both:
uv run --quiet --script "${CLAUDE_SKILL_DIR}/../../scripts/check-schema.py" --schema "${CLAUDE_SKILL_DIR}/../../schemas/feature-tracker.schema.json" --json-file docs/blueprint/feature-tracker.json
Same output contract as Step 2a. A missing tracker is STATUS=OK — most
repos have none, and a check that errors on an absent optional file gets
turned off.
This covers the tracker's shape. blueprint-tracker-check.sh (run by
/blueprint:feature-tracker-sync and -status) covers what a schema cannot
express: the statistics block agreeing with the features collection it
caches, tasks.*[] membership, and FR ids cited in docs/** but never
minted. Run both; neither subsumes the other.
- Check for upgrade availability:
- Compare
format_version in manifest with current plugin version
- Current format version: 3.4.0
- If manifest version < current → upgrade available
3a. Monorepo portfolio refresh (v3.3.0+):
- If
workspaces.role == "root", invoke /blueprint:workspace-scan to
refresh workspaces.children and cached stats before rendering. Skip if
scanned within the last hour (last_scanned_at).
- If
workspaces.role == "child", resolve workspaces.root_relative_path
and mention the parent in the status report but do NOT trigger a scan.
Check generated content status:
- For each generated rule in manifest:
- Hash current file content
- Compare with stored
content_hash
- Status:
current (unchanged), modified (user edited), stale (source PRDs changed)
Display status report:
Blueprint Status
Version: v{format_version} {upgrade_indicator}
Initialized: {created_at}
Last Updated: {updated_at}
Project Configuration:
- Name: {project.name}
- Type: {project.type}
- Stack: {project.detected_stack}
- Rules Mode: {structure.claude_md_mode}
Project Documentation (docs/):
- PRDs: {count} in docs/prds/
- ADRs: {count} in docs/adrs/
- With domain tags: {count}/{total} ({percent}%)
- With relationships: {count}
- Status: {accepted} Accepted, {superseded} Superseded, {deprecated} Deprecated
- PRPs: {count} in docs/prps/
Work Orders (docs/blueprint/work-orders/):
- Pending: {count}
- Completed: {count}
- Archived: {count}
Three-Layer Architecture:
Layer 1: Plugin (blueprint-plugin)
- Commands: /blueprint:* (auto-updated with plugin)
- Skills: blueprint-development, blueprint-migration, confidence-scoring
- Agents: requirements-documentation, architecture-decisions, prp-preparation
Layer 2: Generated ({structure.generated_rules_path or .claude/rules/})
- Path: {structure.generated_rules_path} (default: .claude/rules/)
- Rules: {count} ({status_summary})
{list each with status indicator: ✅ current, ⚠️ modified, 🔄 stale}
Layer 3: Custom (.claude/skills/, .claude/commands/)
- Skills: {count} (user-maintained)
- Commands: {count} (user-maintained)
{If feature_tracker enabled:}
Feature Tracker:
- Status: Enabled
- Source: {feature_tracker.source_document}
- Progress: {statistics.complete}/{statistics.total_features} ({statistics.completion_percentage}%)
- Last Sync: {last_updated}
- Phases: {count in_progress} active, {count complete} complete
{If workspaces.role == "root":}
Monorepo Portfolio ({workspaces.children|length} workspaces, scanned {last_scanned_at}):
| Workspace | Format | Progress | Phase |
|-----------|--------|----------|-------|
{for each child:}
| {child.path} | v{child.manifest_format_version} | {child.cached_stats.complete}/{child.cached_stats.total} ({child.cached_stats.completion_percentage}%) | {child.cached_stats.current_phase or "—"} |
{If workspaces.role == "child":}
Workspace: child of blueprint at {workspaces.root_relative_path}
{If task_registry exists:}
Task Health:
- derive-plans last: {age} schedule: {schedule} status: {status}
- derive-rules last: {age} schedule: {schedule} status: {status}
- generate-rules last: {age} schedule: {schedule} status: {status}
- adr-validate last: {age} schedule: {schedule} status: {status}
- feature-tracker-sync last: {age} schedule: {schedule} status: {status}
- sync-ids last: {age} schedule: {schedule} status: {status}
- claude-md last: {age} schedule: {schedule} status: {status}
- curate-docs disabled
Traceability (ID Registry):
- Total documents: {count} ({x} PRDs, {y} ADRs, {z} PRPs, {w} WOs)
- With IDs: {count}/{total} ({percent}%)
- Linked to GitHub: {count}/{total} ({percent}%)
- Orphan documents: {count} (docs without GitHub issues)
- Orphan issues: {count} (issues without linked docs)
- Broken links: {count}
{If orphans exist:}
Orphan Documents (no GitHub issues):
- {PRD-001}: {title}
- {PRP-003}: {title}
Orphan GitHub Issues (no linked docs):
- #{N}: {title}
- #{M}: {title}
{If Step 2a reported schema_violation issues:}
Manifest schema: {N} violation(s) in docs/blueprint/manifest.json
- {AT=/automation}: {Additional properties are not allowed ('autonomy_levle' was unexpected)}
A misspelled key reads as unconfigured — the consumer silently uses its default.
{If Step 2a reported SOURCE=…:no_validator:}
Manifest schema: not checked (no uv / jsonschema available)
Structure:
✅ docs/blueprint/manifest.json
{✅|❌} docs/prds/
{✅|❌} docs/adrs/
{✅|❌} docs/prps/
{✅|❌} docs/blueprint/work-orders/
{✅|❌} docs/blueprint/feature-tracker.json
{✅|❌} .claude/rules/
{✅|❌} CLAUDE.md
{If upgrade available:}
Upgrade available: v{current} → v{latest}
Run `/blueprint:upgrade` to upgrade.
{If modified generated content:}
Modified content detected: {count} files
Run `/blueprint:sync` to review changes.
Run `/blueprint:promote [name]` to move to custom layer.
{If stale generated content:}
Stale content detected: {count} files (PRDs changed since generation)
Run `/blueprint:generate-skills` to regenerate.
{If up to date:}
Blueprint is up to date.
Additional checks:
- Report every
schema_violation from Step 2a with its AT= pointer — a
misspelled key is silently ignored by its consumer, so the schema check is
the only place it surfaces
- Warn if Step 2a reported
format_version_below_schema (recommend /blueprint:upgrade)
- Warn if any tasks are overdue (e.g., "3 maintenance tasks overdue - run
/blueprint:execute to catch up")
- Warn if feature-tracker.json is stale (> 1 day since last update)
- Warn if PRDs exist but no generated rules
- Warn if modular rules enabled but
.claude/rules/ is empty
- Warn if generated content is modified or stale
- Warn if feature-tracker.json is older than 7 days (needs sync)
- Warn if TODO.md has been modified since last sync
- Warn if ADRs have potential issues:
- Multiple "Accepted" ADRs in same domain (potential conflict)
- ADRs without domain tags (harder to detect conflicts)
- Missing bidirectional links (e.g., supersedes without corresponding superseded-by)
- Traceability checks:
- Warn if documents exist without IDs (run
/blueprint:sync-ids)
- Warn if orphan documents exist (docs without GitHub issues)
- Warn if orphan issues exist (GitHub issues without linked docs)
- Warn if broken links detected (referenced docs/issues don't exist)
If --report-only: Output the status report from Steps 5-6 and exit. Skip the interactive prompt below.
Prompt for next action (use AskUserQuestion):
Build options dynamically based on state:
- If upgrade available → Include "Upgrade to v{latest}"
- If modified content → Include "Sync generated content"
- If stale content → Include "Regenerate skills"
- If PRDs exist but no generated skills → Include "Generate skills from PRDs"
- If skills exist but no commands → Include "Generate workflow commands"
- If CLAUDE.md stale → Include "Update CLAUDE.md"
- If feature tracker exists but stale → Include "Sync feature tracker"
- If ADRs have potential issues → Include "Validate ADRs"
- If documents without IDs → Include "Sync document IDs"
- If orphan documents/issues → Include "Link documents to GitHub"
- If overdue tasks exist → Include "Run overdue maintenance tasks"
- Always include "Continue development" and "I'm done"
question: "What would you like to do?"
options:
# Dynamic - include based on state detected above
- label: "Upgrade to v{latest}" (if upgrade available)
description: "Upgrade blueprint format to latest version"
- label: "Sync generated content" (if modified)
description: "Review changes to generated skills/commands"
- label: "Regenerate from PRDs" (if stale)
description: "Update generated content from changed PRDs"
- label: "Generate rules from PRDs" (if PRDs exist, no rules)
description: "Extract project-specific rules from your PRDs"
- label: "Update CLAUDE.md" (if stale or missing)
description: "Regenerate project overview document"
- label: "Sync feature tracker" (if feature tracker stale)
description: "Synchronize tracker with TODO.md"
- label: "Validate ADRs" (if ADR issues detected)
description: "Check ADR relationships, conflicts, and missing links"
- label: "Sync document IDs" (if documents without IDs)
description: "Assign IDs to all documents missing them"
- label: "Link documents to GitHub" (if orphans exist)
description: "Create/link GitHub issues for orphan documents"
- label: "Run overdue tasks ({N} due)" (if overdue tasks exist)
description: "Execute overdue maintenance tasks"
# Always include these:
- label: "Continue development"
description: "Run /project:continue to work on next task"
- label: "I'm done for now"
description: "Exit status check"
Based on selection:
- "Upgrade" → Run
/blueprint:upgrade
- "Sync" → Run
/blueprint:sync
- "Regenerate" → Run
/blueprint:generate-rules
- "Generate rules" → Run
/blueprint:generate-rules
- "Update CLAUDE.md" → Run
/blueprint:claude-md
- "Sync feature tracker" → Run
/blueprint:feature-tracker-sync
- "Validate ADRs" → Run
/blueprint:adr-validate
- "Sync document IDs" → Run
/blueprint:sync-ids
- "Link documents to GitHub" → For each orphan, prompt to create/link issue
- "Run overdue tasks" → Run
/blueprint:execute for overdue tasks
- "Continue development" → Run
/project:continue
- "I'm done" → Exit
Example Output:
Blueprint Status
Version: v3.0.0
Initialized: 2024-01-10T09:00:00Z
Last Updated: 2024-01-15T14:30:00Z
Project Configuration:
- Name: my-awesome-project
- Type: team
- Stack: typescript, bun, react
- Rules Mode: modular
Project Documentation (docs/):
- PRDs: 3 in docs/prds/
- ADRs: 5 in docs/adrs/
- With domain tags: 4/5 (80%)
- With relationships: 2
- Status: 3 Accepted, 2 Superseded
- PRPs: 2 in docs/prps/
Work Orders (docs/blueprint/work-orders/):
- Pending: 5
- Completed: 12
- Archived: 2
Three-Layer Architecture:
Layer 1: Plugin (blueprint-plugin)
- Commands: 13 /blueprint:* commands (auto-updated)
- Skills: 3 (blueprint-development, blueprint-migration, confidence-scoring)
- Agents: 3 (requirements-documentation, architecture-decisions, prp-preparation)
Layer 2: Generated (.claude/rules/blueprint/)
- Path: .claude/rules/blueprint/ (configured; default is .claude/rules/)
- Rules: 4 (3 current, 1 modified)
- ✅ architecture-patterns.md (current)
- ⚠️ testing-strategies.md (modified locally)
- ✅ implementation-guides.md (current)
- ✅ quality-standards.md (current)
Layer 3: Custom (.claude/skills/, .claude/commands/, .claude/rules/)
- Skills: 1 (my-custom-skill)
- Commands: 0
- Rules: 0 (user-maintained)
Feature Tracker:
- Status: Enabled
- Source: REQUIREMENTS.md
- Progress: 22/42 (52.4%)
- Last Sync: 2024-01-14
- Phases: 1 active, 2 complete
Task Health:
derive-plans last: 5d ago schedule: weekly status: due
derive-rules last: 3d ago schedule: weekly status: ok
generate-rules last: 1d ago schedule: on-change status: ok
adr-validate last: 4d ago schedule: weekly status: ok
feature-tracker-sync last: 3d ago schedule: daily status: overdue
sync-ids last: 3d ago schedule: on-change status: ok
claude-md last: 2d ago schedule: on-change status: ok
curate-docs disabled
Traceability (ID Registry):
- Total documents: 22 (3 PRDs, 5 ADRs, 2 PRPs, 12 WOs)
- With IDs: 22/22 (100%)
- Linked to GitHub: 18/22 (82%)
- Orphan documents: 4 (PRD-002, ADR-0004, PRP-001, WO-008)
- Orphan issues: 2 (#23, #45)
- Broken links: 0
Structure:
✅ docs/blueprint/manifest.json
✅ docs/prds/
✅ docs/adrs/
✅ docs/prps/
✅ docs/blueprint/work-orders/
✅ docs/blueprint/feature-tracker.json
✅ .claude/rules/
✅ CLAUDE.md
Modified content detected: 1 file
Run `/blueprint:sync` to review or `/blueprint:promote testing-strategies` to preserve.
Blueprint is up to date.
1---2name: blueprint-status3description: Show blueprint version, config, PRD/ADR/PRP counts, and feature tracker progress. Use when auditing traceability, orphan docs, or stale generated content.4---5
6Display the current blueprint configuration status with three-layer architecture breakdown.
7
8## When to Use This Skill
9
10| Use this skill when... | Use blueprint-execute instead when... |
11|---|---|
12| You want a read-only status report (PRD/ADR/PRP counts, traceability) | You want auto-detection that takes the next action, not just reports |
13| You want the three-layer architecture breakdown | Use blueprint-feature-tracker-status instead for FR/phase progress |
14| You want to audit orphan docs and stale generated content | Use blueprint-sync instead for an actionable drift reconcile |
15| You run with `--report-only` for non-interactive auditing | Use blueprint-upgrade instead when you've already spotted an upgrade |
16
17## Flags
18
19| Flag | Description |
20|------|-------------|
21| `--report-only` | Display status report and exit without prompting for next action |
22
23## Steps
24
251. **Check if blueprint is initialized**:
26 - Look for `docs/blueprint/manifest.json`
27 - If not found, report:
28 ```
29 Blueprint not initialized in this project.
30 Run `/blueprint:init` to get started.
31 ```
32
332. **Read manifest and gather information**:
34 - Parse `manifest.json` for version and configuration
35 - Parse `id_registry` for traceability metrics
36 - Count PRDs in `docs/prds/`
37 - Count ADRs in `docs/adrs/`
38 - Count PRPs in `docs/prps/`
39 - For ADRs, also count:
40 - With domain tags (`grep -l "^domain:" docs/adrs/*.md | wc -l`)
41 - With relationship declarations (supersedes, extends, related)
42 - By status (Accepted, Superseded, Deprecated)
43 - Count work-orders (pending, completed, archived)
44 - Resolve the configured rules path: `jq -r '.structure.generated_rules_path // ".claude/rules/"' docs/blueprint/manifest.json`
45 - Count generated rules in the configured path (default `.claude/rules/`)
46 - Count custom skills in `.claude/skills/`
47 - Count custom commands in `.claude/commands/`
48 - Check for `.claude/rules/` directory
49 - Check for `CLAUDE.md` file
50 - Check for `docs/blueprint/feature-tracker.json`
51 - If feature tracker exists, read statistics and last_updated
52 - Read `task_registry` from manifest (if present)
53 - For each task, calculate schedule status:
54 - `ok`: Not yet due based on schedule
55 - `due`: Due for execution based on schedule
56 - `overdue`: Past due by more than 1 schedule period (e.g., daily task not run in 2+ days)
57 - `disabled`: `enabled: false`
58 - `never`: `last_completed_at` is null (never tracked)
59
602a. **Validate the manifest against its schema** (issue #2136):
61
62 Every consumer of the manifest degrades gracefully on bad input, which is
63 correct at runtime but makes a **typo indistinguishable from an intentional
64 omission** — `autonomy_levle: 3` reads as level 0, `adr_dris: [...]` reads as
65 unconfigured, and nothing says a word. Status is the read-only diagnostic
66 that already parses the whole manifest, so the schema check belongs here:
67
68 ```bash
69 uv run --quiet --script "${CLAUDE_SKILL_DIR}/../../scripts/check-manifest-schema.py" --project-dir "$(pwd)"
70 ```
71
72 It validates against
73 [`blueprint-plugin/schemas/manifest.schema.json`](../../schemas/manifest.schema.json)
74 and emits the structured `STATUS=` / `ISSUE_COUNT=` convention. Blocks with a
75 fixed key set (`automation`, `validation`, `structure`, `project`,
76 `workspaces`, `id_registry`, and the root) are closed, so an unknown key is an
77 error naming the typo and its JSON pointer; `task_registry`,
78 `custom_overrides`, and the `generated` / `documents` / `github_issues` maps
79 stay open because their keys are user or registry data.
80
81 Read the emitted keys:
82
83 | Key | Meaning |
84 |-----|---------|
85 | `STATUS=OK` | Manifest matches the schema (or there is nothing to validate) |
86 | `STATUS=ERROR` + `schema_violation` issues | Each issue names an `AT=<json-pointer>` and the offending key — surface all of them in the Step 5 report |
87 | `STATUS=WARN` + `format_version_below_schema` | The manifest predates the schema's format version; recommend `/blueprint:upgrade` rather than reporting schema findings |
88 | `SOURCE=…:no_validator` | Neither `uv` nor an installed `jsonschema` is available — the check is skipped, not failed. Say so instead of claiming the manifest is clean |
89
902b. **Validate the feature tracker against its schema** (if one exists):
91
92 `schemas/feature-tracker.schema.json` describes the tracker's shape, but
93 until the schema reconciliation nothing applied it — the file was consulted
94 by humans and by `get-validation-config.sh`'s enum read, and no run ever
95 validated a tracker against it. The same engine as Step 2a does both:
96
97 ```bash
98 uv run --quiet --script "${CLAUDE_SKILL_DIR}/../../scripts/check-schema.py" --schema "${CLAUDE_SKILL_DIR}/../../schemas/feature-tracker.schema.json" --json-file docs/blueprint/feature-tracker.json
99 ```
100
101 Same output contract as Step 2a. A missing tracker is `STATUS=OK` — most
102 repos have none, and a check that errors on an absent optional file gets
103 turned off.
104
105 This covers the tracker's **shape**. `blueprint-tracker-check.sh` (run by
106 `/blueprint:feature-tracker-sync` and `-status`) covers what a schema cannot
107 express: the `statistics` block agreeing with the features collection it
108 caches, `tasks.*[]` membership, and FR ids cited in `docs/**` but never
109 minted. Run both; neither subsumes the other.
110
1113. **Check for upgrade availability**:
112 - Compare `format_version` in manifest with current plugin version
113 - Current format version: **3.4.0**
114 - If manifest version < current → upgrade available
115
1163a. **Monorepo portfolio refresh (v3.3.0+)**:
117 - If `workspaces.role == "root"`, invoke `/blueprint:workspace-scan` to
118 refresh `workspaces.children` and cached stats before rendering. Skip if
119 scanned within the last hour (`last_scanned_at`).
120 - If `workspaces.role == "child"`, resolve `workspaces.root_relative_path`
121 and mention the parent in the status report but do NOT trigger a scan.
122
1234. **Check generated content status**:
124 - For each generated rule in manifest:
125 - Hash current file content
126 - Compare with stored `content_hash`
127 - Status: `current` (unchanged), `modified` (user edited), `stale` (source PRDs changed)
128
1295. **Display status report**:
130 ```
131 Blueprint Status
132
133 Version: v{format_version} {upgrade_indicator}
134 Initialized: {created_at}
135 Last Updated: {updated_at}
136
137 Project Configuration:
138 - Name: {project.name}
139 - Type: {project.type}
140 - Stack: {project.detected_stack}
141 - Rules Mode: {structure.claude_md_mode}
142
143 Project Documentation (docs/):
144 - PRDs: {count} in docs/prds/
145 - ADRs: {count} in docs/adrs/
146 - With domain tags: {count}/{total} ({percent}%)
147 - With relationships: {count}
148 - Status: {accepted} Accepted, {superseded} Superseded, {deprecated} Deprecated
149 - PRPs: {count} in docs/prps/
150
151 Work Orders (docs/blueprint/work-orders/):
152 - Pending: {count}
153 - Completed: {count}
154 - Archived: {count}
155
156 Three-Layer Architecture:
157
158 Layer 1: Plugin (blueprint-plugin)
159 - Commands: /blueprint:* (auto-updated with plugin)
160 - Skills: blueprint-development, blueprint-migration, confidence-scoring
161 - Agents: requirements-documentation, architecture-decisions, prp-preparation
162
163 Layer 2: Generated ({structure.generated_rules_path or .claude/rules/})
164 - Path: {structure.generated_rules_path} (default: .claude/rules/)
165 - Rules: {count} ({status_summary})
166 {list each with status indicator: ✅ current, ⚠️ modified, 🔄 stale}
167
168 Layer 3: Custom (.claude/skills/, .claude/commands/)
169 - Skills: {count} (user-maintained)
170 - Commands: {count} (user-maintained)
171
172 {If feature_tracker enabled:}
173 Feature Tracker:
174 - Status: Enabled
175 - Source: {feature_tracker.source_document}
176 - Progress: {statistics.complete}/{statistics.total_features} ({statistics.completion_percentage}%)
177 - Last Sync: {last_updated}
178 - Phases: {count in_progress} active, {count complete} complete
179
180 {If workspaces.role == "root":}
181 Monorepo Portfolio ({workspaces.children|length} workspaces, scanned {last_scanned_at}):
182 | Workspace | Format | Progress | Phase |
183 |-----------|--------|----------|-------|
184 {for each child:}
185 | {child.path} | v{child.manifest_format_version} | {child.cached_stats.complete}/{child.cached_stats.total} ({child.cached_stats.completion_percentage}%) | {child.cached_stats.current_phase or "—"} |
186
187 {If workspaces.role == "child":}
188 Workspace: child of blueprint at {workspaces.root_relative_path}
189
190 {If task_registry exists:}
191 Task Health:
192 - derive-plans last: {age} schedule: {schedule} status: {status}
193 - derive-rules last: {age} schedule: {schedule} status: {status}
194 - generate-rules last: {age} schedule: {schedule} status: {status}
195 - adr-validate last: {age} schedule: {schedule} status: {status}
196 - feature-tracker-sync last: {age} schedule: {schedule} status: {status}
197 - sync-ids last: {age} schedule: {schedule} status: {status}
198 - claude-md last: {age} schedule: {schedule} status: {status}
199 - curate-docs disabled
200
201 Traceability (ID Registry):
202 - Total documents: {count} ({x} PRDs, {y} ADRs, {z} PRPs, {w} WOs)
203 - With IDs: {count}/{total} ({percent}%)
204 - Linked to GitHub: {count}/{total} ({percent}%)
205 - Orphan documents: {count} (docs without GitHub issues)
206 - Orphan issues: {count} (issues without linked docs)
207 - Broken links: {count}
208
209 {If orphans exist:}
210 Orphan Documents (no GitHub issues):
211 - {PRD-001}: {title}
212 - {PRP-003}: {title}
213
214 Orphan GitHub Issues (no linked docs):
215 - #{N}: {title}
216 - #{M}: {title}
217
218 {If Step 2a reported schema_violation issues:}
219 Manifest schema: {N} violation(s) in docs/blueprint/manifest.json
220 - {AT=/automation}: {Additional properties are not allowed ('autonomy_levle' was unexpected)}
221 A misspelled key reads as unconfigured — the consumer silently uses its default.
222
223 {If Step 2a reported SOURCE=…:no_validator:}
224 Manifest schema: not checked (no uv / jsonschema available)
225
226 Structure:
227 ✅ docs/blueprint/manifest.json
228 {✅|❌} docs/prds/
229 {✅|❌} docs/adrs/
230 {✅|❌} docs/prps/
231 {✅|❌} docs/blueprint/work-orders/
232 {✅|❌} docs/blueprint/feature-tracker.json
233 {✅|❌} .claude/rules/
234 {✅|❌} CLAUDE.md
235
236 {If upgrade available:}
237 Upgrade available: v{current} → v{latest}
238 Run `/blueprint:upgrade` to upgrade.
239
240 {If modified generated content:}
241 Modified content detected: {count} files
242 Run `/blueprint:sync` to review changes.
243 Run `/blueprint:promote [name]` to move to custom layer.
244
245 {If stale generated content:}
246 Stale content detected: {count} files (PRDs changed since generation)
247 Run `/blueprint:generate-skills` to regenerate.
248
249 {If up to date:}
250 Blueprint is up to date.
251 ```
252
2536. **Additional checks**:
254 - Report every `schema_violation` from Step 2a with its `AT=` pointer — a
255 misspelled key is silently ignored by its consumer, so the schema check is
256 the only place it surfaces
257 - Warn if Step 2a reported `format_version_below_schema` (recommend `/blueprint:upgrade`)
258 - Warn if any tasks are overdue (e.g., "3 maintenance tasks overdue - run `/blueprint:execute` to catch up")
259 - Warn if feature-tracker.json is stale (> 1 day since last update)
260 - Warn if PRDs exist but no generated rules
261 - Warn if modular rules enabled but `.claude/rules/` is empty
262 - Warn if generated content is modified or stale
263 - Warn if feature-tracker.json is older than 7 days (needs sync)
264 - Warn if TODO.md has been modified since last sync
265 - Warn if ADRs have potential issues:
266 - Multiple "Accepted" ADRs in same domain (potential conflict)
267 - ADRs without domain tags (harder to detect conflicts)
268 - Missing bidirectional links (e.g., supersedes without corresponding superseded-by)
269 - **Traceability checks**:
270 - Warn if documents exist without IDs (run `/blueprint:sync-ids`)
271 - Warn if orphan documents exist (docs without GitHub issues)
272 - Warn if orphan issues exist (GitHub issues without linked docs)
273 - Warn if broken links detected (referenced docs/issues don't exist)
274
2757. **If `--report-only`**: Output the status report from Steps 5-6 and exit. Skip the interactive prompt below.
276
2778. **Prompt for next action** (use AskUserQuestion):
278
279 **Build options dynamically based on state:**
280 - If upgrade available → Include "Upgrade to v{latest}"
281 - If modified content → Include "Sync generated content"
282 - If stale content → Include "Regenerate skills"
283 - If PRDs exist but no generated skills → Include "Generate skills from PRDs"
284 - If skills exist but no commands → Include "Generate workflow commands"
285 - If CLAUDE.md stale → Include "Update CLAUDE.md"
286 - If feature tracker exists but stale → Include "Sync feature tracker"
287 - If ADRs have potential issues → Include "Validate ADRs"
288 - If documents without IDs → Include "Sync document IDs"
289 - If orphan documents/issues → Include "Link documents to GitHub"
290 - If overdue tasks exist → Include "Run overdue maintenance tasks"
291 - Always include "Continue development" and "I'm done"
292
293 ```
294 question: "What would you like to do?"
295 options:
296 # Dynamic - include based on state detected above
297 - label: "Upgrade to v{latest}" (if upgrade available)
298 description: "Upgrade blueprint format to latest version"
299 - label: "Sync generated content" (if modified)
300 description: "Review changes to generated skills/commands"
301 - label: "Regenerate from PRDs" (if stale)
302 description: "Update generated content from changed PRDs"
303 - label: "Generate rules from PRDs" (if PRDs exist, no rules)
304 description: "Extract project-specific rules from your PRDs"
305 - label: "Update CLAUDE.md" (if stale or missing)
306 description: "Regenerate project overview document"
307 - label: "Sync feature tracker" (if feature tracker stale)
308 description: "Synchronize tracker with TODO.md"
309 - label: "Validate ADRs" (if ADR issues detected)
310 description: "Check ADR relationships, conflicts, and missing links"
311 - label: "Sync document IDs" (if documents without IDs)
312 description: "Assign IDs to all documents missing them"
313 - label: "Link documents to GitHub" (if orphans exist)
314 description: "Create/link GitHub issues for orphan documents"
315 - label: "Run overdue tasks ({N} due)" (if overdue tasks exist)
316 description: "Execute overdue maintenance tasks"
317 # Always include these:
318 - label: "Continue development"
319 description: "Run /project:continue to work on next task"
320 - label: "I'm done for now"
321 description: "Exit status check"
322 ```
323
324 **Based on selection:**
325 - "Upgrade" → Run `/blueprint:upgrade`
326 - "Sync" → Run `/blueprint:sync`
327 - "Regenerate" → Run `/blueprint:generate-rules`
328 - "Generate rules" → Run `/blueprint:generate-rules`
329 - "Update CLAUDE.md" → Run `/blueprint:claude-md`
330 - "Sync feature tracker" → Run `/blueprint:feature-tracker-sync`
331 - "Validate ADRs" → Run `/blueprint:adr-validate`
332 - "Sync document IDs" → Run `/blueprint:sync-ids`
333 - "Link documents to GitHub" → For each orphan, prompt to create/link issue
334 - "Run overdue tasks" → Run `/blueprint:execute` for overdue tasks
335 - "Continue development" → Run `/project:continue`
336 - "I'm done" → Exit
337
338**Example Output**:
339```
340Blueprint Status
341
342Version: v3.0.0
343Initialized: 2024-01-10T09:00:00Z
344Last Updated: 2024-01-15T14:30:00Z
345
346Project Configuration:
347- Name: my-awesome-project
348- Type: team
349- Stack: typescript, bun, react
350- Rules Mode: modular
351
352Project Documentation (docs/):
353- PRDs: 3 in docs/prds/
354- ADRs: 5 in docs/adrs/
355 - With domain tags: 4/5 (80%)
356 - With relationships: 2
357 - Status: 3 Accepted, 2 Superseded
358- PRPs: 2 in docs/prps/
359
360Work Orders (docs/blueprint/work-orders/):
361- Pending: 5
362- Completed: 12
363- Archived: 2
364
365Three-Layer Architecture:
366
367Layer 1: Plugin (blueprint-plugin)
368- Commands: 13 /blueprint:* commands (auto-updated)
369- Skills: 3 (blueprint-development, blueprint-migration, confidence-scoring)
370- Agents: 3 (requirements-documentation, architecture-decisions, prp-preparation)
371
372Layer 2: Generated (.claude/rules/blueprint/)
373- Path: .claude/rules/blueprint/ (configured; default is .claude/rules/)
374- Rules: 4 (3 current, 1 modified)
375 - ✅ architecture-patterns.md (current)
376 - ⚠️ testing-strategies.md (modified locally)
377 - ✅ implementation-guides.md (current)
378 - ✅ quality-standards.md (current)
379
380Layer 3: Custom (.claude/skills/, .claude/commands/, .claude/rules/)
381- Skills: 1 (my-custom-skill)
382- Commands: 0
383- Rules: 0 (user-maintained)
384
385Feature Tracker:
386- Status: Enabled
387- Source: REQUIREMENTS.md
388- Progress: 22/42 (52.4%)
389- Last Sync: 2024-01-14
390- Phases: 1 active, 2 complete
391
392Task Health:
393 derive-plans last: 5d ago schedule: weekly status: due
394 derive-rules last: 3d ago schedule: weekly status: ok
395 generate-rules last: 1d ago schedule: on-change status: ok
396 adr-validate last: 4d ago schedule: weekly status: ok
397 feature-tracker-sync last: 3d ago schedule: daily status: overdue
398 sync-ids last: 3d ago schedule: on-change status: ok
399 claude-md last: 2d ago schedule: on-change status: ok
400 curate-docs disabled
401
402Traceability (ID Registry):
403- Total documents: 22 (3 PRDs, 5 ADRs, 2 PRPs, 12 WOs)
404- With IDs: 22/22 (100%)
405- Linked to GitHub: 18/22 (82%)
406- Orphan documents: 4 (PRD-002, ADR-0004, PRP-001, WO-008)
407- Orphan issues: 2 (#23, #45)
408- Broken links: 0
409
410Structure:
411✅ docs/blueprint/manifest.json
412✅ docs/prds/
413✅ docs/adrs/
414✅ docs/prps/
415✅ docs/blueprint/work-orders/
416✅ docs/blueprint/feature-tracker.json
417✅ .claude/rules/
418✅ CLAUDE.md
419
420Modified content detected: 1 file
421 Run `/blueprint:sync` to review or `/blueprint:promote testing-strategies` to preserve.
422
423Blueprint is up to date.
424```