maestro-flow 0.4.11 → 0.4.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/.agents/agents/cli-explore-agent.md +1 -3
  2. package/.agents/agents/cross-role-reviewer.md +173 -0
  3. package/.agents/agents/role-design-author.md +220 -0
  4. package/.agents/agents/ui-design-agent.md +1 -18
  5. package/.agents/agents/workflow-analyzer.md +1 -1
  6. package/.agents/agents/workflow-external-researcher.md +1 -1
  7. package/.agents/skills/learn-decompose/SKILL.md +6 -6
  8. package/.agents/skills/learn-follow/SKILL.md +4 -4
  9. package/.agents/skills/learn-investigate/SKILL.md +6 -6
  10. package/.agents/skills/learn-retro/SKILL.md +7 -7
  11. package/.agents/skills/learn-second-opinion/SKILL.md +4 -4
  12. package/.agents/skills/maestro/SKILL.md +61 -27
  13. package/.agents/skills/maestro-amend/SKILL.md +1 -0
  14. package/.agents/skills/maestro-analyze/SKILL.md +37 -4
  15. package/.agents/skills/maestro-blueprint/SKILL.md +133 -0
  16. package/.agents/skills/maestro-brainstorm/SKILL.md +120 -103
  17. package/.agents/skills/maestro-fork/SKILL.md +1 -1
  18. package/.agents/skills/maestro-guard/SKILL.md +3 -2
  19. package/.agents/skills/maestro-help/SKILL.md +48 -14
  20. package/.agents/skills/maestro-help/index/catalog.json +29 -11
  21. package/.agents/skills/maestro-help/phases/01-parse-intent.md +1 -1
  22. package/.agents/skills/maestro-help/phases/02-search-present.md +6 -4
  23. package/.agents/skills/maestro-help/phases/03-workflow-guide.md +60 -33
  24. package/.agents/skills/maestro-impeccable/SKILL.md +13 -11
  25. package/.agents/skills/maestro-init/SKILL.md +3 -3
  26. package/.agents/skills/maestro-milestone-audit/SKILL.md +5 -3
  27. package/.agents/skills/maestro-milestone-complete/SKILL.md +7 -5
  28. package/.agents/skills/maestro-milestone-release/SKILL.md +1 -1
  29. package/.agents/skills/maestro-plan/SKILL.md +16 -4
  30. package/.agents/skills/maestro-ralph/SKILL.md +297 -226
  31. package/.agents/skills/maestro-ralph-execute/SKILL.md +82 -67
  32. package/.agents/skills/maestro-roadmap/SKILL.md +43 -81
  33. package/.agents/skills/manage-harvest/SKILL.md +1 -0
  34. package/.agents/skills/manage-issue-discover/SKILL.md +1 -1
  35. package/.agents/skills/manage-knowhow/SKILL.md +1 -1
  36. package/.agents/skills/manage-learn/SKILL.md +4 -4
  37. package/.agents/skills/quality-auto-test/SKILL.md +6 -6
  38. package/.agents/skills/quality-refactor/SKILL.md +1 -1
  39. package/.agents/skills/quality-retrospective/SKILL.md +2 -2
  40. package/.agents/skills/security-audit/SKILL.md +24 -0
  41. package/.agents/skills/spec-remove/SKILL.md +6 -2
  42. package/.agents/skills/team-lifecycle-v4/roles/analyst/role.md +1 -1
  43. package/.agents/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +2 -2
  44. package/.agents/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
  45. package/.agents/skills/team-lifecycle-v4/templates/architecture.md +3 -3
  46. package/.agents/skills/team-lifecycle-v4/templates/epics.md +2 -2
  47. package/.agents/skills/team-lifecycle-v4/templates/product-brief.md +3 -3
  48. package/.agents/skills/team-lifecycle-v4/templates/requirements.md +2 -2
  49. package/.agy/agents/cli-explore-agent.md +1 -3
  50. package/.agy/agents/cross-role-reviewer.md +170 -0
  51. package/.agy/agents/role-design-author.md +217 -0
  52. package/.agy/agents/ui-design-agent.md +1 -18
  53. package/.agy/agents/workflow-analyzer.md +1 -1
  54. package/.agy/agents/workflow-external-researcher.md +1 -1
  55. package/.agy/skills/learn-decompose/SKILL.md +6 -6
  56. package/.agy/skills/learn-follow/SKILL.md +4 -4
  57. package/.agy/skills/learn-investigate/SKILL.md +6 -6
  58. package/.agy/skills/learn-retro/SKILL.md +7 -7
  59. package/.agy/skills/learn-second-opinion/SKILL.md +4 -4
  60. package/.agy/skills/maestro/SKILL.md +61 -27
  61. package/.agy/skills/maestro-amend/SKILL.md +1 -0
  62. package/.agy/skills/maestro-analyze/SKILL.md +37 -4
  63. package/.agy/skills/maestro-blueprint/SKILL.md +133 -0
  64. package/.agy/skills/maestro-brainstorm/SKILL.md +120 -103
  65. package/.agy/skills/maestro-fork/SKILL.md +1 -1
  66. package/.agy/skills/maestro-guard/SKILL.md +3 -2
  67. package/.agy/skills/maestro-help/SKILL.md +48 -14
  68. package/.agy/skills/maestro-help/index/catalog.json +29 -11
  69. package/.agy/skills/maestro-help/phases/01-parse-intent.md +1 -1
  70. package/.agy/skills/maestro-help/phases/02-search-present.md +6 -4
  71. package/.agy/skills/maestro-help/phases/03-workflow-guide.md +60 -33
  72. package/.agy/skills/maestro-impeccable/SKILL.md +13 -11
  73. package/.agy/skills/maestro-init/SKILL.md +3 -3
  74. package/.agy/skills/maestro-milestone-audit/SKILL.md +5 -3
  75. package/.agy/skills/maestro-milestone-complete/SKILL.md +7 -5
  76. package/.agy/skills/maestro-milestone-release/SKILL.md +1 -1
  77. package/.agy/skills/maestro-plan/SKILL.md +16 -4
  78. package/.agy/skills/maestro-ralph/SKILL.md +297 -226
  79. package/.agy/skills/maestro-ralph-execute/SKILL.md +82 -67
  80. package/.agy/skills/maestro-roadmap/SKILL.md +43 -81
  81. package/.agy/skills/manage-harvest/SKILL.md +1 -0
  82. package/.agy/skills/manage-issue-discover/SKILL.md +1 -1
  83. package/.agy/skills/manage-knowhow/SKILL.md +1 -1
  84. package/.agy/skills/manage-learn/SKILL.md +4 -4
  85. package/.agy/skills/quality-auto-test/SKILL.md +6 -6
  86. package/.agy/skills/quality-refactor/SKILL.md +1 -1
  87. package/.agy/skills/quality-retrospective/SKILL.md +2 -2
  88. package/.agy/skills/security-audit/SKILL.md +24 -0
  89. package/.agy/skills/spec-remove/SKILL.md +6 -2
  90. package/.agy/skills/team-lifecycle-v4/roles/analyst/role.md +1 -1
  91. package/.agy/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +2 -2
  92. package/.agy/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
  93. package/.agy/skills/team-lifecycle-v4/templates/architecture.md +3 -3
  94. package/.agy/skills/team-lifecycle-v4/templates/epics.md +2 -2
  95. package/.agy/skills/team-lifecycle-v4/templates/product-brief.md +3 -3
  96. package/.agy/skills/team-lifecycle-v4/templates/requirements.md +2 -2
  97. package/.claude/agents/cli-explore-agent.md +1 -3
  98. package/.claude/agents/cross-role-reviewer.md +171 -0
  99. package/.claude/agents/role-design-author.md +218 -0
  100. package/.claude/agents/ui-design-agent.md +1 -18
  101. package/.claude/agents/workflow-analyzer.md +1 -1
  102. package/.claude/agents/workflow-external-researcher.md +1 -1
  103. package/.claude/commands/learn-decompose.md +6 -6
  104. package/.claude/commands/learn-follow.md +4 -4
  105. package/.claude/commands/learn-investigate.md +6 -6
  106. package/.claude/commands/learn-retro.md +7 -7
  107. package/.claude/commands/learn-second-opinion.md +4 -4
  108. package/.claude/commands/maestro-amend.md +1 -0
  109. package/.claude/commands/maestro-analyze.md +37 -4
  110. package/.claude/commands/maestro-blueprint.md +131 -0
  111. package/.claude/commands/maestro-brainstorm.md +133 -116
  112. package/.claude/commands/maestro-fork.md +1 -1
  113. package/.claude/commands/maestro-guard.md +3 -2
  114. package/.claude/commands/maestro-impeccable.md +13 -11
  115. package/.claude/commands/maestro-init.md +3 -3
  116. package/.claude/commands/maestro-milestone-audit.md +5 -3
  117. package/.claude/commands/maestro-milestone-complete.md +7 -5
  118. package/.claude/commands/maestro-milestone-release.md +1 -1
  119. package/.claude/commands/maestro-plan.md +16 -4
  120. package/.claude/commands/maestro-ralph-execute.md +82 -67
  121. package/.claude/commands/maestro-ralph.md +297 -226
  122. package/.claude/commands/maestro-roadmap.md +43 -81
  123. package/.claude/commands/maestro.md +61 -27
  124. package/.claude/commands/manage-harvest.md +1 -0
  125. package/.claude/commands/manage-issue-discover.md +1 -1
  126. package/.claude/commands/manage-knowhow.md +1 -1
  127. package/.claude/commands/manage-learn.md +4 -4
  128. package/.claude/commands/quality-auto-test.md +6 -6
  129. package/.claude/commands/quality-refactor.md +1 -1
  130. package/.claude/commands/quality-retrospective.md +2 -2
  131. package/.claude/commands/security-audit.md +24 -0
  132. package/.claude/commands/spec-remove.md +6 -2
  133. package/.claude/skills/maestro-help/SKILL.md +48 -14
  134. package/.claude/skills/maestro-help/index/catalog.json +29 -11
  135. package/.claude/skills/maestro-help/phases/01-parse-intent.md +1 -1
  136. package/.claude/skills/maestro-help/phases/02-search-present.md +6 -4
  137. package/.claude/skills/maestro-help/phases/03-workflow-guide.md +60 -33
  138. package/.claude/skills/team-lifecycle-v4/roles/analyst/role.md +1 -1
  139. package/.claude/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +2 -2
  140. package/.claude/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
  141. package/.claude/skills/team-lifecycle-v4/templates/architecture.md +3 -3
  142. package/.claude/skills/team-lifecycle-v4/templates/epics.md +2 -2
  143. package/.claude/skills/team-lifecycle-v4/templates/product-brief.md +3 -3
  144. package/.claude/skills/team-lifecycle-v4/templates/requirements.md +2 -2
  145. package/.codex/skills/learn-decompose/SKILL.md +4 -4
  146. package/.codex/skills/learn-follow/SKILL.md +3 -3
  147. package/.codex/skills/learn-investigate/SKILL.md +3 -3
  148. package/.codex/skills/learn-retro/SKILL.md +3 -3
  149. package/.codex/skills/learn-second-opinion/SKILL.md +3 -3
  150. package/.codex/skills/maestro/SKILL.md +75 -38
  151. package/.codex/skills/maestro-amend/SKILL.md +157 -0
  152. package/.codex/skills/maestro-analyze/SKILL.md +72 -23
  153. package/.codex/skills/maestro-blueprint/SKILL.md +123 -0
  154. package/.codex/skills/maestro-brainstorm/SKILL.md +277 -46
  155. package/.codex/skills/maestro-composer/SKILL.md +1 -1
  156. package/.codex/skills/maestro-execute/SKILL.md +13 -4
  157. package/.codex/skills/maestro-fork/SKILL.md +2 -0
  158. package/.codex/skills/maestro-guard/SKILL.md +3 -2
  159. package/.codex/skills/maestro-help/SKILL.md +28 -18
  160. package/.codex/skills/maestro-help/catalog.json +29 -11
  161. package/.codex/skills/maestro-impeccable/SKILL.md +13 -11
  162. package/.codex/skills/maestro-init/SKILL.md +7 -7
  163. package/.codex/skills/maestro-plan/SKILL.md +27 -9
  164. package/.codex/skills/maestro-ralph/SKILL.md +740 -601
  165. package/.codex/skills/maestro-roadmap/SKILL.md +56 -72
  166. package/.codex/skills/maestro-update/SKILL.md +169 -0
  167. package/.codex/skills/maestro-verify/SKILL.md +11 -2
  168. package/.codex/skills/manage-codebase-rebuild/SKILL.md +9 -5
  169. package/.codex/skills/manage-harvest/SKILL.md +11 -3
  170. package/.codex/skills/manage-issue-discover/SKILL.md +1 -1
  171. package/.codex/skills/manage-knowhow/SKILL.md +1 -1
  172. package/.codex/skills/manage-learn/SKILL.md +3 -3
  173. package/.codex/skills/quality-refactor/SKILL.md +2 -2
  174. package/.codex/skills/quality-retrospective/SKILL.md +12 -5
  175. package/.codex/skills/security-audit/SKILL.md +24 -0
  176. package/.codex/skills/spec-remove/SKILL.md +8 -2
  177. package/.codex/skills/team-lifecycle-v4/roles/analyst/role.md +2 -2
  178. package/.codex/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +2 -2
  179. package/.codex/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
  180. package/.codex/skills/team-lifecycle-v4/templates/architecture.md +3 -3
  181. package/.codex/skills/team-lifecycle-v4/templates/epics.md +2 -2
  182. package/.codex/skills/team-lifecycle-v4/templates/product-brief.md +3 -3
  183. package/.codex/skills/team-lifecycle-v4/templates/requirements.md +2 -2
  184. package/README.md +8 -8
  185. package/README.zh-CN.md +8 -8
  186. package/dashboard/dist-server/dashboard/src/server/routes/settings.js +3 -3
  187. package/dashboard/dist-server/dashboard/src/server/routes/settings.js.map +1 -1
  188. package/dist/src/agents/cli-agent-runner.d.ts.map +1 -1
  189. package/dist/src/agents/cli-agent-runner.js +13 -7
  190. package/dist/src/agents/cli-agent-runner.js.map +1 -1
  191. package/dist/src/commands/spec.d.ts.map +1 -1
  192. package/dist/src/commands/spec.js +8 -1
  193. package/dist/src/commands/spec.js.map +1 -1
  194. package/dist/src/tools/spec-init.d.ts +16 -2
  195. package/dist/src/tools/spec-init.d.ts.map +1 -1
  196. package/dist/src/tools/spec-init.js +58 -187
  197. package/dist/src/tools/spec-init.js.map +1 -1
  198. package/dist/src/tools/spec-loader.d.ts.map +1 -1
  199. package/dist/src/tools/spec-loader.js +16 -16
  200. package/dist/src/tools/spec-loader.js.map +1 -1
  201. package/dist/src/tools/spec-seeds.d.ts +33 -0
  202. package/dist/src/tools/spec-seeds.d.ts.map +1 -0
  203. package/dist/src/tools/spec-seeds.js +200 -0
  204. package/dist/src/tools/spec-seeds.js.map +1 -0
  205. package/dist/src/tools/spec-writer.d.ts.map +1 -1
  206. package/dist/src/tools/spec-writer.js +7 -9
  207. package/dist/src/tools/spec-writer.js.map +1 -1
  208. package/dist/src/utils/update-notices.js +12 -0
  209. package/dist/src/utils/update-notices.js.map +1 -1
  210. package/package.json +1 -1
  211. package/templates/business-test-report.json +1 -1
  212. package/templates/index.json +1 -1
  213. package/templates/roadmap.md +15 -9
  214. package/templates/state.json +18 -17
  215. package/workflows/agy-instructions.md +2 -0
  216. package/workflows/analyze.md +79 -11
  217. package/workflows/auto-test.md +12 -7
  218. package/workflows/blueprint.md +431 -0
  219. package/workflows/brainstorm.md +617 -496
  220. package/workflows/business-test.md +7 -7
  221. package/workflows/claude-instructions.md +2 -0
  222. package/workflows/codebase-rebuild.md +4 -4
  223. package/workflows/codex-instructions.md +16 -83
  224. package/workflows/debug.md +1 -1
  225. package/workflows/harvest.md +184 -10
  226. package/workflows/impeccable.md +2 -0
  227. package/workflows/init.md +9 -8
  228. package/workflows/issue-analyze.md +14 -100
  229. package/workflows/issue-discover.md +2 -3
  230. package/workflows/issue-execute.md +1 -1
  231. package/workflows/issue-gaps-analyze.md +2 -0
  232. package/workflows/learn.md +1 -1
  233. package/workflows/maestro-chain-execute.md +10 -228
  234. package/workflows/maestro.md +2 -1
  235. package/workflows/milestone-audit.md +12 -4
  236. package/workflows/milestone-complete.md +14 -9
  237. package/workflows/milestone-release.md +82 -0
  238. package/workflows/plan.md +91 -25
  239. package/workflows/retrospective.md +1 -1
  240. package/workflows/roadmap-common.md +1 -1
  241. package/workflows/roadmap.md +14 -4
  242. package/workflows/spec-generate.md +26 -13
  243. package/workflows/specs-add.md +6 -1
  244. package/workflows/specs-load.md +6 -1
  245. package/workflows/specs-setup.md +6 -1
  246. package/workflows/sync.md +13 -0
  247. package/workflows/tools-spec.md +4 -0
  248. package/workflows/ui-design.md +5 -5
  249. package/workflows/ui-style.md +1 -1
  250. package/workflows/wiki-manage.md +2 -0
  251. package/.agents/agents/conceptual-planning-agent.md +0 -247
  252. package/.agy/agents/conceptual-planning-agent.md +0 -244
  253. package/.claude/agents/conceptual-planning-agent.md +0 -245
@@ -31,19 +31,24 @@ Also read `session.auto_mode` from status.json — if true, treat as `-y`.
31
31
 
32
32
  | Type | Execution | Flow after |
33
33
  |------|-----------|------------|
34
- | decision (ralph-only) | `Skill("maestro-ralph")` — ralph re-evaluates | Execution ends here |
35
- | internal | `Skill({ skill, args })` synchronous | Self-invoke next |
36
- | external | `maestro delegate --to claude --mode write` | STOP → callback self-invoke |
37
-
38
- HARD RULE: External nodes ALWAYS append `-y` to skill args inside the prompt — delegate sessions are non-interactive.
39
- HARD RULE: External nodes ALWAYS delegate to `claude` only Claude Code can execute slash-command skills.
34
+ | decision (ralph-only) | `Skill("maestro-ralph")` | Execution ends here |
35
+ | internal (default) | `view_file({file_path: step.command_path})` + 内联解释执行 | Self-invoke next |
36
+ | external (opt-in) | `maestro delegate --to claude --mode write` (STOP → callback) | Self-invoke next |
37
+
38
+ HARD RULES:
39
+ - internal step:优先通过 `view_file({command_path})` 把命令 .md 加载进当前会话,再按内容执行;不要对 internal step 使用 `Skill({skill})` 调用
40
+ - decision 节点例外:A_EXEC_DECISION 必须使用 `view_file(AbsolutePath="<agy-skills-dir>/maestro-ralph/SKILL.md") + execute inline` 进行 handoff(这是 decision 节点的唯一允许用法)
41
+ - `command_path` 由 ralph 在 A_BUILD_STEPS 写入 status.json;ralph-execute 不再自行解析(缺失 → 报错 E002)
42
+ - external 仅在 `step.type == "external"` 显式声明时使用,并 always append `-y` 到 prompt args
43
+ - 每个 step 必须产出 `--- COMPLETION STATUS ---` 块,否则视为 NEEDS_RETRY
40
44
  </context>
41
45
 
42
46
  <invariants>
43
- 1. **Every step via Skill() or delegate** — never simulate or inline a skill's work
44
- 2. **External claude only** — `session.cli_tool` is for analysis delegates, NOT execution
45
- 3. **Self-invocation chain** — continues until all steps complete or session paused
46
- 4. **Status.json updated after every change** resume-safe
47
+ 1. **Internal = Read + inline** — 通过 Read 读取 `step.command_path`,按其指令在当前 session 内执行
48
+ 2. **External = explicit only** — `step.type == "external"` 才走 delegate;默认绝不发起
49
+ 3. **必须显式 completion confirmation** — 每个 step 完成时需有 `STATUS: DONE` 且写入 `step.completion_confirmed = true`
50
+ 4. **Self-invocation chain** 持续直到全部 `completion_confirmed` paused
51
+ 5. **status.json 每步骤后写盘** — resume-safe
47
52
  </invariants>
48
53
 
49
54
  <state_machine>
@@ -52,8 +57,8 @@ HARD RULE: External nodes ALWAYS delegate to `claude` — only Claude Code can e
52
57
  S_LOCATE — 定位 session + 找下一个 pending step PERSIST: —
53
58
  S_RESOLVE_ARGS — 解析占位符 + 丰富参数 PERSIST: step.args (enriched)
54
59
  S_EXECUTE — 执行当前 step PERSIST: step.status = "running", session.current_step
55
- S_POST_EXEC — 标记完成 + 传播上下文 PERSIST: step.status, session.context
56
- S_HANDLE_FAIL — 处理失败(重试/跳过/中止) PERSIST: step.status, session.status
60
+ S_POST_EXEC — 标记完成 + 传播上下文 PERSIST: step.completion_*, step.status, session.context
61
+ S_HANDLE_FAIL — 处理失败 PERSIST: step.status, session.status
57
62
  S_COMPLETE — 所有 step 完成 PERSIST: session.status = "completed"
58
63
  S_FALLBACK — 无 session 可执行 PERSIST: —
59
64
  </states>
@@ -125,9 +130,9 @@ S_FALLBACK:
125
130
  | maestro-brainstorm | topic | `"{intent}"` |
126
131
  | maestro-roadmap | description | `"{intent}"` |
127
132
  | maestro-analyze | phase or topic | `{phase}` or `"{intent}"` |
128
- | maestro-plan | phase or --dir | `{phase}`, or `--dir {scratch_dir}` if standalone |
129
- | maestro-execute | phase or --dir | `{phase}`, or `--dir {scratch_dir}` if standalone |
130
- | quality-debug | gap context | Read previous step's error/gap from artifact dir |
133
+ | maestro-plan | phase or --dir | `{phase}`, or `--dir {scratch_dir}` |
134
+ | maestro-execute | phase or --dir | `{phase}`, or `--dir {scratch_dir}` |
135
+ | quality-debug | gap context | Read previous step's error/gap |
131
136
  | quality-* | phase | `{phase}` |
132
137
 
133
138
  **Artifact dir resolution for --dir:**
@@ -137,91 +142,97 @@ plan commands: latest type=="analyze" → --dir .workflow/scratch/{path}
137
142
  execute commands: latest type=="plan" → --dir .workflow/scratch/{path}
138
143
  ```
139
144
 
140
- Write enriched args back to status.json (resume-safe).
145
+ Write enriched args back to status.json.
141
146
 
142
147
  ### A_EXEC_DECISION
143
148
 
144
149
  1. Mark step running, write status.json
145
- 2. Display: `[{index}/{total}] ◆ {skill} [decision] Retry: {retry}/{max}`
146
- 3. `view_file(AbsolutePath="<agy-skills-dir>/maestro-ralph/SKILL.md") + execute inline` — ralph detects running decision → evaluates → handoff
147
- 4. **This execution ends here** — ralph handles the handoff back
150
+ 2. Display: `[{index}/{total}] ◆ {decision} Retry: {retry}/{max}`
151
+ 3. `view_file(AbsolutePath="<agy-skills-dir>/maestro-ralph/SKILL.md") + execute inline` — ralph 评估 + handoff
152
+ 4. 执行在此结束
148
153
 
149
154
  ### A_EXEC_INTERNAL
150
155
 
151
- 1. Mark step running, write status.json
152
- 2. Display: `[{index}/{total}] {skill} [internal]`
153
- 3. Resolve auto flag: `auto ? (flag_map[skill] || "") : ""`
154
- 4. `Skill({ skill: next.skill, args: effective_args })`
155
- 5. Return success/failure
156
+ 1. Validate `step.command_path != null`;否则 raise E002,pause session
157
+ 2. Mark step running, write status.json
158
+ 3. Display: `[{index}/{total}] {step.skill} [internal · {step.command_scope}]`
159
+ 4. `view_file({ file_path: step.command_path })` — 把命令 .md 全文加载进当前会话(prefer Read over Skill for internal steps;decision 节点另行使用 Skill 见 A_EXEC_DECISION)
160
+ 5. 解析 frontmatter `argument-hint` 与 `<purpose>/<state_machine>/<actions>` 等指令块
161
+ 6. 计算 `effective_args`:`step.args` + auto flag(`auto ? (flag_map[step.skill] || "") : ""`)
162
+ 7. 按读到的指令在本会话中**内联执行**:调用允许的工具完成命令所规定的工作,不再发起 delegate
163
+ 8. 执行结束:要求最后一段必须包含 `--- COMPLETION STATUS ---` 块(见 A_MARK_COMPLETE)
164
+ 9. Return success / failure
156
165
 
157
- **Auto flag map:** all lifecycle skills → `-y`; `quality-test` → `-y --auto-fix`; unlisted internal no flag
166
+ **Auto flag map**: 所有 lifecycle skill → `-y`; `quality-test` → `-y --auto-fix`; 未列出 flag
158
167
 
159
168
  ### A_EXEC_EXTERNAL
160
169
 
170
+ 仅当 `step.type == "external"` 时使用(默认链路不产生)。
171
+
161
172
  1. Mark step running, write status.json
162
- 2. Display: `[{index}/{total}] ⚡ {skill} [external]`
163
- 3. Always append `-y` to skill args (delegates are non-interactive): `flag = flag_map[skill] || "-y"`
173
+ 2. Display: `[{index}/{total}] ⚡ {step.skill} [external]`
174
+ 3. 始终在 prompt 内追加 `-y`(delegate session 非交互):`flag = flag_map[step.skill] || "-y"`
164
175
  4. Execute:
165
176
  ```
166
177
  run_command({
167
- command: `maestro delegate "/${skill} ${effective_args}" --to claude --mode write`,
178
+ command: `maestro delegate "/${step.skill} ${effective_args}" --to claude --mode write`,
168
179
  run_in_background: true, timeout: 600000
169
180
  })
170
181
  STOP — wait for callback.
171
182
  ```
172
- 5. On callback: retrieve output → S_POST_EXEC or S_HANDLE_FAIL
183
+ 5. On callback: 把回调输出视为 step 的执行结果 → S_POST_EXEC / S_HANDLE_FAIL
173
184
 
174
185
  ### A_MARK_COMPLETE
175
186
 
176
- 1. `step.status = "completed"`, `step.completed_at = now`
177
- 2. Scan output for context signals:
178
- - `PHASE: N` → session.phase
179
- - `scratch_dir: path` → context.scratch_dir
180
- - `SPEC-xxx` → context.spec_session_id
181
- 3. Scan output for `--- COMPLETION STATUS ---` block. If found, parse and map:
182
- - `STATUS: DONE``step.status = "completed"`
183
- - `STATUS: DONE_WITH_CONCERNS` → `step.status = "completed"`, `step.concerns = CONCERNS value`
184
- - `STATUS: NEEDS_RETRY` → trigger retry: set `step.status = "pending"`, `step.retried = true` → S_HANDLE_FAIL
185
- - `STATUS: BLOCKED` → `session.status = "paused"`, display blocker reason from CONCERNS
186
- - `STATUS: NEEDS_CONTEXT` → `session.status = "paused"`, display context gap from CONCERNS
187
- - If no `--- COMPLETION STATUS ---` block found → fall back to existing heuristic (backward compatible)
188
- 4. Write status.json
189
- 5. Display: `[{index}/{total}] ✓ {skill} completed`
187
+ 1. step 输出中提取 `--- COMPLETION STATUS ---` 块(required)
188
+ 2. 解析并写入:
189
+ - `STATUS: DONE` → `step.status = "completed"`, `step.completion_confirmed = true`, `step.completion_status = "DONE"`
190
+ - `STATUS: DONE_WITH_CONCERNS` → `step.status = "completed"`, `step.completion_confirmed = true`, `step.completion_status = "DONE_WITH_CONCERNS"`, `step.concerns = <CONCERNS>`
191
+ - `STATUS: NEEDS_RETRY` → `step.status = "pending"`, `step.retried = true`, `step.completion_confirmed = false`, → S_HANDLE_FAIL
192
+ - `STATUS: BLOCKED` / `NEEDS_CONTEXT` `session.status = "paused"`, `step.completion_status` 记录原因, `step.completion_confirmed = false`
193
+ - 缺失 `--- COMPLETION STATUS ---` 视为 NEEDS_RETRY(不允许 heuristic fallback)
194
+ 3. 写入 `step.completion_evidence`(artifact 路径 / 关键输出节选)
195
+ 4. 扫描输出抓取 context 信号:`PHASE: N` → session.phase;`scratch_dir: path` context.scratch_dir;`BLP-xxx` → context.blueprint_session_id
196
+ 5. `step.completed_at = now`,写 status.json
197
+ 6. **Sub-goal evidence 校验**(task_decomposition 存在时):若 `step.goal_ref` 对应子目标的 `lifecycle` 覆盖当前 stage 且 evidence artifact 已生成 暂不直接置 done,仍交由 post-goal-audit 决策;仅在 step 显式确认时更新 `task_decomposition[*].completion_confirmed = false` 占位(保持 pending)
198
+ 7. Display: `[{index}/{total}] {step.skill} completed (confirmed)`
190
199
 
191
200
  ### A_RETRY
192
201
 
193
- 1. `step.retried = true`, `step.status = "pending"`, `step.error = null`
202
+ 1. `step.retried = true`, `step.status = "pending"`, `step.error = null`, `step.completion_confirmed = false`
194
203
  2. Write status.json
195
204
 
196
205
  ### A_SKIP_STEP
197
206
 
198
- 1. `step.status = "skipped"`
207
+ 1. `step.status = "skipped"`, `step.completion_confirmed = false`
199
208
  2. Write status.json
200
209
 
201
210
  ### A_PAUSE_SESSION
202
211
 
203
212
  1. `session.status = "paused"`, write status.json
204
- 2. Display: `[{index}/{total}] ✗ {skill} 失败,会话已暂停。/maestro-ralph continue 恢复。`
213
+ 2. Display: `[{index}/{total}] ✗ {step.skill} 失败,会话已暂停。/maestro-ralph continue 恢复。`
205
214
 
206
215
  ### A_COMPLETE_SESSION
207
216
 
208
- 1. `session.status = "completed"`, write status.json
209
- 2. Display completion report:
217
+ 1. 校验:所有 step `completion_confirmed == true`(除 skipped);task_decomposition 存在时校验 `task_decomposition_all_done == true`
218
+ 2. 任一校验失败 不标 completed,回 S_LOCATE 或 pause
219
+ 3. `session.status = "completed"`, write status.json
220
+ 4. Display completion report:
210
221
  ```
211
222
  ============================================================
212
223
  SESSION COMPLETE
213
224
  ============================================================
214
225
  Session: {session_id} [{source}]
215
- Steps: {completed}/{total}
226
+ Steps: {completed}/{total} confirmed: {confirmed}/{completed}
216
227
 
217
- [✓] 0. maestro-plan 1 [internal]
218
- [✓] 1.maestro-execute 1 [external]
219
- [✓] 2. maestro-verify 1 [internal]
228
+ [✓] 0. maestro-plan 1 [internal · global]
229
+ [✓] 1. maestro-execute 1 [internal · project]
230
+ [✓] 2. maestro-verify 1 [internal · global]
220
231
  [✓] 3. ◆ post-verify [decision]
221
232
  ...
222
233
  ============================================================
223
234
  ```
224
- Icons: `✓` completed, `—` skipped, `✗` failed, `◆` decision, `⚡` external
235
+ Icons: `✓` confirmed, `—` skipped, `✗` failed, `◆` decision, `⚡` external
225
236
 
226
237
  </actions>
227
238
 
@@ -234,22 +245,26 @@ Write enriched args back to status.json (resume-safe).
234
245
  | Code | Severity | Description | Recovery |
235
246
  |------|----------|-------------|----------|
236
247
  | E001 | error | No running session found | Suggest /maestro or /maestro-ralph |
237
- | E002 | error | status.json corrupt | Show path, suggest manual check |
238
- | E003 | error | Delegate failed + user abort | Mark paused, suggest resume |
239
- | W001 | warning | Step completed with warnings | Log and continue |
248
+ | E002 | error | step.command_path missing for internal step | Pause, ask ralph to rebuild step |
249
+ | E003 | error | status.json corrupt | Show path, manual check |
250
+ | E004 | error | Delegate failed + user abort | Mark paused, suggest resume |
251
+ | E005 | error | COMPLETION STATUS block missing | Trigger NEEDS_RETRY |
252
+ | W001 | warning | Step completed with concerns | Log and continue |
240
253
 
241
254
  ### Success Criteria
242
255
 
243
- - [ ] Session discovery covers both maestro-* and ralph-*
244
- - [ ] `-y` parsed from args OR inherited from session.auto_mode
245
- - [ ] Placeholders resolved from session context
246
- - [ ] Per-skill enrichment provides correct args
247
- - [ ] Decision nodes hand off to maestro-ralph via Skill()
248
- - [ ] Internal nodes execute via Skill() with auto flag
249
- - [ ] External nodes delegate to claude with `-y` in prompt args, run_in_background + STOP
250
- - [ ] Context signals propagate to status.json
251
- - [ ] Auto mode: retry once then pause
252
- - [ ] Interactive: ask_question retry/skip/abort
253
- - [ ] Self-invocation continues until complete or paused
256
+ - [ ] Session discovery covers maestro-* and ralph-*
257
+ - [ ] `-y` parsed from args session.auto_mode
258
+ - [ ] Placeholders resolved;per-skill enrichment 正确
259
+ - [ ] Decision 节点 Skill("maestro-ralph") handoff
260
+ - [ ] Internal 节点通过 view_file({step.command_path}) 内联执行,禁止 Skill()
261
+ - [ ] External 仅在显式声明时走 delegate,prompt 必带 `-y`
262
+ - [ ] 每个 step 强制 `--- COMPLETION STATUS ---`;缺失 NEEDS_RETRY
263
+ - [ ] step.completion_confirmed = true 仅在 STATUS: DONE/DONE_WITH_CONCERNS 时设置
264
+ - [ ] step.completion_evidence 记录 artifact path / 输出节选
265
+ - [ ] Context signals 传播 status.json
266
+ - [ ] Auto mode: retry 一次后 pause;interactive 提供 retry/skip/abort
267
+ - [ ] 自调用持续到全部 completion_confirmed 或 paused
268
+ - [ ] A_COMPLETE_SESSION 校验全部 step confirmed + sub-goal all_done
254
269
 
255
270
  </appendix>
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: maestro-roadmap
3
- description: Generate roadmap from requirements (light or full mode)
4
- argument-hint: <requirement> [--mode light|full] [-y] [-c] [-m progressive|direct|auto] [--from-brainstorm SESSION-ID] [--revise [instructions]] [--review]
3
+ description: Generate roadmap with milestone/phase structure from requirements or upstream context
4
+ argument-hint: <requirement> [-y] [-c] [-m progressive|direct|auto] [--from <source>] [--revise [instructions]] [--review]
5
5
  allowed-tools:
6
6
  - ask_question
7
7
  - define_subagent
@@ -15,16 +15,14 @@ allowed-tools:
15
15
  - write_to_file
16
16
  ---
17
17
  <purpose>
18
- Unified roadmap generation with two execution paths:
18
+ Generate a milestone/phase roadmap from requirements or upstream context. Produces `.workflow/roadmap.md` with Milestone > Phase hierarchy ready for maestro-analyze and maestro-plan.
19
19
 
20
- - **Light mode** (default): Directly from requirements to roadmap. No specification documents.
21
- - **Full mode** (`--mode full`): 7-phase document chain (Product Brief PRD → Architecture → Epics → Roadmap) producing a complete specification package in `.workflow/.spec/` plus `.workflow/roadmap.md`.
22
-
23
- Additional operation modes (light mode only):
20
+ Operation modes:
21
+ - **Create** (default): Build roadmap from requirements or upstream context
24
22
  - **Revise** (`--revise`): Modify existing roadmap while preserving completed phase progress
25
23
  - **Review** (`--review`): Health assessment of current roadmap (read-only)
26
24
 
27
- Both modes produce `.workflow/roadmap.md` with milestone/phase structure ready for maestro-plan.
25
+ For formal specification documents (Product Brief, PRD, Architecture, Epics), use `/maestro-blueprint` instead.
28
26
  </purpose>
29
27
 
30
28
  <required_reading>
@@ -33,73 +31,68 @@ Both modes produce `.workflow/roadmap.md` with milestone/phase structure ready f
33
31
  </required_reading>
34
32
 
35
33
  <deferred_reading>
36
- - [roadmap.md](~/.maestro/workflows/roadmap.md) — read when mode is light (default)
37
- - [spec-generate.md](~/.maestro/workflows/spec-generate.md) — read when mode is full
38
- - [spec-config.json](~/.maestro/templates/spec-config.json) — read when initializing spec configuration (full mode)
34
+ - [roadmap.md](~/.maestro/workflows/roadmap.md) — read for roadmap generation workflow
39
35
  </deferred_reading>
40
36
 
41
37
  <context>
42
- $ARGUMENTS -- requirement text, @file reference, or brainstorm session reference.
38
+ $ARGUMENTS -- requirement text, @file reference, or upstream context source.
43
39
 
44
- **Flags (shared):**
45
- - `--mode light|full`: Execution path (default: light)
40
+ **Flags:**
46
41
  - `-y` / `--yes`: Auto mode — skip interactive questions, use recommended defaults
47
42
  - `-c` / `--continue`: Resume from last checkpoint
48
- - `--from-brainstorm SESSION-ID`: Import guidance-specification.md from a brainstorm session as seed
49
-
50
- **Flags (light mode only):**
51
43
  - `-m progressive|direct|auto`: Decomposition strategy (default: auto)
44
+ - `--from <source>`: Load upstream context package (brainstorm:ID, blueprint:BLP-xxx, analyze:ANL-xxx, @file, or path). Consumes context-package.json
45
+ - `--from-brainstorm SESSION-ID`: (backward compat alias for `--from brainstorm:ID`)
52
46
  - `--revise [instructions]`: Revise existing roadmap. If instructions provided, apply directly. If omitted, ask user. Preserves completed phase progress.
53
47
  - `--review`: Roadmap health assessment (read-only)
54
48
 
55
49
  **Input types:**
56
50
  - Direct text: `"Implement user authentication system with OAuth and 2FA"`
57
51
  - File reference: `@requirements.md`
58
- - Brainstorm import: `--from-brainstorm WFS-xxx`
52
+ - Context import: `--from brainstorm:BRN-001` or `--from analyze:ANL-xxx` or `--from blueprint:BLP-xxx`
59
53
  - No args + `--revise` / `--review`: Operate on existing `.workflow/roadmap.md`
60
54
 
61
55
  **Pipeline position:**
62
56
  ```
63
- maestro-brainstorm (optional upstream)
64
- guidance-specification.md
65
- maestro-init (project setup)
66
- project.md, state.json, config.json
67
- maestro-roadmap [--mode light] → roadmap.md directly
68
- maestro-roadmap --mode full → spec package + roadmap.md
57
+ maestro-brainstorm ─┐
58
+ maestro-blueprint ─┤ (optional upstream, parallel)
59
+ maestro-analyze ─┘ context-package.json
60
+
61
+ maestro-roadmap → .workflow/roadmap.md (Milestone > Phase hierarchy)
69
62
 
70
- maestro-plan → maestro-execute → maestro-verify
63
+ maestro-analyze {phase} → maestro-plan → maestro-execute → maestro-verify
71
64
  ```
72
65
 
73
- **Note (full mode):** `maestro-init` MUST run before `--mode full`. It creates the `.workflow/` directory and project context.
74
-
75
66
  ### Pre-load specs
76
67
  1. **Architecture specs**: Run `maestro spec load --category arch` to load architecture constraints. Use as context for phase decomposition — ensures roadmap respects documented decisions and boundaries.
77
68
  2. Optional — proceed without if unavailable.
78
69
  </context>
79
70
 
80
- <execution>
71
+ <interview_protocol>
72
+ Interview the user relentlessly until shared understanding is reached. Active only in interactive mode; skip when `-y/--yes`, `--revise`, `--review`, `-c/--continue`, or input is already specific (clear requirement + mode).
81
73
 
82
- ### Mode routing
74
+ - One decision per turn via ask_question with 2–4 options + a (Recommended) default. The user controls termination — keep interviewing until convergence; they can interrupt naturally or via `Other` at any time.
75
+ - Search-first when uncertain: before asking, resolve via `state.json`, existing `roadmap.md`, `project.md`, `maestro spec load`, `maestro wiki search`, Glob/Grep/Read, or — for open-ended multi-file scans — spawn `invoke_subagent([{ TypeName: "<TypeName>", Role: "<Role>", Prompt: "<Prompt>", Workspace: "inherit" }])` / `maestro delegate ... --role explore`. Never ask what code or memory can verify; never bounce your own ambiguity back to the user — search first, then ask only what truly needs human judgment.
76
+ - Writeback cadence: each settled decision is immediately appended/updated in the `Roadmap Decisions` section at the top of `.workflow/roadmap.md` (create the section if absent). Do NOT batch writeback to the end — partial decisions must already be on disk before the next question.
77
+ - 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.
78
+ - Scope guard: only decide the shape of the roadmap. Do not pre-resolve intra-phase task breakdown — that belongs to `plan`.
83
79
 
84
- 1. Read `@~/.maestro/workflows/roadmap-common.md` (always shared logic)
85
- 2. Parse `--mode` flag:
86
- - `light` or omitted → read `@~/.maestro/workflows/roadmap.md`, follow its process
87
- - `full` → read `@~/.maestro/workflows/spec-generate.md`, follow its process
88
- 3. If `--revise` or `--review` present → force light mode (these are light-mode-only operations)
80
+ Decision points: scope (MVP / complete / phased) → strategy (progressive / direct / auto) → milestone boundaries → phase dependencies and order.
89
81
 
90
- ### Light mode (default)
82
+ Exit: on consensus or explicit user signal to proceed, finalize the `Roadmap Decisions` section (rows already populated incrementally). Schema:
83
+ `| # | Decision | Choice | Source (user / code / default) |`
84
+ </interview_protocol>
91
85
 
92
- Follow `~/.maestro/workflows/roadmap.md` completely.
86
+ <execution>
87
+
88
+ 1. Read `@~/.maestro/workflows/roadmap-common.md` (always — shared logic)
89
+ 2. Read `@~/.maestro/workflows/roadmap.md`, follow its process
93
90
 
94
91
  Sub-modes:
95
- - **Create** (default): Build roadmap from requirements
92
+ - **Create** (default): Build roadmap from requirements or upstream context
96
93
  - **Revise** (`--revise`): Follow workflow roadmap.md "Mode: Revise" section
97
94
  - **Review** (`--review`): Follow workflow roadmap.md "Mode: Review" section
98
95
 
99
- ### Full mode (`--mode full`)
100
-
101
- Follow `~/.maestro/workflows/spec-generate.md` completely.
102
-
103
96
  ### Next-step routing on completion
104
97
 
105
98
  | Condition | Suggestion |
@@ -108,63 +101,32 @@ Follow `~/.maestro/workflows/spec-generate.md` completely.
108
101
  | Simple project, ready to plan | /maestro-plan 1 |
109
102
  | Need UI design first | /maestro-impeccable build |
110
103
  | View project dashboard | /manage-status |
111
- | Need project setup (full mode) | /maestro-init |
104
+ | Need formal spec documents | /maestro-blueprint |
112
105
  </execution>
113
106
 
114
107
  <error_codes>
115
-
116
- **Shared:**
117
108
  | Code | Severity | Condition | Recovery |
118
109
  |------|----------|-----------|----------|
119
110
  | E001 | error | Requirement/idea text or @file required | Prompt user for input |
120
- | E002 | error | Brainstorm session not found (--from-brainstorm) | Show available sessions |
121
- | W001 | warning | CLI analysis failed, using fallback | Continue with available data |
122
- | W005 | warning | External research agent failed | Continue without apiResearchContext |
123
-
124
- **Light mode:**
125
- | Code | Severity | Condition | Recovery |
126
- |------|----------|-----------|----------|
111
+ | E002 | error | Context source not found (--from / --from-brainstorm) | Show available sessions/sources |
127
112
  | E003 | error | Circular dependency detected in phases | Prompt user to re-decompose |
128
113
  | E004 | error | roadmap.md not found (--revise/--review) | Run maestro-roadmap first |
129
114
  | E005 | error | Revision invalidates completed phase work | Warn user, ask to confirm or adjust |
115
+ | W001 | warning | CLI analysis failed, using fallback | Continue with available data |
130
116
  | W002 | warning | Max refinement rounds (5) reached | Force proceed with current roadmap |
131
-
132
- **Full mode:**
133
- | Code | Severity | Condition | Recovery |
134
- |------|----------|-----------|----------|
135
- | E006 | error | `.workflow/` not initialized | Run maestro-init first |
136
- | E007 | error | Phase 6 readiness Fail after 2 auto-fix iterations | Present manual fix options |
137
- | W002 | warning | Codebase exploration failed | Continue without codebase context |
138
- | W003 | warning | Glossary has < 5 terms | Note in readiness check |
139
- | W004 | warning | Review-level readiness score (60-79%) | Proceed with caveats |
117
+ | W005 | warning | External research agent failed | Continue without apiResearchContext |
140
118
  </error_codes>
141
119
 
142
120
  <success_criteria>
143
-
144
- **Light mode:**
121
+ - [ ] Interactive mode: interview decision table appended to `.workflow/roadmap.md` "Roadmap Decisions" section
145
122
  - [ ] Requirement parsed with goal, constraints, stakeholders
123
+ - [ ] Milestones defined with deliverable targets and version tags
146
124
  - [ ] Decomposition strategy selected (progressive or direct)
147
- - [ ] Phases defined with success criteria, dependencies, and requirement mappings
125
+ - [ ] Phases defined within milestones with success criteria, dependencies, and requirement mappings
148
126
  - [ ] Every Active requirement from project.md mapped to exactly one phase
149
127
  - [ ] No circular dependencies in phase ordering
150
128
  - [ ] User approved roadmap (or auto-approved with -y)
151
- - [ ] `.workflow/roadmap.md` written with phase details, scope decisions, and progress table
129
+ - [ ] `.workflow/roadmap.md` written with Milestone > Phase hierarchy, scope decisions, and progress table
152
130
  - [ ] No phase directories created (phases are labels in roadmap, not directories)
153
-
154
- **Full mode (in addition to light mode criteria for roadmap):**
155
- - [ ] `spec-config.json` created with session metadata and phase tracking
156
- - [ ] `product-brief.md` with vision, goals, scope, multi-perspective synthesis
157
- - [ ] `glossary.json` with 5+ core terms for cross-document consistency
158
- - [ ] `requirements/` directory with `_index.md` + individual `REQ-*.md` + `NFR-*.md` files
159
- - [ ] All requirements have RFC 2119 keywords and acceptance criteria
160
- - [ ] `architecture/` directory with `_index.md` + individual `ADR-*.md` files
161
- - [ ] Architecture includes state machine, config model, error handling, observability (service type)
162
- - [ ] `epics/` directory with `_index.md` + individual `EPIC-*.md` files
163
- - [ ] Cross-Epic dependency map (Mermaid) and MVP subset tagged
164
- - [ ] `readiness-report.md` with 4-dimension quality scores and traceability matrix
165
- - [ ] `spec-summary.md` with one-page executive summary
166
- - [ ] All documents have valid YAML frontmatter with session_id
167
- - [ ] Glossary terms used consistently across all documents
168
- - [ ] Readiness gate: Pass (>=80%) or Review (>=60%) with documented caveats
169
- - [ ] `.workflow/roadmap.md` written
131
+ - [ ] Artifact registered in state.json with milestone entries
170
132
  </success_criteria>
@@ -49,6 +49,7 @@ Follow '~/.maestro/workflows/harvest.md' Stages 1-8 in order.
49
49
  1. **Read-only until Stage 6** — extraction and classification happen in-memory.
50
50
  2. **Dedup before write** — check harvest-log.jsonl and existing stores before each write.
51
51
  3. **Never modify source artifacts** — harvest is purely extractive.
52
+ 4. **Dedup contract with parallel writers** — when appending to `issues.jsonl`, set `source: "harvest"` on each row so concurrent writers (e.g. `manage-issue-discover` with `source: "discover"`) can be distinguished and deduplicated.
52
53
 
53
54
  Extraction patterns, classification rules, routing infrastructure, and fragment ID scheme defined in workflow harvest.md.
54
55
 
@@ -48,7 +48,7 @@ $ARGUMENTS -- optional. Parse first token to determine mode.
48
48
  - `--depth=standard|deep` -- exploration depth (by-prompt only, default: `standard`)
49
49
 
50
50
  **State files:**
51
- - `.workflow/issues/issues.jsonl` -- issues appended here
51
+ - `.workflow/issues/issues.jsonl` -- issues appended here (set `source: "discover"` on each row so concurrent writers like `manage-harvest` with `source: "harvest"` can be distinguished and deduplicated)
52
52
  - `.workflow/issues/discoveries/{SESSION_ID}/` -- session artifacts
53
53
 
54
54
  ### Pre-load specs
@@ -52,7 +52,7 @@ Follow '~/.maestro/workflows/knowhow.md' Part A (KnowHow Management) completely.
52
52
  <error_codes>
53
53
  | Code | Severity | Description | Stage |
54
54
  |------|----------|-------------|-------|
55
- | E001 | error | No memory stores found — run `/manage-knowhow-capture` or create MEMORY.md | resolve_paths |
55
+ | E001 | error | No memory stores found — for workflow store run `/manage-knowhow-capture`; for system store create `~/.claude/projects/{project}/memory/MEMORY.md` manually | resolve_paths |
56
56
  | E002 | error | Entry ID or filename not found | execute_view, execute_delete |
57
57
  | E003 | error | Prune requires at least one filter (--tag, --type, --before, --after) | execute_prune |
58
58
  | E004 | error | Cannot delete MEMORY.md — use `edit` subcommand instead | execute_delete |
@@ -29,7 +29,7 @@ Arguments: $ARGUMENTS
29
29
  - `"<insight text>"` (or any non-keyword text) → insight capture mode
30
30
  - `tip <text>` → tip capture mode (quick contextual note, auto-tagged `tip`)
31
31
  - `list` → list recent entries (default 20)
32
- - `search <query>` → `maestro spec load --category learning` or text search across `specs/learnings.md`
32
+ - `search <query>` → `maestro spec load --category learning` or text search across `.workflow/specs/learnings.md`
33
33
  - `show <INS-id>` → full detail with phase context
34
34
  - empty → ask_question to prompt for text
35
35
 
@@ -46,19 +46,19 @@ Follow `~/.maestro/workflows/learn.md` Stages 1–5 in order.
46
46
  | E001 | error | `.workflow/` not initialized — run `/maestro-init` first | parse_input |
47
47
  | E002 | error | Unknown `--category` value (allowed: pattern, antipattern, decision, tool, gotcha, technique, tip) | parse_input |
48
48
  | E003 | error | `show` mode requires an INS-id argument | show |
49
- | E004 | error | Insight id not found in `specs/learnings.md` | show |
49
+ | E004 | error | Insight id not found in `.workflow/specs/learnings.md` | show |
50
50
  | W001 | warning | Auto-phase detection found a current_phase but no matching artifact in registry; phase set to null | capture |
51
51
  </error_codes>
52
52
 
53
53
  <success_criteria>
54
54
  - [ ] Mode correctly routed (capture / list / search / show)
55
- - [ ] Capture: `<spec-entry>` block appended to `specs/learnings.md` with all required fields
55
+ - [ ] Capture: `<spec-entry>` block appended to `.workflow/specs/learnings.md` with all required fields
56
56
  - [ ] Capture: phase auto-link resolves correctly via artifact registry when `state.json` has `current_phase`
57
57
  - [ ] Capture: category inference produces a sensible default when `--category` absent
58
58
  - [ ] List: filters apply, output sorted newest-first, default limit 20
59
59
  - [ ] Search: results ranked by title (3) > tags (2) > summary (1) match
60
60
  - [ ] Show: full insight displayed with phase context and routed-artifact link if any
61
- - [ ] No file modifications outside `.workflow/knowhow/`
61
+ - [ ] No file modifications outside `.workflow/specs/learnings.md` and `.workflow/knowhow/`
62
62
  - [ ] Confirmation banner displayed with INS-id and next-step hints
63
63
  - [ ] Next step: `/manage-learn list` to browse, or `/manage-learn search <query>` to find related insights
64
64
  </success_criteria>
@@ -14,7 +14,7 @@ allowed-tools:
14
14
  Run unified automated testing via CSV layer pipeline. Reads project state to auto-select the optimal scenario source — PRD specs (when spec package exists), coverage gaps (when Nyquist audit found gaps), or code exploration (default). All sources converge into a CSV pipeline: discover infrastructure → plan → build scenarios.csv → write tests per layer (spawn_agents_on_csv parallel) → execute → diagnose failures (spawn_agents_on_csv parallel) → iterate → report.
15
15
 
16
16
  Key mechanisms:
17
- - **Intelligent routing**: Reads `.tests/`, `.workflow/.spec/`, `verification.json` to auto-select source — no mode flag needed
17
+ - **Intelligent routing**: Reads `.tests/`, `.workflow/blueprint/`, `verification.json` to auto-select source — no mode flag needed
18
18
  - **CSV parallel test writing**: Per-layer `spawn_agents_on_csv` — each agent writes one test file independently
19
19
  - **CSV parallel failure diagnosis**: Failed scenarios dispatched via `spawn_agents_on_csv` for classification + fix
20
20
  - **Unified iteration engine**: Nested inner loop (fix test_defects via diagnosis CSV, max 3/layer) + outer loop (adaptive strategy, max N iterations)
@@ -39,13 +39,13 @@ Phase or task: $ARGUMENTS (required — phase number)
39
39
 
40
40
  **Intelligent routing** (auto-detected from project state):
41
41
 
42
- | Priority | Condition | Route | Equivalent to |
43
- |----------|-----------|-------|---------------|
42
+ | Priority | Condition | Route | Reference skill |
43
+ |----------|-----------|-------|-----------------|
44
44
  | 1 | Active session exists (state.json status=running) | Resume | — |
45
45
  | 2 | --re-run flag + previous failures | Re-run | — |
46
- | 3 | Spec package exists (REQ-*.md) | spec | quality-business-test |
47
- | 4 | Nyquist gaps exist (verification.json) | gap | quality-test-gen |
48
- | 5 | Default | code | quality-integration-test |
46
+ | 3 | Spec package exists (REQ-*.md) | spec | quality-business-test (separate skill) |
47
+ | 4 | Nyquist gaps exist (verification.json) | gap | quality-test-gen (separate skill) |
48
+ | 5 | Default | code | quality-integration-test (separate skill) |
49
49
 
50
50
  Flags, artifact context resolution, and output formats defined in workflow auto-test.md.
51
51
 
@@ -48,7 +48,7 @@ After successful refactoring, ask user once: "Record refactoring pattern as codi
48
48
 
49
49
  **Next-step routing on completion:**
50
50
  - All tests pass → `/quality-sync` (update codebase docs)
51
- - Test failures after refactor → `/quality-debug {scope}`
51
+ - Test failures after refactor → `/quality-debug "test failures after refactor in {scope}"`
52
52
  - No test suite available → `/quality-auto-test {phase}`
53
53
  </execution>
54
54
 
@@ -15,7 +15,7 @@ allowed-tools:
15
15
  - write_to_file
16
16
  ---
17
17
  <purpose>
18
- Post-execution multi-perspective retrospective (复盘) for completed phases. Consumes existing execution artifacts (verification.json, review.json, issues.jsonl, plan.json, .summaries/, uat.md, state.json) and runs four parallel lenses — technical, process, quality, decision — to distill reusable insights. Routes each insight into the appropriate store: spec stub for reusable patterns, memory tip for process notes, issue for recurring gaps. Auto-scans for unreviewed completed phases and reports the backlog. Every insight is also persisted to `.workflow/knowhow/specs/learnings.md` as `<spec-entry>` blocks for cross-phase queryability.
18
+ Post-execution multi-perspective retrospective (复盘) for completed phases. Consumes existing execution artifacts (verification.json, review.json, issues.jsonl, plan.json, .summaries/, uat.md, state.json) and runs four parallel lenses — technical, process, quality, decision — to distill reusable insights. Routes each insight into the appropriate store: spec stub for reusable patterns, memory tip for process notes, issue for recurring gaps. Auto-scans for unreviewed completed phases and reports the backlog. Every insight is also persisted to `.workflow/specs/learnings.md` as `<spec-entry>` blocks for cross-phase queryability.
19
19
  </purpose>
20
20
 
21
21
  <required_reading>
@@ -72,7 +72,7 @@ Follow `~/.maestro/workflows/retrospective.md` Stages 1–8 in order. Key invari
72
72
  - [ ] Spec entries (if any) appended as `<spec-entry>` to matching `.workflow/specs/{category-file}.md`
73
73
  - [ ] Issue rows (if any) match canonical issues.jsonl schema (status "open", full issue_history, all required fields)
74
74
  - [ ] Note tips (if any) created via `view_file(AbsolutePath="<agy-skills-dir>/manage-learn/SKILL.md") + execute inline (args: "tip ...")`
75
- - [ ] `specs/learnings.md` appended with one `<spec-entry>` per insight regardless of routing target
75
+ - [ ] `.workflow/specs/learnings.md` appended with one `<spec-entry>` per insight regardless of routing target
76
76
  - [ ] No existing phase artifacts modified (verification.json, review.json, plan.json untouched)
77
77
  - [ ] Confirmation banner displays routing counts and next-step suggestions
78
78
  - [ ] Next step: `/manage-status` to review state, or `/manage-issue list --source retrospective` to triage created issues, or `/manage-learn list` to browse the knowhow library
@@ -18,6 +18,10 @@ Systematic security audit covering OWASP Top 10, dependency supply chain, secret
18
18
  CI/CD pipeline review, and optional STRIDE threat modeling. Three tiers control depth vs speed.
19
19
  </purpose>
20
20
 
21
+ <required_reading>
22
+ @~/.maestro/workflows/review.md
23
+ </required_reading>
24
+
21
25
  <context>
22
26
  $ARGUMENTS — Parse tier and scope:
23
27
  - Tier: `quick` (default) | `standard` | `deep`
@@ -145,6 +149,26 @@ CONCERNS: {count} critical findings require immediate action
145
149
  NEXT: /quality-review
146
150
  --- END STATUS ---
147
151
  ```
152
+
153
+ **Register artifact on completion** (so retrospective/harvest can trace this audit):
154
+ ```
155
+ Append to state.json.artifacts[]:
156
+ {
157
+ id: nextArtifactId(artifacts, "review"), // RVW-NNN (security-audit reuses review type)
158
+ type: "review",
159
+ subtype: "security-audit",
160
+ milestone: current_milestone || null,
161
+ phase: target_phase || null,
162
+ scope: target_phase ? "phase" : "standalone",
163
+ path: "scratch/{YYYYMMDD}-security-audit-{tier}-{slug}",
164
+ status: critical_count == 0 ? "completed" : "completed_with_concerns",
165
+ tier: tier, // quick|standard|deep
166
+ harvested: false,
167
+ created_at: start_time,
168
+ completed_at: now()
169
+ }
170
+ ```
171
+ Write findings report to the same `path` (severity matrix, file:line refs, remediation).
148
172
  </execution>
149
173
 
150
174
  <success_criteria>