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
@@ -33,19 +33,24 @@ Also read `session.auto_mode` from status.json — if true, treat as `-y`.
33
33
 
34
34
  | Type | Execution | Flow after |
35
35
  |------|-----------|------------|
36
- | decision (ralph-only) | `Skill("maestro-ralph")` — ralph re-evaluates | Execution ends here |
37
- | internal | `Skill({ skill, args })` synchronous | Self-invoke next |
38
- | external | `maestro delegate --to claude --mode write` | STOP → callback self-invoke |
39
-
40
- HARD RULE: External nodes ALWAYS append `-y` to skill args inside the prompt — delegate sessions are non-interactive.
41
- HARD RULE: External nodes ALWAYS delegate to `claude` only Claude Code can execute slash-command skills.
36
+ | decision (ralph-only) | `Skill("maestro-ralph")` | Execution ends here |
37
+ | internal (default) | `Read({file_path: step.command_path})` + 内联解释执行 | Self-invoke next |
38
+ | external (opt-in) | `maestro delegate --to claude --mode write` (STOP → callback) | Self-invoke next |
39
+
40
+ HARD RULES:
41
+ - internal step:优先通过 `Read({command_path})` 把命令 .md 加载进当前会话,再按内容执行;不要对 internal step 使用 `Skill({skill})` 调用
42
+ - decision 节点例外:A_EXEC_DECISION 必须使用 `Skill({ skill: "maestro-ralph" })` 进行 handoff(这是 decision 节点的唯一允许用法)
43
+ - `command_path` 由 ralph 在 A_BUILD_STEPS 写入 status.json;ralph-execute 不再自行解析(缺失 → 报错 E002)
44
+ - external 仅在 `step.type == "external"` 显式声明时使用,并 always append `-y` 到 prompt args
45
+ - 每个 step 必须产出 `--- COMPLETION STATUS ---` 块,否则视为 NEEDS_RETRY
42
46
  </context>
43
47
 
44
48
  <invariants>
45
- 1. **Every step via Skill() or delegate** — never simulate or inline a skill's work
46
- 2. **External claude only** — `session.cli_tool` is for analysis delegates, NOT execution
47
- 3. **Self-invocation chain** — continues until all steps complete or session paused
48
- 4. **Status.json updated after every change** resume-safe
49
+ 1. **Internal = Read + inline** — 通过 Read 读取 `step.command_path`,按其指令在当前 session 内执行
50
+ 2. **External = explicit only** — `step.type == "external"` 才走 delegate;默认绝不发起
51
+ 3. **必须显式 completion confirmation** — 每个 step 完成时需有 `STATUS: DONE` 且写入 `step.completion_confirmed = true`
52
+ 4. **Self-invocation chain** 持续直到全部 `completion_confirmed` paused
53
+ 5. **status.json 每步骤后写盘** — resume-safe
49
54
  </invariants>
50
55
 
51
56
  <state_machine>
@@ -54,8 +59,8 @@ HARD RULE: External nodes ALWAYS delegate to `claude` — only Claude Code can e
54
59
  S_LOCATE — 定位 session + 找下一个 pending step PERSIST: —
55
60
  S_RESOLVE_ARGS — 解析占位符 + 丰富参数 PERSIST: step.args (enriched)
56
61
  S_EXECUTE — 执行当前 step PERSIST: step.status = "running", session.current_step
57
- S_POST_EXEC — 标记完成 + 传播上下文 PERSIST: step.status, session.context
58
- S_HANDLE_FAIL — 处理失败(重试/跳过/中止) PERSIST: step.status, session.status
62
+ S_POST_EXEC — 标记完成 + 传播上下文 PERSIST: step.completion_*, step.status, session.context
63
+ S_HANDLE_FAIL — 处理失败 PERSIST: step.status, session.status
59
64
  S_COMPLETE — 所有 step 完成 PERSIST: session.status = "completed"
60
65
  S_FALLBACK — 无 session 可执行 PERSIST: —
61
66
  </states>
@@ -127,9 +132,9 @@ S_FALLBACK:
127
132
  | maestro-brainstorm | topic | `"{intent}"` |
128
133
  | maestro-roadmap | description | `"{intent}"` |
129
134
  | maestro-analyze | phase or topic | `{phase}` or `"{intent}"` |
130
- | maestro-plan | phase or --dir | `{phase}`, or `--dir {scratch_dir}` if standalone |
131
- | maestro-execute | phase or --dir | `{phase}`, or `--dir {scratch_dir}` if standalone |
132
- | quality-debug | gap context | Read previous step's error/gap from artifact dir |
135
+ | maestro-plan | phase or --dir | `{phase}`, or `--dir {scratch_dir}` |
136
+ | maestro-execute | phase or --dir | `{phase}`, or `--dir {scratch_dir}` |
137
+ | quality-debug | gap context | Read previous step's error/gap |
133
138
  | quality-* | phase | `{phase}` |
134
139
 
135
140
  **Artifact dir resolution for --dir:**
@@ -139,91 +144,97 @@ plan commands: latest type=="analyze" → --dir .workflow/scratch/{path}
139
144
  execute commands: latest type=="plan" → --dir .workflow/scratch/{path}
140
145
  ```
141
146
 
142
- Write enriched args back to status.json (resume-safe).
147
+ Write enriched args back to status.json.
143
148
 
144
149
  ### A_EXEC_DECISION
145
150
 
146
151
  1. Mark step running, write status.json
147
- 2. Display: `[{index}/{total}] ◆ {skill} [decision] Retry: {retry}/{max}`
148
- 3. `Skill({ skill: "maestro-ralph" })` — ralph detects running decision → evaluates → handoff
149
- 4. **This execution ends here** — ralph handles the handoff back
152
+ 2. Display: `[{index}/{total}] ◆ {decision} Retry: {retry}/{max}`
153
+ 3. `Skill({ skill: "maestro-ralph" })` — ralph 评估 + handoff
154
+ 4. 执行在此结束
150
155
 
151
156
  ### A_EXEC_INTERNAL
152
157
 
153
- 1. Mark step running, write status.json
154
- 2. Display: `[{index}/{total}] {skill} [internal]`
155
- 3. Resolve auto flag: `auto ? (flag_map[skill] || "") : ""`
156
- 4. `Skill({ skill: next.skill, args: effective_args })`
157
- 5. Return success/failure
158
+ 1. Validate `step.command_path != null`;否则 raise E002,pause session
159
+ 2. Mark step running, write status.json
160
+ 3. Display: `[{index}/{total}] {step.skill} [internal · {step.command_scope}]`
161
+ 4. `Read({ file_path: step.command_path })` — 把命令 .md 全文加载进当前会话(prefer Read over Skill for internal steps;decision 节点另行使用 Skill 见 A_EXEC_DECISION)
162
+ 5. 解析 frontmatter `argument-hint` 与 `<purpose>/<state_machine>/<actions>` 等指令块
163
+ 6. 计算 `effective_args`:`step.args` + auto flag(`auto ? (flag_map[step.skill] || "") : ""`)
164
+ 7. 按读到的指令在本会话中**内联执行**:调用允许的工具完成命令所规定的工作,不再发起 delegate
165
+ 8. 执行结束:要求最后一段必须包含 `--- COMPLETION STATUS ---` 块(见 A_MARK_COMPLETE)
166
+ 9. Return success / failure
158
167
 
159
- **Auto flag map:** all lifecycle skills → `-y`; `quality-test` → `-y --auto-fix`; unlisted internal no flag
168
+ **Auto flag map**: 所有 lifecycle skill → `-y`; `quality-test` → `-y --auto-fix`; 未列出 flag
160
169
 
161
170
  ### A_EXEC_EXTERNAL
162
171
 
172
+ 仅当 `step.type == "external"` 时使用(默认链路不产生)。
173
+
163
174
  1. Mark step running, write status.json
164
- 2. Display: `[{index}/{total}] ⚡ {skill} [external]`
165
- 3. Always append `-y` to skill args (delegates are non-interactive): `flag = flag_map[skill] || "-y"`
175
+ 2. Display: `[{index}/{total}] ⚡ {step.skill} [external]`
176
+ 3. 始终在 prompt 内追加 `-y`(delegate session 非交互):`flag = flag_map[step.skill] || "-y"`
166
177
  4. Execute:
167
178
  ```
168
179
  Bash({
169
- command: `maestro delegate "/${skill} ${effective_args}" --to claude --mode write`,
180
+ command: `maestro delegate "/${step.skill} ${effective_args}" --to claude --mode write`,
170
181
  run_in_background: true, timeout: 600000
171
182
  })
172
183
  STOP — wait for callback.
173
184
  ```
174
- 5. On callback: retrieve output → S_POST_EXEC or S_HANDLE_FAIL
185
+ 5. On callback: 把回调输出视为 step 的执行结果 → S_POST_EXEC / S_HANDLE_FAIL
175
186
 
176
187
  ### A_MARK_COMPLETE
177
188
 
178
- 1. `step.status = "completed"`, `step.completed_at = now`
179
- 2. Scan output for context signals:
180
- - `PHASE: N` → session.phase
181
- - `scratch_dir: path` → context.scratch_dir
182
- - `SPEC-xxx` → context.spec_session_id
183
- 3. Scan output for `--- COMPLETION STATUS ---` block. If found, parse and map:
184
- - `STATUS: DONE``step.status = "completed"`
185
- - `STATUS: DONE_WITH_CONCERNS` → `step.status = "completed"`, `step.concerns = CONCERNS value`
186
- - `STATUS: NEEDS_RETRY` → trigger retry: set `step.status = "pending"`, `step.retried = true` → S_HANDLE_FAIL
187
- - `STATUS: BLOCKED` → `session.status = "paused"`, display blocker reason from CONCERNS
188
- - `STATUS: NEEDS_CONTEXT` → `session.status = "paused"`, display context gap from CONCERNS
189
- - If no `--- COMPLETION STATUS ---` block found → fall back to existing heuristic (backward compatible)
190
- 4. Write status.json
191
- 5. Display: `[{index}/{total}] ✓ {skill} completed`
189
+ 1. step 输出中提取 `--- COMPLETION STATUS ---` 块(required)
190
+ 2. 解析并写入:
191
+ - `STATUS: DONE` → `step.status = "completed"`, `step.completion_confirmed = true`, `step.completion_status = "DONE"`
192
+ - `STATUS: DONE_WITH_CONCERNS` → `step.status = "completed"`, `step.completion_confirmed = true`, `step.completion_status = "DONE_WITH_CONCERNS"`, `step.concerns = <CONCERNS>`
193
+ - `STATUS: NEEDS_RETRY` → `step.status = "pending"`, `step.retried = true`, `step.completion_confirmed = false`, → S_HANDLE_FAIL
194
+ - `STATUS: BLOCKED` / `NEEDS_CONTEXT` `session.status = "paused"`, `step.completion_status` 记录原因, `step.completion_confirmed = false`
195
+ - 缺失 `--- COMPLETION STATUS ---` 视为 NEEDS_RETRY(不允许 heuristic fallback)
196
+ 3. 写入 `step.completion_evidence`(artifact 路径 / 关键输出节选)
197
+ 4. 扫描输出抓取 context 信号:`PHASE: N` → session.phase;`scratch_dir: path` context.scratch_dir;`BLP-xxx` → context.blueprint_session_id
198
+ 5. `step.completed_at = now`,写 status.json
199
+ 6. **Sub-goal evidence 校验**(task_decomposition 存在时):若 `step.goal_ref` 对应子目标的 `lifecycle` 覆盖当前 stage 且 evidence artifact 已生成 暂不直接置 done,仍交由 post-goal-audit 决策;仅在 step 显式确认时更新 `task_decomposition[*].completion_confirmed = false` 占位(保持 pending)
200
+ 7. Display: `[{index}/{total}] {step.skill} completed (confirmed)`
192
201
 
193
202
  ### A_RETRY
194
203
 
195
- 1. `step.retried = true`, `step.status = "pending"`, `step.error = null`
204
+ 1. `step.retried = true`, `step.status = "pending"`, `step.error = null`, `step.completion_confirmed = false`
196
205
  2. Write status.json
197
206
 
198
207
  ### A_SKIP_STEP
199
208
 
200
- 1. `step.status = "skipped"`
209
+ 1. `step.status = "skipped"`, `step.completion_confirmed = false`
201
210
  2. Write status.json
202
211
 
203
212
  ### A_PAUSE_SESSION
204
213
 
205
214
  1. `session.status = "paused"`, write status.json
206
- 2. Display: `[{index}/{total}] ✗ {skill} 失败,会话已暂停。/maestro-ralph continue 恢复。`
215
+ 2. Display: `[{index}/{total}] ✗ {step.skill} 失败,会话已暂停。/maestro-ralph continue 恢复。`
207
216
 
208
217
  ### A_COMPLETE_SESSION
209
218
 
210
- 1. `session.status = "completed"`, write status.json
211
- 2. Display completion report:
219
+ 1. 校验:所有 step `completion_confirmed == true`(除 skipped);task_decomposition 存在时校验 `task_decomposition_all_done == true`
220
+ 2. 任一校验失败 不标 completed,回 S_LOCATE 或 pause
221
+ 3. `session.status = "completed"`, write status.json
222
+ 4. Display completion report:
212
223
  ```
213
224
  ============================================================
214
225
  SESSION COMPLETE
215
226
  ============================================================
216
227
  Session: {session_id} [{source}]
217
- Steps: {completed}/{total}
228
+ Steps: {completed}/{total} confirmed: {confirmed}/{completed}
218
229
 
219
- [✓] 0. maestro-plan 1 [internal]
220
- [✓] 1.maestro-execute 1 [external]
221
- [✓] 2. maestro-verify 1 [internal]
230
+ [✓] 0. maestro-plan 1 [internal · global]
231
+ [✓] 1. maestro-execute 1 [internal · project]
232
+ [✓] 2. maestro-verify 1 [internal · global]
222
233
  [✓] 3. ◆ post-verify [decision]
223
234
  ...
224
235
  ============================================================
225
236
  ```
226
- Icons: `✓` completed, `—` skipped, `✗` failed, `◆` decision, `⚡` external
237
+ Icons: `✓` confirmed, `—` skipped, `✗` failed, `◆` decision, `⚡` external
227
238
 
228
239
  </actions>
229
240
 
@@ -236,22 +247,26 @@ Write enriched args back to status.json (resume-safe).
236
247
  | Code | Severity | Description | Recovery |
237
248
  |------|----------|-------------|----------|
238
249
  | E001 | error | No running session found | Suggest /maestro or /maestro-ralph |
239
- | E002 | error | status.json corrupt | Show path, suggest manual check |
240
- | E003 | error | Delegate failed + user abort | Mark paused, suggest resume |
241
- | W001 | warning | Step completed with warnings | Log and continue |
250
+ | E002 | error | step.command_path missing for internal step | Pause, ask ralph to rebuild step |
251
+ | E003 | error | status.json corrupt | Show path, manual check |
252
+ | E004 | error | Delegate failed + user abort | Mark paused, suggest resume |
253
+ | E005 | error | COMPLETION STATUS block missing | Trigger NEEDS_RETRY |
254
+ | W001 | warning | Step completed with concerns | Log and continue |
242
255
 
243
256
  ### Success Criteria
244
257
 
245
- - [ ] Session discovery covers both maestro-* and ralph-*
246
- - [ ] `-y` parsed from args OR inherited from session.auto_mode
247
- - [ ] Placeholders resolved from session context
248
- - [ ] Per-skill enrichment provides correct args
249
- - [ ] Decision nodes hand off to maestro-ralph via Skill()
250
- - [ ] Internal nodes execute via Skill() with auto flag
251
- - [ ] External nodes delegate to claude with `-y` in prompt args, run_in_background + STOP
252
- - [ ] Context signals propagate to status.json
253
- - [ ] Auto mode: retry once then pause
254
- - [ ] Interactive: AskUserQuestion retry/skip/abort
255
- - [ ] Self-invocation continues until complete or paused
258
+ - [ ] Session discovery covers maestro-* and ralph-*
259
+ - [ ] `-y` parsed from args session.auto_mode
260
+ - [ ] Placeholders resolved;per-skill enrichment 正确
261
+ - [ ] Decision 节点 Skill("maestro-ralph") handoff
262
+ - [ ] Internal 节点通过 Read({step.command_path}) 内联执行,禁止 Skill()
263
+ - [ ] External 仅在显式声明时走 delegate,prompt 必带 `-y`
264
+ - [ ] 每个 step 强制 `--- COMPLETION STATUS ---`;缺失 NEEDS_RETRY
265
+ - [ ] step.completion_confirmed = true 仅在 STATUS: DONE/DONE_WITH_CONCERNS 时设置
266
+ - [ ] step.completion_evidence 记录 artifact path / 输出节选
267
+ - [ ] Context signals 传播 status.json
268
+ - [ ] Auto mode: retry 一次后 pause;interactive 提供 retry/skip/abort
269
+ - [ ] 自调用持续到全部 completion_confirmed 或 paused
270
+ - [ ] A_COMPLETE_SESSION 校验全部 step confirmed + sub-goal all_done
256
271
 
257
272
  </appendix>