maestro-flow 0.5.3 → 0.5.31

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 (259) hide show
  1. package/.agents/skills/learn-follow/SKILL.md +114 -114
  2. package/.agents/skills/learn-investigate/SKILL.md +138 -139
  3. package/.agents/skills/learn-second-opinion/SKILL.md +105 -109
  4. package/.agents/skills/maestro/SKILL.md +2 -10
  5. package/.agents/skills/maestro-amend/SKILL.md +152 -152
  6. package/.agents/skills/maestro-analyze/SKILL.md +201 -252
  7. package/.agents/skills/maestro-blueprint/SKILL.md +175 -190
  8. package/.agents/skills/maestro-brainstorm/SKILL.md +196 -200
  9. package/.agents/skills/maestro-collab/SKILL.md +159 -159
  10. package/.agents/skills/maestro-companion/SKILL.md +517 -517
  11. package/.agents/skills/maestro-composer/SKILL.md +173 -164
  12. package/.agents/skills/maestro-execute/SKILL.md +169 -170
  13. package/.agents/skills/maestro-fork/SKILL.md +97 -96
  14. package/.agents/skills/maestro-grill/SKILL.md +161 -162
  15. package/.agents/skills/maestro-guard/SKILL.md +93 -92
  16. package/.agents/skills/maestro-impeccable/SKILL.md +296 -253
  17. package/.agents/skills/maestro-init/SKILL.md +117 -118
  18. package/.agents/skills/maestro-merge/SKILL.md +73 -66
  19. package/.agents/skills/maestro-milestone-audit/SKILL.md +4 -10
  20. package/.agents/skills/maestro-milestone-complete/SKILL.md +6 -7
  21. package/.agents/skills/maestro-milestone-release/SKILL.md +122 -131
  22. package/.agents/skills/maestro-next/SKILL.md +241 -245
  23. package/.agents/skills/maestro-overlay/SKILL.md +176 -166
  24. package/.agents/skills/maestro-plan/SKILL.md +211 -197
  25. package/.agents/skills/maestro-player/SKILL.md +167 -167
  26. package/.agents/skills/maestro-quick/SKILL.md +69 -63
  27. package/.agents/skills/maestro-ralph/SKILL.md +2 -36
  28. package/.agents/skills/maestro-ralph-beta/SKILL.md +861 -872
  29. package/.agents/skills/maestro-ralph-execute/SKILL.md +234 -234
  30. package/.agents/skills/maestro-roadmap/SKILL.md +159 -172
  31. package/.agents/skills/maestro-swarm-workflow/SKILL.md +229 -250
  32. package/.agents/skills/maestro-tools-execute/SKILL.md +108 -103
  33. package/.agents/skills/maestro-tools-register/SKILL.md +148 -143
  34. package/.agents/skills/maestro-ui-codify/SKILL.md +103 -86
  35. package/.agents/skills/maestro-universal-workflow/SKILL.md +534 -547
  36. package/.agents/skills/maestro-update/SKILL.md +109 -106
  37. package/.agents/skills/manage-codebase-rebuild/SKILL.md +73 -71
  38. package/.agents/skills/manage-harvest/SKILL.md +83 -81
  39. package/.agents/skills/manage-issue/SKILL.md +59 -60
  40. package/.agents/skills/manage-issue-discover/SKILL.md +70 -68
  41. package/.agents/skills/manage-kg-extractors/SKILL.md +130 -0
  42. package/.agents/skills/manage-knowhow/SKILL.md +70 -66
  43. package/.agents/skills/manage-knowhow-capture/SKILL.md +79 -69
  44. package/.agents/skills/manage-knowledge-audit/SKILL.md +91 -74
  45. package/.agents/skills/manage-status/SKILL.md +52 -42
  46. package/.agents/skills/manage-wiki/SKILL.md +69 -58
  47. package/.agents/skills/odyssey-debug/SKILL.md +445 -459
  48. package/.agents/skills/odyssey-improve/SKILL.md +477 -491
  49. package/.agents/skills/odyssey-planex/SKILL.md +576 -587
  50. package/.agents/skills/odyssey-review-test-fix/SKILL.md +400 -413
  51. package/.agents/skills/odyssey-ui/SKILL.md +431 -448
  52. package/.agents/skills/quality-auto-test/SKILL.md +140 -123
  53. package/.agents/skills/quality-debug/SKILL.md +145 -106
  54. package/.agents/skills/quality-refactor/SKILL.md +91 -53
  55. package/.agents/skills/quality-retrospective/SKILL.md +109 -63
  56. package/.agents/skills/quality-review/SKILL.md +141 -114
  57. package/.agents/skills/quality-sync/SKILL.md +74 -38
  58. package/.agents/skills/quality-test/SKILL.md +133 -103
  59. package/.agents/skills/security-audit/SKILL.md +217 -166
  60. package/.agents/skills/spec-add/SKILL.md +66 -59
  61. package/.agents/skills/spec-load/SKILL.md +68 -68
  62. package/.agents/skills/spec-remove/SKILL.md +42 -42
  63. package/.agents/skills/spec-setup/SKILL.md +38 -41
  64. package/.agy/skills/learn-follow/SKILL.md +114 -114
  65. package/.agy/skills/learn-investigate/SKILL.md +138 -139
  66. package/.agy/skills/learn-second-opinion/SKILL.md +105 -109
  67. package/.agy/skills/maestro/SKILL.md +2 -10
  68. package/.agy/skills/maestro-amend/SKILL.md +152 -152
  69. package/.agy/skills/maestro-analyze/SKILL.md +201 -252
  70. package/.agy/skills/maestro-blueprint/SKILL.md +175 -190
  71. package/.agy/skills/maestro-brainstorm/SKILL.md +196 -200
  72. package/.agy/skills/maestro-collab/SKILL.md +159 -159
  73. package/.agy/skills/maestro-companion/SKILL.md +517 -517
  74. package/.agy/skills/maestro-composer/SKILL.md +173 -164
  75. package/.agy/skills/maestro-execute/SKILL.md +169 -170
  76. package/.agy/skills/maestro-fork/SKILL.md +97 -96
  77. package/.agy/skills/maestro-grill/SKILL.md +161 -162
  78. package/.agy/skills/maestro-guard/SKILL.md +93 -92
  79. package/.agy/skills/maestro-impeccable/SKILL.md +296 -253
  80. package/.agy/skills/maestro-init/SKILL.md +117 -118
  81. package/.agy/skills/maestro-merge/SKILL.md +73 -66
  82. package/.agy/skills/maestro-milestone-audit/SKILL.md +4 -10
  83. package/.agy/skills/maestro-milestone-complete/SKILL.md +6 -7
  84. package/.agy/skills/maestro-milestone-release/SKILL.md +122 -131
  85. package/.agy/skills/maestro-next/SKILL.md +241 -245
  86. package/.agy/skills/maestro-overlay/SKILL.md +176 -166
  87. package/.agy/skills/maestro-plan/SKILL.md +211 -197
  88. package/.agy/skills/maestro-player/SKILL.md +167 -167
  89. package/.agy/skills/maestro-quick/SKILL.md +69 -63
  90. package/.agy/skills/maestro-ralph/SKILL.md +2 -36
  91. package/.agy/skills/maestro-ralph-beta/SKILL.md +861 -872
  92. package/.agy/skills/maestro-ralph-execute/SKILL.md +234 -234
  93. package/.agy/skills/maestro-roadmap/SKILL.md +159 -172
  94. package/.agy/skills/maestro-swarm-workflow/SKILL.md +229 -250
  95. package/.agy/skills/maestro-tools-execute/SKILL.md +108 -103
  96. package/.agy/skills/maestro-tools-register/SKILL.md +148 -143
  97. package/.agy/skills/maestro-ui-codify/SKILL.md +103 -86
  98. package/.agy/skills/maestro-universal-workflow/SKILL.md +534 -547
  99. package/.agy/skills/maestro-update/SKILL.md +109 -106
  100. package/.agy/skills/manage-codebase-rebuild/SKILL.md +73 -71
  101. package/.agy/skills/manage-harvest/SKILL.md +83 -81
  102. package/.agy/skills/manage-issue/SKILL.md +59 -60
  103. package/.agy/skills/manage-issue-discover/SKILL.md +70 -68
  104. package/.agy/skills/manage-kg-extractors/SKILL.md +130 -0
  105. package/.agy/skills/manage-knowhow/SKILL.md +70 -66
  106. package/.agy/skills/manage-knowhow-capture/SKILL.md +79 -69
  107. package/.agy/skills/manage-knowledge-audit/SKILL.md +91 -74
  108. package/.agy/skills/manage-status/SKILL.md +52 -42
  109. package/.agy/skills/manage-wiki/SKILL.md +69 -58
  110. package/.agy/skills/odyssey-debug/SKILL.md +445 -459
  111. package/.agy/skills/odyssey-improve/SKILL.md +477 -491
  112. package/.agy/skills/odyssey-planex/SKILL.md +576 -587
  113. package/.agy/skills/odyssey-review-test-fix/SKILL.md +400 -413
  114. package/.agy/skills/odyssey-ui/SKILL.md +431 -448
  115. package/.agy/skills/quality-auto-test/SKILL.md +140 -123
  116. package/.agy/skills/quality-debug/SKILL.md +145 -106
  117. package/.agy/skills/quality-refactor/SKILL.md +91 -53
  118. package/.agy/skills/quality-retrospective/SKILL.md +109 -63
  119. package/.agy/skills/quality-review/SKILL.md +141 -114
  120. package/.agy/skills/quality-sync/SKILL.md +74 -38
  121. package/.agy/skills/quality-test/SKILL.md +133 -103
  122. package/.agy/skills/security-audit/SKILL.md +217 -166
  123. package/.agy/skills/spec-add/SKILL.md +66 -59
  124. package/.agy/skills/spec-load/SKILL.md +68 -68
  125. package/.agy/skills/spec-remove/SKILL.md +42 -42
  126. package/.agy/skills/spec-setup/SKILL.md +38 -41
  127. package/.claude/commands/learn-follow.md +127 -127
  128. package/.claude/commands/learn-investigate.md +151 -152
  129. package/.claude/commands/learn-second-opinion.md +118 -122
  130. package/.claude/commands/maestro-amend.md +164 -164
  131. package/.claude/commands/maestro-analyze.md +215 -266
  132. package/.claude/commands/maestro-blueprint.md +189 -204
  133. package/.claude/commands/maestro-brainstorm.md +209 -213
  134. package/.claude/commands/maestro-collab.md +172 -172
  135. package/.claude/commands/maestro-companion.md +531 -531
  136. package/.claude/commands/maestro-composer.md +188 -179
  137. package/.claude/commands/maestro-execute.md +183 -184
  138. package/.claude/commands/maestro-fork.md +111 -110
  139. package/.claude/commands/maestro-grill.md +175 -176
  140. package/.claude/commands/maestro-guard.md +103 -102
  141. package/.claude/commands/maestro-impeccable.md +311 -268
  142. package/.claude/commands/maestro-init.md +130 -131
  143. package/.claude/commands/maestro-merge.md +87 -80
  144. package/.claude/commands/maestro-milestone-audit.md +4 -10
  145. package/.claude/commands/maestro-milestone-complete.md +6 -7
  146. package/.claude/commands/maestro-milestone-release.md +136 -145
  147. package/.claude/commands/maestro-next.md +253 -257
  148. package/.claude/commands/maestro-overlay.md +188 -178
  149. package/.claude/commands/maestro-plan.md +225 -211
  150. package/.claude/commands/maestro-player.md +182 -182
  151. package/.claude/commands/maestro-quick.md +83 -77
  152. package/.claude/commands/maestro-ralph-beta.md +875 -886
  153. package/.claude/commands/maestro-ralph-execute.md +247 -247
  154. package/.claude/commands/maestro-ralph.md +2 -36
  155. package/.claude/commands/maestro-roadmap.md +173 -186
  156. package/.claude/commands/maestro-swarm-workflow.md +243 -264
  157. package/.claude/commands/maestro-tools-execute.md +122 -117
  158. package/.claude/commands/maestro-tools-register.md +162 -157
  159. package/.claude/commands/maestro-ui-codify.md +117 -100
  160. package/.claude/commands/maestro-universal-workflow.md +548 -561
  161. package/.claude/commands/maestro-update.md +122 -119
  162. package/.claude/commands/maestro.md +2 -10
  163. package/.claude/commands/manage-codebase-rebuild.md +87 -85
  164. package/.claude/commands/manage-harvest.md +97 -95
  165. package/.claude/commands/manage-issue-discover.md +83 -81
  166. package/.claude/commands/manage-issue.md +72 -73
  167. package/.claude/commands/manage-kg-extractors.md +128 -0
  168. package/.claude/commands/manage-knowhow-capture.md +92 -82
  169. package/.claude/commands/manage-knowhow.md +83 -79
  170. package/.claude/commands/manage-knowledge-audit.md +105 -88
  171. package/.claude/commands/manage-status.md +62 -52
  172. package/.claude/commands/manage-wiki.md +82 -71
  173. package/.claude/commands/odyssey-debug.md +459 -473
  174. package/.claude/commands/odyssey-improve.md +491 -505
  175. package/.claude/commands/odyssey-planex.md +590 -601
  176. package/.claude/commands/odyssey-review-test-fix.md +414 -427
  177. package/.claude/commands/odyssey-ui.md +445 -462
  178. package/.claude/commands/quality-auto-test.md +153 -136
  179. package/.claude/commands/quality-debug.md +159 -120
  180. package/.claude/commands/quality-refactor.md +105 -67
  181. package/.claude/commands/quality-retrospective.md +123 -77
  182. package/.claude/commands/quality-review.md +155 -128
  183. package/.claude/commands/quality-sync.md +88 -52
  184. package/.claude/commands/quality-test.md +147 -117
  185. package/.claude/commands/security-audit.md +230 -179
  186. package/.claude/commands/spec-add.md +77 -70
  187. package/.claude/commands/spec-load.md +78 -78
  188. package/.claude/commands/spec-remove.md +55 -55
  189. package/.claude/commands/spec-setup.md +49 -52
  190. package/dist/src/cli.js +1 -1
  191. package/dist/src/cli.js.map +1 -1
  192. package/dist/src/commands/kg.d.ts.map +1 -1
  193. package/dist/src/commands/kg.js +11 -5
  194. package/dist/src/commands/kg.js.map +1 -1
  195. package/dist/src/graph/kg/extraction/code/code-extractor.d.ts +2 -0
  196. package/dist/src/graph/kg/extraction/code/code-extractor.d.ts.map +1 -1
  197. package/dist/src/graph/kg/extraction/code/code-extractor.js +32 -3
  198. package/dist/src/graph/kg/extraction/code/code-extractor.js.map +1 -1
  199. package/dist/src/graph/kg/extraction/code/plugin-engine.d.ts +35 -0
  200. package/dist/src/graph/kg/extraction/code/plugin-engine.d.ts.map +1 -0
  201. package/dist/src/graph/kg/extraction/code/plugin-engine.js +573 -0
  202. package/dist/src/graph/kg/extraction/code/plugin-engine.js.map +1 -0
  203. package/dist/src/graph/kg/extraction/code/plugin-types.d.ts +95 -0
  204. package/dist/src/graph/kg/extraction/code/plugin-types.d.ts.map +1 -0
  205. package/dist/src/graph/kg/extraction/code/plugin-types.js +5 -0
  206. package/dist/src/graph/kg/extraction/code/plugin-types.js.map +1 -0
  207. package/dist/src/graph/kg/extraction/orchestrator.d.ts.map +1 -1
  208. package/dist/src/graph/kg/extraction/orchestrator.js +17 -5
  209. package/dist/src/graph/kg/extraction/orchestrator.js.map +1 -1
  210. package/dist/src/graph/kg/schema.sql +16 -11
  211. package/dist/src/graph/kg/surface/cli.d.ts.map +1 -1
  212. package/dist/src/graph/kg/surface/cli.js +153 -56
  213. package/dist/src/graph/kg/surface/cli.js.map +1 -1
  214. package/dist/src/hooks/workspace.d.ts +4 -2
  215. package/dist/src/hooks/workspace.d.ts.map +1 -1
  216. package/dist/src/hooks/workspace.js +6 -2
  217. package/dist/src/hooks/workspace.js.map +1 -1
  218. package/package.json +91 -91
  219. package/workflows/analyze.md +25 -49
  220. package/workflows/auto-test.md +699 -699
  221. package/workflows/blueprint.md +403 -431
  222. package/workflows/brainstorm.md +54 -195
  223. package/workflows/business-test.md +570 -570
  224. package/workflows/claude-instructions.md +23 -51
  225. package/workflows/codex-instructions.md +27 -77
  226. package/workflows/coding-philosophy.md +69 -69
  227. package/workflows/command-authoring.md +823 -823
  228. package/workflows/debug.md +43 -98
  229. package/workflows/delegate-usage.md +39 -241
  230. package/workflows/execute.md +4 -53
  231. package/workflows/grill.md +12 -56
  232. package/workflows/harvest.md +22 -68
  233. package/workflows/init.md +148 -148
  234. package/workflows/instruction-authoring-guide.md +97 -0
  235. package/workflows/issue-execute.md +110 -110
  236. package/workflows/issue-gaps-analyze.codex.md +260 -260
  237. package/workflows/issue-gaps-analyze.md +216 -216
  238. package/workflows/issue-plan.md +110 -110
  239. package/workflows/issue.md +338 -346
  240. package/workflows/knowhow.md +0 -32
  241. package/workflows/learn.md +277 -277
  242. package/workflows/maestro-chain-execute.md +20 -20
  243. package/workflows/refactor.md +22 -44
  244. package/workflows/retrospective.md +16 -65
  245. package/workflows/review.md +446 -486
  246. package/workflows/roadmap.md +35 -132
  247. package/workflows/skill-authoring.md +265 -265
  248. package/workflows/spec-generate.md +470 -470
  249. package/workflows/specs-remove.md +104 -104
  250. package/workflows/sync.md +11 -41
  251. package/workflows/test-gen.md +226 -226
  252. package/workflows/test.md +385 -475
  253. package/workflows/ui-design.md +391 -391
  254. package/workflows/ui-style.md +199 -199
  255. package/workflows/wiki-connect.md +151 -151
  256. package/workflows/wiki-digest.md +178 -178
  257. package/workflows/wiki-manage.md +109 -109
  258. package/workflows/cli-tools-usage.md +0 -252
  259. package/workflows/delegate-protocol.codex.md +0 -65
@@ -1,247 +1,247 @@
1
- ---
2
- name: maestro-ralph-execute
3
- description: Execute next pending step in ralph session
4
- argument-hint: "[-y] [session-id]"
5
- allowed-tools:
6
- - Read
7
- - Write
8
- - Edit
9
- - Bash
10
- - Glob
11
- - Grep
12
- - Skill
13
- ---
14
- <purpose>
15
- Single-step executor for ralph (adaptive) and maestro (static) sessions.
16
- Each invocation: locate session → find next step → resolve args → execute → update → self-invoke next.
17
-
18
- Mutual invocation with `/maestro-ralph` forms a self-perpetuating work loop.
19
- Session: `.workflow/.maestro/*/status.json`
20
- </purpose>
21
-
22
- <context>
23
- $ARGUMENTS — optional `-y` flag + optional session ID.
24
-
25
- **Parse:**
26
- ```
27
- -y / --yes → auto = true
28
- Remaining → session_id (if matches maestro-* or ralph-*)
29
- ```
30
- Also read `session.auto_mode` from status.json — if true, treat as `-y`.
31
-
32
- **Step kinds:**
33
-
34
- | Kind | Identifier | Execution | Flow after |
35
- |------|-----------|-----------|------------|
36
- | decision step | `step.decision` 非空 | `Skill("maestro-ralph")` | Execution ends here |
37
- | 执行 step | `step.decision == null` | `Bash("maestro ralph next")` → 内联按其 stdout 执行 → `Bash("maestro ralph complete N --status ...")` | Self-invoke next |
38
-
39
- HARD RULES:
40
- - 执行 step:**统一通过 `maestro ralph next` CLI 加载**。CLI 负责读 command_path、解析 `<required_reading>` + `<deferred_reading>`、拼接 prompt、写 `step.load.*` + `active_step_index` + `step.status="running"`。不要再在会话里手动 Read + 解析 required_reading
41
- - decision step:A_EXEC_DECISION 通过 `Skill({ skill: "maestro-ralph" })` handoff 给 ralph 评估(不走 CLI)
42
- - `command_path` 由 ralph 在 A_BUILD_STEPS 写入 status.json(缺失 → ralph next 返回 E006/E007 并拒绝执行)
43
- - 每个 step 结束必须调用 `maestro ralph complete N --status <S>` 或 `maestro ralph retry N`。STATUS 仅 4 个合法值:`DONE | DONE_WITH_CONCERNS | NEEDS_RETRY | BLOCKED`(**`NEEDS_CONTEXT` 已废除**,context 容量由 harness 自动压缩处理)
44
- </context>
45
-
46
- <invariants>
47
- 1. **执行 = `ralph next` + inline + `ralph complete`** — 调 `maestro ralph next` 拿到 skill 内容,按 stdout 内联执行
48
- 2. **Required reading 由 CLI 负责** — `ralph next` 自动展开 + 加载 `<required_reading>` 引用的所有文件,缺失 → 退出码 1(E007),不写 active_step_index,不进入执行
49
- 3. **Deferred reading recorded only** — `<deferred_reading>` 路径由 CLI 记录到 `step.load.deferred_files`,执行阶段按需 Read
50
- 4. **一致性取代锁** — 同一 session 同时最多一个 step 持 `active_step_index`;CLI 校验失败直接退出码 3,不静默推进
51
- 5. **Completion 通过 CLI 调用** — 每个 step 末尾调 `maestro ralph complete N --status <S>` 或 `maestro ralph retry N`,由 CLI 写 `completion_*` + 清 `active_step_index`
52
- 6. **Self-invocation chain** — 持续直到全部 `completion_confirmed` 或 paused
53
- 7. **status.json 每步骤后由 CLI 原子写盘** — resume-safe
54
- 8. **STATUS 枚举受限** — 仅 `DONE | DONE_WITH_CONCERNS | NEEDS_RETRY | BLOCKED`;`NEEDS_CONTEXT` 已废除
55
- 9. **CLI 输出禁止截断** — `maestro ralph next` 的 stdout 包含完整 skill prompt,必须全量捕获。**严禁** `| head`、`| tail`、`2>&1 | head -N` 等任何截断管道。Bash timeout 可加长但不可截断输出
56
- </invariants>
57
-
58
- <state_machine>
59
-
60
- <states>
61
- S_LOCATE — 定位 session + 找下一个 pending step PERSIST: —
62
- S_RESOLVE_ARGS — 解析占位符 + 丰富参数 PERSIST: step.args (enriched)
63
- S_EXECUTE — 执行当前 step PERSIST: step.status = "running", session.current_step
64
- S_POST_EXEC — 标记完成 + 传播上下文 PERSIST: step.completion_*, step.status, session.context
65
- S_HANDLE_FAIL — 处理失败 PERSIST: step.status, session.status
66
- S_COMPLETE — 所有 step 完成 PERSIST: session.status = "completed"
67
- S_FALLBACK — 无 session 可执行 PERSIST: —
68
- </states>
69
-
70
- <transitions>
71
-
72
- S_LOCATE:
73
- → S_RESOLVE_ARGS WHEN: pending step found DO: A_LOCATE_SESSION
74
- → S_COMPLETE WHEN: no pending steps
75
- → S_FALLBACK WHEN: no running session
76
-
77
- S_RESOLVE_ARGS:
78
- → S_EXECUTE DO: A_RESOLVE_ARGS
79
-
80
- S_EXECUTE:
81
- → END WHEN: step.decision != null DO: A_EXEC_DECISION
82
- → S_POST_EXEC WHEN: step.decision == null + ralph complete invoked with DONE|DONE_WITH_CONCERNS DO: A_EXEC_STEP
83
- → S_HANDLE_FAIL WHEN: step.decision == null + ralph next exit≠0 OR ralph complete with NEEDS_RETRY|BLOCKED DO: A_EXEC_STEP
84
-
85
- S_POST_EXEC:
86
- → S_LOCATE DO: Bash("maestro ralph complete ...") + Skill("maestro-ralph-execute")
87
- NOTE: CLI 已写完 completion_*, status, active_step_index;无需额外写盘
88
-
89
- S_HANDLE_FAIL:
90
- → S_LOCATE WHEN: auto + not retried DO: A_RETRY
91
- → END WHEN: auto + retried DO: A_PAUSE_SESSION
92
- → S_LOCATE WHEN: interactive + user selects retry DO: A_RETRY
93
- → S_LOCATE WHEN: interactive + user selects skip DO: A_SKIP_STEP
94
- → END WHEN: interactive + user selects abort DO: A_PAUSE_SESSION
95
-
96
- S_COMPLETE:
97
- → END DO: A_COMPLETE_SESSION
98
-
99
- S_FALLBACK:
100
- → END DO: display "无运行中的会话。使用 /maestro 或 /maestro-ralph 创建。"
101
-
102
- </transitions>
103
-
104
- <actions>
105
-
106
- ### A_LOCATE_SESSION
107
-
108
- 1. If session_id provided → load `.workflow/.maestro/{session_id}/status.json`
109
- 2. Else: scan `.workflow/.maestro/*/status.json`, filter `status == "running"`, sort DESC, take first
110
- 3. Extract: session_id, source, steps[], phase, milestone, intent, auto_mode, context, cli_tool, active_step_index
111
- 4. **不在此处选 pending step**——pending 选择由 `maestro ralph next` CLI 内部完成;A_LOCATE_SESSION 只确认 session 存在且 running,由 A_EXEC_STEP 调 CLI 推进
112
-
113
- ### A_RESOLVE_ARGS
114
-
115
- **Placeholder substitution:**
116
-
117
- | Placeholder | Source |
118
- |-------------|--------|
119
- | `{phase}` | session.phase |
120
- | `{milestone}` | session.milestone |
121
- | `{intent}` | session.intent |
122
- | `{description}` | session.intent (alias) |
123
- | `{scratch_dir}` | session.context.scratch_dir or latest artifact path |
124
- | `{plan_dir}` | session.context.plan_dir |
125
- | `{analysis_dir}` | session.context.analysis_dir |
126
- | `{issue_id}` | session.context.issue_id |
127
- | `{milestone_num}` | session.context.milestone_num |
128
-
129
- **Per-skill enrichment** (when args empty or minimal):
130
-
131
- | Skill | Required context | Source |
132
- |-------|-----------------|--------|
133
- | maestro-brainstorm | topic | `"{intent}"` |
134
- | maestro-roadmap | description | `"{intent}"` |
135
- | maestro-analyze | phase or topic | `{phase}` or `"{intent}"` |
136
- | maestro-plan | phase or --dir | `{phase}`, or `--dir {scratch_dir}` |
137
- | maestro-execute | phase or --dir | `{phase}`, or `--dir {scratch_dir}` |
138
- | quality-debug | gap context | Read previous step's error/gap |
139
- | quality-* | phase | `{phase}` |
140
-
141
- **Artifact dir resolution for --dir:**
142
- ```
143
- Read state.json → filter artifacts by milestone + phase
144
- plan commands: latest type=="analyze" → --dir .workflow/scratch/{path}
145
- execute commands: latest type=="plan" → --dir .workflow/scratch/{path}
146
- ```
147
-
148
- Write enriched args back to status.json.
149
-
150
- ### A_EXEC_DECISION
151
-
152
- 1. Mark step running, write status.json
153
- 2. Display: `[{index}/{total}] ◆ {step.decision} Retry: {retry}/{max}`
154
- 3. `Skill({ skill: "maestro-ralph" })` — ralph 评估 + handoff
155
- 4. 执行在此结束
156
-
157
- ### A_EXEC_STEP
158
-
159
- 1. **Load** — `Bash("maestro ralph next --session <session_id>")` — **必须全量捕获 stdout,严禁 `| head`/`| tail` 等截断管道**(stdout 含完整 skill prompt,截断会导致执行内容不完整)
160
- - 退出码 0 → 按 stdout 内联执行
161
- - 退出码 2 → 交给 S_LOCATE
162
- - 退出码 3 → active_step_index 已被占用
163
- - 退出码 1 → pause session
164
- 2. **Inline execution** — 按 stdout 执行;deferred_reading 按需 Read
165
- 3. **Complete**:
166
- - `Bash("maestro ralph complete N --status DONE [--evidence <path>]")`
167
- - `Bash("maestro ralph complete N --status DONE_WITH_CONCERNS --concerns \"...\"")`
168
- - `Bash("maestro ralph retry N")`
169
- - `Bash("maestro ralph complete N --status BLOCKED --reason \"...\"")`
170
- 4. **Propagate context signals** — 关键信号 (`PHASE: N` / `scratch_dir: path` / `BLP-xxx`) 写入 `status.json.context`
171
-
172
- 完成后 S_LOCATE 触发 `Skill({ skill: "maestro-ralph-execute" })` 自调用。
173
-
174
- ### A_RETRY
175
-
176
- 1. `Bash("maestro ralph retry N")` — CLI 设 `step.retried = true`, `step.status = "pending"`, `step.completion_confirmed = false`, 清 `active_step_index`
177
- 2. Display: `[{index}/{total}] ↻ {step.skill} retry`
178
-
179
- ### A_SKIP_STEP
180
-
181
- 跳过执行 step — 手动编辑 `status.json`:将该 step `status` 设为 `"skipped"`,`completion_confirmed` 设为 `false`,并清 `active_step_index`(若指向此 step)。
182
- (不提供 CLI 子命令;跳过是非常规操作,避免自动化误用。)
183
-
184
- ### A_PAUSE_SESSION
185
-
186
- 通常由 `ralph complete N --status BLOCKED --reason "..."` 触发,CLI 已写 `session.status = "paused"`。手动 pause 场景下直接编辑 status.json。
187
- Display: `[{index}/{total}] ✗ {step.skill} 失败,会话已暂停。/maestro-ralph continue 恢复。`
188
-
189
- ### A_COMPLETE_SESSION
190
-
191
- 1. 校验:所有 step `completion_confirmed == true`(除 skipped);task_decomposition 存在时校验 `task_decomposition_all_done == true`
192
- 2. 任一校验失败 → 不标 completed,回 S_LOCATE 或 pause
193
- 3. `session.status = "completed"`, write status.json
194
- 4. Display completion report:
195
- ```
196
- ============================================================
197
- SESSION COMPLETE
198
- ============================================================
199
- Session: {session_id} [{source}]
200
- Steps: {completed}/{total} confirmed: {confirmed}/{completed}
201
-
202
- [✓] 0. maestro-plan 1 [global]
203
- [✓] 1. maestro-execute 1 [project]
204
- [✓] 2. ◆ post-execute [decision]
205
- ...
206
- ============================================================
207
- ```
208
- Icons: `✓` confirmed, `—` skipped, `✗` failed, `◆` decision
209
-
210
- </actions>
211
-
212
- </state_machine>
213
-
214
- <appendix>
215
-
216
- ### Error Codes
217
-
218
- | Code | Severity | Description | Recovery |
219
- |------|----------|-------------|----------|
220
- | E001 | error | No running session found | Suggest /maestro or /maestro-ralph |
221
- | E006 | error | command_path missing/unreachable for 执行 step | `ralph next` 拒绝;编辑 status.json 或重 build |
222
- | E007 | error | required_reading 引用文件缺失 | `ralph next` 拒绝;CLI stderr 列出缺失路径 |
223
- | E008 | error | `ralph complete` idx ≠ active_step_index | 编辑 status.json 修正一致性 |
224
- | E009 | error | `ralph complete` step.status ≠ running | 重复 complete 或非法跳跃;编辑 status.json |
225
- | E010 | error | status.json schema 损坏 | `ralph check` 显示具体损坏字段 |
226
- | W001 | warning | Step completed with concerns | Log and continue |
227
- | W005 | warning | active_step_index 指向已 completed step | `ralph next` 自动清理后继续 |
228
- | W007 | warning | step.skill ≠ command .md frontmatter.name | 提示但不阻塞 |
229
-
230
- ### Success Criteria
231
-
232
- - [ ] Session discovery covers maestro-* and ralph-*
233
- - [ ] `-y` parsed from args 或 session.auto_mode;auto=true 时透传 `-y` 到 skill args
234
- - [ ] Placeholders resolved;per-skill enrichment 正确
235
- - [ ] Decision 节点(`step.decision != null`)走 Skill("maestro-ralph") handoff(**不调 ralph next CLI**)
236
- - [ ] 执行 step 通过 `Bash("maestro ralph next")` 加载;CLI 返回拼好的 prompt + completion 协议
237
- - [ ] required_reading 由 CLI 自动加载并拼入 prompt;缺失 → CLI 退出码 1,pause session
238
- - [ ] `<deferred_reading>` 由 CLI 记录到 `step.load.deferred_files`,执行阶段按需 Read
239
- - [ ] 每个 step 末尾必须调 `maestro ralph complete N --status <S>` 或 `maestro ralph retry N`
240
- - [ ] STATUS 枚举仅 `DONE | DONE_WITH_CONCERNS | NEEDS_RETRY | BLOCKED`;CLI 拒绝 `NEEDS_CONTEXT`
241
- - [ ] active_step_index 一致性由 CLI 维护;E008/E009 直接退出,不静默推进
242
- - [ ] step.completion_evidence 通过 `--evidence` 传入并记录
243
- - [ ] Context signals 由执行 step 显式写回 status.json.context(非 ralph-execute 内嵌扫描)
244
- - [ ] Auto mode: retry 一次后 pause;interactive 提供 retry/skip/abort
245
- - [ ] 自调用持续到全部 completion_confirmed 或 paused
246
-
247
- </appendix>
1
+ ---
2
+ name: maestro-ralph-execute
3
+ description: Execute next pending step in ralph session
4
+ argument-hint: "[-y] [session-id]"
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Edit
9
+ - Bash
10
+ - Glob
11
+ - Grep
12
+ - Skill
13
+ ---
14
+ <purpose>
15
+ Single-step executor for ralph (adaptive) and maestro (static) sessions.
16
+ Each invocation: locate session → find next step → resolve args → execute → update → self-invoke next.
17
+
18
+ Mutual invocation with `/maestro-ralph` forms a self-perpetuating work loop.
19
+ Session: `.workflow/.maestro/*/status.json`
20
+ </purpose>
21
+
22
+ <context>
23
+ $ARGUMENTS — optional `-y` flag + optional session ID.
24
+
25
+ **Parse:**
26
+ ```
27
+ -y / --yes → auto = true
28
+ Remaining → session_id (if matches maestro-* or ralph-*)
29
+ ```
30
+ Also read `session.auto_mode` from status.json — if true, treat as `-y`.
31
+
32
+ **Step kinds:**
33
+
34
+ | Kind | Identifier | Execution | Flow after |
35
+ |------|-----------|-----------|------------|
36
+ | decision step | `step.decision` 非空 | `Skill("maestro-ralph")` | Execution ends here |
37
+ | 执行 step | `step.decision == null` | `Bash("maestro ralph next")` → 内联按其 stdout 执行 → `Bash("maestro ralph complete N --status ...")` | Self-invoke next |
38
+
39
+ HARD RULES:
40
+ - 执行 step:**统一通过 `maestro ralph next` CLI 加载**。CLI 负责读 command_path、解析 `<required_reading>` + `<deferred_reading>`、拼接 prompt、写 `step.load.*` + `active_step_index` + `step.status="running"`。不要再在会话里手动 Read + 解析 required_reading
41
+ - decision step:A_EXEC_DECISION 通过 `Skill({ skill: "maestro-ralph" })` handoff 给 ralph 评估(不走 CLI)
42
+ - `command_path` 由 ralph 在 A_BUILD_STEPS 写入 status.json(缺失 → ralph next 返回 E006/E007 并拒绝执行)
43
+ - 每个 step 结束必须调用 `maestro ralph complete N --status <S>` 或 `maestro ralph retry N`。STATUS 仅 4 个合法值:`DONE | DONE_WITH_CONCERNS | NEEDS_RETRY | BLOCKED`(**`NEEDS_CONTEXT` 已废除**,context 容量由 harness 自动压缩处理)
44
+ </context>
45
+
46
+ <invariants>
47
+ 1. **执行 = `ralph next` + inline + `ralph complete`** — 调 `maestro ralph next` 拿到 skill 内容,按 stdout 内联执行
48
+ 2. **Required reading 由 CLI 负责** — `ralph next` 自动展开 + 加载 `<required_reading>` 引用的所有文件,缺失 → 退出码 1(E007),不写 active_step_index,不进入执行
49
+ 3. **Deferred reading recorded only** — `<deferred_reading>` 路径由 CLI 记录到 `step.load.deferred_files`,执行阶段按需 Read
50
+ 4. **一致性取代锁** — 同一 session 同时最多一个 step 持 `active_step_index`;CLI 校验失败直接退出码 3,不静默推进
51
+ 5. **Completion 通过 CLI 调用** — 每个 step 末尾调 `maestro ralph complete N --status <S>` 或 `maestro ralph retry N`,由 CLI 写 `completion_*` + 清 `active_step_index`
52
+ 6. **Self-invocation chain** — 持续直到全部 `completion_confirmed` 或 paused
53
+ 7. **status.json 每步骤后由 CLI 原子写盘** — resume-safe
54
+ 8. **STATUS 枚举受限** — 仅 `DONE | DONE_WITH_CONCERNS | NEEDS_RETRY | BLOCKED`;`NEEDS_CONTEXT` 已废除
55
+ 9. **CLI 输出禁止截断** — `maestro ralph next` 的 stdout 包含完整 skill prompt,必须全量捕获。**严禁** `| head`、`| tail`、`2>&1 | head -N` 等任何截断管道。Bash timeout 可加长但不可截断输出
56
+ </invariants>
57
+
58
+ <state_machine>
59
+
60
+ <states>
61
+ S_LOCATE — 定位 session + 找下一个 pending step PERSIST: —
62
+ S_RESOLVE_ARGS — 解析占位符 + 丰富参数 PERSIST: step.args (enriched)
63
+ S_EXECUTE — 执行当前 step PERSIST: step.status = "running", session.current_step
64
+ S_POST_EXEC — 标记完成 + 传播上下文 PERSIST: step.completion_*, step.status, session.context
65
+ S_HANDLE_FAIL — 处理失败 PERSIST: step.status, session.status
66
+ S_COMPLETE — 所有 step 完成 PERSIST: session.status = "completed"
67
+ S_FALLBACK — 无 session 可执行 PERSIST: —
68
+ </states>
69
+
70
+ <transitions>
71
+
72
+ S_LOCATE:
73
+ → S_RESOLVE_ARGS WHEN: pending step found DO: A_LOCATE_SESSION
74
+ → S_COMPLETE WHEN: no pending steps
75
+ → S_FALLBACK WHEN: no running session
76
+
77
+ S_RESOLVE_ARGS:
78
+ → S_EXECUTE DO: A_RESOLVE_ARGS
79
+
80
+ S_EXECUTE:
81
+ → END WHEN: step.decision != null DO: A_EXEC_DECISION
82
+ → S_POST_EXEC WHEN: step.decision == null + ralph complete invoked with DONE|DONE_WITH_CONCERNS DO: A_EXEC_STEP
83
+ → S_HANDLE_FAIL WHEN: step.decision == null + ralph next exit≠0 OR ralph complete with NEEDS_RETRY|BLOCKED DO: A_EXEC_STEP
84
+
85
+ S_POST_EXEC:
86
+ → S_LOCATE DO: Bash("maestro ralph complete ...") + Skill("maestro-ralph-execute")
87
+ NOTE: CLI 已写完 completion_*, status, active_step_index;无需额外写盘
88
+
89
+ S_HANDLE_FAIL:
90
+ → S_LOCATE WHEN: auto + not retried DO: A_RETRY
91
+ → END WHEN: auto + retried DO: A_PAUSE_SESSION
92
+ → S_LOCATE WHEN: interactive + user selects retry DO: A_RETRY
93
+ → S_LOCATE WHEN: interactive + user selects skip DO: A_SKIP_STEP
94
+ → END WHEN: interactive + user selects abort DO: A_PAUSE_SESSION
95
+
96
+ S_COMPLETE:
97
+ → END DO: A_COMPLETE_SESSION
98
+
99
+ S_FALLBACK:
100
+ → END DO: display "无运行中的会话。使用 /maestro 或 /maestro-ralph 创建。"
101
+
102
+ </transitions>
103
+
104
+ <actions>
105
+
106
+ ### A_LOCATE_SESSION
107
+
108
+ 1. If session_id provided → load `.workflow/.maestro/{session_id}/status.json`
109
+ 2. Else: scan `.workflow/.maestro/*/status.json`, filter `status == "running"`, sort DESC, take first
110
+ 3. Extract: session_id, source, steps[], phase, milestone, intent, auto_mode, context, cli_tool, active_step_index
111
+ 4. **不在此处选 pending step**——pending 选择由 `maestro ralph next` CLI 内部完成;A_LOCATE_SESSION 只确认 session 存在且 running,由 A_EXEC_STEP 调 CLI 推进
112
+
113
+ ### A_RESOLVE_ARGS
114
+
115
+ **Placeholder substitution:**
116
+
117
+ | Placeholder | Source |
118
+ |-------------|--------|
119
+ | `{phase}` | session.phase |
120
+ | `{milestone}` | session.milestone |
121
+ | `{intent}` | session.intent |
122
+ | `{description}` | session.intent (alias) |
123
+ | `{scratch_dir}` | session.context.scratch_dir or latest artifact path |
124
+ | `{plan_dir}` | session.context.plan_dir |
125
+ | `{analysis_dir}` | session.context.analysis_dir |
126
+ | `{issue_id}` | session.context.issue_id |
127
+ | `{milestone_num}` | session.context.milestone_num |
128
+
129
+ **Per-skill enrichment** (when args empty or minimal):
130
+
131
+ | Skill | Required context | Source |
132
+ |-------|-----------------|--------|
133
+ | maestro-brainstorm | topic | `"{intent}"` |
134
+ | maestro-roadmap | description | `"{intent}"` |
135
+ | maestro-analyze | phase or topic | `{phase}` or `"{intent}"` |
136
+ | maestro-plan | phase or --dir | `{phase}`, or `--dir {scratch_dir}` |
137
+ | maestro-execute | phase or --dir | `{phase}`, or `--dir {scratch_dir}` |
138
+ | quality-debug | gap context | Read previous step's error/gap |
139
+ | quality-* | phase | `{phase}` |
140
+
141
+ **Artifact dir resolution for --dir:**
142
+ ```
143
+ Read state.json → filter artifacts by milestone + phase
144
+ plan commands: latest type=="analyze" → --dir .workflow/scratch/{path}
145
+ execute commands: latest type=="plan" → --dir .workflow/scratch/{path}
146
+ ```
147
+
148
+ Write enriched args back to status.json.
149
+
150
+ ### A_EXEC_DECISION
151
+
152
+ 1. Mark step running, write status.json
153
+ 2. Display: `[{index}/{total}] ◆ {step.decision} Retry: {retry}/{max}`
154
+ 3. `Skill({ skill: "maestro-ralph" })` — ralph 评估 + handoff
155
+ 4. 执行在此结束
156
+
157
+ ### A_EXEC_STEP
158
+
159
+ 1. **Load** — `Bash("maestro ralph next --session <session_id>")` — **必须全量捕获 stdout,严禁 `| head`/`| tail` 等截断管道**(stdout 含完整 skill prompt,截断会导致执行内容不完整)
160
+ - 退出码 0 → 按 stdout 内联执行
161
+ - 退出码 2 → 交给 S_LOCATE
162
+ - 退出码 3 → active_step_index 已被占用
163
+ - 退出码 1 → pause session
164
+ 2. **Inline execution** — 按 stdout 执行;deferred_reading 按需 Read
165
+ 3. **Complete**:
166
+ - `Bash("maestro ralph complete N --status DONE [--evidence <path>]")`
167
+ - `Bash("maestro ralph complete N --status DONE_WITH_CONCERNS --concerns \"...\"")`
168
+ - `Bash("maestro ralph retry N")`
169
+ - `Bash("maestro ralph complete N --status BLOCKED --reason \"...\"")`
170
+ 4. **Propagate context signals** — 关键信号 (`PHASE: N` / `scratch_dir: path` / `BLP-xxx`) 写入 `status.json.context`
171
+
172
+ 完成后 S_LOCATE 触发 `Skill({ skill: "maestro-ralph-execute" })` 自调用。
173
+
174
+ ### A_RETRY
175
+
176
+ 1. `Bash("maestro ralph retry N")` — CLI 设 `step.retried = true`, `step.status = "pending"`, `step.completion_confirmed = false`, 清 `active_step_index`
177
+ 2. Display: `[{index}/{total}] ↻ {step.skill} retry`
178
+
179
+ ### A_SKIP_STEP
180
+
181
+ 跳过执行 step — 手动编辑 `status.json`:将该 step `status` 设为 `"skipped"`,`completion_confirmed` 设为 `false`,并清 `active_step_index`(若指向此 step)。
182
+ (不提供 CLI 子命令;跳过是非常规操作,避免自动化误用。)
183
+
184
+ ### A_PAUSE_SESSION
185
+
186
+ 通常由 `ralph complete N --status BLOCKED --reason "..."` 触发,CLI 已写 `session.status = "paused"`。手动 pause 场景下直接编辑 status.json。
187
+ Display: `[{index}/{total}] ✗ {step.skill} 失败,会话已暂停。/maestro-ralph continue 恢复。`
188
+
189
+ ### A_COMPLETE_SESSION
190
+
191
+ 1. 校验:所有 step `completion_confirmed == true`(除 skipped);task_decomposition 存在时校验 `task_decomposition_all_done == true`
192
+ 2. 任一校验失败 → 不标 completed,回 S_LOCATE 或 pause
193
+ 3. `session.status = "completed"`, write status.json
194
+ 4. Display completion report:
195
+ ```
196
+ ============================================================
197
+ SESSION COMPLETE
198
+ ============================================================
199
+ Session: {session_id} [{source}]
200
+ Steps: {completed}/{total} confirmed: {confirmed}/{completed}
201
+
202
+ [✓] 0. maestro-plan 1 [global]
203
+ [✓] 1. maestro-execute 1 [project]
204
+ [✓] 2. ◆ post-execute [decision]
205
+ ...
206
+ ============================================================
207
+ ```
208
+ Icons: `✓` confirmed, `—` skipped, `✗` failed, `◆` decision
209
+
210
+ </actions>
211
+
212
+ </state_machine>
213
+
214
+ <appendix>
215
+
216
+ ### Error Codes
217
+
218
+ | Code | Severity | Description | Recovery |
219
+ |------|----------|-------------|----------|
220
+ | E001 | error | No running session found | Suggest /maestro or /maestro-ralph |
221
+ | E006 | error | command_path missing/unreachable for 执行 step | `ralph next` 拒绝;编辑 status.json 或重 build |
222
+ | E007 | error | required_reading 引用文件缺失 | `ralph next` 拒绝;CLI stderr 列出缺失路径 |
223
+ | E008 | error | `ralph complete` idx ≠ active_step_index | 编辑 status.json 修正一致性 |
224
+ | E009 | error | `ralph complete` step.status ≠ running | 重复 complete 或非法跳跃;编辑 status.json |
225
+ | E010 | error | status.json schema 损坏 | `ralph check` 显示具体损坏字段 |
226
+ | W001 | warning | Step completed with concerns | Log and continue |
227
+ | W005 | warning | active_step_index 指向已 completed step | `ralph next` 自动清理后继续 |
228
+ | W007 | warning | step.skill ≠ command .md frontmatter.name | 提示但不阻塞 |
229
+
230
+ ### Success Criteria
231
+
232
+ - [ ] Session discovery covers maestro-* and ralph-*
233
+ - [ ] `-y` parsed from args 或 session.auto_mode;auto=true 时透传 `-y` 到 skill args
234
+ - [ ] Placeholders resolved;per-skill enrichment 正确
235
+ - [ ] Decision 节点(`step.decision != null`)走 Skill("maestro-ralph") handoff(**不调 ralph next CLI**)
236
+ - [ ] 执行 step 通过 `Bash("maestro ralph next")` 加载;CLI 返回拼好的 prompt + completion 协议
237
+ - [ ] required_reading 由 CLI 自动加载并拼入 prompt;缺失 → CLI 退出码 1,pause session
238
+ - [ ] `<deferred_reading>` 由 CLI 记录到 `step.load.deferred_files`,执行阶段按需 Read
239
+ - [ ] 每个 step 末尾必须调 `maestro ralph complete N --status <S>` 或 `maestro ralph retry N`
240
+ - [ ] STATUS 枚举仅 `DONE | DONE_WITH_CONCERNS | NEEDS_RETRY | BLOCKED`;CLI 拒绝 `NEEDS_CONTEXT`
241
+ - [ ] active_step_index 一致性由 CLI 维护;E008/E009 直接退出,不静默推进
242
+ - [ ] step.completion_evidence 通过 `--evidence` 传入并记录
243
+ - [ ] Context signals 由执行 step 显式写回 status.json.context(非 ralph-execute 内嵌扫描)
244
+ - [ ] Auto mode: retry 一次后 pause;interactive 提供 retry/skip/abort
245
+ - [ ] 自调用持续到全部 completion_confirmed 或 paused
246
+
247
+ </appendix>
@@ -13,42 +13,8 @@ allowed-tools:
13
13
  - AskUserQuestion
14
14
  ---
15
15
  <purpose>
16
- Closed-loop decision engine for the maestro workflow lifecycle.
17
- Reads project state → infers position → builds adaptive chain delegates execution.
18
-
19
- Entry points:
20
- - **`/maestro-ralph "intent"`** — New session: infer → decompose → build → emit /goal prompt(如有 decomposition)→ dispatch ralph-execute
21
- - **`/maestro-ralph continue`** — Wrapper; dispatches to ralph-execute(首选直接 `/maestro-ralph-execute` 推进 step)
22
- - **`/maestro-ralph status`** — Display session progress
23
-
24
- > 推进规则:**step 推进由 `/maestro-ralph-execute` 负责**;ralph 仅在 build / decision 评估时介入。decision 节点由 ralph-execute 自动 `Skill("maestro-ralph")` handoff,无需用户手动切换。
25
-
26
- Initial decomposition (S_DECOMPOSE): boundary-clarified via ≤3 questions for broad intents (重构/全面/迁移/重写). 写入 status.json 的 `boundary_contract` / `execution_criteria` / `task_decomposition`,附 `/goal` prompt。
27
-
28
- Step kinds:
29
- - **执行 step**: ralph-execute 调 `Bash("maestro ralph next")` 加载 command .md + required_reading 全文,按 stdout 内联执行
30
- - **decision step**: `step.decision` 字段非空;回 ralph 评估(CLI 只读分析)
31
-
32
- Key difference from maestro coordinator:
33
- - maestro: static chain → one-time selection → runs all steps
34
- - ralph: living chain → decision nodes re-evaluate → chain grows/shrinks dynamically
35
-
36
- Session: `.workflow/.maestro/ralph-{YYYYMMDD-HHmmss}/status.json`
37
- Mutual invocation with `/maestro-ralph-execute` forms a self-perpetuating work loop.
38
-
39
- ### Execution Flow
40
-
41
- ```
42
- /maestro-ralph "intent" ─▶ ralph infer → decompose → build chain
43
- │ resolves command_path per step
44
- │ writes status.json
45
- │ emits /goal prompt
46
-
47
- ralph-execute ◀─┐ 执行 step → `maestro ralph next` + inline + `ralph complete`
48
- │ │ decision step → Skill("maestro-ralph")
49
- └─────────┘ CLI writes step.completion_confirmed
50
- loop until all completion_confirmed | paused
51
- ```
16
+ Closed-loop decision engine: read project state infer position → build adaptive chain → delegate execution.
17
+ Ralph builds/evaluates; ralph-execute runs steps. Session: `.workflow/.maestro/ralph-{YYYYMMDD-HHmmss}/status.json`.
52
18
  </purpose>
53
19
 
54
20
  <context>