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