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
|
@@ -1,66 +1,67 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: maestro-roadmap
|
|
3
|
-
description: Generate roadmap from requirements
|
|
4
|
-
argument-hint: "\"<requirements>\" [
|
|
3
|
+
description: Generate milestone/phase roadmap from requirements or upstream context
|
|
4
|
+
argument-hint: "\"<requirements>\" [-m progressive|direct|auto] [-y|--yes] [-c] [--phases N] [--skip-research] [--from <source>] [--from-brainstorm SESSION-ID] [--revise [instructions]] [--review]"
|
|
5
5
|
allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, request_user_input
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
<purpose>
|
|
9
|
-
|
|
9
|
+
Generate a milestone/phase roadmap using `spawn_agents_on_csv` with 2-wave analysis:
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
- **Full** (`--mode full`): Wave 1 parallel research (domain, competitive, tech stack). Wave 2 synthesis -> 7-phase spec chain + roadmap.md.
|
|
11
|
+
Wave 1: parallel analysis (scope, risk, dependency). Wave 2: assembly -> roadmap.md with Milestone > Phase hierarchy.
|
|
13
12
|
|
|
14
13
|
Additional: `--revise` (modify existing roadmap), `--review` (read-only health check).
|
|
14
|
+
|
|
15
|
+
For formal specification documents (Product Brief, PRD, Architecture, Epics), use `maestro-blueprint` instead.
|
|
15
16
|
</purpose>
|
|
16
17
|
|
|
17
18
|
<context>
|
|
18
19
|
$ARGUMENTS -- requirement/idea text or @file reference, plus optional flags.
|
|
19
20
|
|
|
20
21
|
**Flags**:
|
|
21
|
-
- `--mode light|full`: Execution mode (default: light)
|
|
22
22
|
- `-y, --yes`: Skip all confirmations
|
|
23
|
-
- `-m progressive|direct|auto`: Decomposition strategy (default: auto
|
|
24
|
-
- `--phases N`: Target phase count
|
|
25
|
-
- `--revise [instructions]`: Revise existing roadmap preserving completed phases
|
|
26
|
-
- `--review`: Read-only roadmap health assessment
|
|
27
|
-
- `--
|
|
28
|
-
- `--from-brainstorm SESSION-ID`:
|
|
29
|
-
|
|
30
|
-
**Session**: `.workflow/.csv-wave/{YYYYMMDD}-roadmap
|
|
23
|
+
- `-m progressive|direct|auto`: Decomposition strategy (default: auto)
|
|
24
|
+
- `--phases N`: Target phase count
|
|
25
|
+
- `--revise [instructions]`: Revise existing roadmap preserving completed phases
|
|
26
|
+
- `--review`: Read-only roadmap health assessment
|
|
27
|
+
- `--from <source>`: Load upstream context package (brainstorm:ID, blueprint:BLP-xxx, analyze:ANL-xxx, @file, or path)
|
|
28
|
+
- `--from-brainstorm SESSION-ID`: (backward compat alias for `--from brainstorm:ID`)
|
|
29
|
+
|
|
30
|
+
**Session**: `.workflow/.csv-wave/{YYYYMMDD}-roadmap-{slug}/`
|
|
31
31
|
**Output**: tasks.csv, results.csv, discoveries.ndjson, context.md, `.workflow/roadmap.md`
|
|
32
|
-
**Full mode additional**: Spec package in `.workflow/.spec/SPEC-{slug}-{date}/`
|
|
33
32
|
</context>
|
|
34
33
|
|
|
34
|
+
<interview_protocol>
|
|
35
|
+
Interview the user relentlessly until shared understanding is reached. Active only in interactive mode; skip when `-y/--yes`, `--revise`, `--review`, `-c`, or input is already specific (clear requirement + mode).
|
|
36
|
+
|
|
37
|
+
- One decision per turn via request_user_input with 2–4 options + a (Recommended) default; every question must include a `Proceed now` option.
|
|
38
|
+
- Never ask what code can verify — resolve via `state.json`, existing `roadmap.md`, `project.md`, or `maestro spec load`.
|
|
39
|
+
- Walk the decision dependency tree strictly: mode → requirement scope → decomposition strategy → phase dependencies/order. Do not open the next branch until the current one is settled.
|
|
40
|
+
- Scope guard: only decide the shape of the roadmap. Do not pre-resolve intra-phase task breakdown — that belongs to `plan`.
|
|
41
|
+
|
|
42
|
+
Decision points: scope (MVP / complete / phased) → strategy (progressive / direct / auto) → milestone boundaries → phase dependencies and order.
|
|
43
|
+
|
|
44
|
+
Exit: on consensus or `Proceed now`, append the table below to a `Roadmap Decisions` section at the top of `.workflow/roadmap.md`:
|
|
45
|
+
`| # | Decision | Choice | Source (user / code / default) |`
|
|
46
|
+
</interview_protocol>
|
|
47
|
+
|
|
35
48
|
<csv_schema>
|
|
36
49
|
|
|
37
|
-
### tasks.csv
|
|
50
|
+
### tasks.csv
|
|
38
51
|
|
|
39
52
|
```csv
|
|
40
53
|
id,title,description,analysis_focus,deps,context_from,wave,status,findings,error
|
|
41
54
|
"1","Scope Analysis","Identify features, MVP boundaries, must-have vs nice-to-have, size estimates.","scope","","","1","","",""
|
|
42
55
|
"2","Risk Analysis","Technical/project risks, unknowns, feasibility, risk levels, mitigations.","risk","","","1","","",""
|
|
43
56
|
"3","Dependency Analysis","Feature dependencies, ordering constraints, parallel-safe groups, external deps.","dependency","","","1","","",""
|
|
44
|
-
"4","Roadmap Assembly","Synthesize findings into roadmap.md:
|
|
57
|
+
"4","Roadmap Assembly","Synthesize findings into roadmap.md: Milestone > Phase hierarchy, success criteria.","","1;2;3","1;2;3","2","","",""
|
|
45
58
|
```
|
|
46
59
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
```csv
|
|
50
|
-
id,title,description,research_focus,doc_phase,deps,context_from,wave,status,findings,output_file,error
|
|
51
|
-
"1","Domain Research","Target users, market needs, existing solutions, terminology.","domain","","","","1","","","",""
|
|
52
|
-
"2","Competitive Analysis","Feature comparison, UX patterns, gaps, opportunities.","competitive","","","","1","","","",""
|
|
53
|
-
"3","Tech Stack Analysis","Languages, frameworks, databases, constraints, scalability.","tech_stack","","","","1","","","",""
|
|
54
|
-
"4","Document Chain","7-phase spec: Product Brief, PRD (REQ-*/NFR-*), Architecture (ADR-*), Data Model, API, UI Wireframes, Epic-to-Roadmap (EPIC-*). + glossary.json.","","1-7","1;2;3","1;2;3","2","","","",""
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
**Shared column semantics**:
|
|
58
|
-
- Input: id (unique string), title, description (detailed instructions), deps (semicolon-sep IDs), context_from (IDs whose findings needed), wave (1=analysis/research, 2=assembly/synthesis)
|
|
60
|
+
**Column semantics**:
|
|
61
|
+
- Input: id (unique string), title, description (detailed instructions), analysis_focus (scope/risk/dependency), deps (semicolon-sep IDs), context_from (IDs whose findings needed), wave (1=analysis, 2=assembly)
|
|
59
62
|
- Output: status (pending->completed/failed/skipped), findings (max 500 chars), error
|
|
60
|
-
- Light-only: analysis_focus (scope/risk/dependency)
|
|
61
|
-
- Full-only: research_focus (domain/competitive/tech_stack), doc_phase (1-7), output_file
|
|
62
63
|
|
|
63
|
-
Wave 1: 3 analysis
|
|
64
|
+
Wave 1: 3 analysis rows (parallel). Wave 2: 1 assembly row.
|
|
64
65
|
</csv_schema>
|
|
65
66
|
|
|
66
67
|
<invariants>
|
|
@@ -74,12 +75,11 @@ Wave 1: 3 analysis/research rows (parallel). Wave 2: 1 assembly/synthesis row.
|
|
|
74
75
|
<state_machine>
|
|
75
76
|
|
|
76
77
|
<states>
|
|
77
|
-
S_PARSE -- 解析参数、检测
|
|
78
|
-
S_INPUT -- 解析输入(text/@file/
|
|
78
|
+
S_PARSE -- 解析参数、检测 operation PERSIST: --
|
|
79
|
+
S_INPUT -- 解析输入(text/@file/upstream context) PERSIST: --
|
|
79
80
|
S_CSV_GEN -- 生成 tasks.csv PERSIST: tasks.csv
|
|
80
|
-
S_WAVE_1 -- Analysis
|
|
81
|
-
S_WAVE_2 -- Assembly
|
|
82
|
-
S_SPEC_GEN -- Spec package generation (full mode only) PERSIST: .workflow/.spec/SPEC-*/
|
|
81
|
+
S_WAVE_1 -- Analysis (parallel spawn) PERSIST: findings + tasks.csv
|
|
82
|
+
S_WAVE_2 -- Assembly (single agent spawn) PERSIST: roadmap.md
|
|
83
83
|
S_AGGREGATE -- 精炼、评估、输出 PERSIST: context.md + .workflow/roadmap.md
|
|
84
84
|
</states>
|
|
85
85
|
|
|
@@ -91,21 +91,16 @@ S_PARSE:
|
|
|
91
91
|
-> REVIEW_FLOW WHEN: --review (read-only health assessment)
|
|
92
92
|
|
|
93
93
|
S_INPUT:
|
|
94
|
-
-> S_CSV_GEN DO: parse requirement (text/@file),
|
|
94
|
+
-> S_CSV_GEN DO: parse requirement (text/@file), load context-package.json if --from, codebase detection, load specs
|
|
95
95
|
|
|
96
96
|
S_CSV_GEN:
|
|
97
|
-
-> S_WAVE_1
|
|
98
|
-
-> S_WAVE_2 WHEN: --skip-research DO: generate wave 2 only
|
|
97
|
+
-> S_WAVE_1 DO: generate analysis CSV
|
|
99
98
|
|
|
100
99
|
S_WAVE_1:
|
|
101
100
|
-> S_WAVE_2 DO: A_SPAWN_WAVE_1
|
|
102
101
|
|
|
103
102
|
S_WAVE_2:
|
|
104
|
-
->
|
|
105
|
-
-> S_AGGREGATE WHEN: light mode DO: A_SPAWN_WAVE_2
|
|
106
|
-
|
|
107
|
-
S_SPEC_GEN:
|
|
108
|
-
-> S_AGGREGATE DO: generate 7-phase spec package per spec-generate.md
|
|
103
|
+
-> S_AGGREGATE DO: A_SPAWN_WAVE_2
|
|
109
104
|
|
|
110
105
|
S_AGGREGATE:
|
|
111
106
|
-> END DO: A_AGGREGATE_RESULTS
|
|
@@ -118,16 +113,15 @@ S_AGGREGATE:
|
|
|
118
113
|
|
|
119
114
|
Filter wave==1 -> write wave-1.csv -> `spawn_agents_on_csv`.
|
|
120
115
|
|
|
121
|
-
**
|
|
122
|
-
**Full mode agents**: domain research (users, market, solutions), competitive analysis (feature matrix, gaps), tech stack analysis (feasibility, constraints).
|
|
116
|
+
**Agents**: scope analysis (feature inventory + priority), risk analysis (unknowns + mitigations), dependency analysis (dependency graph + critical path).
|
|
123
117
|
|
|
124
118
|
Merge results -> master tasks.csv.
|
|
125
119
|
|
|
126
120
|
### A_SPAWN_WAVE_2
|
|
127
121
|
|
|
128
|
-
Build prev_context from wave 1. Inject strategy +
|
|
122
|
+
Build prev_context from wave 1. Inject strategy + `--phases` constraint. Spawn.
|
|
129
123
|
|
|
130
|
-
|
|
124
|
+
Assembly agent produces roadmap.md with Milestone > Phase hierarchy (goal, depends-on, requirements, success criteria), scope decisions.
|
|
131
125
|
|
|
132
126
|
**Strategy selection** via uncertainty assessment (5 factors):
|
|
133
127
|
| Factor | Low | Medium | High |
|
|
@@ -139,26 +133,15 @@ Build prev_context from wave 1. Inject strategy + --phases constraint (light mod
|
|
|
139
133
|
| Requirement stability | locked | some flux | evolving |
|
|
140
134
|
|
|
141
135
|
>=3 high -> progressive, >=3 low -> direct, else -> ask (or auto if -y).
|
|
142
|
-
**Full mode**: Document chain agent produces 7-phase spec package + glossary.json.
|
|
143
136
|
|
|
144
137
|
### A_AGGREGATE_RESULTS
|
|
145
138
|
|
|
146
139
|
1. Export results.csv
|
|
147
140
|
2. Interactive refinement (max 3 rounds, skip if -y): Approve / Refine / Regenerate
|
|
148
|
-
3.
|
|
149
|
-
4.
|
|
150
|
-
5.
|
|
151
|
-
6.
|
|
152
|
-
```
|
|
153
|
-
SPEC-{slug}-{date}/
|
|
154
|
-
+-- spec-config.json, product-brief.md, glossary.json, spec-summary.md
|
|
155
|
-
+-- requirements/ (_index.md, REQ-NNN-{slug}.md, NFR-{type}-NNN-{slug}.md)
|
|
156
|
-
+-- architecture/ (_index.md, ADR-NNN-{slug}.md)
|
|
157
|
-
+-- epics/ (_index.md, EPIC-NNN-{slug}.md)
|
|
158
|
-
+-- readiness-report.md
|
|
159
|
-
```
|
|
160
|
-
7. Update state.json milestones + current_milestone
|
|
161
|
-
8. Next-step routing: need analysis -> maestro-analyze; ready to plan -> maestro-plan; UI first -> maestro-impeccable build; full mode setup -> maestro-init
|
|
141
|
+
3. Generate context.md (summary + analysis findings + roadmap stats)
|
|
142
|
+
4. Write .workflow/roadmap.md with Milestone > Phase hierarchy
|
|
143
|
+
5. Update state.json milestones + current_milestone
|
|
144
|
+
6. Next-step routing: need analysis -> maestro-analyze; ready to plan -> maestro-plan; UI first -> maestro-impeccable build; need formal specs -> maestro-blueprint
|
|
162
145
|
|
|
163
146
|
</actions>
|
|
164
147
|
|
|
@@ -182,20 +165,20 @@ Protocol: read before analysis, append-only, dedup by type+key.
|
|
|
182
165
|
| Condition | Recovery |
|
|
183
166
|
|-----------|----------|
|
|
184
167
|
| No requirement text provided | Abort: "Requirement text or @file required" |
|
|
185
|
-
|
|
|
168
|
+
| Context source not found (--from / --from-brainstorm) | Abort with available sessions/sources list |
|
|
186
169
|
| roadmap.md not found (--revise/--review) | Run maestro-roadmap first |
|
|
187
170
|
| All Wave 1 agents failed | Wave 2 in degraded mode (seed only) |
|
|
188
|
-
| Wave 2 agent failed
|
|
189
|
-
|
|
|
190
|
-
| Readiness < 60% (full) | Log issues, proceed with available output |
|
|
171
|
+
| Wave 2 agent failed | Abort: "Roadmap generation failed" |
|
|
172
|
+
| Readiness < 60% | Log issues, proceed with available output |
|
|
191
173
|
</error_codes>
|
|
192
174
|
|
|
193
175
|
<success_criteria>
|
|
176
|
+
- [ ] Interactive mode: interview decision table appended to `.workflow/roadmap.md` "Roadmap Decisions" section
|
|
194
177
|
- [ ] Wave 1 agents completed (analysis or research)
|
|
195
|
-
- [ ] Wave 2 produced output (roadmap.md
|
|
196
|
-
- [ ] .workflow/roadmap.md written, state.json updated
|
|
178
|
+
- [ ] Wave 2 produced output (roadmap.md)
|
|
179
|
+
- [ ] .workflow/roadmap.md written with Milestone > Phase hierarchy, state.json updated
|
|
197
180
|
- [ ] context.md generated
|
|
198
|
-
- [ ]
|
|
199
|
-
- [ ]
|
|
181
|
+
- [ ] Uncertainty assessed, strategy selected, milestones with phases + success criteria
|
|
182
|
+
- [ ] Artifact registered in state.json with milestone entries
|
|
200
183
|
</success_criteria>
|
|
201
184
|
</output>
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: maestro-update
|
|
3
|
+
description: Detect version, preview changes, apply workflow upgrades
|
|
4
|
+
argument-hint: "[--dry-run] [--force]"
|
|
5
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, request_user_input
|
|
6
|
+
---
|
|
7
|
+
<purpose>
|
|
8
|
+
Detect the current `.workflow/` schema version, show available migrations, and interactively apply them step-by-step. Uses a migration registry that supports incremental version upgrades (e.g., 1.0 → 2.0 → 3.0).
|
|
9
|
+
|
|
10
|
+
Each migration step is previewed before execution. The user confirms each step in a loop.
|
|
11
|
+
</purpose>
|
|
12
|
+
|
|
13
|
+
<context>
|
|
14
|
+
$ARGUMENTS — optional flags.
|
|
15
|
+
|
|
16
|
+
**Flags:**
|
|
17
|
+
- `--dry-run` -- Preview migration plan without executing
|
|
18
|
+
- `--force` -- Skip confirmation prompts (apply all pending migrations)
|
|
19
|
+
|
|
20
|
+
**Migration registry:** `src/migrations/`
|
|
21
|
+
- Each migration is a standalone file (e.g., `v1-to-v2.ts`) exporting a `MigrationDef`
|
|
22
|
+
- All migrations are registered via `src/migrations/index.ts`
|
|
23
|
+
- Registry auto-chains: detects current version → walks chain → applies in order
|
|
24
|
+
- To add a new migration: create `src/migrations/v{N}-to-v{N+1}.ts`, register in `index.ts`
|
|
25
|
+
|
|
26
|
+
**CLI runner:** `src/migrations/run.ts`
|
|
27
|
+
- Executable entrypoint: `npx tsx src/migrations/run.ts [root] [--dry-run] [--force] [--json]`
|
|
28
|
+
- Outputs JSON (with `--json`) or human-readable text
|
|
29
|
+
|
|
30
|
+
**State version source:** `.workflow/state.json` → `version` field
|
|
31
|
+
</context>
|
|
32
|
+
|
|
33
|
+
<execution>
|
|
34
|
+
|
|
35
|
+
### Step 1: Detect Current State
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
1. Read .workflow/state.json
|
|
39
|
+
2. Extract version field (default "1.0" if missing)
|
|
40
|
+
3. Display:
|
|
41
|
+
|
|
42
|
+
=== Maestro Workflow Update ===
|
|
43
|
+
Project: {project_name}
|
|
44
|
+
Version: {version}
|
|
45
|
+
Location: {.workflow/ path}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Step 2: Dry-Run Preview
|
|
49
|
+
|
|
50
|
+
Run the migration CLI in dry-run + JSON mode to get the full plan:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
npx tsx src/migrations/run.ts "$(pwd)" --dry-run --json
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Parse the JSON output. If status is `up-to-date`:
|
|
57
|
+
```
|
|
58
|
+
Already up to date (v{version})
|
|
59
|
+
```
|
|
60
|
+
→ EXIT
|
|
61
|
+
|
|
62
|
+
Otherwise display the migration plan:
|
|
63
|
+
```
|
|
64
|
+
Pending Migrations ({N} step(s)):
|
|
65
|
+
|
|
66
|
+
1. [v{from} → v{to}] {name}
|
|
67
|
+
{description}
|
|
68
|
+
|
|
69
|
+
2. [v{from} → v{to}] {name}
|
|
70
|
+
{description}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
If `--dry-run` flag was passed by user → display plan and EXIT.
|
|
74
|
+
|
|
75
|
+
### Step 3: Interactive Confirmation Loop
|
|
76
|
+
|
|
77
|
+
For each migration step (unless `--force`):
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
LOOP for step_index = 1 to N:
|
|
81
|
+
|
|
82
|
+
Display:
|
|
83
|
+
--- Step {step_index}/{N}: {name} ---
|
|
84
|
+
Version: v{from} → v{to}
|
|
85
|
+
|
|
86
|
+
Changes:
|
|
87
|
+
{description, indented}
|
|
88
|
+
|
|
89
|
+
IF NOT --force:
|
|
90
|
+
AskUserQuestion: "Apply this migration?"
|
|
91
|
+
Options: [yes / skip / abort]
|
|
92
|
+
|
|
93
|
+
- "yes" → proceed to Step 4 (execute)
|
|
94
|
+
- "skip" → WARN "Skipping may break the migration chain"
|
|
95
|
+
continue to next step
|
|
96
|
+
- "abort" → display summary of what was applied so far → EXIT
|
|
97
|
+
|
|
98
|
+
IF --force:
|
|
99
|
+
→ proceed to Step 4 (execute)
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Step 4: Execute Single Migration
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
1. Create backup:
|
|
106
|
+
Bash: cp .workflow/state.json .workflow/state.json.backup-v{from}-{timestamp}
|
|
107
|
+
|
|
108
|
+
2. Run migration:
|
|
109
|
+
Bash: npx tsx src/migrations/run.ts "$(pwd)" --json
|
|
110
|
+
|
|
111
|
+
NOTE: The runner executes ALL pending migrations. For step-by-step control,
|
|
112
|
+
read state.json, call the migration function directly, or use the runner
|
|
113
|
+
which stops on first failure.
|
|
114
|
+
|
|
115
|
+
3. Parse result JSON and display:
|
|
116
|
+
|
|
117
|
+
{status_icon} Step {N} completed: {name}
|
|
118
|
+
Summary: {summary}
|
|
119
|
+
Changes:
|
|
120
|
+
- {change_1}
|
|
121
|
+
- {change_2}
|
|
122
|
+
- ...
|
|
123
|
+
|
|
124
|
+
4. If failed:
|
|
125
|
+
Display: "Migration failed: {summary}"
|
|
126
|
+
Display: "Backup available at: {backup_path}"
|
|
127
|
+
Display: "Restore with: cp {backup_path} .workflow/state.json"
|
|
128
|
+
→ EXIT
|
|
129
|
+
|
|
130
|
+
5. Continue loop to next step
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Step 5: Summary
|
|
134
|
+
|
|
135
|
+
After all steps completed (or user aborted):
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
=== Migration Complete ===
|
|
139
|
+
Applied: {applied_count} / {total_count} migration(s)
|
|
140
|
+
Skipped: {skipped_count}
|
|
141
|
+
Version: v{original} → v{final}
|
|
142
|
+
Backup: .workflow/state.json.backup-v{original}-{timestamp}
|
|
143
|
+
|
|
144
|
+
Next steps:
|
|
145
|
+
/manage-status -- Verify project state
|
|
146
|
+
/maestro -- Continue workflow
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
</execution>
|
|
150
|
+
|
|
151
|
+
<error_codes>
|
|
152
|
+
| Code | Severity | Condition | Recovery |
|
|
153
|
+
|------|----------|-----------|----------|
|
|
154
|
+
| E001 | error | .workflow/state.json not found | Run /maestro-init first |
|
|
155
|
+
| E002 | error | state.json parse error | Check file for corruption |
|
|
156
|
+
| E003 | error | Migration function failed | Restore from backup |
|
|
157
|
+
| W001 | warning | Skipped migration may break version chain | Re-run /maestro-update later |
|
|
158
|
+
| W002 | warning | tsx not available | Install tsx: npm i -D tsx |
|
|
159
|
+
</error_codes>
|
|
160
|
+
|
|
161
|
+
<success_criteria>
|
|
162
|
+
- [ ] Current version detected from state.json
|
|
163
|
+
- [ ] Dry-run preview shows full migration plan without execution
|
|
164
|
+
- [ ] Each step confirmed interactively (unless --force)
|
|
165
|
+
- [ ] Backup created before each migration
|
|
166
|
+
- [ ] Migration executed and result displayed with change list
|
|
167
|
+
- [ ] Abort stops cleanly with partial summary
|
|
168
|
+
- [ ] Summary shows applied/skipped counts and version change
|
|
169
|
+
</success_criteria>
|
|
@@ -94,9 +94,18 @@ S_AGGREGATE -- 生成报告、创建 issues、修复计划 PERSIST:
|
|
|
94
94
|
<transitions>
|
|
95
95
|
|
|
96
96
|
S_PARSE:
|
|
97
|
-
-> S_MUST_HAVE WHEN: phase resolved DO: load index.json, plan.json, TASK-*.json, summaries, uat.md, ARCHITECTURE.md
|
|
97
|
+
-> S_MUST_HAVE WHEN: phase resolved DO: load index.json, plan.json, TASK-*.json, summaries, uat.md, ARCHITECTURE.md; **D-007 milestone reverse lookup** for numeric phase
|
|
98
98
|
-> ERROR WHEN: phase not found
|
|
99
99
|
|
|
100
|
+
**D-007 milestone reverse lookup** (numeric phase arg):
|
|
101
|
+
```
|
|
102
|
+
resolve_milestone(phase_number):
|
|
103
|
+
for ms in state.json.milestones[]:
|
|
104
|
+
if str(phase_number) in ms.phase_slugs: return ms.id
|
|
105
|
+
return state.json.current_milestone # fallback
|
|
106
|
+
```
|
|
107
|
+
Write resolved milestone into `session.milestone` and VRF artifact registration. NEVER read `current_milestone` directly for phase-scoped runs.
|
|
108
|
+
|
|
100
109
|
S_MUST_HAVE:
|
|
101
110
|
-> S_CSV_GEN DO: establish must-haves from success_criteria (primary), convergence.criteria (per-task), derived behaviors (fallback). Decompose into truth/artifact/wiring layers.
|
|
102
111
|
|
|
@@ -202,7 +211,7 @@ Protocol: read before analysis, append-only, dedup by type+key.
|
|
|
202
211
|
- [ ] Issues auto-created for gaps + blocker anti-patterns
|
|
203
212
|
- [ ] Post-verify knowledge inquiry triggered when applicable
|
|
204
213
|
- [ ] Phase index.json updated with verification status
|
|
205
|
-
- [ ] VRF artifact registered in state.json
|
|
214
|
+
- [ ] VRF artifact registered in state.json (numeric scope: milestone resolved via D-007 `phase_slugs` reverse lookup, NOT direct `current_milestone` read)
|
|
206
215
|
- [ ] Gap-fix closure loop documented: gaps → plan --gaps → execute → verify (re-run)
|
|
207
216
|
- [ ] Next step routed (quality-review if passed, plan --gaps if gaps, quality-auto-test if low coverage)
|
|
208
217
|
- [ ] discoveries.ndjson append-only throughout
|
|
@@ -82,8 +82,8 @@ When `--yes` or `-y`: Auto-confirm rebuild (implies --force), skip all prompts.
|
|
|
82
82
|
```csv
|
|
83
83
|
id,title,description,doc_dimension,output_path,deps,context_from,wave
|
|
84
84
|
"1","Component Scanner","Scan all source directories for components: models, services, controllers, utils, types, config, middleware, core modules. For each component extract exported symbols, determine type, record code locations. Output JSON array of component entries with id (TC-NNN), name, type, code_locations, symbols.","components",".workflow/codebase/doc-index.json#components","","","1"
|
|
85
|
-
"2","Feature Mapper","Group discovered components by domain/functional area using directory proximity, naming patterns, and import relationships. Map features to requirements if .workflow
|
|
86
|
-
"3","Requirement Linker","If .workflow
|
|
85
|
+
"2","Feature Mapper","Group discovered components by domain/functional area using directory proximity, naming patterns, and import relationships. Map features to requirements if .workflow/blueprint/ exists. Output JSON array of feature entries with id (FT-NNN), name, status, component_ids, requirement_ids, phase.","features",".workflow/codebase/doc-index.json#features","","","1"
|
|
86
|
+
"3","Requirement Linker","If .workflow/blueprint/ exists, scan BLP-*/requirements/REQ-*.md files. Parse requirement metadata (title, priority, acceptance_criteria). Match requirements to features by keyword analysis. Also scan for ADR-*.md architecture decisions. Output JSON arrays for requirements and architecture_decisions.","requirements",".workflow/codebase/doc-index.json#requirements","","","1"
|
|
87
87
|
"4","Tech Registry Writer","For each component discovered, generate a markdown documentation file in .workflow/codebase/tech-registry/{slug}.md with: ID, type, features, code locations, exported symbols, dependencies. Generate _index.md with component table. Output file count and paths.","tech-registry",".workflow/codebase/tech-registry/","","","1"
|
|
88
88
|
"5","Feature Map Writer","For each feature discovered, generate a markdown documentation file in .workflow/codebase/feature-maps/{slug}.md with: ID, status, phase, requirements, component table. Generate _index.md with feature table. Output file count and paths.","feature-maps",".workflow/codebase/feature-maps/","","","1"
|
|
89
89
|
```
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: manage-harvest
|
|
3
3
|
description: Extract knowledge from artifacts into wiki/spec/issues
|
|
4
|
-
argument-hint: "[<session-id|path>] [--to wiki|spec|issue|auto] [--source <type>] [--recent N] [--dry-run] [-y]"
|
|
4
|
+
argument-hint: "[<session-id|path>] [--to wiki|spec|issue|auto] [--source <type>] [--recent N] [--dry-run] [-y] [--prune] [--age N]"
|
|
5
5
|
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -31,6 +31,8 @@ $ARGUMENTS — session-id, path, or empty for scan mode.
|
|
|
31
31
|
- `--dry-run` — Preview without writing
|
|
32
32
|
- `-y` — Skip confirmations
|
|
33
33
|
- `--min-confidence N` — Minimum 0.0-1.0 (default: 0.5)
|
|
34
|
+
- `--prune` — State hygiene mode: classify artifacts, graduate harvested → knowhow, archive from state.json, prune accumulated_context
|
|
35
|
+
- `--age N` — Graduation age threshold in days (default: 14). Used with `--prune`
|
|
34
36
|
|
|
35
37
|
**Source registry:**
|
|
36
38
|
| Source | Scan Path | Key Files |
|
|
@@ -46,7 +48,7 @@ $ARGUMENTS — session-id, path, or empty for scan mode.
|
|
|
46
48
|
</context>
|
|
47
49
|
|
|
48
50
|
<execution>
|
|
49
|
-
Follow '~/.maestro/workflows/harvest.md' Stages 1–8.
|
|
51
|
+
Follow '~/.maestro/workflows/harvest.md' Stages 1–8 (standard mode) or Stage 9 (`--prune` mode).
|
|
50
52
|
|
|
51
53
|
**Key invariants:**
|
|
52
54
|
1. **Read-only until Stage 6** — extraction/classification in-memory only
|
|
@@ -65,6 +67,8 @@ Follow '~/.maestro/workflows/harvest.md' Stages 1–8.
|
|
|
65
67
|
- Issue: append to `issues.jsonl` matching canonical schema
|
|
66
68
|
|
|
67
69
|
**Next steps:** `/manage-wiki health`, `maestro wiki list --type note`, `/wiki-connect --fix`, `/wiki-digest`, `/manage-issue list --source harvest`
|
|
70
|
+
|
|
71
|
+
**Prune mode** (`--prune`): Classifies artifacts (active/graduated/stale/protected), graduates harvested artifacts to wiki knowhow, archives from `artifacts[]` → `artifact_archive[]`, prunes resolved entries from accumulated_context. Files on disk are never deleted. Always backs up state.json before writing.
|
|
68
72
|
</execution>
|
|
69
73
|
|
|
70
74
|
<error_codes>
|
|
@@ -88,4 +92,8 @@ Follow '~/.maestro/workflows/harvest.md' Stages 1–8.
|
|
|
88
92
|
- [ ] harvest-log.jsonl updated with provenance
|
|
89
93
|
- [ ] harvest-report-{date}.md written
|
|
90
94
|
- [ ] No source artifacts modified
|
|
95
|
+
- [ ] If --prune: artifacts classified (active/graduated/stale/protected)
|
|
96
|
+
- [ ] If --prune: graduated artifacts → knowhow + artifact_archive[]
|
|
97
|
+
- [ ] If --prune: accumulated_context pruned (resolved deferred/blockers, deduplicated decisions)
|
|
98
|
+
- [ ] If --prune: state.json backed up before modification
|
|
91
99
|
</success_criteria>
|
|
@@ -76,9 +76,16 @@ When `-y`: Accept all routing recommendations without prompting. Route all insig
|
|
|
76
76
|
|
|
77
77
|
**Storage read (never modified)** — all resolved via `state.json.artifacts[]`:
|
|
78
78
|
```
|
|
79
|
+
# D-007 milestone reverse lookup — phase N may belong to a milestone different from current
|
|
80
|
+
target_milestone = resolve_milestone(target_phase) # see below
|
|
79
81
|
related = artifacts.filter(a =>
|
|
80
|
-
a.phase === target_phase && a.milestone ===
|
|
82
|
+
a.phase === target_phase && a.milestone === target_milestone
|
|
81
83
|
).sort_by(completed_at asc)
|
|
84
|
+
|
|
85
|
+
resolve_milestone(phase_number):
|
|
86
|
+
for ms in state.json.milestones[]:
|
|
87
|
+
if str(phase_number) in ms.phase_slugs: return ms.id
|
|
88
|
+
return state.json.current_milestone # fallback
|
|
82
89
|
```
|
|
83
90
|
Each artifact's type determines its outputs at `.workflow/{a.path}/`:
|
|
84
91
|
- **execute** → index.json, plan.json, .task/TASK-*.json, .summaries/TASK-*-summary.md
|
|
@@ -168,7 +175,7 @@ spawn_agent({
|
|
|
168
175
|
task_name: "ctx",
|
|
169
176
|
fork_turns: "none",
|
|
170
177
|
message: `Load and summarize all phase ${targetPhase} artifacts for retrospective.
|
|
171
|
-
1. Query state.json artifacts[] for phase === ${targetPhase} && milestone === current_milestone
|
|
178
|
+
1. Query state.json artifacts[] for phase === ${targetPhase} && milestone === resolve_milestone(${targetPhase}) [D-007 reverse lookup via state.json.milestones[].phase_slugs; fallback to current_milestone if phase unmatched]
|
|
172
179
|
2. Load per-artifact outputs (execute→index/plan/tasks/summaries, verify→verification.json, review→review.json, debug→understanding/evidence, test→uat/tests)
|
|
173
180
|
3. Filter issues.jsonl for this phase; read state.json for project context
|
|
174
181
|
EXPECTED: Goals vs outcomes, completion rates, verification/review/UAT results, issue counts, key metrics`
|
|
@@ -75,7 +75,7 @@ EXPECTED: JSON with: tech_stack[], architecture_patterns[], conventions[], integ
|
|
|
75
75
|
|
|
76
76
|
## Phase 4: Context Packaging
|
|
77
77
|
|
|
78
|
-
1. Write
|
|
78
|
+
1. Write blueprint-config.json -> <session>/spec/
|
|
79
79
|
2. Write discovery-context.json -> <session>/spec/
|
|
80
80
|
3. Inline Discuss (DISCUSS-001):
|
|
81
81
|
- Artifact: <session>/spec/discovery-context.json
|
|
@@ -94,7 +94,7 @@ EXPECTED: JSON with: tech_stack[], architecture_patterns[], conventions[], integ
|
|
|
94
94
|
"discuss_verdict": "<verdict>"
|
|
95
95
|
},
|
|
96
96
|
"data": {
|
|
97
|
-
"output_paths": ["
|
|
97
|
+
"output_paths": ["blueprint-config.json", "discovery-context.json"]
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
100
|
```
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
2. Load quality gate thresholds from specs/quality-gates.md
|
|
23
23
|
3. Score each dimension
|
|
24
24
|
4. Run cross-document validation
|
|
25
|
-
5. Generate readiness-report.md +
|
|
25
|
+
5. Generate readiness-report.md + blueprint-summary.md
|
|
26
26
|
6. Run DISCUSS-003:
|
|
27
27
|
- Artifact: `{session}/spec/readiness-report.md`
|
|
28
28
|
- Perspectives: product, technical, quality, risk, coverage
|
|
@@ -41,4 +41,4 @@
|
|
|
41
41
|
|
|
42
42
|
Write to `{session}/artifacts/`:
|
|
43
43
|
- readiness-report.md: Dimension scores, issue list, traceability matrix
|
|
44
|
-
-
|
|
44
|
+
- blueprint-summary.md: Executive summary of all spec docs
|
|
@@ -50,7 +50,7 @@ Template-driven document generation with progressive dependency loading.
|
|
|
50
50
|
|
|
51
51
|
### Inputs
|
|
52
52
|
- Template from routing table
|
|
53
|
-
-
|
|
53
|
+
- blueprint-config.json from <session>/spec/
|
|
54
54
|
- discovery-context.json from <session>/spec/
|
|
55
55
|
- Prior decisions from context_accumulator (inner loop)
|
|
56
56
|
- Discussion feedback from <session>/discussions/ (if exists)
|
|
@@ -32,7 +32,7 @@ status: draft
|
|
|
32
32
|
generated_at: {timestamp}
|
|
33
33
|
version: 1
|
|
34
34
|
dependencies:
|
|
35
|
-
- ../
|
|
35
|
+
- ../blueprint-config.json
|
|
36
36
|
- ../product-brief.md
|
|
37
37
|
- ../requirements/_index.md
|
|
38
38
|
---
|
|
@@ -246,9 +246,9 @@ date: {timestamp}
|
|
|
246
246
|
|
|
247
247
|
| Variable | Source | Description |
|
|
248
248
|
|----------|--------|-------------|
|
|
249
|
-
| `{session_id}` |
|
|
249
|
+
| `{session_id}` | blueprint-config.json | Session identifier |
|
|
250
250
|
| `{timestamp}` | Runtime | ISO8601 generation timestamp |
|
|
251
251
|
| `{product_name}` | product-brief.md | Product/feature name |
|
|
252
252
|
| `{NNN}` | Auto-increment | ADR/requirement number |
|
|
253
253
|
| `{slug}` | Auto-generated | Kebab-case from decision title |
|
|
254
|
-
| `{has_codebase}` |
|
|
254
|
+
| `{has_codebase}` | blueprint-config.json | Whether existing codebase exists |
|
|
@@ -32,7 +32,7 @@ status: draft
|
|
|
32
32
|
generated_at: {timestamp}
|
|
33
33
|
version: 1
|
|
34
34
|
dependencies:
|
|
35
|
-
- ../
|
|
35
|
+
- ../blueprint-config.json
|
|
36
36
|
- ../product-brief.md
|
|
37
37
|
- ../requirements/_index.md
|
|
38
38
|
- ../architecture/_index.md
|
|
@@ -187,7 +187,7 @@ status: draft
|
|
|
187
187
|
|
|
188
188
|
| Variable | Source | Description |
|
|
189
189
|
|----------|--------|-------------|
|
|
190
|
-
| `{session_id}` |
|
|
190
|
+
| `{session_id}` | blueprint-config.json | Session identifier |
|
|
191
191
|
| `{timestamp}` | Runtime | ISO8601 generation timestamp |
|
|
192
192
|
| `{product_name}` | product-brief.md | Product/feature name |
|
|
193
193
|
| `{EPIC}` | Auto-increment | Epic number (3 digits) |
|
|
@@ -23,7 +23,7 @@ generated_at: {timestamp}
|
|
|
23
23
|
stepsCompleted: []
|
|
24
24
|
version: 1
|
|
25
25
|
dependencies:
|
|
26
|
-
-
|
|
26
|
+
- blueprint-config.json
|
|
27
27
|
---
|
|
28
28
|
|
|
29
29
|
# Product Brief: {product_name}
|
|
@@ -117,7 +117,7 @@ dependencies:
|
|
|
117
117
|
|
|
118
118
|
## References
|
|
119
119
|
|
|
120
|
-
- Derived from: [
|
|
120
|
+
- Derived from: [blueprint-config.json](blueprint-config.json)
|
|
121
121
|
- Next: [Requirements PRD](requirements.md)
|
|
122
122
|
```
|
|
123
123
|
|
|
@@ -125,7 +125,7 @@ dependencies:
|
|
|
125
125
|
|
|
126
126
|
| Variable | Source | Description |
|
|
127
127
|
|----------|--------|-------------|
|
|
128
|
-
| `{session_id}` |
|
|
128
|
+
| `{session_id}` | blueprint-config.json | Session identifier |
|
|
129
129
|
| `{timestamp}` | Runtime | ISO8601 generation timestamp |
|
|
130
130
|
| `{product_name}` | Seed analysis | Product/feature name |
|
|
131
131
|
| `{executive_summary}` | CLI synthesis | 2-3 sentence summary |
|
|
@@ -36,7 +36,7 @@ status: draft
|
|
|
36
36
|
generated_at: {timestamp}
|
|
37
37
|
version: 1
|
|
38
38
|
dependencies:
|
|
39
|
-
- ../
|
|
39
|
+
- ../blueprint-config.json
|
|
40
40
|
- ../product-brief.md
|
|
41
41
|
---
|
|
42
42
|
|
|
@@ -215,7 +215,7 @@ status: draft
|
|
|
215
215
|
|
|
216
216
|
| Variable | Source | Description |
|
|
217
217
|
|----------|--------|-------------|
|
|
218
|
-
| `{session_id}` |
|
|
218
|
+
| `{session_id}` | blueprint-config.json | Session identifier |
|
|
219
219
|
| `{timestamp}` | Runtime | ISO8601 generation timestamp |
|
|
220
220
|
| `{product_name}` | product-brief.md | Product/feature name |
|
|
221
221
|
| `{NNN}` | Auto-increment | Requirement number (zero-padded 3 digits) |
|