maestro-flow 0.4.11 → 0.4.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/.agents/agents/cli-explore-agent.md +1 -3
  2. package/.agents/agents/cross-role-reviewer.md +173 -0
  3. package/.agents/agents/role-design-author.md +220 -0
  4. package/.agents/agents/ui-design-agent.md +1 -18
  5. package/.agents/agents/workflow-analyzer.md +1 -1
  6. package/.agents/agents/workflow-external-researcher.md +1 -1
  7. package/.agents/skills/learn-decompose/SKILL.md +6 -6
  8. package/.agents/skills/learn-follow/SKILL.md +4 -4
  9. package/.agents/skills/learn-investigate/SKILL.md +6 -6
  10. package/.agents/skills/learn-retro/SKILL.md +7 -7
  11. package/.agents/skills/learn-second-opinion/SKILL.md +4 -4
  12. package/.agents/skills/maestro/SKILL.md +61 -27
  13. package/.agents/skills/maestro-amend/SKILL.md +1 -0
  14. package/.agents/skills/maestro-analyze/SKILL.md +37 -4
  15. package/.agents/skills/maestro-blueprint/SKILL.md +133 -0
  16. package/.agents/skills/maestro-brainstorm/SKILL.md +120 -103
  17. package/.agents/skills/maestro-fork/SKILL.md +1 -1
  18. package/.agents/skills/maestro-guard/SKILL.md +3 -2
  19. package/.agents/skills/maestro-help/SKILL.md +48 -14
  20. package/.agents/skills/maestro-help/index/catalog.json +29 -11
  21. package/.agents/skills/maestro-help/phases/01-parse-intent.md +1 -1
  22. package/.agents/skills/maestro-help/phases/02-search-present.md +6 -4
  23. package/.agents/skills/maestro-help/phases/03-workflow-guide.md +60 -33
  24. package/.agents/skills/maestro-impeccable/SKILL.md +13 -11
  25. package/.agents/skills/maestro-init/SKILL.md +3 -3
  26. package/.agents/skills/maestro-milestone-audit/SKILL.md +5 -3
  27. package/.agents/skills/maestro-milestone-complete/SKILL.md +7 -5
  28. package/.agents/skills/maestro-milestone-release/SKILL.md +1 -1
  29. package/.agents/skills/maestro-plan/SKILL.md +16 -4
  30. package/.agents/skills/maestro-ralph/SKILL.md +297 -226
  31. package/.agents/skills/maestro-ralph-execute/SKILL.md +82 -67
  32. package/.agents/skills/maestro-roadmap/SKILL.md +43 -81
  33. package/.agents/skills/manage-harvest/SKILL.md +1 -0
  34. package/.agents/skills/manage-issue-discover/SKILL.md +1 -1
  35. package/.agents/skills/manage-knowhow/SKILL.md +1 -1
  36. package/.agents/skills/manage-learn/SKILL.md +4 -4
  37. package/.agents/skills/quality-auto-test/SKILL.md +6 -6
  38. package/.agents/skills/quality-refactor/SKILL.md +1 -1
  39. package/.agents/skills/quality-retrospective/SKILL.md +2 -2
  40. package/.agents/skills/security-audit/SKILL.md +24 -0
  41. package/.agents/skills/spec-remove/SKILL.md +6 -2
  42. package/.agents/skills/team-lifecycle-v4/roles/analyst/role.md +1 -1
  43. package/.agents/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +2 -2
  44. package/.agents/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
  45. package/.agents/skills/team-lifecycle-v4/templates/architecture.md +3 -3
  46. package/.agents/skills/team-lifecycle-v4/templates/epics.md +2 -2
  47. package/.agents/skills/team-lifecycle-v4/templates/product-brief.md +3 -3
  48. package/.agents/skills/team-lifecycle-v4/templates/requirements.md +2 -2
  49. package/.agy/agents/cli-explore-agent.md +1 -3
  50. package/.agy/agents/cross-role-reviewer.md +170 -0
  51. package/.agy/agents/role-design-author.md +217 -0
  52. package/.agy/agents/ui-design-agent.md +1 -18
  53. package/.agy/agents/workflow-analyzer.md +1 -1
  54. package/.agy/agents/workflow-external-researcher.md +1 -1
  55. package/.agy/skills/learn-decompose/SKILL.md +6 -6
  56. package/.agy/skills/learn-follow/SKILL.md +4 -4
  57. package/.agy/skills/learn-investigate/SKILL.md +6 -6
  58. package/.agy/skills/learn-retro/SKILL.md +7 -7
  59. package/.agy/skills/learn-second-opinion/SKILL.md +4 -4
  60. package/.agy/skills/maestro/SKILL.md +61 -27
  61. package/.agy/skills/maestro-amend/SKILL.md +1 -0
  62. package/.agy/skills/maestro-analyze/SKILL.md +37 -4
  63. package/.agy/skills/maestro-blueprint/SKILL.md +133 -0
  64. package/.agy/skills/maestro-brainstorm/SKILL.md +120 -103
  65. package/.agy/skills/maestro-fork/SKILL.md +1 -1
  66. package/.agy/skills/maestro-guard/SKILL.md +3 -2
  67. package/.agy/skills/maestro-help/SKILL.md +48 -14
  68. package/.agy/skills/maestro-help/index/catalog.json +29 -11
  69. package/.agy/skills/maestro-help/phases/01-parse-intent.md +1 -1
  70. package/.agy/skills/maestro-help/phases/02-search-present.md +6 -4
  71. package/.agy/skills/maestro-help/phases/03-workflow-guide.md +60 -33
  72. package/.agy/skills/maestro-impeccable/SKILL.md +13 -11
  73. package/.agy/skills/maestro-init/SKILL.md +3 -3
  74. package/.agy/skills/maestro-milestone-audit/SKILL.md +5 -3
  75. package/.agy/skills/maestro-milestone-complete/SKILL.md +7 -5
  76. package/.agy/skills/maestro-milestone-release/SKILL.md +1 -1
  77. package/.agy/skills/maestro-plan/SKILL.md +16 -4
  78. package/.agy/skills/maestro-ralph/SKILL.md +297 -226
  79. package/.agy/skills/maestro-ralph-execute/SKILL.md +82 -67
  80. package/.agy/skills/maestro-roadmap/SKILL.md +43 -81
  81. package/.agy/skills/manage-harvest/SKILL.md +1 -0
  82. package/.agy/skills/manage-issue-discover/SKILL.md +1 -1
  83. package/.agy/skills/manage-knowhow/SKILL.md +1 -1
  84. package/.agy/skills/manage-learn/SKILL.md +4 -4
  85. package/.agy/skills/quality-auto-test/SKILL.md +6 -6
  86. package/.agy/skills/quality-refactor/SKILL.md +1 -1
  87. package/.agy/skills/quality-retrospective/SKILL.md +2 -2
  88. package/.agy/skills/security-audit/SKILL.md +24 -0
  89. package/.agy/skills/spec-remove/SKILL.md +6 -2
  90. package/.agy/skills/team-lifecycle-v4/roles/analyst/role.md +1 -1
  91. package/.agy/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +2 -2
  92. package/.agy/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
  93. package/.agy/skills/team-lifecycle-v4/templates/architecture.md +3 -3
  94. package/.agy/skills/team-lifecycle-v4/templates/epics.md +2 -2
  95. package/.agy/skills/team-lifecycle-v4/templates/product-brief.md +3 -3
  96. package/.agy/skills/team-lifecycle-v4/templates/requirements.md +2 -2
  97. package/.claude/agents/cli-explore-agent.md +1 -3
  98. package/.claude/agents/cross-role-reviewer.md +171 -0
  99. package/.claude/agents/role-design-author.md +218 -0
  100. package/.claude/agents/ui-design-agent.md +1 -18
  101. package/.claude/agents/workflow-analyzer.md +1 -1
  102. package/.claude/agents/workflow-external-researcher.md +1 -1
  103. package/.claude/commands/learn-decompose.md +6 -6
  104. package/.claude/commands/learn-follow.md +4 -4
  105. package/.claude/commands/learn-investigate.md +6 -6
  106. package/.claude/commands/learn-retro.md +7 -7
  107. package/.claude/commands/learn-second-opinion.md +4 -4
  108. package/.claude/commands/maestro-amend.md +1 -0
  109. package/.claude/commands/maestro-analyze.md +37 -4
  110. package/.claude/commands/maestro-blueprint.md +131 -0
  111. package/.claude/commands/maestro-brainstorm.md +133 -116
  112. package/.claude/commands/maestro-fork.md +1 -1
  113. package/.claude/commands/maestro-guard.md +3 -2
  114. package/.claude/commands/maestro-impeccable.md +13 -11
  115. package/.claude/commands/maestro-init.md +3 -3
  116. package/.claude/commands/maestro-milestone-audit.md +5 -3
  117. package/.claude/commands/maestro-milestone-complete.md +7 -5
  118. package/.claude/commands/maestro-milestone-release.md +1 -1
  119. package/.claude/commands/maestro-plan.md +16 -4
  120. package/.claude/commands/maestro-ralph-execute.md +82 -67
  121. package/.claude/commands/maestro-ralph.md +297 -226
  122. package/.claude/commands/maestro-roadmap.md +43 -81
  123. package/.claude/commands/maestro.md +61 -27
  124. package/.claude/commands/manage-harvest.md +1 -0
  125. package/.claude/commands/manage-issue-discover.md +1 -1
  126. package/.claude/commands/manage-knowhow.md +1 -1
  127. package/.claude/commands/manage-learn.md +4 -4
  128. package/.claude/commands/quality-auto-test.md +6 -6
  129. package/.claude/commands/quality-refactor.md +1 -1
  130. package/.claude/commands/quality-retrospective.md +2 -2
  131. package/.claude/commands/security-audit.md +24 -0
  132. package/.claude/commands/spec-remove.md +6 -2
  133. package/.claude/skills/maestro-help/SKILL.md +48 -14
  134. package/.claude/skills/maestro-help/index/catalog.json +29 -11
  135. package/.claude/skills/maestro-help/phases/01-parse-intent.md +1 -1
  136. package/.claude/skills/maestro-help/phases/02-search-present.md +6 -4
  137. package/.claude/skills/maestro-help/phases/03-workflow-guide.md +60 -33
  138. package/.claude/skills/team-lifecycle-v4/roles/analyst/role.md +1 -1
  139. package/.claude/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +2 -2
  140. package/.claude/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
  141. package/.claude/skills/team-lifecycle-v4/templates/architecture.md +3 -3
  142. package/.claude/skills/team-lifecycle-v4/templates/epics.md +2 -2
  143. package/.claude/skills/team-lifecycle-v4/templates/product-brief.md +3 -3
  144. package/.claude/skills/team-lifecycle-v4/templates/requirements.md +2 -2
  145. package/.codex/skills/learn-decompose/SKILL.md +4 -4
  146. package/.codex/skills/learn-follow/SKILL.md +3 -3
  147. package/.codex/skills/learn-investigate/SKILL.md +3 -3
  148. package/.codex/skills/learn-retro/SKILL.md +3 -3
  149. package/.codex/skills/learn-second-opinion/SKILL.md +3 -3
  150. package/.codex/skills/maestro/SKILL.md +75 -38
  151. package/.codex/skills/maestro-amend/SKILL.md +157 -0
  152. package/.codex/skills/maestro-analyze/SKILL.md +72 -23
  153. package/.codex/skills/maestro-blueprint/SKILL.md +123 -0
  154. package/.codex/skills/maestro-brainstorm/SKILL.md +277 -46
  155. package/.codex/skills/maestro-composer/SKILL.md +1 -1
  156. package/.codex/skills/maestro-execute/SKILL.md +13 -4
  157. package/.codex/skills/maestro-fork/SKILL.md +2 -0
  158. package/.codex/skills/maestro-guard/SKILL.md +3 -2
  159. package/.codex/skills/maestro-help/SKILL.md +28 -18
  160. package/.codex/skills/maestro-help/catalog.json +29 -11
  161. package/.codex/skills/maestro-impeccable/SKILL.md +13 -11
  162. package/.codex/skills/maestro-init/SKILL.md +7 -7
  163. package/.codex/skills/maestro-plan/SKILL.md +27 -9
  164. package/.codex/skills/maestro-ralph/SKILL.md +740 -601
  165. package/.codex/skills/maestro-roadmap/SKILL.md +56 -72
  166. package/.codex/skills/maestro-update/SKILL.md +169 -0
  167. package/.codex/skills/maestro-verify/SKILL.md +11 -2
  168. package/.codex/skills/manage-codebase-rebuild/SKILL.md +9 -5
  169. package/.codex/skills/manage-harvest/SKILL.md +11 -3
  170. package/.codex/skills/manage-issue-discover/SKILL.md +1 -1
  171. package/.codex/skills/manage-knowhow/SKILL.md +1 -1
  172. package/.codex/skills/manage-learn/SKILL.md +3 -3
  173. package/.codex/skills/quality-refactor/SKILL.md +2 -2
  174. package/.codex/skills/quality-retrospective/SKILL.md +12 -5
  175. package/.codex/skills/security-audit/SKILL.md +24 -0
  176. package/.codex/skills/spec-remove/SKILL.md +8 -2
  177. package/.codex/skills/team-lifecycle-v4/roles/analyst/role.md +2 -2
  178. package/.codex/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +2 -2
  179. package/.codex/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
  180. package/.codex/skills/team-lifecycle-v4/templates/architecture.md +3 -3
  181. package/.codex/skills/team-lifecycle-v4/templates/epics.md +2 -2
  182. package/.codex/skills/team-lifecycle-v4/templates/product-brief.md +3 -3
  183. package/.codex/skills/team-lifecycle-v4/templates/requirements.md +2 -2
  184. package/README.md +8 -8
  185. package/README.zh-CN.md +8 -8
  186. package/dashboard/dist-server/dashboard/src/server/routes/settings.js +3 -3
  187. package/dashboard/dist-server/dashboard/src/server/routes/settings.js.map +1 -1
  188. package/dist/src/agents/cli-agent-runner.d.ts.map +1 -1
  189. package/dist/src/agents/cli-agent-runner.js +13 -7
  190. package/dist/src/agents/cli-agent-runner.js.map +1 -1
  191. package/dist/src/commands/spec.d.ts.map +1 -1
  192. package/dist/src/commands/spec.js +8 -1
  193. package/dist/src/commands/spec.js.map +1 -1
  194. package/dist/src/tools/spec-init.d.ts +16 -2
  195. package/dist/src/tools/spec-init.d.ts.map +1 -1
  196. package/dist/src/tools/spec-init.js +58 -187
  197. package/dist/src/tools/spec-init.js.map +1 -1
  198. package/dist/src/tools/spec-loader.d.ts.map +1 -1
  199. package/dist/src/tools/spec-loader.js +16 -16
  200. package/dist/src/tools/spec-loader.js.map +1 -1
  201. package/dist/src/tools/spec-seeds.d.ts +33 -0
  202. package/dist/src/tools/spec-seeds.d.ts.map +1 -0
  203. package/dist/src/tools/spec-seeds.js +200 -0
  204. package/dist/src/tools/spec-seeds.js.map +1 -0
  205. package/dist/src/tools/spec-writer.d.ts.map +1 -1
  206. package/dist/src/tools/spec-writer.js +7 -9
  207. package/dist/src/tools/spec-writer.js.map +1 -1
  208. package/dist/src/utils/update-notices.js +12 -0
  209. package/dist/src/utils/update-notices.js.map +1 -1
  210. package/package.json +1 -1
  211. package/templates/business-test-report.json +1 -1
  212. package/templates/index.json +1 -1
  213. package/templates/roadmap.md +15 -9
  214. package/templates/state.json +18 -17
  215. package/workflows/agy-instructions.md +2 -0
  216. package/workflows/analyze.md +79 -11
  217. package/workflows/auto-test.md +12 -7
  218. package/workflows/blueprint.md +431 -0
  219. package/workflows/brainstorm.md +617 -496
  220. package/workflows/business-test.md +7 -7
  221. package/workflows/claude-instructions.md +2 -0
  222. package/workflows/codebase-rebuild.md +4 -4
  223. package/workflows/codex-instructions.md +16 -83
  224. package/workflows/debug.md +1 -1
  225. package/workflows/harvest.md +184 -10
  226. package/workflows/impeccable.md +2 -0
  227. package/workflows/init.md +9 -8
  228. package/workflows/issue-analyze.md +14 -100
  229. package/workflows/issue-discover.md +2 -3
  230. package/workflows/issue-execute.md +1 -1
  231. package/workflows/issue-gaps-analyze.md +2 -0
  232. package/workflows/learn.md +1 -1
  233. package/workflows/maestro-chain-execute.md +10 -228
  234. package/workflows/maestro.md +2 -1
  235. package/workflows/milestone-audit.md +12 -4
  236. package/workflows/milestone-complete.md +14 -9
  237. package/workflows/milestone-release.md +82 -0
  238. package/workflows/plan.md +91 -25
  239. package/workflows/retrospective.md +1 -1
  240. package/workflows/roadmap-common.md +1 -1
  241. package/workflows/roadmap.md +14 -4
  242. package/workflows/spec-generate.md +26 -13
  243. package/workflows/specs-add.md +6 -1
  244. package/workflows/specs-load.md +6 -1
  245. package/workflows/specs-setup.md +6 -1
  246. package/workflows/sync.md +13 -0
  247. package/workflows/tools-spec.md +4 -0
  248. package/workflows/ui-design.md +5 -5
  249. package/workflows/ui-style.md +1 -1
  250. package/workflows/wiki-manage.md +2 -0
  251. package/.agents/agents/conceptual-planning-agent.md +0 -247
  252. package/.agy/agents/conceptual-planning-agent.md +0 -244
  253. package/.claude/agents/conceptual-planning-agent.md +0 -245
@@ -8,7 +8,7 @@ Multi-dimensional iterative analysis with CLI exploration, multi-perspective syn
8
8
  maestro-brainstorm (optional upstream)
9
9
  ↓ ideas, scored options
10
10
  maestro-analyze ← THIS
11
- ↓ analysis.md, discussion.md, conclusions.json, context.md
11
+ ↓ analysis.md, discussion.md, conclusions.json, context.md, context-package.json
12
12
  maestro-plan → maestro-execute → maestro-verify
13
13
  ```
14
14
 
@@ -41,7 +41,7 @@ Quick mode (-q):
41
41
  ## Arguments
42
42
 
43
43
  ```
44
- $ARGUMENTS: "[phase|topic] [-y] [-c] [-q]"
44
+ $ARGUMENTS: "[phase|topic] [-y] [-c] [-q] [--from <source>]"
45
45
 
46
46
  (no args) -- Milestone-wide analysis (requires init + roadmap)
47
47
  <phase> -- Phase number (phase-scoped, requires init + roadmap)
@@ -49,6 +49,7 @@ $ARGUMENTS: "[phase|topic] [-y] [-c] [-q]"
49
49
  -y / --yes -- Auto mode, skip interactive scoping, auto-deepen
50
50
  -c / --continue -- Resume from existing session
51
51
  -q / --quick -- Quick mode, skip exploration + scoring, go straight to decision extraction
52
+ --from <source> -- Load upstream context package (brainstorm:ID, analyze:ID, @file, or path). Replaces --from-brainstorm
52
53
  ```
53
54
 
54
55
  ## Scope Routing
@@ -59,12 +60,31 @@ Worktree guard: If .workflow/worktree-scope.json exists, reject phase args not i
59
60
  Auto-bootstrap: Create minimal .workflow/state.json if missing.
60
61
 
61
62
  Scope determination → OUTPUT_DIR:
62
- (no args) + milestone + roadmap → scope="milestone", OUTPUT_DIR=.workflow/scratch/analyze-{milestone_slug}-{date}/
63
+ (no args) + milestone + roadmap → scope="milestone", mode="micro", OUTPUT_DIR=.workflow/scratch/analyze-{milestone_slug}-{date}/
63
64
  (no args) without milestone/roadmap → ERROR E001
64
- (number) + milestone + roadmap → scope="phase", OUTPUT_DIR=.workflow/scratch/analyze-{phase_slug}-{date}/
65
+ (number) + milestone + roadmap → scope="phase", mode="micro", OUTPUT_DIR=.workflow/scratch/analyze-{phase_slug}-{date}/
65
66
  (number) without milestone/roadmap → ERROR
66
- (text) + milestone → scope="adhoc", OUTPUT_DIR=.workflow/scratch/analyze-{topic_slug}-{date}/
67
- (text) without milestone → scope="standalone", OUTPUT_DIR=.workflow/scratch/analyze-{topic_slug}-{date}/
67
+ (text) + milestone → scope="adhoc", mode="macro", OUTPUT_DIR=.workflow/scratch/analyze-{topic_slug}-{date}/
68
+ (text) without milestone → scope="standalone", mode="macro", OUTPUT_DIR=.workflow/scratch/analyze-{topic_slug}-{date}/
69
+
70
+ Macro mode additions (scope="adhoc" or "standalone"):
71
+ - In Step 6 Synthesis, evaluate scope_verdict: "small" | "medium" | "large"
72
+ - large: 3+ independent subsystems or hard serial dependency barriers
73
+ - medium: 1-2 subsystems, parallelizable
74
+ - small: single-file or few-file change
75
+ - Write scope_verdict to context.md conclusions section
76
+ - Include scope_verdict in context-package.json for downstream consumption
77
+
78
+ Phase-to-Milestone resolution (when scope="phase"):
79
+ FOR each ms in state.json.milestones[]:
80
+ IF phase_number in ms.phases[]:
81
+ target_milestone = ms.id
82
+ BREAK
83
+ IF no match: target_milestone = current_milestone (fallback)
84
+
85
+ Use target_milestone (not current_milestone) for:
86
+ - artifact registration (milestone field in Step 8.9)
87
+ - loading prior artifacts (Step 1 context loading)
68
88
 
69
89
  Create OUTPUT_DIR.
70
90
  ```
@@ -79,7 +99,8 @@ Create OUTPUT_DIR.
79
99
  ├── explorations.json # Single perspective aggregated findings (skip in -q)
80
100
  ├── perspectives.json # Multi-perspective findings + synthesis (skip in -q)
81
101
  ├── conclusions.json # Final synthesis, recommendations, decision trail (skip in -q)
82
- └── context.md # Decision extraction: Locked/Free/Deferred decisions for plan
102
+ ├── context.md # Decision extraction: Locked/Free/Deferred decisions for plan
103
+ └── context-package.json # Standardized context package for cross-command consumption
83
104
  ```
84
105
 
85
106
  ---
@@ -105,7 +126,17 @@ Parse $ARGUMENTS to determine mode and flags:
105
126
  2. Read `.workflow/roadmap.md` — phase structure and dependencies
106
127
  3. Read `.workflow/state.json` → `current_milestone`, `artifacts[]`, `accumulated_context` (key_decisions, deferred items, blockers)
107
128
  4. Find prior analyze artifacts from `state.json.artifacts[]` where type=analyze and same milestone → load their `context.md` to skip already-decided areas
108
- 5. Find brainstorm artifacts from `state.json.artifacts[]` where type=brainstorm and same milestone → load `guidance-specification.md` if exists
129
+ 5. **Load upstream context** (priority order):
130
+ a. If `--from` specified: resolve source → load `context-package.json` (see §9 of workflow-structure-guide.md)
131
+ - `--from brainstorm:ID` → `state.json.artifacts[type=brainstorm, id=ID].context_package` → load
132
+ - `--from @file` → create import session, delegate extraction → load context-package.json
133
+ - `--from path/` → load `path/context-package.json`
134
+ b. Else: auto-discover from `state.json.artifacts[]` where type=brainstorm and same milestone → if artifact has `context_package` field, load it; else fallback to reading `guidance-specification.md` directly
135
+
136
+ From loaded context-package:
137
+ - `constraints[status=locked]` → skip these areas (already decided)
138
+ - `constraints[status=open]` → prioritize for analysis
139
+ - `open_questions[]` → seed discussion topics
109
140
  6. Load project specs: `specs_content = maestro spec load --category arch`
110
141
 
111
142
  **Load prior context** (adhoc/standalone scope):
@@ -496,7 +527,40 @@ Write to `OUTPUT_DIR/context.md`:
496
527
  {relevant code references from exploration or discussion}
497
528
  ```
498
529
 
499
- **8.6: Update project.md Key Decisions** (phase mode only)
530
+ **8.6: Write context-package.json**
531
+
532
+ Write to `OUTPUT_DIR/context-package.json`:
533
+
534
+ ```jsonc
535
+ {
536
+ "$schema": "context-package/1.0",
537
+ "source": {
538
+ "type": "analyze",
539
+ "artifact_id": "{artifact_id}",
540
+ "session_path": "{OUTPUT_DIR relative to .workflow/}",
541
+ "generated_at": "{ISO-8601}"
542
+ },
543
+ "requirements": [], // From conclusions.json implementation_scope items (if any)
544
+ "constraints": [], // Locked → { status: "locked" }, Free → { status: "open" }, Deferred → { status: "deferred" }
545
+ "domain": {}, // Inherit from upstream context-package if loaded via --from
546
+ "non_goals": [], // Deferred items → { title, rationale, ref: "context.md#Deferred" }
547
+ "insights": [], // From conclusions.json recommendations → { role: "analyzer", area, summary }
548
+ "open_questions": [], // Free decisions without strong recommendation → { area, question, options[] }
549
+ "references": [
550
+ { "type": "analysis", "path": "context.md" },
551
+ { "type": "conclusions", "path": "conclusions.json" }
552
+ ]
553
+ }
554
+ ```
555
+
556
+ Extraction mapping from context.md sections:
557
+ - Each "Locked" decision → `constraints[]` with `status: "locked"`, `ref: "context.md#Locked"`
558
+ - Each "Free" decision → `constraints[]` with `status: "open"`, `ref: "context.md#Free"`
559
+ - Each "Deferred" item → `non_goals[]` with `ref: "context.md#Deferred"`
560
+ - From `conclusions.json.implementation_scope[]` (if exists) → `requirements[]` with `{ id, title: scope.objective, acceptance: scope.acceptance_criteria, ref: "conclusions.json" }`
561
+ - From `conclusions.json.recommendations[]` → `insights[]`
562
+
563
+ **8.7: Update project.md Key Decisions** (phase mode only)
500
564
 
501
565
  ```
502
566
  Phase mode only: Append each new Locked decision to .workflow/project.md "## Key Decisions" table.
@@ -504,7 +568,7 @@ Row format: | {decision title} | {rationale summary} | Phase {NN} — {date} |
504
568
  Skip duplicates (match by title).
505
569
  ```
506
570
 
507
- **8.7: Auto-create Issues from Deferred Items**
571
+ **8.8: Auto-create Issues from Deferred Items**
508
572
 
509
573
  ```
510
574
  For each Deferred decision, create an issue in .workflow/issues/issues.jsonl:
@@ -516,7 +580,7 @@ For each Deferred decision, create an issue in .workflow/issues/issues.jsonl:
516
580
  tags: ["deferred", "analyze"]
517
581
  ```
518
582
 
519
- ### Step 8.8: Register Artifact
583
+ ### Step 8.9: Register Artifact
520
584
 
521
585
  ```
522
586
  Register artifact in .workflow/state.json:
@@ -525,6 +589,7 @@ Register artifact in .workflow/state.json:
525
589
  milestone: current_milestone (null if standalone)
526
590
  phase: phase_num (null if milestone/adhoc/standalone)
527
591
  path: OUTPUT_DIR relative to .workflow/
592
+ context_package: "{OUTPUT_DIR}/context-package.json" // relative to .workflow/
528
593
  harvested: false, created_at: session_start_time, completed_at: now()
529
594
  Atomic write (tmp + rename).
530
595
  ```
@@ -598,6 +663,7 @@ Decisions: {decision_count} (Locked: {n}, Free: {n}, Deferred: {n})
598
663
 
599
664
  Files:
600
665
  context.md — Locked/Free/Deferred decisions for plan
666
+ context-package.json — Standardized context package for cross-command consumption
601
667
  discussion.md — Full discussion timeline (full mode)
602
668
  analysis.md — 6-dimension scoring summary (full mode)
603
669
  conclusions.json — Structured conclusions (full mode)
@@ -698,10 +764,12 @@ Replaceable blocks (overwritten each round):
698
764
 
699
765
  **Both modes (full + quick):**
700
766
  - context.md written with all decisions classified as Locked/Free/Deferred
767
+ - context-package.json written with constraints, requirements, insights, and open_questions
701
768
  - Gray areas identified through phase-specific analysis
702
769
  - Scope creep redirected to Deferred section
703
770
  - Every decision follows Context/Options/Chosen/Reason protocol
704
771
  - Prior context loaded and applied (no re-asking decided questions)
772
+ - Upstream context loaded via `--from` when specified (context-package.json consumed)
705
773
 
706
774
  ## Error Handling
707
775
 
@@ -36,7 +36,7 @@ specs_arch = maestro spec load --category arch
36
36
 
37
37
  ### Step 1: Read State & Route
38
38
 
39
- Read project state signals and auto-select scenario source. This is the **sole branch point** in the pipeline.
39
+ Read project state signals and auto-select scenario source. This is the **primary branch point, with Route-specific extraction in Step 2** (after Step 2 normalization, the downstream pipeline is identical).
40
40
 
41
41
  ```
42
42
  Priority: Resume > Re-run > Spec > Gap > Code
@@ -54,9 +54,14 @@ Priority: Resume > Re-run > Spec > Gap > Code
54
54
  Action: load failed/blocked scenarios with status reset to pending
55
55
  Skip to Step 4 (scenarios pre-loaded, plan confirmation)
56
56
 
57
+ # Note: `integration/state.json` and `business/business-test-report.json` are
58
+ # legacy compat paths read for backward compatibility only. The new pipeline
59
+ # writes exclusively to `.tests/auto-test/state.json` and `.tests/auto-test/report.json`
60
+ # (these legacy paths are superseded; see migration table at end of file).
61
+
57
62
  3. SPEC:
58
- Check: .workflow/.spec/SPEC-*/requirements/REQ-*.md exists
59
- Resolve: SPEC_DIR from index.json.spec_ref or most recent SPEC-*/
63
+ Check: .workflow/blueprint/BLP-*/requirements/REQ-*.md exists
64
+ Resolve: SPEC_DIR from index.json.blueprint_ref or most recent BLP-*/
60
65
  If SPEC_DIR found: set ROUTE = "spec", SPEC_MODE = "full"
61
66
  If no spec but has success_criteria: set ROUTE = "spec", SPEC_MODE = "degraded"
62
67
 
@@ -286,7 +291,7 @@ Output: `infrastructure` object passed to Steps 5-6.
286
291
  {
287
292
  "phase": "{phase}",
288
293
  "source_route": "{ROUTE}",
289
- "spec_ref": "{SPEC_DIR name or null}",
294
+ "blueprint_ref": "{SPEC_DIR name or null}",
290
295
  "spec_mode": "full|degraded|null",
291
296
  "generated_at": "{ISO timestamp}",
292
297
  "infrastructure": { "framework": "...", "run_command": "..." },
@@ -307,7 +312,7 @@ Output: `infrastructure` object passed to Steps 5-6.
307
312
  === AUTO-TEST PLAN ===
308
313
  来源: {ROUTE}
309
314
  阶段: {phase_name}
310
- Spec: {spec_ref or "N/A"}
315
+ Blueprint: {blueprint_ref or "N/A"}
311
316
 
312
317
  层级分布:
313
318
  L0 Static: {N} checks
@@ -520,7 +525,7 @@ Scored after each REFLECT step. Dimensions (5): scenario_coverage, test_quality,
520
525
  "phase": "{phase}",
521
526
  "phase_dir": "{PHASE_DIR}",
522
527
  "source_route": "spec|gap|code|re-run",
523
- "spec_ref": "SPEC-001 | null",
528
+ "blueprint_ref": "SPEC-001 | null",
524
529
  "spec_mode": "full|degraded|null",
525
530
  "status": "converged|max_iter_reached|confirmed_defects|single_pass",
526
531
  "flags": { "max_iter": 5, "layer": null, "dry_run": false, "re_run": false },
@@ -550,7 +555,7 @@ Scored after each REFLECT step. Dimensions (5): scenario_coverage, test_quality,
550
555
  {
551
556
  "phase": "{phase}",
552
557
  "source_route": "{ROUTE}",
553
- "spec_ref": "{spec ref or null}",
558
+ "blueprint_ref": "{spec ref or null}",
554
559
  "spec_mode": "full|degraded|null",
555
560
  "completed_at": "{ISO timestamp}",
556
561
  "convergence": {
@@ -0,0 +1,431 @@
1
+ # Workflow: Blueprint
2
+
3
+ Blueprint specification document chain producing a complete specification package (Product Brief, PRD, Architecture, Epics) through 6 sequential phases with multi-CLI analysis and interactive refinement. Pure documentation — no code generation.
4
+
5
+ ## Pipeline Position
6
+
7
+ ```
8
+ brainstorm (parallel) → blueprint → analyze → plan
9
+ ```
10
+
11
+ ## Architecture
12
+
13
+ ```
14
+ P0: Spec Study → P1: Discovery → P1.5: Req Expansion → P2: Product Brief → P3: PRD → P4: Architecture → P5: Epics → P6: Readiness Check
15
+
16
+ P6 gate: Pass (>=80%) → Handoff | Review (60-79%) → Handoff w/caveats | Fail (<60%) → P6.5 Auto-Fix (max 2 iter) → re-check
17
+ ```
18
+
19
+ ## Arguments
20
+
21
+ ```
22
+ $ARGUMENTS: "<idea or @file> [-y] [-c] [--from <source>]"
23
+
24
+ <idea> -- Idea text or @file reference
25
+ -y / --yes -- Auto mode, skip interactive questions
26
+ -c / --continue -- Resume from last checkpoint
27
+ --from <source> -- Load upstream context package (brainstorm:ID, @file, or path) as enriched seed. Alias: --from-brainstorm
28
+ ```
29
+
30
+ ## Output Structure
31
+
32
+ ```
33
+ .workflow/blueprint/BLP-{slug}-{YYYY-MM-DD}/
34
+ ├── blueprint-config.json # Session configuration + phase state
35
+ ├── discovery-context.json # Codebase exploration (optional)
36
+ ├── refined-requirements.json # Phase 1.5: Confirmed requirements
37
+ ├── glossary.json # Phase 2: Terminology glossary
38
+ ├── product-brief.md # Phase 2: Product brief
39
+ ├── requirements/ # Phase 3: Detailed PRD
40
+ │ ├── _index.md # Summary, MoSCoW table, traceability
41
+ │ ├── REQ-NNN-{slug}.md # Functional requirement
42
+ │ └── NFR-{type}-NNN-{slug}.md # Non-functional requirement
43
+ ├── architecture/ # Phase 4: Architecture decisions
44
+ │ ├── _index.md # Overview, components, tech stack
45
+ │ └── ADR-NNN-{slug}.md # Architecture Decision Record
46
+ ├── epics/ # Phase 5: Epic/Story breakdown
47
+ │ ├── _index.md # Epic table, dependency map, MVP
48
+ │ └── EPIC-NNN-{slug}.md # Individual Epic with Stories
49
+ ├── readiness-report.md # Phase 6: Quality report
50
+ └── blueprint-summary.md # Phase 6: Executive summary
51
+ ```
52
+
53
+ ---
54
+
55
+ ## Process
56
+
57
+ ### Step 1: Prerequisite Loading (Phase 0)
58
+
59
+ Load specification and template documents:
60
+
61
+ | Document | Purpose | Priority |
62
+ |----------|---------|----------|
63
+ | Document standards | Format, frontmatter, naming conventions | P0 - must read |
64
+ | Quality gates | Per-phase quality criteria and scoring | P0 - must read |
65
+ | Templates | product-brief, requirements-prd, architecture-doc, epics-template | Read on-demand per phase |
66
+
67
+ **Load project specs and history**:
68
+
69
+ Additional full-mode rules:
70
+ - Features in `already_shipped` are EXCLUDED from spec generation scope
71
+ - `lessons_learned` inform risk assessment in Phase 1 and architecture decisions in Phase 4
72
+ - Pass assembled `project_context` to Phase 1 seed analysis
73
+
74
+ ### Step 2: Discovery & Seed Analysis (Phase 1)
75
+
76
+ Parse input, analyze the seed idea, optionally explore codebase, establish session.
77
+
78
+ **Step 2.1: Input Parsing**
79
+ - Parse $ARGUMENTS: extract idea/topic, flags (-y, -c, --from)
80
+ - If `-c`: read blueprint-config.json, resume from first incomplete phase
81
+ - If `--from <source>` (or `--from-brainstorm SESSION-ID` alias):
82
+ - Resolve source to `context-package.json`:
83
+ - `brainstorm:ID` → `state.json.artifacts[type=brainstorm, id=ID].context_package`
84
+ - `@file` → create import session → delegate extraction → context-package.json
85
+ - `path/` → load `path/context-package.json`
86
+ - `--from-brainstorm SESSION-ID` → alias for `--from brainstorm:{resolve(SESSION-ID)}`
87
+ - Load context-package.json as enriched seed:
88
+ - `requirements[]` → Phase 3 PRD seed requirements (skip Phase 1.5)
89
+ - `constraints[]` → Phase 4 Architecture ADR seed
90
+ - `domain.terminology[]` → Phase 2 Glossary seed
91
+ - `domain.problem_statement` → Phase 2 Product Brief context
92
+ - `non_goals[]` → Phase 2 Product Brief exclusions
93
+ - `insights[]` → Phase 4 Architecture decisions context
94
+ - `references[]` → available for deep-read when needed
95
+ - Set `input_type: "context-package"` — skip Phase 1.5
96
+ - If `@file`: read file content as seed
97
+ - If text: use directly as seed
98
+ - Missing input → error E001
99
+
100
+ **Step 2.2: Session Initialization**
101
+ ```
102
+ Session ID: BLP-{slug}-{YYYY-MM-DD}
103
+ Output dir: .workflow/blueprint/{session_id}/
104
+ ```
105
+
106
+ **Step 2.3: Seed Analysis via CLI**
107
+ - Spawn CLI analysis to extract: problem_statement, target_users, domain, constraints, dimensions (3-5)
108
+ - Assess complexity: simple (1-2 components) / moderate (3-5) / complex (6+)
109
+ - For context-package input: enrich with feature decomposition data
110
+
111
+ **Step 2.4: Codebase Exploration**
112
+ - Output: `discovery-context.json` with relevant_files, patterns, tech_stack
113
+
114
+ **Step 2.5: External Research**
115
+
116
+ `apiResearchContext` is passed into:
117
+ - Step 4 (Product Brief): technology feasibility assessment
118
+ - Step 5 (Requirements): API-aware requirement writing with concrete constraints
119
+ - Step 6 (Architecture): informed ADR decisions with version-specific details
120
+ - Step 7 (Epics): realistic story sizing based on API complexity
121
+
122
+ **Step 2.6: Spec Type Selection**
123
+ - Interactive (AskUserQuestion): Service / API / Library / Platform
124
+ - `--yes`: default to "service"
125
+ - Each type loads a profile template for domain-specific sections
126
+
127
+ **Step 2.7: User Confirmation (interactive)**
128
+ - Confirm problem statement, select depth (Light/Standard/Comprehensive), select focus areas
129
+ - `--yes`: accept all defaults
130
+
131
+ **Output**: `blueprint-config.json`, `discovery-context.json` (optional), `apiResearchContext` (in-memory, optional)
132
+
133
+ ### Step 3: Requirement Expansion & Clarification (Phase 1.5)
134
+
135
+ Skip if `--from` (requirements already in context-package.json).
136
+
137
+ **Step 3.1: CLI Gap Analysis**
138
+ - Analyze seed for completeness (score 1-10), identify missing dimensions
139
+ - Generate 3-5 clarification areas with questions and expansion suggestions
140
+ - Dimensions checked: functional scope, user scenarios, NFRs, integrations, data model, error handling
141
+
142
+ **Step 3.2: Interactive Discussion Loop (max 5 rounds)**
143
+ - Round 1: present gap analysis + expansion suggestions via AskUserQuestion
144
+ - Round N: CLI follow-up analysis based on user responses, refine requirements
145
+ - User can: answer questions, accept suggestions, or skip to generation
146
+ - `--yes`: CLI auto-expansion without interaction
147
+
148
+ **Step 3.3: User Confirmation**
149
+ - Present requirement summary, user confirms or requests adjustments
150
+ - `--yes`: auto-confirm
151
+
152
+ **Output**: `refined-requirements.json` (confirmed features, NFRs, boundaries, assumptions)
153
+
154
+ ### Step 4: Product Brief (Phase 2)
155
+
156
+ Generate product brief through multi-perspective CLI analysis.
157
+
158
+ **Step 4.1: Load Context**
159
+ - Read refined-requirements.json (preferred) or seed_analysis fallback
160
+ - Read discovery-context.json (if codebase detected)
161
+ - For context-package input: read context-package.json domain and requirements sections
162
+
163
+ **Step 4.2: Multi-CLI Parallel Analysis (3 perspectives)**
164
+
165
+ | Perspective | Role | Focus |
166
+ |-------------|------|-------|
167
+ | Product | analyze | Vision, market fit, success criteria, scope boundaries |
168
+ | Technical | review | Feasibility, constraints, integration complexity, tech recommendations |
169
+ | User | explore | Personas, journey maps, pain points, UX criteria |
170
+
171
+ **Step 4.3: Synthesis**
172
+ - Extract convergent themes (all agree), conflicts (need resolution), unique insights
173
+ - For context-package input: cross-reference with context-package insights and constraints
174
+ - If `apiResearchContext` is set: inject API details into technical feasibility assessment
175
+
176
+ **Step 4.4: Interactive Refinement**
177
+ - Present synthesis, user adjusts scope/vision
178
+ - `--yes`: accept synthesis as-is
179
+
180
+ **Step 4.5: Generate Outputs**
181
+ - `product-brief.md` from template (YAML frontmatter + filled content)
182
+ - `glossary.json` — 5+ core terms extracted from product brief and CLI analysis
183
+ - Each term: canonical name, definition, aliases, category (core/technical/business)
184
+ - Injected into all subsequent phase CLI prompts for terminology consistency
185
+
186
+ **Output**: `product-brief.md`, `glossary.json`
187
+
188
+ ### Step 5: Requirements / PRD (Phase 3)
189
+
190
+ Generate detailed PRD with functional/non-functional requirements.
191
+
192
+ **Step 5.1: Requirement Expansion via CLI**
193
+ - For each product brief goal, generate 3-7 functional requirements
194
+ - Each requirement: REQ-NNN ID, title, description, user story, 2-4 acceptance criteria
195
+ - Generate non-functional requirements: performance, security, scalability, usability
196
+ - Apply RFC 2119 keywords (MUST/SHOULD/MAY) to all behavioral constraints
197
+ - Define core entity data models: fields, types, constraints, relationships
198
+ - Inject glossary.json for terminology consistency
199
+
200
+ **Step 5.2: MoSCoW Priority Sorting (interactive)**
201
+ - Present requirements grouped by initial priority
202
+ - User adjusts Must/Should/Could/Won't labels
203
+ - Select MVP scope: Must-only / Must+key Should / Comprehensive
204
+ - `--yes`: accept CLI-suggested priorities
205
+
206
+ **Step 5.3: Generate Directory**
207
+ - `requirements/_index.md` — summary table, MoSCoW breakdown, traceability matrix
208
+ - `requirements/REQ-NNN-{slug}.md` — one per functional requirement
209
+ - `requirements/NFR-{type}-NNN-{slug}.md` — one per non-functional requirement
210
+
211
+ **Output**: `requirements/` directory (index + individual files)
212
+
213
+ ### Step 6: Architecture (Phase 4)
214
+
215
+ Generate architecture decisions, component design, and technology selections.
216
+
217
+ **Step 6.1: Architecture Analysis via CLI (role: review)**
218
+ - System architecture style with justification
219
+ - Core components and responsibilities
220
+ - Component interaction diagram (Mermaid graph TD)
221
+ - Technology stack: languages, frameworks, databases, infrastructure
222
+ - 2-4 Architecture Decision Records (ADRs): context, decision, alternatives, consequences
223
+ - Data model: entities and relationships (Mermaid erDiagram)
224
+ - Security architecture: auth, authorization, data protection
225
+ - **State machine**: ASCII diagram + transition table for lifecycle entities (service/platform type)
226
+ - **Configuration model**: all configurable fields with type, default, constraint
227
+ - **Error handling strategy**: per-component classification (transient/permanent/degraded), recovery mechanisms
228
+ - **Observability**: key metrics (5+), structured log events, health checks
229
+ - Spec type profile injection for domain-specific depth
230
+ - Glossary injection for terminology consistency
231
+ - If `apiResearchContext` is set: inject as "External API Research" context
232
+
233
+ **Step 6.2: Architecture Review via CLI (role: review)**
234
+ - Challenge each ADR, identify scalability bottlenecks
235
+ - Assess security gaps, evaluate technology choices
236
+ - Rate overall quality 1-5
237
+
238
+ **Step 6.3: Interactive ADR Decisions**
239
+ - Present ADRs with review feedback, user decides: accept / incorporate feedback / simplify
240
+ - `--yes`: auto-accept
241
+
242
+ **Step 6.4: Codebase Integration Mapping (conditional)**
243
+ - Map new components to existing code modules
244
+
245
+ **Step 6.5: Generate Directory**
246
+ - `architecture/_index.md` — overview, component diagram, tech stack, data model, security
247
+ - `architecture/ADR-NNN-{slug}.md` — one per Architecture Decision Record
248
+
249
+ **Output**: `architecture/` directory (index + individual ADR files)
250
+
251
+ ### Step 7: Epics & Stories (Phase 5)
252
+
253
+ Decompose specification into executable Epics and Stories.
254
+
255
+ **Step 7.1: Epic Decomposition via CLI**
256
+ - Group requirements into logical Epics (EPIC-NNN IDs). Epic count is unconstrained — downstream workflows will merge Epics into minimal phases via the minimum-phase principle.
257
+ - Tag MVP subset
258
+ - For each Epic: 2-5 Stories in "As a...I want...So that..." format
259
+ - Each Story: 2-4 testable acceptance criteria, relative size (S/M/L/XL), trace to REQ-NNN
260
+ - Cross-Epic dependency map (Mermaid graph LR)
261
+ - Recommended execution order with rationale
262
+ - MVP definition of done (3-5 criteria)
263
+
264
+ **Epic sizing awareness** (informs downstream roadmap generation):
265
+ - Epics that are too small (1-2 Stories, all size S) should be flagged for merge downstream
266
+ - Each Epic should carry enough substance to become part of a phase with 5+ tasks
267
+ - Prefer fewer, larger Epics over many tiny ones
268
+
269
+ **Step 7.2: Interactive Validation**
270
+ - Present Epic overview, user adjusts: merge/split epics, adjust MVP scope
271
+ - `--yes`: accept as-is
272
+
273
+ **Step 7.3: Generate Directory**
274
+ - `epics/_index.md` — overview table, dependency map, MVP scope, execution order, traceability
275
+ - `epics/EPIC-NNN-{slug}.md` — one per Epic with embedded Stories
276
+
277
+ **Output**: `epics/` directory (index + individual Epic files)
278
+
279
+ ### Step 8: Readiness Check & Handoff (Phase 6)
280
+
281
+ Validate specification package and provide execution handoff.
282
+
283
+ **Step 8.1: Cross-Document Validation via CLI**
284
+ Score on 4 dimensions (25% each):
285
+ 1. **Completeness**: all required sections present with substantive content
286
+ 2. **Consistency**: terminology uniform (glossary compliance), scope containment, non-goals respected
287
+ 3. **Traceability**: goals → requirements → architecture → epics (matrix generated)
288
+ 4. **Depth**: acceptance criteria testable, ADRs justified, stories estimable
289
+
290
+ Gate decision: Pass (>=80) / Review (60-79) / Fail (<60)
291
+
292
+ **Step 8.2: Generate Reports**
293
+ - `readiness-report.md` — quality scores, issue list (Error/Warning/Info), traceability matrix
294
+ - `blueprint-summary.md` — one-page executive summary
295
+
296
+ **Step 8.3: Update Document Status**
297
+ - All document frontmatter updated to `status: complete`
298
+
299
+ **Step 8.4: Gate Routing**
300
+
301
+ | Gate Result | Action |
302
+ |-------------|--------|
303
+ | Pass (>=80%) | Proceed to Step 11 (Final Handoff) |
304
+ | Review (60-79%) | Proceed to Step 11 with caveats logged |
305
+ | Fail (<60%) | Trigger Step 9 (Auto-Fix), then re-run Step 8 |
306
+
307
+ ### Step 9: Auto-Fix (Phase 6.5, conditional)
308
+
309
+ Triggered when Phase 6 score < 60%.
310
+
311
+ **Step 9.1: Parse Readiness Report**
312
+ - Extract Error and Warning items, group by originating phase (2-5), map to affected files
313
+
314
+ **Step 9.2: Fix Affected Phases (sequential, Phase 2→3→4→5)**
315
+ - Read current phase output
316
+ - CLI re-generation with error context injected
317
+ - Inject glossary for terminology consistency
318
+ - Preserve unflagged content, only fix flagged issues
319
+ - Increment document version
320
+
321
+ **Step 9.3: Re-run Phase 6**
322
+ - Generate new readiness-report.md
323
+ - If still Fail and iteration_count < 2: loop back
324
+ - If Pass or max iterations (2) reached: proceed to handoff
325
+
326
+ **Output**: Updated Phase 2-5 documents, updated blueprint-config.json with iteration tracking
327
+
328
+ ### Step 11: Final Handoff
329
+
330
+ Blueprint specification package is complete. Suggest next workflow steps.
331
+
332
+ **Step 11.1: Handoff Options (AskUserQuestion)**
333
+
334
+ | Option | Action |
335
+ |--------|--------|
336
+ | Analyze specification | Run `maestro-analyze` to deep-analyze the blueprint outputs |
337
+ | Generate roadmap | Run `maestro-roadmap` to convert Epics into a phased execution roadmap |
338
+ | Plan first phase | Skill({ skill: "maestro-plan", args: "1" }) |
339
+ | Create issues | Generate issues per Epic via Skill({ skill: "manage-issue" }) |
340
+ | Export only | Blueprint complete, no further action |
341
+
342
+ ### Step 12: Final Report
343
+
344
+ ```
345
+ == blueprint complete ==
346
+ Session: BLP-{slug}-{date} | Quality: {score}% ({gate}) | Phases: {completed_count}/6
347
+ Output: .workflow/blueprint/{session_id}/
348
+ blueprint-config.json, product-brief.md, requirements/, architecture/, epics/,
349
+ readiness-report.md, blueprint-summary.md
350
+
351
+ Next: maestro-analyze (deep analysis) | maestro-roadmap (generate roadmap) | maestro-plan 1 (plan first phase)
352
+ ```
353
+
354
+ ---
355
+
356
+ ## Key Design Principles
357
+
358
+ 1. **Document Chain**: Each phase builds on previous outputs with traceability
359
+ 2. **Multi-Perspective Analysis**: CLI tools provide product, technical, and user perspectives
360
+ 3. **Interactive by Default**: Each phase offers user confirmation; `-y` enables auto mode
361
+ 4. **Resumable Sessions**: blueprint-config.json tracks phases; `-c` resumes from checkpoint
362
+ 5. **Template-Driven**: All documents from standardized templates with YAML frontmatter
363
+ 6. **Spec Type Specialization**: Templates adapt to service/api/library/platform via profiles
364
+ 7. **Terminology Consistency**: glossary.json from Phase 2 injected into all subsequent phases
365
+ 8. **Iterative Quality**: Phase 6.5 auto-fix loop (max 2 iterations)
366
+ 9. **Context Package Integration**: `--from` loads upstream context-package.json as seed (brainstorm:ID, @file, or path). `--from-brainstorm` retained as backward-compatible alias
367
+
368
+ ## State Management
369
+
370
+ **blueprint-config.json**:
371
+ ```json
372
+ {
373
+ "session_id": "BLP-xxx-2026-03-15",
374
+ "seed_input": "User input text",
375
+ "input_type": "text|file|context-package",
376
+ "timestamp": "ISO8601",
377
+ "mode": "interactive|auto",
378
+ "complexity": "simple|moderate|complex",
379
+ "depth": "light|standard|comprehensive",
380
+ "focus_areas": [],
381
+ "spec_type": "service|api|library|platform",
382
+ "iteration_count": 0,
383
+ "iteration_history": [],
384
+ "seed_analysis": {
385
+ "problem_statement": "...",
386
+ "target_users": [],
387
+ "domain": "...",
388
+ "constraints": [],
389
+ "dimensions": []
390
+ },
391
+ "has_codebase": false,
392
+ "phasesCompleted": [
393
+ { "phase": 1, "name": "discovery", "output_file": "blueprint-config.json", "completed_at": "ISO8601" }
394
+ ]
395
+ }
396
+ ```
397
+
398
+ Resume: `-c` reads blueprint-config.json, resumes from first incomplete phase.
399
+
400
+ ## Quality Dimensions (Phase 6)
401
+
402
+ | Dimension | Weight | Focus |
403
+ |-----------|--------|-------|
404
+ | Completeness | 25% | All sections present with substance |
405
+ | Consistency | 25% | Terminology, scope, non-goals alignment |
406
+ | Traceability | 25% | Goals → Reqs → Arch → Epics chain |
407
+ | Depth | 25% | Testable criteria, justified decisions, estimable stories |
408
+
409
+ **Gate**: Pass (>=80%) / Review (60-79%) / Fail (<60%)
410
+
411
+ ## Handoff to Downstream Workflows
412
+
413
+ When blueprint completes, the specification package (Product Brief, PRD, Architecture, Epics) is ready.
414
+ Run `maestro-analyze` for deep analysis or `maestro-roadmap` to generate a phased execution roadmap from the Epics.
415
+
416
+ ## Error Handling
417
+
418
+ | Phase | Error | Blocking? | Action |
419
+ |-------|-------|-----------|--------|
420
+ | Phase 1 | Empty input | Yes | Error and exit |
421
+ | Phase 1 | CLI analysis fails | No | Basic parsing fallback |
422
+ | Phase 1.5 | Gap analysis fails | No | Skip to basic prompts |
423
+ | Phase 2 | Single CLI fails | No | Continue with available |
424
+ | Phase 3 | Gemini fails | No | Codex fallback |
425
+ | Phase 4 | Review fails | No | Skip review |
426
+ | Phase 5 | Story generation fails | No | Generate epics only |
427
+ | Phase 6 | Validation fails | No | Partial report |
428
+ | Phase 6.5 | Max iterations (2) | No | Force handoff |
429
+ | Step 2.5 | External research fails | No | apiResearchContext = null, continue |
430
+
431
+ CLI Fallback Chain: Role-based resolution → degraded mode (local only)