maestro-flow 0.3.10 → 0.3.11

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 (184) hide show
  1. package/.claude/agents/workflow-collab-planner.md +1 -1
  2. package/.claude/agents/workflow-executor.md +1 -1
  3. package/.claude/agents/workflow-plan-checker.md +1 -1
  4. package/.claude/agents/workflow-planner.md +1 -1
  5. package/.claude/commands/learn-decompose.md +176 -176
  6. package/.claude/commands/learn-follow.md +167 -167
  7. package/.claude/commands/learn-retro.md +1 -1
  8. package/.claude/commands/maestro-coordinate.md +1 -3
  9. package/.claude/commands/manage-harvest.md +131 -131
  10. package/.claude/commands/manage-issue.md +2 -2
  11. package/.claude/commands/spec-add.md +67 -56
  12. package/.claude/commands/spec-load.md +66 -64
  13. package/.claude/commands/spec-setup.md +5 -9
  14. package/.codex/skills/learn-decompose/SKILL.md +119 -0
  15. package/.codex/skills/learn-follow/SKILL.md +83 -0
  16. package/.codex/skills/learn-investigate/SKILL.md +83 -0
  17. package/.codex/skills/learn-retro/SKILL.md +83 -0
  18. package/.codex/skills/learn-second-opinion/SKILL.md +86 -0
  19. package/.codex/skills/maestro/SKILL.md +151 -279
  20. package/.codex/skills/maestro-analyze/SKILL.md +59 -71
  21. package/.codex/skills/maestro-brainstorm/SKILL.md +452 -463
  22. package/.codex/skills/maestro-chain/SKILL.md +95 -110
  23. package/.codex/skills/maestro-coordinate/SKILL.md +68 -234
  24. package/.codex/skills/maestro-execute/SKILL.md +435 -446
  25. package/.codex/skills/maestro-fork/SKILL.md +68 -0
  26. package/.codex/skills/maestro-init/SKILL.md +171 -167
  27. package/.codex/skills/maestro-learn/SKILL.md +80 -0
  28. package/.codex/skills/maestro-link-coordinate/SKILL.md +224 -220
  29. package/.codex/skills/maestro-merge/SKILL.md +62 -0
  30. package/.codex/skills/maestro-milestone-audit/SKILL.md +108 -103
  31. package/.codex/skills/maestro-milestone-complete/SKILL.md +155 -149
  32. package/.codex/skills/maestro-milestone-release/SKILL.md +70 -0
  33. package/.codex/skills/maestro-overlay/SKILL.md +188 -185
  34. package/.codex/skills/maestro-plan/SKILL.md +58 -69
  35. package/.codex/skills/maestro-quick/SKILL.md +26 -23
  36. package/.codex/skills/maestro-roadmap/SKILL.md +65 -73
  37. package/.codex/skills/maestro-spec-generate/SKILL.md +66 -74
  38. package/.codex/skills/maestro-ui-design/SKILL.md +34 -31
  39. package/.codex/skills/maestro-verify/SKILL.md +556 -566
  40. package/.codex/skills/manage-codebase-rebuild/SKILL.md +397 -405
  41. package/.codex/skills/manage-codebase-refresh/SKILL.md +93 -82
  42. package/.codex/skills/manage-harvest/SKILL.md +82 -0
  43. package/.codex/skills/manage-issue/SKILL.md +80 -65
  44. package/.codex/skills/manage-issue-discover/SKILL.md +491 -503
  45. package/.codex/skills/manage-learn/SKILL.md +190 -186
  46. package/.codex/skills/manage-memory/SKILL.md +95 -72
  47. package/.codex/skills/manage-memory-capture/SKILL.md +99 -86
  48. package/.codex/skills/manage-status/SKILL.md +102 -89
  49. package/.codex/skills/quality-business-test/SKILL.md +228 -223
  50. package/.codex/skills/quality-debug/SKILL.md +54 -66
  51. package/.codex/skills/quality-integration-test/SKILL.md +532 -544
  52. package/.codex/skills/quality-refactor/SKILL.md +197 -191
  53. package/.codex/skills/quality-retrospective/SKILL.md +512 -505
  54. package/.codex/skills/quality-review/SKILL.md +93 -105
  55. package/.codex/skills/quality-sync/SKILL.md +101 -89
  56. package/.codex/skills/quality-test/SKILL.md +202 -198
  57. package/.codex/skills/quality-test-gen/SKILL.md +93 -104
  58. package/.codex/skills/spec-add/SKILL.md +58 -39
  59. package/.codex/skills/spec-load/SKILL.md +45 -40
  60. package/.codex/skills/spec-map/SKILL.md +180 -182
  61. package/.codex/skills/spec-setup/SKILL.md +94 -76
  62. package/.codex/skills/team-coordinate/SKILL.md +346 -357
  63. package/.codex/skills/team-executor/SKILL.md +70 -112
  64. package/.codex/skills/team-lifecycle-v4/SKILL.md +311 -299
  65. package/.codex/skills/team-quality-assurance/SKILL.md +234 -227
  66. package/.codex/skills/team-review/SKILL.md +232 -225
  67. package/.codex/skills/team-tech-debt/SKILL.md +78 -100
  68. package/.codex/skills/team-testing/SKILL.md +242 -235
  69. package/.codex/skills/wiki-connect/SKILL.md +75 -0
  70. package/.codex/skills/wiki-digest/SKILL.md +87 -0
  71. package/README.md +7 -4
  72. package/README.zh-CN.md +7 -4
  73. package/dashboard/dist-server/dashboard/src/server/routes/specs.d.ts +1 -1
  74. package/dashboard/dist-server/dashboard/src/server/routes/specs.js +75 -30
  75. package/dashboard/dist-server/dashboard/src/server/routes/specs.js.map +1 -1
  76. package/dashboard/dist-server/dashboard/src/server/state/event-bus.d.ts +5 -0
  77. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js +5 -0
  78. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js.map +1 -1
  79. package/dashboard/dist-server/dashboard/src/shared/constants.js +5 -0
  80. package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
  81. package/dashboard/dist-server/dashboard/src/shared/team-types.d.ts +21 -0
  82. package/dashboard/dist-server/dashboard/src/shared/team-types.js.map +1 -1
  83. package/dashboard/dist-server/dashboard/src/shared/types.d.ts +3 -2
  84. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.d.ts +1 -1
  85. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.js.map +1 -1
  86. package/dashboard/dist-server/src/hooks/constants.d.ts +2 -0
  87. package/dashboard/dist-server/src/hooks/constants.js +2 -0
  88. package/dashboard/dist-server/src/hooks/constants.js.map +1 -1
  89. package/dist/src/commands/collab.js +4 -4
  90. package/dist/src/commands/collab.js.map +1 -1
  91. package/dist/src/commands/hooks.d.ts.map +1 -1
  92. package/dist/src/commands/hooks.js +66 -1
  93. package/dist/src/commands/hooks.js.map +1 -1
  94. package/dist/src/commands/spec.d.ts.map +1 -1
  95. package/dist/src/commands/spec.js +7 -2
  96. package/dist/src/commands/spec.js.map +1 -1
  97. package/dist/src/hooks/constants.d.ts +2 -0
  98. package/dist/src/hooks/constants.d.ts.map +1 -1
  99. package/dist/src/hooks/constants.js +2 -0
  100. package/dist/src/hooks/constants.js.map +1 -1
  101. package/dist/src/hooks/guards/index.d.ts +1 -0
  102. package/dist/src/hooks/guards/index.d.ts.map +1 -1
  103. package/dist/src/hooks/guards/index.js +1 -0
  104. package/dist/src/hooks/guards/index.js.map +1 -1
  105. package/dist/src/hooks/guards/spec-validator.d.ts +25 -0
  106. package/dist/src/hooks/guards/spec-validator.d.ts.map +1 -0
  107. package/dist/src/hooks/guards/spec-validator.js +66 -0
  108. package/dist/src/hooks/guards/spec-validator.js.map +1 -0
  109. package/dist/src/hooks/keyword-spec-injector.d.ts +21 -0
  110. package/dist/src/hooks/keyword-spec-injector.d.ts.map +1 -0
  111. package/dist/src/hooks/keyword-spec-injector.js +96 -0
  112. package/dist/src/hooks/keyword-spec-injector.js.map +1 -0
  113. package/dist/src/hooks/plugins/spec-injection-plugin.d.ts +2 -1
  114. package/dist/src/hooks/plugins/spec-injection-plugin.d.ts.map +1 -1
  115. package/dist/src/hooks/plugins/spec-injection-plugin.js +21 -12
  116. package/dist/src/hooks/plugins/spec-injection-plugin.js.map +1 -1
  117. package/dist/src/hooks/spec-bridge.d.ts +40 -0
  118. package/dist/src/hooks/spec-bridge.d.ts.map +1 -0
  119. package/dist/src/hooks/spec-bridge.js +97 -0
  120. package/dist/src/hooks/spec-bridge.js.map +1 -0
  121. package/dist/src/hooks/spec-injector.d.ts.map +1 -1
  122. package/dist/src/hooks/spec-injector.js +18 -12
  123. package/dist/src/hooks/spec-injector.js.map +1 -1
  124. package/dist/src/team/phase-orchestrator.d.ts +52 -0
  125. package/dist/src/team/phase-orchestrator.d.ts.map +1 -0
  126. package/dist/src/team/phase-orchestrator.js +165 -0
  127. package/dist/src/team/phase-orchestrator.js.map +1 -0
  128. package/dist/src/team/phase-types.d.ts +51 -0
  129. package/dist/src/team/phase-types.d.ts.map +1 -0
  130. package/dist/src/team/phase-types.js +41 -0
  131. package/dist/src/team/phase-types.js.map +1 -0
  132. package/dist/src/tools/index.d.ts.map +1 -1
  133. package/dist/src/tools/index.js +6 -0
  134. package/dist/src/tools/index.js.map +1 -1
  135. package/dist/src/tools/spec-entry-parser.d.ts +56 -0
  136. package/dist/src/tools/spec-entry-parser.d.ts.map +1 -0
  137. package/dist/src/tools/spec-entry-parser.js +196 -0
  138. package/dist/src/tools/spec-entry-parser.js.map +1 -0
  139. package/dist/src/tools/spec-init.d.ts.map +1 -1
  140. package/dist/src/tools/spec-init.js +66 -92
  141. package/dist/src/tools/spec-init.js.map +1 -1
  142. package/dist/src/tools/spec-keyword-index.d.ts +30 -0
  143. package/dist/src/tools/spec-keyword-index.d.ts.map +1 -0
  144. package/dist/src/tools/spec-keyword-index.js +101 -0
  145. package/dist/src/tools/spec-keyword-index.js.map +1 -0
  146. package/dist/src/tools/spec-loader.d.ts +3 -3
  147. package/dist/src/tools/spec-loader.d.ts.map +1 -1
  148. package/dist/src/tools/spec-loader.js +49 -23
  149. package/dist/src/tools/spec-loader.js.map +1 -1
  150. package/dist/src/tools/team-agents.d.ts +27 -0
  151. package/dist/src/tools/team-agents.d.ts.map +1 -0
  152. package/dist/src/tools/team-agents.js +362 -0
  153. package/dist/src/tools/team-agents.js.map +1 -0
  154. package/dist/src/tools/team-mailbox.d.ts +40 -0
  155. package/dist/src/tools/team-mailbox.d.ts.map +1 -0
  156. package/dist/src/tools/team-mailbox.js +384 -0
  157. package/dist/src/tools/team-mailbox.js.map +1 -0
  158. package/dist/src/tools/team-msg.d.ts +17 -8
  159. package/dist/src/tools/team-msg.d.ts.map +1 -1
  160. package/dist/src/tools/team-msg.js +110 -13
  161. package/dist/src/tools/team-msg.js.map +1 -1
  162. package/dist/src/tools/team-tasks-mcp.d.ts +27 -0
  163. package/dist/src/tools/team-tasks-mcp.d.ts.map +1 -0
  164. package/dist/src/tools/team-tasks-mcp.js +408 -0
  165. package/dist/src/tools/team-tasks-mcp.js.map +1 -0
  166. package/package.json +2 -1
  167. package/workflows/analyze.md +816 -816
  168. package/workflows/brainstorm.md +471 -471
  169. package/workflows/codebase-rebuild.md +332 -332
  170. package/workflows/codebase-refresh.md +240 -240
  171. package/workflows/execute.md +1 -1
  172. package/workflows/harvest.md +420 -420
  173. package/workflows/integration-test.md +343 -343
  174. package/workflows/issue-discover.md +414 -414
  175. package/workflows/map.md +111 -111
  176. package/workflows/milestone-complete.md +176 -176
  177. package/workflows/plan.md +1 -1
  178. package/workflows/quick.md +497 -497
  179. package/workflows/refactor.md +300 -300
  180. package/workflows/roadmap.md +335 -335
  181. package/workflows/spec-generate.md +640 -640
  182. package/workflows/specs-add.md +46 -81
  183. package/workflows/specs-load.md +15 -17
  184. package/workflows/specs-setup.md +40 -161
package/workflows/map.md CHANGED
@@ -1,111 +1,111 @@
1
- # Workflow: map
2
-
3
- Codebase scanning with parallel mapper agents.
4
-
5
- ---
6
-
7
- ## Step 1: Pre-check
8
-
9
- 1. Check if `.workflow/research/` already exists with documents:
10
- - If documents exist and are recent (< 7 days):
11
- - Ask user: "Codebase map exists. Refresh or skip?"
12
- - "refresh" → continue to Step 2 (overwrite)
13
- - "skip" → exit with route suggestions
14
- - If documents are stale or missing → continue to Step 2
15
-
16
- 2. Create `.workflow/research/` directory if it does not exist.
17
-
18
- ---
19
-
20
- ## Step 2: Spawn Parallel Mapper Agents
21
-
22
- Spawn 4 parallel `workflow-codebase-mapper` agents. Each agent scans the codebase independently with a specific focus and writes its output directly to `.workflow/research/`.
23
-
24
- ```
25
- Agent 1: tech focus
26
- Scan: package.json, go.mod, requirements.txt, build files, dependencies
27
- Output: .workflow/research/STACK.md
28
- Content: languages, frameworks, build tools, key dependencies, versions
29
-
30
- Agent 2: arch focus
31
- Scan: directory structure, module boundaries, entry points, data flow
32
- Output: .workflow/research/ARCHITECTURE.md
33
- Content: architecture style, layer separation, module graph, key abstractions
34
-
35
- Agent 3: features focus
36
- Scan: routes, handlers, components, services, models
37
- Output: .workflow/research/FEATURES.md
38
- Content: feature inventory, feature-to-file mapping, completeness assessment
39
-
40
- Agent 4: concerns focus
41
- Scan: error handling, logging, tests, config, security, performance
42
- Output: .workflow/research/PITFALLS.md
43
- Content: tech debt, missing tests, security gaps, performance concerns, known issues
44
- ```
45
-
46
- If `$ARGUMENTS` (focus area) is provided, pass it to each agent as a focus filter: "Prioritize analysis of {focus_area} subsystem."
47
-
48
- **Load project specs for mapper context:**
49
- ```
50
- specs_content = maestro spec load --category planning
51
- ```
52
-
53
- **Agent spawn pattern:**
54
- ```
55
- For each agent (1-4) in parallel:
56
- Agent({
57
- subagent_type: "workflow-codebase-mapper",
58
- prompt: "Focus: {focus}. Scan the codebase and write {output_file}.
59
- Project specs for reference: ${specs_content}
60
- Write directly to the file. Return only a confirmation with line count.",
61
- run_in_background: false
62
- })
63
- ```
64
-
65
- ---
66
-
67
- ## Step 3: Verification
68
-
69
- After all 4 agents complete:
70
-
71
- 1. Verify all documents exist with content:
72
- ```
73
- .workflow/research/STACK.md — exists, >10 lines
74
- .workflow/research/ARCHITECTURE.md — exists, >10 lines
75
- .workflow/research/FEATURES.md — exists, >10 lines
76
- .workflow/research/PITFALLS.md — exists, >10 lines
77
- ```
78
-
79
- 2. If any document is missing or empty:
80
- - Log which agent failed
81
- - Re-spawn that specific agent (max 1 retry per agent)
82
-
83
- ---
84
-
85
- ## Step 4: Summary
86
-
87
- 1. Create `.workflow/research/SUMMARY.md`:
88
- - Read all 4 documents
89
- - Write a consolidated executive summary covering:
90
- - Tech stack overview (from STACK.md)
91
- - Architecture highlights (from ARCHITECTURE.md)
92
- - Feature inventory count (from FEATURES.md)
93
- - Top 3 concerns (from PITFALLS.md)
94
- - Recommendations for next steps
95
-
96
- ---
97
-
98
- ## Step 5: Commit and Route
99
-
100
- 1. If git repo: commit `.workflow/research/` with message `"chore: map codebase"`
101
-
102
- 2. Display summary:
103
- ```
104
- Codebase mapped successfully.
105
- Documents: 5 files in .workflow/research/
106
- ```
107
-
108
- 3. Route next steps based on project state:
109
- - No `.workflow/state.json` → "Run `/workflow:init` to initialize project"
110
- - Has state, no roadmap → "Run `/workflow:init` to create roadmap"
111
- - Has roadmap → "Run `/workflow:plan {next_phase}` to start planning"
1
+ # Workflow: map
2
+
3
+ Codebase scanning with parallel mapper agents.
4
+
5
+ ---
6
+
7
+ ## Step 1: Pre-check
8
+
9
+ 1. Check if `.workflow/research/` already exists with documents:
10
+ - If documents exist and are recent (< 7 days):
11
+ - Ask user: "Codebase map exists. Refresh or skip?"
12
+ - "refresh" → continue to Step 2 (overwrite)
13
+ - "skip" → exit with route suggestions
14
+ - If documents are stale or missing → continue to Step 2
15
+
16
+ 2. Create `.workflow/research/` directory if it does not exist.
17
+
18
+ ---
19
+
20
+ ## Step 2: Spawn Parallel Mapper Agents
21
+
22
+ Spawn 4 parallel `workflow-codebase-mapper` agents. Each agent scans the codebase independently with a specific focus and writes its output directly to `.workflow/research/`.
23
+
24
+ ```
25
+ Agent 1: tech focus
26
+ Scan: package.json, go.mod, requirements.txt, build files, dependencies
27
+ Output: .workflow/research/STACK.md
28
+ Content: languages, frameworks, build tools, key dependencies, versions
29
+
30
+ Agent 2: arch focus
31
+ Scan: directory structure, module boundaries, entry points, data flow
32
+ Output: .workflow/research/ARCHITECTURE.md
33
+ Content: architecture style, layer separation, module graph, key abstractions
34
+
35
+ Agent 3: features focus
36
+ Scan: routes, handlers, components, services, models
37
+ Output: .workflow/research/FEATURES.md
38
+ Content: feature inventory, feature-to-file mapping, completeness assessment
39
+
40
+ Agent 4: concerns focus
41
+ Scan: error handling, logging, tests, config, security, performance
42
+ Output: .workflow/research/PITFALLS.md
43
+ Content: tech debt, missing tests, security gaps, performance concerns, known issues
44
+ ```
45
+
46
+ If `$ARGUMENTS` (focus area) is provided, pass it to each agent as a focus filter: "Prioritize analysis of {focus_area} subsystem."
47
+
48
+ **Load project specs for mapper context:**
49
+ ```
50
+ specs_content = maestro spec load --category arch
51
+ ```
52
+
53
+ **Agent spawn pattern:**
54
+ ```
55
+ For each agent (1-4) in parallel:
56
+ Agent({
57
+ subagent_type: "workflow-codebase-mapper",
58
+ prompt: "Focus: {focus}. Scan the codebase and write {output_file}.
59
+ Project specs for reference: ${specs_content}
60
+ Write directly to the file. Return only a confirmation with line count.",
61
+ run_in_background: false
62
+ })
63
+ ```
64
+
65
+ ---
66
+
67
+ ## Step 3: Verification
68
+
69
+ After all 4 agents complete:
70
+
71
+ 1. Verify all documents exist with content:
72
+ ```
73
+ .workflow/research/STACK.md — exists, >10 lines
74
+ .workflow/research/ARCHITECTURE.md — exists, >10 lines
75
+ .workflow/research/FEATURES.md — exists, >10 lines
76
+ .workflow/research/PITFALLS.md — exists, >10 lines
77
+ ```
78
+
79
+ 2. If any document is missing or empty:
80
+ - Log which agent failed
81
+ - Re-spawn that specific agent (max 1 retry per agent)
82
+
83
+ ---
84
+
85
+ ## Step 4: Summary
86
+
87
+ 1. Create `.workflow/research/SUMMARY.md`:
88
+ - Read all 4 documents
89
+ - Write a consolidated executive summary covering:
90
+ - Tech stack overview (from STACK.md)
91
+ - Architecture highlights (from ARCHITECTURE.md)
92
+ - Feature inventory count (from FEATURES.md)
93
+ - Top 3 concerns (from PITFALLS.md)
94
+ - Recommendations for next steps
95
+
96
+ ---
97
+
98
+ ## Step 5: Commit and Route
99
+
100
+ 1. If git repo: commit `.workflow/research/` with message `"chore: map codebase"`
101
+
102
+ 2. Display summary:
103
+ ```
104
+ Codebase mapped successfully.
105
+ Documents: 5 files in .workflow/research/
106
+ ```
107
+
108
+ 3. Route next steps based on project state:
109
+ - No `.workflow/state.json` → "Run `/workflow:init` to initialize project"
110
+ - Has state, no roadmap → "Run `/workflow:init` to create roadmap"
111
+ - Has roadmap → "Run `/workflow:plan {next_phase}` to start planning"
@@ -1,176 +1,176 @@
1
- # Workflow: milestone-complete
2
-
3
- Archive completed milestone, move artifacts to history, and prepare for next.
4
-
5
- ---
6
-
7
- ## Step 1: Validation
8
-
9
- 1. Read `.workflow/state.json`:
10
- - Determine target milestone (from $ARGUMENTS or current_milestone)
11
- - If no milestone: ERROR E001
12
-
13
- 2. Check milestone audit status:
14
- - Read `.workflow/milestones/{milestone}/audit-report.md` if exists
15
- - If no audit report:
16
- - WARN: "No audit report found. Run `/maestro-milestone-audit` first."
17
- - Ask user: "Complete without audit?"
18
- - If NO → exit
19
- - If verdict is FAIL: ERROR E002
20
-
21
- 3. Verify all artifacts completed:
22
- ```
23
- milestone_artifacts = state.json.artifacts.filter(a => a.milestone == target_milestone)
24
- incomplete = milestone_artifacts.filter(a => a.status != "completed")
25
- IF incomplete.length > 0:
26
- ERROR E003: "Incomplete artifacts: {list ids and statuses}"
27
- ```
28
-
29
- ---
30
-
31
- ## Step 2: Create Milestone Archive
32
-
33
- 1. Create archive directory:
34
- ```
35
- mkdir -p .workflow/milestones/{milestone}/artifacts/
36
- ```
37
-
38
- 2. Snapshot roadmap:
39
- ```
40
- cp .workflow/roadmap.md .workflow/milestones/{milestone}/roadmap-snapshot.md
41
- ```
42
-
43
- 3. Archive scratch directories:
44
- ```
45
- FOR each artifact IN milestone_artifacts:
46
- IF directory exists at .workflow/{artifact.path}:
47
- cp -r .workflow/{artifact.path} .workflow/milestones/{milestone}/artifacts/{basename}/
48
- ```
49
-
50
- ---
51
-
52
- ## Step 2.5: Load Existing Learnings
53
-
54
- ```
55
- existing_learnings = maestro spec load --category general
56
- ```
57
-
58
- Check existing entries to avoid duplicates when appending in Step 3.
59
-
60
- ---
61
-
62
- ## Step 3: Extract Learnings
63
-
64
- 1. For each execute artifact, read `.summaries/` and `reflection-log.md` if exists:
65
- - Extract strategy adjustments
66
- - Extract patterns discovered
67
- - Extract pitfalls encountered
68
-
69
- 2. Aggregate learnings and append to `.workflow/specs/learnings.md`:
70
- ```
71
- For each strategy adjustment:
72
- ### [YYYY-MM-DD HH:mm] decision: {summary}
73
- {content}
74
- Milestone: {milestone} | Source: milestone-complete
75
-
76
- For each pattern:
77
- ### [YYYY-MM-DD HH:mm] pattern: {summary}
78
- {content}
79
- Milestone: {milestone} | Source: milestone-complete
80
-
81
- For each pitfall:
82
- ### [YYYY-MM-DD HH:mm] bug: {summary}
83
- {content}
84
- Milestone: {milestone} | Source: milestone-complete
85
- ```
86
-
87
- ---
88
-
89
- ## Step 4: Update State
90
-
91
- 1. Archive artifact entries to milestone_history:
92
- ```json
93
- {
94
- "milestone_history": [
95
- {
96
- "id": "{milestone}",
97
- "name": "{milestone_name}",
98
- "status": "completed",
99
- "completed_at": "{now}",
100
- "archive_path": "milestones/{milestone}/",
101
- "archived_artifacts": [ ...all milestone artifacts entries... ]
102
- }
103
- ]
104
- }
105
- ```
106
-
107
- 2. Clear artifacts array (remove milestone-affiliated entries):
108
- ```
109
- state.json.artifacts = state.json.artifacts.filter(a => a.milestone != target_milestone)
110
- ```
111
-
112
- 3. Advance to next milestone:
113
- ```
114
- next_milestone = state.json.milestones.find(m => m.status == "pending")
115
- IF next_milestone:
116
- state.json.current_milestone = next_milestone.id
117
- next_milestone.status = "active"
118
- ELSE:
119
- state.json.current_milestone = null
120
- state.json.status = "completed"
121
- ```
122
-
123
- 4. Write state.json (atomic)
124
-
125
- ---
126
-
127
- ## Step 5: Clean Scratch
128
-
129
- Remove archived scratch directories:
130
- ```
131
- FOR each artifact IN archived_artifacts:
132
- IF directory exists at .workflow/{artifact.path}:
133
- rm -rf .workflow/{artifact.path}
134
- ```
135
-
136
- ---
137
-
138
- ## Step 6: Generate Summary
139
-
140
- Write `.workflow/milestones/{milestone}/summary.md`:
141
- ```markdown
142
- # Milestone: {milestone} — {name}
143
-
144
- **Completed**: {date}
145
- **Artifacts**: {count} (analyze: {n}, plan: {n}, execute: {n}, verify: {n})
146
-
147
- ## Key Outcomes
148
- {extracted from audit report + learnings}
149
-
150
- ## Learnings
151
- {top patterns and pitfalls}
152
-
153
- ## Next Milestone
154
- {next milestone name and first phase, or "Project complete"}
155
- ```
156
-
157
- Update `.workflow/project.md` Context section with milestone summary.
158
-
159
- ---
160
-
161
- ## Step 7: Report
162
-
163
- ```
164
- === MILESTONE COMPLETE ===
165
- Milestone: {milestone} ({name})
166
- Artifacts: {count} archived
167
- Learnings: {learnings_count} extracted
168
-
169
- Archive: .workflow/milestones/{milestone}/
170
- Next: {next_milestone or "Project complete"}
171
-
172
- Next steps:
173
- /maestro-milestone-release -- Cut a release
174
- /maestro-analyze -- Start next milestone
175
- /manage-status -- View project state
176
- ```
1
+ # Workflow: milestone-complete
2
+
3
+ Archive completed milestone, move artifacts to history, and prepare for next.
4
+
5
+ ---
6
+
7
+ ## Step 1: Validation
8
+
9
+ 1. Read `.workflow/state.json`:
10
+ - Determine target milestone (from $ARGUMENTS or current_milestone)
11
+ - If no milestone: ERROR E001
12
+
13
+ 2. Check milestone audit status:
14
+ - Read `.workflow/milestones/{milestone}/audit-report.md` if exists
15
+ - If no audit report:
16
+ - WARN: "No audit report found. Run `/maestro-milestone-audit` first."
17
+ - Ask user: "Complete without audit?"
18
+ - If NO → exit
19
+ - If verdict is FAIL: ERROR E002
20
+
21
+ 3. Verify all artifacts completed:
22
+ ```
23
+ milestone_artifacts = state.json.artifacts.filter(a => a.milestone == target_milestone)
24
+ incomplete = milestone_artifacts.filter(a => a.status != "completed")
25
+ IF incomplete.length > 0:
26
+ ERROR E003: "Incomplete artifacts: {list ids and statuses}"
27
+ ```
28
+
29
+ ---
30
+
31
+ ## Step 2: Create Milestone Archive
32
+
33
+ 1. Create archive directory:
34
+ ```
35
+ mkdir -p .workflow/milestones/{milestone}/artifacts/
36
+ ```
37
+
38
+ 2. Snapshot roadmap:
39
+ ```
40
+ cp .workflow/roadmap.md .workflow/milestones/{milestone}/roadmap-snapshot.md
41
+ ```
42
+
43
+ 3. Archive scratch directories:
44
+ ```
45
+ FOR each artifact IN milestone_artifacts:
46
+ IF directory exists at .workflow/{artifact.path}:
47
+ cp -r .workflow/{artifact.path} .workflow/milestones/{milestone}/artifacts/{basename}/
48
+ ```
49
+
50
+ ---
51
+
52
+ ## Step 2.5: Load Existing Learnings
53
+
54
+ ```
55
+ existing_learnings = maestro spec load --category learning
56
+ ```
57
+
58
+ Check existing entries to avoid duplicates when appending in Step 3.
59
+
60
+ ---
61
+
62
+ ## Step 3: Extract Learnings
63
+
64
+ 1. For each execute artifact, read `.summaries/` and `reflection-log.md` if exists:
65
+ - Extract strategy adjustments
66
+ - Extract patterns discovered
67
+ - Extract pitfalls encountered
68
+
69
+ 2. Aggregate learnings and append to `.workflow/specs/learnings.md`:
70
+ ```
71
+ For each strategy adjustment:
72
+ ### [YYYY-MM-DD HH:mm] decision: {summary}
73
+ {content}
74
+ Milestone: {milestone} | Source: milestone-complete
75
+
76
+ For each pattern:
77
+ ### [YYYY-MM-DD HH:mm] pattern: {summary}
78
+ {content}
79
+ Milestone: {milestone} | Source: milestone-complete
80
+
81
+ For each pitfall:
82
+ ### [YYYY-MM-DD HH:mm] bug: {summary}
83
+ {content}
84
+ Milestone: {milestone} | Source: milestone-complete
85
+ ```
86
+
87
+ ---
88
+
89
+ ## Step 4: Update State
90
+
91
+ 1. Archive artifact entries to milestone_history:
92
+ ```json
93
+ {
94
+ "milestone_history": [
95
+ {
96
+ "id": "{milestone}",
97
+ "name": "{milestone_name}",
98
+ "status": "completed",
99
+ "completed_at": "{now}",
100
+ "archive_path": "milestones/{milestone}/",
101
+ "archived_artifacts": [ ...all milestone artifacts entries... ]
102
+ }
103
+ ]
104
+ }
105
+ ```
106
+
107
+ 2. Clear artifacts array (remove milestone-affiliated entries):
108
+ ```
109
+ state.json.artifacts = state.json.artifacts.filter(a => a.milestone != target_milestone)
110
+ ```
111
+
112
+ 3. Advance to next milestone:
113
+ ```
114
+ next_milestone = state.json.milestones.find(m => m.status == "pending")
115
+ IF next_milestone:
116
+ state.json.current_milestone = next_milestone.id
117
+ next_milestone.status = "active"
118
+ ELSE:
119
+ state.json.current_milestone = null
120
+ state.json.status = "completed"
121
+ ```
122
+
123
+ 4. Write state.json (atomic)
124
+
125
+ ---
126
+
127
+ ## Step 5: Clean Scratch
128
+
129
+ Remove archived scratch directories:
130
+ ```
131
+ FOR each artifact IN archived_artifacts:
132
+ IF directory exists at .workflow/{artifact.path}:
133
+ rm -rf .workflow/{artifact.path}
134
+ ```
135
+
136
+ ---
137
+
138
+ ## Step 6: Generate Summary
139
+
140
+ Write `.workflow/milestones/{milestone}/summary.md`:
141
+ ```markdown
142
+ # Milestone: {milestone} — {name}
143
+
144
+ **Completed**: {date}
145
+ **Artifacts**: {count} (analyze: {n}, plan: {n}, execute: {n}, verify: {n})
146
+
147
+ ## Key Outcomes
148
+ {extracted from audit report + learnings}
149
+
150
+ ## Learnings
151
+ {top patterns and pitfalls}
152
+
153
+ ## Next Milestone
154
+ {next milestone name and first phase, or "Project complete"}
155
+ ```
156
+
157
+ Update `.workflow/project.md` Context section with milestone summary.
158
+
159
+ ---
160
+
161
+ ## Step 7: Report
162
+
163
+ ```
164
+ === MILESTONE COMPLETE ===
165
+ Milestone: {milestone} ({name})
166
+ Artifacts: {count} archived
167
+ Learnings: {learnings_count} extracted
168
+
169
+ Archive: .workflow/milestones/{milestone}/
170
+ Next: {next_milestone or "Project complete"}
171
+
172
+ Next steps:
173
+ /maestro-milestone-release -- Cut a release
174
+ /maestro-analyze -- Start next milestone
175
+ /manage-status -- View project state
176
+ ```
package/workflows/plan.md CHANGED
@@ -100,7 +100,7 @@ mkdir -p {OUTPUT_DIR}/.task/
100
100
 
101
101
  3. **Load project specs**
102
102
  ```
103
- specs_content = maestro spec load --category planning
103
+ specs_content = maestro spec load --category arch
104
104
  ```
105
105
  Pass to planner agent as project constraints context.
106
106