maestro-flow 0.4.11 → 0.4.12
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.
- package/.agents/agents/cli-explore-agent.md +1 -3
- package/.agents/agents/cross-role-reviewer.md +173 -0
- package/.agents/agents/role-design-author.md +218 -0
- package/.agents/agents/ui-design-agent.md +1 -18
- package/.agents/agents/workflow-analyzer.md +1 -1
- package/.agents/agents/workflow-external-researcher.md +1 -1
- package/.agents/skills/maestro/SKILL.md +61 -27
- package/.agents/skills/maestro-analyze/SKILL.md +30 -4
- package/.agents/skills/maestro-blueprint/SKILL.md +132 -0
- package/.agents/skills/maestro-brainstorm/SKILL.md +119 -103
- package/.agents/skills/maestro-help/SKILL.md +48 -14
- package/.agents/skills/maestro-help/index/catalog.json +29 -11
- package/.agents/skills/maestro-help/phases/01-parse-intent.md +1 -1
- package/.agents/skills/maestro-help/phases/02-search-present.md +6 -4
- package/.agents/skills/maestro-help/phases/03-workflow-guide.md +60 -33
- package/.agents/skills/maestro-init/SKILL.md +3 -3
- package/.agents/skills/maestro-milestone-audit/SKILL.md +5 -3
- package/.agents/skills/maestro-milestone-complete/SKILL.md +7 -5
- package/.agents/skills/maestro-plan/SKILL.md +14 -4
- package/.agents/skills/maestro-ralph/SKILL.md +297 -226
- package/.agents/skills/maestro-ralph-execute/SKILL.md +81 -67
- package/.agents/skills/maestro-roadmap/SKILL.md +42 -81
- package/.agents/skills/quality-auto-test/SKILL.md +1 -1
- package/.agents/skills/team-lifecycle-v4/roles/analyst/role.md +1 -1
- package/.agents/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +2 -2
- package/.agents/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
- package/.agents/skills/team-lifecycle-v4/templates/architecture.md +3 -3
- package/.agents/skills/team-lifecycle-v4/templates/epics.md +2 -2
- package/.agents/skills/team-lifecycle-v4/templates/product-brief.md +3 -3
- package/.agents/skills/team-lifecycle-v4/templates/requirements.md +2 -2
- package/.agy/agents/cli-explore-agent.md +1 -3
- package/.agy/agents/cross-role-reviewer.md +170 -0
- package/.agy/agents/role-design-author.md +215 -0
- package/.agy/agents/ui-design-agent.md +1 -18
- package/.agy/agents/workflow-analyzer.md +1 -1
- package/.agy/agents/workflow-external-researcher.md +1 -1
- package/.agy/skills/maestro/SKILL.md +61 -27
- package/.agy/skills/maestro-analyze/SKILL.md +30 -4
- package/.agy/skills/maestro-blueprint/SKILL.md +132 -0
- package/.agy/skills/maestro-brainstorm/SKILL.md +119 -103
- package/.agy/skills/maestro-help/SKILL.md +48 -14
- package/.agy/skills/maestro-help/index/catalog.json +29 -11
- package/.agy/skills/maestro-help/phases/01-parse-intent.md +1 -1
- package/.agy/skills/maestro-help/phases/02-search-present.md +6 -4
- package/.agy/skills/maestro-help/phases/03-workflow-guide.md +60 -33
- package/.agy/skills/maestro-init/SKILL.md +3 -3
- package/.agy/skills/maestro-milestone-audit/SKILL.md +5 -3
- package/.agy/skills/maestro-milestone-complete/SKILL.md +7 -5
- package/.agy/skills/maestro-plan/SKILL.md +14 -4
- package/.agy/skills/maestro-ralph/SKILL.md +297 -226
- package/.agy/skills/maestro-ralph-execute/SKILL.md +81 -67
- package/.agy/skills/maestro-roadmap/SKILL.md +42 -81
- package/.agy/skills/quality-auto-test/SKILL.md +1 -1
- package/.agy/skills/team-lifecycle-v4/roles/analyst/role.md +1 -1
- package/.agy/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +2 -2
- package/.agy/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
- package/.agy/skills/team-lifecycle-v4/templates/architecture.md +3 -3
- package/.agy/skills/team-lifecycle-v4/templates/epics.md +2 -2
- package/.agy/skills/team-lifecycle-v4/templates/product-brief.md +3 -3
- package/.agy/skills/team-lifecycle-v4/templates/requirements.md +2 -2
- package/.claude/agents/cli-explore-agent.md +1 -3
- package/.claude/agents/cross-role-reviewer.md +171 -0
- package/.claude/agents/role-design-author.md +216 -0
- package/.claude/agents/ui-design-agent.md +1 -18
- package/.claude/agents/workflow-analyzer.md +1 -1
- package/.claude/agents/workflow-external-researcher.md +1 -1
- package/.claude/commands/maestro-analyze.md +30 -4
- package/.claude/commands/maestro-blueprint.md +130 -0
- package/.claude/commands/maestro-brainstorm.md +132 -116
- package/.claude/commands/maestro-init.md +3 -3
- package/.claude/commands/maestro-milestone-audit.md +5 -3
- package/.claude/commands/maestro-milestone-complete.md +7 -5
- package/.claude/commands/maestro-plan.md +14 -4
- package/.claude/commands/maestro-ralph-execute.md +81 -67
- package/.claude/commands/maestro-ralph.md +297 -226
- package/.claude/commands/maestro-roadmap.md +42 -81
- package/.claude/commands/maestro.md +61 -27
- package/.claude/commands/quality-auto-test.md +1 -1
- package/.claude/skills/maestro-help/SKILL.md +48 -14
- package/.claude/skills/maestro-help/index/catalog.json +29 -11
- package/.claude/skills/maestro-help/phases/01-parse-intent.md +1 -1
- package/.claude/skills/maestro-help/phases/02-search-present.md +6 -4
- package/.claude/skills/maestro-help/phases/03-workflow-guide.md +60 -33
- package/.claude/skills/team-lifecycle-v4/roles/analyst/role.md +1 -1
- package/.claude/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +2 -2
- package/.claude/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
- package/.claude/skills/team-lifecycle-v4/templates/architecture.md +3 -3
- package/.claude/skills/team-lifecycle-v4/templates/epics.md +2 -2
- package/.claude/skills/team-lifecycle-v4/templates/product-brief.md +3 -3
- package/.claude/skills/team-lifecycle-v4/templates/requirements.md +2 -2
- package/.codex/skills/maestro/SKILL.md +75 -38
- package/.codex/skills/maestro-amend/SKILL.md +157 -0
- package/.codex/skills/maestro-analyze/SKILL.md +71 -23
- package/.codex/skills/maestro-blueprint/SKILL.md +122 -0
- package/.codex/skills/maestro-brainstorm/SKILL.md +135 -45
- package/.codex/skills/maestro-composer/SKILL.md +1 -1
- package/.codex/skills/maestro-execute/SKILL.md +13 -4
- package/.codex/skills/maestro-help/SKILL.md +28 -18
- package/.codex/skills/maestro-help/catalog.json +29 -11
- package/.codex/skills/maestro-init/SKILL.md +7 -7
- package/.codex/skills/maestro-plan/SKILL.md +27 -9
- package/.codex/skills/maestro-ralph/SKILL.md +740 -601
- package/.codex/skills/maestro-roadmap/SKILL.md +55 -72
- package/.codex/skills/maestro-update/SKILL.md +169 -0
- package/.codex/skills/maestro-verify/SKILL.md +11 -2
- package/.codex/skills/manage-codebase-rebuild/SKILL.md +2 -2
- package/.codex/skills/manage-harvest/SKILL.md +10 -2
- package/.codex/skills/quality-retrospective/SKILL.md +9 -2
- package/.codex/skills/team-lifecycle-v4/roles/analyst/role.md +2 -2
- package/.codex/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +2 -2
- package/.codex/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
- package/.codex/skills/team-lifecycle-v4/templates/architecture.md +3 -3
- package/.codex/skills/team-lifecycle-v4/templates/epics.md +2 -2
- package/.codex/skills/team-lifecycle-v4/templates/product-brief.md +3 -3
- package/.codex/skills/team-lifecycle-v4/templates/requirements.md +2 -2
- package/README.md +8 -8
- package/README.zh-CN.md +8 -8
- package/dashboard/dist-server/dashboard/src/server/routes/settings.js +3 -3
- package/dashboard/dist-server/dashboard/src/server/routes/settings.js.map +1 -1
- package/dist/src/agents/cli-agent-runner.d.ts.map +1 -1
- package/dist/src/agents/cli-agent-runner.js +13 -7
- package/dist/src/agents/cli-agent-runner.js.map +1 -1
- package/dist/src/commands/spec.d.ts.map +1 -1
- package/dist/src/commands/spec.js +8 -1
- package/dist/src/commands/spec.js.map +1 -1
- package/dist/src/tools/spec-init.d.ts +16 -2
- package/dist/src/tools/spec-init.d.ts.map +1 -1
- package/dist/src/tools/spec-init.js +58 -187
- package/dist/src/tools/spec-init.js.map +1 -1
- package/dist/src/tools/spec-loader.d.ts.map +1 -1
- package/dist/src/tools/spec-loader.js +16 -16
- package/dist/src/tools/spec-loader.js.map +1 -1
- package/dist/src/tools/spec-seeds.d.ts +33 -0
- package/dist/src/tools/spec-seeds.d.ts.map +1 -0
- package/dist/src/tools/spec-seeds.js +200 -0
- package/dist/src/tools/spec-seeds.js.map +1 -0
- package/dist/src/tools/spec-writer.d.ts.map +1 -1
- package/dist/src/tools/spec-writer.js +7 -9
- package/dist/src/tools/spec-writer.js.map +1 -1
- package/dist/src/utils/update-notices.js +12 -0
- package/dist/src/utils/update-notices.js.map +1 -1
- package/package.json +1 -1
- package/templates/business-test-report.json +1 -1
- package/templates/index.json +1 -1
- package/templates/roadmap.md +15 -9
- package/templates/state.json +18 -17
- package/workflows/analyze.md +79 -11
- package/workflows/auto-test.md +6 -6
- package/workflows/blueprint.md +431 -0
- package/workflows/brainstorm.md +603 -496
- package/workflows/business-test.md +7 -7
- package/workflows/codebase-rebuild.md +4 -4
- package/workflows/harvest.md +184 -10
- package/workflows/init.md +9 -8
- package/workflows/maestro.md +1 -1
- package/workflows/milestone-audit.md +12 -4
- package/workflows/milestone-complete.md +11 -6
- package/workflows/plan.md +88 -22
- package/workflows/roadmap-common.md +1 -1
- package/workflows/roadmap.md +13 -3
- package/workflows/spec-generate.md +24 -13
- package/workflows/ui-design.md +2 -2
- package/workflows/ui-style.md +1 -1
- package/.agents/agents/conceptual-planning-agent.md +0 -247
- package/.agy/agents/conceptual-planning-agent.md +0 -244
- package/.claude/agents/conceptual-planning-agent.md +0 -245
package/workflows/analyze.md
CHANGED
|
@@ -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
|
-
|
|
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.
|
|
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:
|
|
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.
|
|
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.
|
|
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
|
|
package/workflows/auto-test.md
CHANGED
|
@@ -55,8 +55,8 @@ Priority: Resume > Re-run > Spec > Gap > Code
|
|
|
55
55
|
Skip to Step 4 (scenarios pre-loaded, plan confirmation)
|
|
56
56
|
|
|
57
57
|
3. SPEC:
|
|
58
|
-
Check: .workflow
|
|
59
|
-
Resolve: SPEC_DIR from index.json.
|
|
58
|
+
Check: .workflow/blueprint/BLP-*/requirements/REQ-*.md exists
|
|
59
|
+
Resolve: SPEC_DIR from index.json.blueprint_ref or most recent BLP-*/
|
|
60
60
|
If SPEC_DIR found: set ROUTE = "spec", SPEC_MODE = "full"
|
|
61
61
|
If no spec but has success_criteria: set ROUTE = "spec", SPEC_MODE = "degraded"
|
|
62
62
|
|
|
@@ -286,7 +286,7 @@ Output: `infrastructure` object passed to Steps 5-6.
|
|
|
286
286
|
{
|
|
287
287
|
"phase": "{phase}",
|
|
288
288
|
"source_route": "{ROUTE}",
|
|
289
|
-
"
|
|
289
|
+
"blueprint_ref": "{SPEC_DIR name or null}",
|
|
290
290
|
"spec_mode": "full|degraded|null",
|
|
291
291
|
"generated_at": "{ISO timestamp}",
|
|
292
292
|
"infrastructure": { "framework": "...", "run_command": "..." },
|
|
@@ -307,7 +307,7 @@ Output: `infrastructure` object passed to Steps 5-6.
|
|
|
307
307
|
=== AUTO-TEST PLAN ===
|
|
308
308
|
来源: {ROUTE}
|
|
309
309
|
阶段: {phase_name}
|
|
310
|
-
|
|
310
|
+
Blueprint: {blueprint_ref or "N/A"}
|
|
311
311
|
|
|
312
312
|
层级分布:
|
|
313
313
|
L0 Static: {N} checks
|
|
@@ -520,7 +520,7 @@ Scored after each REFLECT step. Dimensions (5): scenario_coverage, test_quality,
|
|
|
520
520
|
"phase": "{phase}",
|
|
521
521
|
"phase_dir": "{PHASE_DIR}",
|
|
522
522
|
"source_route": "spec|gap|code|re-run",
|
|
523
|
-
"
|
|
523
|
+
"blueprint_ref": "SPEC-001 | null",
|
|
524
524
|
"spec_mode": "full|degraded|null",
|
|
525
525
|
"status": "converged|max_iter_reached|confirmed_defects|single_pass",
|
|
526
526
|
"flags": { "max_iter": 5, "layer": null, "dry_run": false, "re_run": false },
|
|
@@ -550,7 +550,7 @@ Scored after each REFLECT step. Dimensions (5): scenario_coverage, test_quality,
|
|
|
550
550
|
{
|
|
551
551
|
"phase": "{phase}",
|
|
552
552
|
"source_route": "{ROUTE}",
|
|
553
|
-
"
|
|
553
|
+
"blueprint_ref": "{spec ref or null}",
|
|
554
554
|
"spec_mode": "full|degraded|null",
|
|
555
555
|
"completed_at": "{ISO timestamp}",
|
|
556
556
|
"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)
|