maestro-flow 0.4.10 → 0.4.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (354) hide show
  1. package/.agents/agents/cli-explore-agent.md +187 -0
  2. package/.agents/agents/cross-role-reviewer.md +173 -0
  3. package/.agents/agents/impeccable-agent.md +101 -0
  4. package/.agents/agents/role-design-author.md +218 -0
  5. package/.agents/agents/team-supervisor.md +145 -0
  6. package/.agents/agents/team-worker.md +239 -0
  7. package/.agents/agents/ui-design-agent.md +272 -0
  8. package/.agents/agents/workflow-analyzer.md +117 -0
  9. package/.agents/agents/workflow-codebase-mapper.md +79 -0
  10. package/.agents/agents/workflow-collab-planner.md +145 -0
  11. package/.agents/agents/workflow-debugger.md +105 -0
  12. package/.agents/agents/workflow-executor.md +134 -0
  13. package/.agents/agents/workflow-external-researcher.md +88 -0
  14. package/.agents/agents/workflow-integration-checker.md +85 -0
  15. package/.agents/agents/workflow-nyquist-auditor.md +87 -0
  16. package/.agents/agents/workflow-phase-researcher.md +87 -0
  17. package/.agents/agents/workflow-plan-checker.md +92 -0
  18. package/.agents/agents/workflow-planner.md +197 -0
  19. package/.agents/agents/workflow-project-researcher.md +76 -0
  20. package/.agents/agents/workflow-research-synthesizer.md +72 -0
  21. package/.agents/agents/workflow-reviewer.md +84 -0
  22. package/.agents/agents/workflow-roadmapper.md +83 -0
  23. package/.agents/agents/workflow-verifier.md +122 -0
  24. package/.agents/skills/codify-to-knowhow/SKILL.md +169 -0
  25. package/.agents/skills/codify-to-knowhow/phases/01-load-manifest.md +101 -0
  26. package/.agents/skills/codify-to-knowhow/phases/02-generate-knowhow.md +97 -0
  27. package/.agents/skills/codify-to-knowhow/phases/03-generate-specs.md +92 -0
  28. package/.agents/skills/codify-to-knowhow/phases/04-index-verify.md +119 -0
  29. package/.agents/skills/learn-decompose/SKILL.md +118 -0
  30. package/.agents/skills/learn-follow/SKILL.md +129 -0
  31. package/.agents/skills/learn-investigate/SKILL.md +154 -0
  32. package/.agents/skills/learn-retro/SKILL.md +159 -0
  33. package/.agents/skills/learn-second-opinion/SKILL.md +124 -0
  34. package/.agents/skills/maestro/SKILL.md +258 -0
  35. package/.agents/skills/maestro-amend/SKILL.md +165 -0
  36. package/.agents/skills/maestro-analyze/SKILL.md +161 -0
  37. package/.agents/skills/maestro-blueprint/SKILL.md +132 -0
  38. package/.agents/skills/maestro-brainstorm/SKILL.md +134 -0
  39. package/.agents/skills/maestro-collab/SKILL.md +174 -0
  40. package/.agents/skills/maestro-composer/SKILL.md +181 -0
  41. package/.agents/skills/maestro-execute/SKILL.md +133 -0
  42. package/.agents/skills/maestro-fork/SKILL.md +88 -0
  43. package/.agents/skills/maestro-guard/SKILL.md +103 -0
  44. package/.agents/skills/maestro-help/SKILL.md +300 -0
  45. package/.agents/skills/maestro-help/index/catalog.json +202 -0
  46. package/.agents/skills/maestro-help/phases/01-parse-intent.md +122 -0
  47. package/.agents/skills/maestro-help/phases/02-search-present.md +183 -0
  48. package/.agents/skills/maestro-help/phases/03-workflow-guide.md +213 -0
  49. package/.agents/skills/maestro-impeccable/SKILL.md +251 -0
  50. package/.agents/skills/maestro-init/SKILL.md +80 -0
  51. package/.agents/skills/maestro-learn/SKILL.md +142 -0
  52. package/.agents/skills/maestro-merge/SKILL.md +66 -0
  53. package/.agents/skills/maestro-milestone-audit/SKILL.md +72 -0
  54. package/.agents/skills/maestro-milestone-complete/SKILL.md +79 -0
  55. package/.agents/skills/maestro-milestone-release/SKILL.md +98 -0
  56. package/.agents/skills/maestro-overlay/SKILL.md +180 -0
  57. package/.agents/skills/maestro-plan/SKILL.md +182 -0
  58. package/.agents/skills/maestro-player/SKILL.md +177 -0
  59. package/.agents/skills/maestro-quick/SKILL.md +67 -0
  60. package/.agents/skills/maestro-ralph/SKILL.md +756 -0
  61. package/.agents/skills/maestro-ralph-execute/SKILL.md +273 -0
  62. package/.agents/skills/maestro-roadmap/SKILL.md +131 -0
  63. package/.agents/skills/maestro-tools-execute/SKILL.md +119 -0
  64. package/.agents/skills/maestro-tools-register/SKILL.md +159 -0
  65. package/.agents/skills/maestro-ui-codify/SKILL.md +82 -0
  66. package/.agents/skills/maestro-update/SKILL.md +178 -0
  67. package/.agents/skills/maestro-verify/SKILL.md +111 -0
  68. package/.agents/skills/manage-codebase-rebuild/SKILL.md +77 -0
  69. package/.agents/skills/manage-codebase-refresh/SKILL.md +59 -0
  70. package/.agents/skills/manage-harvest/SKILL.md +96 -0
  71. package/.agents/skills/manage-issue/SKILL.md +75 -0
  72. package/.agents/skills/manage-issue-discover/SKILL.md +83 -0
  73. package/.agents/skills/manage-knowhow/SKILL.md +79 -0
  74. package/.agents/skills/manage-knowhow-capture/SKILL.md +81 -0
  75. package/.agents/skills/manage-learn/SKILL.md +67 -0
  76. package/.agents/skills/manage-status/SKILL.md +54 -0
  77. package/.agents/skills/manage-wiki/SKILL.md +64 -0
  78. package/.agents/skills/quality-auto-test/SKILL.md +138 -0
  79. package/.agents/skills/quality-debug/SKILL.md +122 -0
  80. package/.agents/skills/quality-refactor/SKILL.md +69 -0
  81. package/.agents/skills/quality-retrospective/SKILL.md +79 -0
  82. package/.agents/skills/quality-review/SKILL.md +130 -0
  83. package/.agents/skills/quality-sync/SKILL.md +53 -0
  84. package/.agents/skills/quality-test/SKILL.md +119 -0
  85. package/.agents/skills/security-audit/SKILL.md +157 -0
  86. package/.agents/skills/skill-iter-tune/SKILL.md +384 -0
  87. package/.agents/skills/skill-iter-tune/phases/01-setup.md +144 -0
  88. package/.agents/skills/skill-iter-tune/phases/02-execute.md +292 -0
  89. package/.agents/skills/skill-iter-tune/phases/03-evaluate.md +312 -0
  90. package/.agents/skills/skill-iter-tune/phases/04-improve.md +186 -0
  91. package/.agents/skills/skill-iter-tune/phases/05-report.md +166 -0
  92. package/.agents/skills/skill-iter-tune/specs/evaluation-criteria.md +63 -0
  93. package/.agents/skills/skill-iter-tune/templates/eval-prompt.md +134 -0
  94. package/.agents/skills/skill-iter-tune/templates/execute-prompt.md +97 -0
  95. package/.agents/skills/spec-add/SKILL.md +70 -0
  96. package/.agents/skills/spec-load/SKILL.md +73 -0
  97. package/.agents/skills/spec-remove/SKILL.md +53 -0
  98. package/.agents/skills/spec-setup/SKILL.md +50 -0
  99. package/.agents/skills/team-coordinate/SKILL.md +268 -0
  100. package/.agents/skills/team-coordinate/roles/coordinator/commands/analyze-task.md +247 -0
  101. package/.agents/skills/team-coordinate/roles/coordinator/commands/dispatch.md +131 -0
  102. package/.agents/skills/team-coordinate/roles/coordinator/commands/monitor.md +358 -0
  103. package/.agents/skills/team-coordinate/roles/coordinator/role.md +365 -0
  104. package/.agents/skills/team-coordinate/specs/knowledge-transfer.md +111 -0
  105. package/.agents/skills/team-coordinate/specs/pipelines.md +97 -0
  106. package/.agents/skills/team-coordinate/specs/quality-gates.md +112 -0
  107. package/.agents/skills/team-coordinate/specs/role-spec-template.md +198 -0
  108. package/.agents/skills/team-executor/SKILL.md +191 -0
  109. package/.agents/skills/team-executor/roles/executor/commands/monitor.md +239 -0
  110. package/.agents/skills/team-executor/roles/executor/role.md +171 -0
  111. package/.agents/skills/team-executor/specs/session-schema.md +264 -0
  112. package/.agents/skills/team-lifecycle-v4/SKILL.md +211 -0
  113. package/.agents/skills/team-lifecycle-v4/roles/analyst/role.md +96 -0
  114. package/.agents/skills/team-lifecycle-v4/roles/coordinator/commands/analyze.md +56 -0
  115. package/.agents/skills/team-lifecycle-v4/roles/coordinator/commands/dispatch.md +56 -0
  116. package/.agents/skills/team-lifecycle-v4/roles/coordinator/commands/monitor.md +206 -0
  117. package/.agents/skills/team-lifecycle-v4/roles/coordinator/role.md +130 -0
  118. package/.agents/skills/team-lifecycle-v4/roles/executor/commands/fix.md +35 -0
  119. package/.agents/skills/team-lifecycle-v4/roles/executor/commands/implement.md +62 -0
  120. package/.agents/skills/team-lifecycle-v4/roles/executor/role.md +69 -0
  121. package/.agents/skills/team-lifecycle-v4/roles/planner/role.md +87 -0
  122. package/.agents/skills/team-lifecycle-v4/roles/reviewer/commands/review-code.md +34 -0
  123. package/.agents/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +44 -0
  124. package/.agents/skills/team-lifecycle-v4/roles/reviewer/role.md +71 -0
  125. package/.agents/skills/team-lifecycle-v4/roles/supervisor/role.md +194 -0
  126. package/.agents/skills/team-lifecycle-v4/roles/tester/role.md +89 -0
  127. package/.agents/skills/team-lifecycle-v4/roles/writer/role.md +97 -0
  128. package/.agents/skills/team-lifecycle-v4/specs/knowledge-transfer.md +114 -0
  129. package/.agents/skills/team-lifecycle-v4/specs/pipelines.md +140 -0
  130. package/.agents/skills/team-lifecycle-v4/specs/quality-gates.md +130 -0
  131. package/.agents/skills/team-lifecycle-v4/templates/architecture.md +254 -0
  132. package/.agents/skills/team-lifecycle-v4/templates/epics.md +196 -0
  133. package/.agents/skills/team-lifecycle-v4/templates/product-brief.md +133 -0
  134. package/.agents/skills/team-lifecycle-v4/templates/requirements.md +224 -0
  135. package/.agents/skills/team-quality-assurance/SKILL.md +149 -0
  136. package/.agents/skills/team-quality-assurance/roles/analyst/role.md +90 -0
  137. package/.agents/skills/team-quality-assurance/roles/coordinator/commands/analyze.md +72 -0
  138. package/.agents/skills/team-quality-assurance/roles/coordinator/commands/dispatch.md +111 -0
  139. package/.agents/skills/team-quality-assurance/roles/coordinator/commands/monitor.md +250 -0
  140. package/.agents/skills/team-quality-assurance/roles/coordinator/role.md +143 -0
  141. package/.agents/skills/team-quality-assurance/roles/executor/role.md +68 -0
  142. package/.agents/skills/team-quality-assurance/roles/generator/role.md +70 -0
  143. package/.agents/skills/team-quality-assurance/roles/scout/role.md +77 -0
  144. package/.agents/skills/team-quality-assurance/roles/strategist/role.md +73 -0
  145. package/.agents/skills/team-quality-assurance/specs/pipelines.md +115 -0
  146. package/.agents/skills/team-quality-assurance/specs/team-config.json +131 -0
  147. package/.agents/skills/team-review/SKILL.md +149 -0
  148. package/.agents/skills/team-review/roles/coordinator/commands/analyze.md +71 -0
  149. package/.agents/skills/team-review/roles/coordinator/commands/dispatch.md +91 -0
  150. package/.agents/skills/team-review/roles/coordinator/commands/monitor.md +224 -0
  151. package/.agents/skills/team-review/roles/coordinator/role.md +132 -0
  152. package/.agents/skills/team-review/roles/fixer/role.md +78 -0
  153. package/.agents/skills/team-review/roles/reviewer/role.md +70 -0
  154. package/.agents/skills/team-review/roles/scanner/role.md +81 -0
  155. package/.agents/skills/team-review/specs/dimensions.md +82 -0
  156. package/.agents/skills/team-review/specs/finding-schema.json +82 -0
  157. package/.agents/skills/team-review/specs/pipelines.md +102 -0
  158. package/.agents/skills/team-review/specs/team-config.json +27 -0
  159. package/.agents/skills/team-tech-debt/SKILL.md +130 -0
  160. package/.agents/skills/team-tech-debt/roles/assessor/role.md +79 -0
  161. package/.agents/skills/team-tech-debt/roles/coordinator/commands/analyze.md +47 -0
  162. package/.agents/skills/team-tech-debt/roles/coordinator/commands/dispatch.md +156 -0
  163. package/.agents/skills/team-tech-debt/roles/coordinator/commands/monitor.md +209 -0
  164. package/.agents/skills/team-tech-debt/roles/coordinator/role.md +123 -0
  165. package/.agents/skills/team-tech-debt/roles/executor/role.md +78 -0
  166. package/.agents/skills/team-tech-debt/roles/planner/role.md +71 -0
  167. package/.agents/skills/team-tech-debt/roles/scanner/role.md +92 -0
  168. package/.agents/skills/team-tech-debt/roles/validator/role.md +80 -0
  169. package/.agents/skills/team-tech-debt/specs/pipelines.md +47 -0
  170. package/.agents/skills/team-tech-debt/specs/team-config.json +129 -0
  171. package/.agents/skills/team-testing/SKILL.md +145 -0
  172. package/.agents/skills/team-testing/roles/analyst/role.md +105 -0
  173. package/.agents/skills/team-testing/roles/coordinator/commands/analyze.md +70 -0
  174. package/.agents/skills/team-testing/roles/coordinator/commands/dispatch.md +108 -0
  175. package/.agents/skills/team-testing/roles/coordinator/commands/monitor.md +257 -0
  176. package/.agents/skills/team-testing/roles/coordinator/role.md +134 -0
  177. package/.agents/skills/team-testing/roles/executor/role.md +101 -0
  178. package/.agents/skills/team-testing/roles/generator/role.md +100 -0
  179. package/.agents/skills/team-testing/roles/strategist/role.md +85 -0
  180. package/.agents/skills/team-testing/specs/pipelines.md +101 -0
  181. package/.agents/skills/team-testing/specs/team-config.json +93 -0
  182. package/.agents/skills/wiki-connect/SKILL.md +64 -0
  183. package/.agents/skills/wiki-digest/SKILL.md +70 -0
  184. package/.agents/skills/workflow-skill-designer/SKILL.md +498 -0
  185. package/.agents/skills/workflow-skill-designer/phases/01-requirements-analysis.md +356 -0
  186. package/.agents/skills/workflow-skill-designer/phases/02-orchestrator-design.md +444 -0
  187. package/.agents/skills/workflow-skill-designer/phases/03-phase-design.md +458 -0
  188. package/.agents/skills/workflow-skill-designer/phases/04-validation.md +471 -0
  189. package/.agy/agents/cli-explore-agent.md +1 -3
  190. package/.agy/agents/cross-role-reviewer.md +170 -0
  191. package/.agy/agents/role-design-author.md +215 -0
  192. package/.agy/agents/ui-design-agent.md +1 -18
  193. package/.agy/agents/workflow-analyzer.md +1 -1
  194. package/.agy/agents/workflow-external-researcher.md +1 -1
  195. package/.agy/skills/maestro/SKILL.md +63 -27
  196. package/.agy/skills/maestro-analyze/SKILL.md +30 -4
  197. package/.agy/skills/maestro-blueprint/SKILL.md +132 -0
  198. package/.agy/skills/maestro-brainstorm/SKILL.md +119 -103
  199. package/.agy/skills/maestro-help/SKILL.md +48 -14
  200. package/.agy/skills/maestro-help/index/catalog.json +29 -11
  201. package/.agy/skills/maestro-help/phases/01-parse-intent.md +1 -1
  202. package/.agy/skills/maestro-help/phases/02-search-present.md +6 -4
  203. package/.agy/skills/maestro-help/phases/03-workflow-guide.md +60 -33
  204. package/.agy/skills/maestro-init/SKILL.md +3 -3
  205. package/.agy/skills/maestro-milestone-audit/SKILL.md +5 -3
  206. package/.agy/skills/maestro-milestone-complete/SKILL.md +7 -5
  207. package/.agy/skills/maestro-plan/SKILL.md +14 -4
  208. package/.agy/skills/maestro-ralph/SKILL.md +368 -162
  209. package/.agy/skills/maestro-ralph-execute/SKILL.md +81 -67
  210. package/.agy/skills/maestro-roadmap/SKILL.md +42 -81
  211. package/.agy/skills/quality-auto-test/SKILL.md +1 -1
  212. package/.agy/skills/team-lifecycle-v4/roles/analyst/role.md +1 -1
  213. package/.agy/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +2 -2
  214. package/.agy/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
  215. package/.agy/skills/team-lifecycle-v4/templates/architecture.md +3 -3
  216. package/.agy/skills/team-lifecycle-v4/templates/epics.md +2 -2
  217. package/.agy/skills/team-lifecycle-v4/templates/product-brief.md +3 -3
  218. package/.agy/skills/team-lifecycle-v4/templates/requirements.md +2 -2
  219. package/.claude/agents/cli-explore-agent.md +1 -3
  220. package/.claude/agents/cross-role-reviewer.md +171 -0
  221. package/.claude/agents/role-design-author.md +216 -0
  222. package/.claude/agents/ui-design-agent.md +1 -18
  223. package/.claude/agents/workflow-analyzer.md +1 -1
  224. package/.claude/agents/workflow-external-researcher.md +1 -1
  225. package/.claude/commands/maestro-analyze.md +30 -4
  226. package/.claude/commands/maestro-blueprint.md +130 -0
  227. package/.claude/commands/maestro-brainstorm.md +132 -116
  228. package/.claude/commands/maestro-init.md +3 -3
  229. package/.claude/commands/maestro-milestone-audit.md +5 -3
  230. package/.claude/commands/maestro-milestone-complete.md +7 -5
  231. package/.claude/commands/maestro-plan.md +14 -4
  232. package/.claude/commands/maestro-ralph-execute.md +81 -67
  233. package/.claude/commands/maestro-ralph.md +368 -162
  234. package/.claude/commands/maestro-roadmap.md +42 -81
  235. package/.claude/commands/maestro.md +63 -27
  236. package/.claude/commands/quality-auto-test.md +1 -1
  237. package/.claude/skills/maestro-help/SKILL.md +48 -14
  238. package/.claude/skills/maestro-help/index/catalog.json +29 -11
  239. package/.claude/skills/maestro-help/phases/01-parse-intent.md +1 -1
  240. package/.claude/skills/maestro-help/phases/02-search-present.md +6 -4
  241. package/.claude/skills/maestro-help/phases/03-workflow-guide.md +60 -33
  242. package/.claude/skills/team-lifecycle-v4/roles/analyst/role.md +1 -1
  243. package/.claude/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +2 -2
  244. package/.claude/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
  245. package/.claude/skills/team-lifecycle-v4/templates/architecture.md +3 -3
  246. package/.claude/skills/team-lifecycle-v4/templates/epics.md +2 -2
  247. package/.claude/skills/team-lifecycle-v4/templates/product-brief.md +3 -3
  248. package/.claude/skills/team-lifecycle-v4/templates/requirements.md +2 -2
  249. package/.codex/skills/maestro/SKILL.md +84 -41
  250. package/.codex/skills/maestro-amend/SKILL.md +157 -0
  251. package/.codex/skills/maestro-analyze/SKILL.md +71 -23
  252. package/.codex/skills/maestro-blueprint/SKILL.md +122 -0
  253. package/.codex/skills/maestro-brainstorm/SKILL.md +135 -45
  254. package/.codex/skills/maestro-composer/SKILL.md +1 -1
  255. package/.codex/skills/maestro-execute/SKILL.md +13 -4
  256. package/.codex/skills/maestro-help/SKILL.md +28 -18
  257. package/.codex/skills/maestro-help/catalog.json +29 -11
  258. package/.codex/skills/maestro-init/SKILL.md +7 -7
  259. package/.codex/skills/maestro-plan/SKILL.md +27 -9
  260. package/.codex/skills/maestro-ralph/SKILL.md +740 -491
  261. package/.codex/skills/maestro-roadmap/SKILL.md +55 -72
  262. package/.codex/skills/maestro-update/SKILL.md +169 -0
  263. package/.codex/skills/maestro-verify/SKILL.md +11 -2
  264. package/.codex/skills/manage-codebase-rebuild/SKILL.md +2 -2
  265. package/.codex/skills/manage-harvest/SKILL.md +10 -2
  266. package/.codex/skills/quality-retrospective/SKILL.md +9 -2
  267. package/.codex/skills/team-lifecycle-v4/roles/analyst/role.md +2 -2
  268. package/.codex/skills/team-lifecycle-v4/roles/reviewer/commands/review-spec.md +2 -2
  269. package/.codex/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
  270. package/.codex/skills/team-lifecycle-v4/templates/architecture.md +3 -3
  271. package/.codex/skills/team-lifecycle-v4/templates/epics.md +2 -2
  272. package/.codex/skills/team-lifecycle-v4/templates/product-brief.md +3 -3
  273. package/.codex/skills/team-lifecycle-v4/templates/requirements.md +2 -2
  274. package/README.md +8 -8
  275. package/README.zh-CN.md +8 -8
  276. package/dashboard/dist-server/dashboard/src/server/routes/settings.js +3 -3
  277. package/dashboard/dist-server/dashboard/src/server/routes/settings.js.map +1 -1
  278. package/dist/src/agents/cli-agent-runner.d.ts.map +1 -1
  279. package/dist/src/agents/cli-agent-runner.js +13 -7
  280. package/dist/src/agents/cli-agent-runner.js.map +1 -1
  281. package/dist/src/commands/install-backend.d.ts +12 -0
  282. package/dist/src/commands/install-backend.d.ts.map +1 -1
  283. package/dist/src/commands/install-backend.js +144 -0
  284. package/dist/src/commands/install-backend.js.map +1 -1
  285. package/dist/src/commands/spec.d.ts.map +1 -1
  286. package/dist/src/commands/spec.js +8 -1
  287. package/dist/src/commands/spec.js.map +1 -1
  288. package/dist/src/core/component-defs.d.ts +6 -0
  289. package/dist/src/core/component-defs.d.ts.map +1 -1
  290. package/dist/src/core/component-defs.js +97 -0
  291. package/dist/src/core/component-defs.js.map +1 -1
  292. package/dist/src/tools/spec-init.d.ts +16 -2
  293. package/dist/src/tools/spec-init.d.ts.map +1 -1
  294. package/dist/src/tools/spec-init.js +58 -187
  295. package/dist/src/tools/spec-init.js.map +1 -1
  296. package/dist/src/tools/spec-loader.d.ts.map +1 -1
  297. package/dist/src/tools/spec-loader.js +16 -16
  298. package/dist/src/tools/spec-loader.js.map +1 -1
  299. package/dist/src/tools/spec-seeds.d.ts +33 -0
  300. package/dist/src/tools/spec-seeds.d.ts.map +1 -0
  301. package/dist/src/tools/spec-seeds.js +200 -0
  302. package/dist/src/tools/spec-seeds.js.map +1 -0
  303. package/dist/src/tools/spec-writer.d.ts.map +1 -1
  304. package/dist/src/tools/spec-writer.js +7 -9
  305. package/dist/src/tools/spec-writer.js.map +1 -1
  306. package/dist/src/tui/install-ui/ExtraMcpConfig.d.ts +11 -0
  307. package/dist/src/tui/install-ui/ExtraMcpConfig.d.ts.map +1 -0
  308. package/dist/src/tui/install-ui/ExtraMcpConfig.js +61 -0
  309. package/dist/src/tui/install-ui/ExtraMcpConfig.js.map +1 -0
  310. package/dist/src/tui/install-ui/InstallConfirm.d.ts +3 -0
  311. package/dist/src/tui/install-ui/InstallConfirm.d.ts.map +1 -1
  312. package/dist/src/tui/install-ui/InstallConfirm.js +1 -1
  313. package/dist/src/tui/install-ui/InstallConfirm.js.map +1 -1
  314. package/dist/src/tui/install-ui/InstallExecution.d.ts +2 -0
  315. package/dist/src/tui/install-ui/InstallExecution.d.ts.map +1 -1
  316. package/dist/src/tui/install-ui/InstallExecution.js +14 -2
  317. package/dist/src/tui/install-ui/InstallExecution.js.map +1 -1
  318. package/dist/src/tui/install-ui/InstallFlow.d.ts +1 -1
  319. package/dist/src/tui/install-ui/InstallFlow.d.ts.map +1 -1
  320. package/dist/src/tui/install-ui/InstallFlow.js +16 -3
  321. package/dist/src/tui/install-ui/InstallFlow.js.map +1 -1
  322. package/dist/src/tui/install-ui/InstallHub.d.ts +2 -0
  323. package/dist/src/tui/install-ui/InstallHub.d.ts.map +1 -1
  324. package/dist/src/tui/install-ui/InstallHub.js +8 -0
  325. package/dist/src/tui/install-ui/InstallHub.js.map +1 -1
  326. package/dist/src/tui/install-ui/InstallResult.d.ts.map +1 -1
  327. package/dist/src/tui/install-ui/InstallResult.js +3 -1
  328. package/dist/src/tui/install-ui/InstallResult.js.map +1 -1
  329. package/dist/src/utils/update-notices.js +31 -0
  330. package/dist/src/utils/update-notices.js.map +1 -1
  331. package/package.json +5 -2
  332. package/templates/business-test-report.json +1 -1
  333. package/templates/index.json +1 -1
  334. package/templates/roadmap.md +15 -9
  335. package/templates/state.json +18 -17
  336. package/workflows/analyze.md +79 -11
  337. package/workflows/auto-test.md +6 -6
  338. package/workflows/blueprint.md +431 -0
  339. package/workflows/brainstorm.md +603 -496
  340. package/workflows/business-test.md +7 -7
  341. package/workflows/codebase-rebuild.md +4 -4
  342. package/workflows/harvest.md +184 -10
  343. package/workflows/init.md +9 -8
  344. package/workflows/maestro.md +1 -1
  345. package/workflows/milestone-audit.md +12 -4
  346. package/workflows/milestone-complete.md +11 -6
  347. package/workflows/plan.md +88 -22
  348. package/workflows/roadmap-common.md +1 -1
  349. package/workflows/roadmap.md +13 -3
  350. package/workflows/spec-generate.md +24 -13
  351. package/workflows/ui-design.md +2 -2
  352. package/workflows/ui-style.md +1 -1
  353. package/.agy/agents/conceptual-planning-agent.md +0 -244
  354. package/.claude/agents/conceptual-planning-agent.md +0 -245
@@ -1,491 +1,740 @@
1
- ---
2
- name: maestro-ralph
3
- description: Use when the optimal command sequence is unclear and needs automated state-based determination
4
- argument-hint: "\"intent\" [-y] | status | continue | execute"
5
- allowed-tools: Read, Write, Edit, Bash, Glob, Grep, request_user_input
6
- ---
7
-
8
- <purpose>
9
- Closed-loop decision engine for the maestro workflow lifecycle.
10
- Coordinator infers position -> decomposes intent into a goal-tracked sub-goal checklist ->
11
- builds chain -> **directly invokes each skill in-context** -> delegates evaluation at
12
- decision nodes -> dynamically grows the step chain until all sub-goals converge.
13
-
14
- Entry: `"intent"` (new session), `execute`/`continue` (resume), `status` (display).
15
- Node types: **skill** (direct in-context invocation) and **decision** (delegate / structural evaluate).
16
- Session at `.workflow/.maestro/ralph-{YYYYMMDD-HHmmss}/status.json`.
17
-
18
- Codex specifics:
19
- - **No agent spawning** skills run directly in coordinator context, sequentially, one step at a time.
20
- - **Goal created via built-in tool** — `create_goal` binds the decomposed sub-goal checklist as a
21
- hard objective; `update_plan` mirrors steps; `update_goal` releases on convergence. Codex
22
- registers the goal itself via `create_goal`.
23
- </purpose>
24
-
25
- <context>
26
- $ARGUMENTS -- intent text, flags, or keywords.
27
-
28
- **Parse**: `-y` -> auto_mode. `.md/.txt` path -> input_doc (supplementary, never substitutes lifecycle). Remaining -> intent.
29
-
30
- **`-y` downstream propagation**:
31
-
32
- | Skill | Flag | Effect |
33
- |-------|------|--------|
34
- | maestro-init | `-y` | skip interactive |
35
- | maestro-analyze | `-y` | skip scoping |
36
- | maestro-brainstorm | `-y` | skip questions |
37
- | maestro-roadmap | `-y` | skip choices |
38
- | maestro-plan | `-y` | skip confirmation |
39
- | maestro-execute | `-y` | skip confirmation, auto-continue blocked |
40
- | quality-auto-test | `-y` | skip plan confirmation |
41
- | quality-test | `-y --auto-fix` | auto gap-fix loop |
42
- | maestro-verify | `-y` | skip confirmation |
43
- | quality-review | `-y` | skip confirmation |
44
- | quality-debug | `-y` | skip confirmation |
45
- | maestro-milestone-complete | `-y` | skip knowledge promotion |
46
- | maestro-milestone-audit | `-y` | skip confirmation |
47
-
48
- **State files**: `.workflow/state.json`, `.workflow/roadmap.md`, `.workflow/.maestro/ralph-*/status.json`
49
- </context>
50
-
51
- <invariants>
52
- 1. **Skills invoked DIRECTLY in-context** — coordinator runs `$skill {resolved_args}` itself, sequentially. NO spawn_agents_on_csv, NO wave, NO worker CSV.
53
- 2. **Coordinator owns the loop** — infer -> decompose -> build -> for each step: resolve args -> invoke skill -> read result -> persist -> next.
54
- 3. **Decision nodes evaluate, never execute** — quality-gate/goal-gate via `maestro delegate --role analyze`; structural decisions evaluated directly.
55
- 4. **Goal is tool-created, not prompt-emitted** — `A_DECOMPOSE_TASKS` calls `create_goal` with the sub-goal checklist as success criteria. `update_goal` on full convergence; never released while sub-goals unmet.
56
- 5. **task_decomposition drives DYNAMIC step growth** — sub-goals are the convergence spec; `steps[]` is a living array. `post-goal-audit` re-checks the checklist and **inserts scoped skill steps** for every unmet sub-goal (same insert+reindex+retry mechanism as fix-loops). Decomposition feeds adaptive branching, never freezes a plan.
57
- 6. **Status JSON: schema-additive + step-dynamic** — decomposition fields (`boundary_contract`, `execution_criteria`, `task_decomposition`, `goal_checklist_path`) are OPTIONAL; absent = old behavior. `steps[]` grows at runtime via decisions; `goal_ref` traces dynamically-added steps. Never remove/rename existing fields.
58
- 7. **Sequential execution** one step at a time in index order; no parallelism (no spawning). Each step's result read before the next starts.
59
- 8. **Quality mode governs steps** — full/standard/quick determines quality stages.
60
- 9. **passed_gates skip** — already-passed gates not re-run unless code changed.
61
- </invariants>
62
-
63
- <state_machine>
64
-
65
- <states>
66
- S_PARSE_ROUTE -- 解析参数、路由入口点 PERSIST: --
67
- S_STATUS -- 显示 session 进度后结束 PERSIST: --
68
- S_INFER -- 推断生命周期位置 PERSIST: session.lifecycle_position
69
- S_RESOLVE_PHASE -- 解析目标 phase PERSIST: session.phase
70
- S_QUALITY_MODE -- 确定质量模式 full/standard/quick PERSIST: session.quality_mode
71
- S_DECOMPOSE -- 边界澄清、写执行准则+子目标、建 goal PERSIST: session.boundary_contract, .execution_criteria, .task_decomposition
72
- S_BUILD_CHAIN -- 构建步骤链 PERSIST: session.steps[]
73
- S_CREATE_SESSION -- 写 status.json PERSIST: session (full)
74
- S_CONFIRM -- 用户确认(auto_mode skip) PERSIST: --
75
- S_LOAD_NEXT -- 找下一个 pending step PERSIST: --
76
- S_STEP_EXEC -- 直接调用 skill 执行该 step PERSIST: session.steps[], context
77
- S_DECISION_EVAL -- 评估质量门 / 目标门 PERSIST: --
78
- S_APPLY_VERDICT -- 应用裁决 PERSIST: passed_gates[], retry_count
79
- S_FIX_LOOP -- 插入修复步骤、重索引 PERSIST: session.steps[] (expanded)
80
- S_COMPLETE -- 标记完成 PERSIST: session.status = "completed"
81
- S_PAUSED -- 暂停等待人工 PERSIST: session.status = "paused"
82
- S_FALLBACK -- 请求用户输入 PERSIST: session.status = "paused"
83
- </states>
84
-
85
- <transitions>
86
-
87
- S_PARSE_ROUTE:
88
- -> S_STATUS WHEN: intent == "status"
89
- -> S_LOAD_NEXT WHEN: intent == "execute" | "continue"
90
- -> S_DECISION_EVAL WHEN: running session with decision step in "running"
91
- -> S_INFER WHEN: intent non-empty
92
- -> S_FALLBACK WHEN: no intent AND no running session
93
-
94
- S_STATUS -> END DO: A_SHOW_STATUS
95
-
96
- S_INFER:
97
- -> S_RESOLVE_PHASE WHEN: position resolved DO: A_INFER_POSITION
98
- -> S_FALLBACK WHEN: cannot infer
99
-
100
- S_RESOLVE_PHASE:
101
- -> S_QUALITY_MODE DO: A_RESOLVE_PHASE
102
-
103
- S_QUALITY_MODE:
104
- -> S_DECOMPOSE DO: A_DETERMINE_QUALITY_MODE
105
-
106
- S_DECOMPOSE:
107
- -> S_BUILD_CHAIN DO: A_DECOMPOSE_TASKS
108
- GUARD: broad intent (重构/全面/重写/迁移/overhaul/migrate/rewrite) -> MUST clarify boundary even if auto_mode
109
- GUARD: narrow intent (single file/function/bug) -> auto-derive, skip questions
110
- GUARD: position in {brainstorm, init} -> skip decomposition (no concrete target yet)
111
-
112
- S_BUILD_CHAIN:
113
- -> S_CREATE_SESSION DO: A_BUILD_STEPS
114
-
115
- S_CREATE_SESSION:
116
- -> S_CONFIRM WHEN: not auto_mode DO: A_CREATE_SESSION
117
- -> S_LOAD_NEXT WHEN: auto_mode DO: A_CREATE_SESSION
118
-
119
- S_CONFIRM:
120
- -> S_LOAD_NEXT WHEN: "Proceed"
121
- -> S_BUILD_CHAIN WHEN: "Edit"
122
- -> S_QUALITY_MODE WHEN: "Change quality mode"
123
- -> S_PAUSED WHEN: "Cancel"
124
-
125
- S_LOAD_NEXT:
126
- -> S_DECISION_EVAL WHEN: next_step.type == "decision"
127
- -> S_STEP_EXEC WHEN: next_step.type == "skill"
128
- -> S_COMPLETE WHEN: no pending steps
129
-
130
- S_STEP_EXEC:
131
- -> S_LOAD_NEXT WHEN: success DO: A_EXEC_STEP
132
- -> S_PAUSED WHEN: failed GUARD: auto_mode retry once then pause
133
-
134
- S_DECISION_EVAL:
135
- -> S_APPLY_VERDICT WHEN: quality-gate DO: A_DELEGATE_EVALUATE
136
- -> S_APPLY_VERDICT WHEN: goal-gate DO: A_GOAL_AUDIT_EVALUATE
137
- -> S_APPLY_VERDICT WHEN: structural DO: A_STRUCTURAL_EVALUATE
138
-
139
- S_APPLY_VERDICT:
140
- -> S_LOAD_NEXT WHEN: proceed DO: add gate to passed_gates
141
- -> S_LOAD_NEXT WHEN: post-goal-audit + all sub-goals met DO: A_APPLY_GOAL_DONE
142
- -> S_LOAD_NEXT WHEN: post-goal-audit + unmet sub-goals DO: A_APPLY_GOAL_FIX
143
- -> S_FIX_LOOP WHEN: fix DO: clear passed_gates, increment retry
144
- -> S_PAUSED WHEN: escalate
145
- -> S_LOAD_NEXT WHEN: post-milestone + next milestone DO: A_ADVANCE_MILESTONE
146
- -> S_COMPLETE WHEN: post-milestone + no next
147
- -> S_PAUSED WHEN: post-debug-escalate (always, even -y)
148
- GUARD: retry >= max_retries -> force escalate
149
- GUARD: confidence < 60 AND proceed -> override to fix
150
- GUARD: confidence > 95 AND fix AND retry > 0 -> suggest proceed
151
-
152
- S_FIX_LOOP:
153
- -> S_LOAD_NEXT DO: A_INSERT_FIX_LOOP
154
-
155
- S_COMPLETE -> END DO: A_FINALIZE
156
- S_PAUSED -> END DO: A_PAUSE_SESSION
157
- S_FALLBACK -> S_PARSE_ROUTE WHEN: user input | -> END WHEN: cancel
158
-
159
- </transitions>
160
-
161
- <actions>
162
-
163
- ### A_INFER_POSITION
164
-
165
- **Intent-based override**: brainstorm pattern -> position = brainstorm.
166
-
167
- **Bootstrap detection**:
168
-
169
- | Condition | Position |
170
- |-----------|----------|
171
- | No .workflow/ + no source | brainstorm |
172
- | No .workflow/ + has source | init |
173
- | Has .workflow/ but no state.json | init |
174
- | Has state.json | artifact-based inference |
175
-
176
- **Artifact-based inference:** Filter by current_milestone + target phase:
177
-
178
- | Condition | Position |
179
- |-----------|----------|
180
- | no milestones defined or no roadmap.md | `roadmap` |
181
- | no artifacts for target phase | `analyze` |
182
- | latest artifact = analyze | `plan` |
183
- | latest artifact = plan | `execute` |
184
- | latest artifact = execute | `verify` |
185
- | latest artifact = verify | → refine from result files |
186
-
187
- **Refine from verify results:**
188
-
189
- | Condition | Position |
190
- |-----------|----------|
191
- | verification.json: passed==false or gaps[] non-empty | `verify-failed` |
192
- | passed==true, no review.json, has auto-test report | `review` |
193
- | passed==true, no review.json, no auto-test report | `business-test` (full) / `review` (standard/quick) |
194
- | review.json: verdict=="BLOCK" | `review-failed` |
195
- | review.json: verdict!="BLOCK" | `test` |
196
- | uat.md: all passed | `milestone-audit` |
197
- | uat.md: has failures | `test-failed` |
198
-
199
- ### A_RESOLVE_PHASE
200
-
201
- Priority: regex from intent `phase\s*(\d+)` -> latest in-progress artifact's phase -> first incomplete phase -> null (brainstorm/init/roadmap) -> request_user_input if ambiguous.
202
-
203
- ### A_DETERMINE_QUALITY_MODE
204
-
205
- | Condition | Mode | Pipeline |
206
- |-----------|------|----------|
207
- | Has REQ-*.md + phase scope | full | verify -> business-test -> review -> test-gen -> test |
208
- | Default | standard | verify -> review -> test (test-gen if coverage < 80%) |
209
- | User --quality quick | quick | verify -> review --tier quick |
210
-
211
- ### A_DECOMPOSE_TASKS
212
-
213
- Build the boundary contract + outcome sub-goal checklist, then **register it as a Codex goal via the built-in tool**. Runs once at session creation, before chain build. Skipped when position in {brainstorm, init}.
214
-
215
- **1. Classify intent breadth:**
216
-
217
- | Pattern | Breadth | Clarify? |
218
- |---------|---------|----------|
219
- | 重构/全面/重写/重做/整体/迁移 · overhaul/migrate/rewrite/revamp | broad | MUST (ignores auto_mode) |
220
- | named single file/function/bug, "fix X", "add Y to Z" | narrow | skip — auto-derive |
221
- | otherwise | medium | clarify unless auto_mode |
222
-
223
- **2. Clarify boundary** (broad/medium) — `request_user_input`, ≤3 rounds, options pre-filled from intent + a quick Glob/Grep scan of the target module:
224
-
225
- | Round | Question | Drives |
226
- |-------|----------|--------|
227
- | Scope | 哪些目录/文件/层在范围内?明确排除什么? | boundary_contract.in_scope / out_of_scope |
228
- | Constraints | 必须向后兼容?公共 API 冻结?行为/性能预算?测试门槛? | boundary_contract.constraints + execution_criteria |
229
- | Done | 什么可观测结果算"完成"?(如:测试全绿 + 行为零变更 + X 指标) | boundary_contract.definition_of_done |
230
-
231
- narrow → derive defaults from intent + codebase, skip questions.
232
-
233
- **3. Derive `execution_criteria`** (执行准则 — 3-6 short imperative rules every step obeys): backward-compat stance, scope-freeze ("只改请求范围"), test/coverage bar, fix-don't-hide, incremental commit.
234
-
235
- **4. Derive `task_decomposition`** (子目标清单 outcome-oriented, NOT lifecycle stages). Each entry:
236
- ```json
237
- { "id": "G1", "goal": "<deliverable>", "boundary": "<in/out note>",
238
- "done_when": "<objectively checkable condition>",
239
- "evidence": "verification.json|review.json|uat.md|<test path>",
240
- "lifecycle": ["analyze","execute","verify"], "status": "pending" }
241
- ```
242
- **Cleverness rule**: `done_when` MUST be objectively verifiable and SHOULD reference an artifact ralph already produces, so `post-goal-audit` can re-verify after context loss. Map each sub-goal to the lifecycle phase(s) producing its evidence — the existing pipeline becomes the machinery that satisfies the goals.
243
-
244
- **5. Persist** (additive) into session: `boundary_contract`, `execution_criteria`, `task_decomposition`, `goal_checklist_path` = `{session_dir}/goal-checklist.md`. Write the checklist file (see Appendix: Goal Checklist Template).
245
-
246
- **6. Register goal via `create_goal`:**
247
- ```
248
- create_goal({
249
- objective: "Ralph: {intent} converge all {N} sub-goals within boundary",
250
- success_criteria: task_decomposition.map(g => `${g.id}: ${g.done_when}`),
251
- constraints: [...execution_criteria, "stay within boundary_contract"]
252
- })
253
- ```
254
- Goal stays bound until A_APPLY_GOAL_DONE / A_FINALIZE calls `update_goal`. Skipped feature → no create_goal beyond the default lifecycle goal in A_CREATE_SESSION.
255
-
256
- ### A_BUILD_STEPS
257
-
258
- **Lifecycle stages:**
259
-
260
- | Stage | Skill | Barrier | Quality Mode | Decision after |
261
- |-------|-------|---------|-------------|----------------|
262
- | brainstorm | maestro-brainstorm "{intent}" | yes | all | — |
263
- | init | maestro-init | no | all | — |
264
- | roadmap | maestro-roadmap "{intent}" | yes | all | — |
265
- | analyze | maestro-analyze {phase} | yes | all | — |
266
- | plan | maestro-plan {phase} | yes | all | — |
267
- | execute | maestro-execute {phase} | yes | all | |
268
- | verify | maestro-verify {phase} | no | all | post-verify |
269
- | business-test | quality-auto-test {phase} | no | full only | post-business-test |
270
- | review | quality-review {phase} | no | all (quick: --tier quick) | post-review |
271
- | test-gen | quality-auto-test {phase} | no | full; standard if coverage<80% | — |
272
- | test | quality-test {phase} | no | full, standard | post-test |
273
- | milestone-audit | maestro-milestone-audit | no | all | — |
274
- | goal-audit | *(decision-only, no skill)* | | all (only if decomposed) | post-goal-audit |
275
- | milestone-complete | maestro-milestone-complete | no | all | post-milestone |
276
-
277
- **Build rules:**
278
- 1. Start from `lifecycle_position`, end at `milestone-complete`
279
- 2. Skip stages with existing completed artifacts (check state.json)
280
- 3. Filter stages by `quality_mode` — skip non-applicable stages (see Quality Mode column)
281
- 4. Quick mode: `review` appends `--tier quick`; skips `business-test`, `test-gen`, `test`
282
- 5. Insert decision node after each stage with non-empty Decision column: `{ type: "decision", decision: "<gate>", retry_count: 0, max_retries: 2 }`
283
- 6. **If `task_decomposition` present**: insert a `goal-audit` pure-decision node (no skill) immediately before `milestone-complete` → `decision:post-goal-audit`
284
- 7. Step type for runnable stages = `"skill"` (executed directly in-context, no spawn). `barrier` field retained as optional metadata only — execution is sequential regardless
285
- 8. Args use placeholders `{phase}`, `{intent}`, `{dirs}` — resolved at step execution time
286
- 9. Append `-y` to all skill args when `auto_mode` is true (see -y propagation table in context)
287
- 10. Dynamically-inserted steps (by `post-goal-audit` / fix-loops) carry optional `goal_ref: "G{n}"`
288
-
289
- ### A_CREATE_SESSION
290
-
291
- 1. Write `.workflow/.maestro/ralph-{YYYYMMDD-HHmmss}/status.json` (see Session JSON Schema) — include decomposition fields only if produced (additive)
292
- 2. Initialize tracking:
293
- - If decomposed: goal already registered by A_DECOMPOSE_TASKS. Else: `create_goal({ objective: "Ralph lifecycle: {quality_mode} mode, {N} steps from {lifecycle_position}" })`
294
- - `update_plan({ plan: steps.map(step => ({ step, status: "pending" })) })`
295
- 3. If decomposed: display sub-goal checklist summary (path + G-ids + done_when). Display chain overview.
296
-
297
- ### A_EXEC_STEP
298
-
299
- Direct in-context skill invocation — **replaces the old spawn/wave/CSV mechanism**.
300
-
301
- 1. Conditional step eval: `check_coverage` → read validation.json, skip step if ≥ threshold
302
- 2. Resolve `{phase}` / `{intent}` / `{dirs}` placeholders; arg enrichment (plan → `--dir {analysis_dir}`, execute → `--dir {plan_dir}`); append `-y` if auto_mode
303
- 3. Mark step `status="running"`, persist status.json + `update_plan` (this step → in_progress)
304
- 4. **Invoke the skill directly**: execute `$skill {resolved_args}` in the coordinator's own context (NO spawn_agents_on_csv, NO worker). Read its produced artifacts directly.
305
- 5. On success: capture summary + artifacts; mark step `status="done"`; update context (analyze→analysis_dir, plan→plan_dir, execute→exec_status, brainstorm→brainstorm_dir, roadmap→spec_session_id)
306
- 6. On failure: mark `status="failed"`; auto_mode → retry once → still failed → S_PAUSED
307
- 7. Persist status.json + `update_plan` after every step
308
-
309
- ### A_DELEGATE_EVALUATE
310
-
311
- 1. Resolve result files per decision type (post-verify: verification.json, post-business-test: report.json, post-review: review.json, post-test: uat.md + test-results.json)
312
- 2. Execute `maestro delegate` with analysis prompt parse verdict: STATUS (proceed/fix/escalate), REASON, GAP_SUMMARY, CONFIDENCE_SCORE, WEAKEST_DIMENSION
313
- 3. Confidence adjustment: score < 60 + proceed fix; score > 95 + fix + retry > 0 → suggest proceed
314
-
315
- ### A_GOAL_AUDIT_EVALUATE
316
-
317
- Re-checks the goal-checklist and decides whether `steps[]` must dynamically grow. Only runs when `task_decomposition` present.
318
-
319
- 1. Read `session.task_decomposition` + `goal_checklist_path`
320
- 2. For each sub-goal `status != "done"`: resolve its `evidence` artifact under the current phase scratch dir
321
- 3. Delegate read-only audit:
322
- ```
323
- maestro delegate "PURPOSE: 审计子目标达成情况,决定是否需要补充执行步骤
324
- TASK: 逐个读取未完成子目标的 evidence 产物 | 对照 done_when 判定 met/unmet | 给出每个 unmet 子目标的差距与目标 phase
325
- CONTEXT: @{goal_checklist_path} @{evidence artifacts} | 执行准则: {execution_criteria} | 边界: {boundary_contract}
326
- EXPECTED: ---VERDICT--- STATUS(all_met|has_unmet) / UNMET=[{id:G2,gap:'...',target_phase:execute}] / CONFIDENCE_SCORE(0-100) ---END---
327
- CONSTRAINTS: 只评估不修改 | 严格按 done_when 判定 | 不得超出 boundary_contract"
328
- --role analyze --mode analysis
329
- ```
330
- 4. On result: parse UNMET. For each met sub-goal → set `task_decomposition[i].status="done"` + flip `[ ]→[x]` in goal-checklist.md
331
- 5. Verdict: `all_met` A_APPLY_GOAL_DONE; `has_unmet` A_APPLY_GOAL_FIX
332
- GUARD: retry_count >= max_retries AND still unmet → escalate (insert quality-debug, S_PAUSED for human)
333
-
334
- ### A_STRUCTURAL_EVALUATE
335
-
336
- **post-milestone**: Read state.json → next milestone → update session (milestone, phase, reset gates), re-infer quality_mode, insert lifecycle steps. No next → complete.
337
- **post-debug-escalate**: Pause (always, even -y). Display: max retries reached, manual intervention needed.
338
-
339
- ### A_INSERT_FIX_LOOP
340
-
341
- Insert fix template by decision type after current position, reindex:
342
- - **post-verify**: debug → plan --gaps → execute → verify → decision:post-verify
343
- - **post-business-test**: debug --from-business-test plan --gaps → execute → verify → decision:post-verify → auto-test → decision:post-business-test
344
- - **post-review**: debug → plan --gaps → execute → verify → decision:post-verify → review → decision:post-review
345
- - **post-test**: debug --from-uat plan --gaps execute → verify → decision:post-verify → [auto-test + decision:post-business-test (full)] → review → decision:post-review → [auto-test (full; standard if <80%)] → test → decision:post-test
346
-
347
- ### A_APPLY_GOAL_FIX
348
-
349
- **Dynamic step-growth core.** For every unmet sub-goal, inject scoped skill steps so `steps[]` grows toward convergence:
350
-
351
- 1. For each `unmet` sub-goal `G{n}` (grouped by `target_phase` to avoid duplicate runs), insert before the `goal-audit` node a scoped mini-loop (see Appendix: Fix-Loop Templates → post-goal-audit), each inserted step tagged `goal_ref: "G{n}"`, type `"skill"`
352
- 2. Re-append a fresh `decision:post-goal-audit {retry+1}` after inserted steps (re-loops until all met or max retries)
353
- 3. Reindex steps, increment retry_count, persist status.json + `update_plan` (steps[] grew)
354
- 4. Display: ◆ Goal audit: {k} sub-goals unmet → +{N} steps inserted (G{ids}), retry {r}/{max}
355
-
356
- ### A_APPLY_GOAL_DONE
357
-
358
- 1. Set all `task_decomposition[*].status="done"`, persist status.json
359
- 2. Append `ALL_GOALS_DONE` sentinel to goal-checklist.md
360
- 3. `update_goal({ status: "complete" })` releases the decomposition goal constraint
361
- 4. Mark goal-audit decision completed; proceed to `milestone-complete`
362
- 5. Display: Goal audit: 全部子目标达成 goal 已释放
363
-
364
- ### A_ADVANCE_MILESTONE
365
-
366
- Update session: milestone, phase, reset passed_gates. Re-infer quality_mode. Build + insert new lifecycle steps for next milestone (re-append goal-audit before milestone-complete if decomposed).
367
-
368
- ### A_FINALIZE
369
-
370
- 1. Set `session.status = "completed"`, write status.json
371
- 2. Sync `update_plan`: all steps → "completed"
372
- 3. `update_goal({ status: "complete" })` release goal constraint (idempotent if already released by A_APPLY_GOAL_DONE)
373
- 4. Display completion report
374
-
375
- ### A_PAUSE_SESSION
376
-
377
- 1. Set `session.status = "paused"`, write status.json
378
- 2. Do NOT call `update_goal` goal stays bound for `execute`/`continue` resume
379
- 3. Display: use `$maestro-ralph execute` to continue
380
-
381
- ### A_SHOW_STATUS
382
-
383
- 1. Find latest ralph session
384
- 2. Display: Session, Status, Position, Quality mode, Progress, Current step
385
- 3. List steps: [✓] done, [▸] running, [ ] pending, [◆] decision (with goal_ref if set)
386
- 4. If `task_decomposition` present: show `Sub-goals: {done}/{total}` + unmet G-ids (graceful skip if absent — backward compat)
387
-
388
- </actions>
389
-
390
- </state_machine>
391
-
392
- <appendix>
393
-
394
- ### Session JSON Schema
395
-
396
- ```json
397
- {
398
- "session_id": "ralph-{YYYYMMDD-HHmmss}",
399
- "source": "ralph", "intent": "", "status": "running|paused|completed",
400
- "lifecycle_position": "", "phase": null, "milestone": null,
401
- "auto_mode": false, "quality_mode": "standard", "passed_gates": [],
402
- "context": { "issue_id": null, "scratch_dir": null, "plan_dir": null, "analysis_dir": null, "brainstorm_dir": null },
403
- "steps": [{ "index": 0, "type": "skill|decision", "skill": "", "args": "", "barrier": false, "status": "pending", "goal_ref": null }],
404
- "waves": [], "current_step": 0,
405
-
406
- "_comment": "↓ OPTIONAL additive decomposition block. Absent no decomposition; readers MUST tolerate missing keys. Never remove/rename above fields.",
407
- "boundary_contract": { "in_scope": [], "out_of_scope": [], "constraints": [], "definition_of_done": "" },
408
- "execution_criteria": [],
409
- "task_decomposition": [
410
- { "id": "G1", "goal": "", "boundary": "", "done_when": "", "evidence": "", "lifecycle": [], "status": "pending|done" }
411
- ],
412
- "goal_checklist_path": ""
413
- }
414
- ```
415
-
416
- > **Extensibility contract (two dimensions)**:
417
- > 1. **Schema-additive** — decomposition block fields optional; absence = old behavior.
418
- > 2. **Step-dynamic** — `steps[]` is a living array: `post-goal-audit` (and fix/escalate/milestone decisions) **append/reindex steps at runtime** until sub-goals converge. The JSON "extends" primarily by growing `steps[]`, not by freezing a plan. `goal_ref` (optional, default null) traces dynamically-added steps to the spawning sub-goal. `waves` retained as empty array for backward-compat (no longer populated — spawning removed).
419
-
420
- ### Goal Checklist Template
421
-
422
- Written to `{session_dir}/goal-checklist.md`. Stable within the session; never renamed (so the registered `create_goal` success criteria stay traceable).
423
-
424
- ```markdown
425
- # Ralph Goal Checklist — {session_id}
426
- > Intent: {intent}
427
-
428
- ## 执行准则 / Execution Criteria
429
- - {criterion 1}
430
- - {criterion 2}
431
-
432
- ## 边界契约 / Boundary Contract
433
- - In scope: {in_scope}
434
- - Out of scope: {out_of_scope}
435
- - Constraints: {constraints}
436
- - Definition of Done: {definition_of_done}
437
-
438
- ## 子目标 / Sub-goals
439
- - [ ] G1: {goal} — done when: {done_when} (evidence: {evidence})
440
- - [ ] G2: {goal} done when: {done_when} (evidence: {evidence})
441
-
442
- <!-- A_GOAL_AUDIT_EVALUATE flips [ ]→[x] when evidence confirms;
443
- A_APPLY_GOAL_DONE appends `ALL_GOALS_DONE` once all [x]. -->
444
- ```
445
-
446
- ### Fix-Loop Templates
447
-
448
- - **post-verify**: `$quality-debug "{gap}"` → `$maestro-plan --gaps {phase}` → `$maestro-execute {phase}` → `$maestro-verify {phase}` → decision:post-verify {retry+1}
449
- - **post-business-test**: debug --from-business-test → plan --gaps → execute → verify → decision:post-verify {0} → auto-test → decision:post-business-test {retry+1}
450
- - **post-review**: debug → plan --gaps → execute → review → decision:post-review {retry+1}
451
- - **post-test**: debug --from-uat → plan --gaps → execute → verify → decision:post-verify {0} → auto-test → decision:post-business-test {0} → review → decision:post-review {0} → auto-test → test → decision:post-test {retry+1}
452
- - **post-goal-audit** (per unmet sub-goal group — dynamically grows steps[]):
453
- ```
454
- # for each unmet G{n}, scoped to its target_phase:
455
- $maestro-plan --gaps {target_phase} "G{n}: {gap}" [goal_ref: G{n}]
456
- $maestro-execute {target_phase} [goal_ref: G{n}]
457
- $maestro-verify {target_phase} [goal_ref: G{n}]
458
- # after all unmet groups inserted:
459
- decision:post-goal-audit {retry+1}
460
- ```
461
- Only unmet sub-goals' phases re-run (no full-pipeline replay); loop exits on `all_met` (→ A_APPLY_GOAL_DONE) or retry max (→ escalate). Growth bounded.
462
-
463
- ### Error Codes
464
-
465
- | Condition | Recovery |
466
- |-----------|----------|
467
- | No intent and no running session | Prompt for intent |
468
- | Cannot infer lifecycle position | Show raw state, ask user |
469
- | Artifact dir not found for decision | Show glob results, ask user |
470
- | Delegate verdict parse failed | Fallback: treat as "fix" |
471
- | Step skill invocation failed | Mark step failed; auto_mode retry once then pause |
472
- | No session for execute/continue | Suggest $maestro-ralph "intent" |
473
-
474
- ### Success Criteria
475
-
476
- - [ ] Lifecycle position inferred from bootstrap + artifact chain + result files
477
- - [ ] Quality mode governs step generation
478
- - [ ] Decomposition runs as initial step; broad intent boundary-clarified via ≤3 questions (ignores auto_mode); narrow auto-derives
479
- - [ ] Goal registered via built-in `create_goal` with sub-goal success criteria (NOT a user-copied prompt)
480
- - [ ] status.json enriched additively with boundary_contract + execution_criteria + task_decomposition; absent = old behavior preserved
481
- - [ ] goal-checklist.md generated with verifiable done_when + ALL_GOALS_DONE sentinel
482
- - [ ] post-goal-audit decision inserted before milestone-complete (only when decomposed)
483
- - [ ] Unmet sub-goals DYNAMICALLY grow steps[] via scoped per-goal mini-loops (goal_ref tagged), loop until all_met or max retries → escalate
484
- - [ ] Skills invoked DIRECTLY in-context — NO spawn_agents_on_csv, NO wave/CSV/worker
485
- - [ ] Sequential execution; status.json + update_plan persisted after every step and decision
486
- - [ ] Quality-gate / goal-gate decisions delegate-evaluated via maestro delegate --role analyze
487
- - [ ] Confidence-based verdict adjustment applied
488
- - [ ] -y: auto-follow verdict, no STOP (except post-debug-escalate)
489
- - [ ] update_goal released on convergence (A_APPLY_GOAL_DONE / A_FINALIZE); held while paused
490
-
491
- </appendix>
1
+ ---
2
+ name: maestro-ralph
3
+ description: Use when the optimal command sequence is unclear and needs automated state-based determination
4
+ argument-hint: "<intent> [-y] | status | continue"
5
+ allowed-tools: Read, Write, Edit, Bash, Glob, Grep, request_user_input
6
+ ---
7
+ <purpose>
8
+ Closed-loop decision engine for the maestro workflow lifecycle.
9
+ Reads project state infers position builds adaptive chain → delegates execution.
10
+
11
+ Entry points:
12
+ - **`/maestro-ralph "intent"`** New session: infer decompose build → execute
13
+ - **`/maestro-ralph continue`** — Resume via maestro-ralph-execute
14
+ - **`/maestro-ralph status`** Display session progress
15
+
16
+ Initial decomposition (S_DECOMPOSE): boundary-clarified via ≤3 questions for broad intents (重构/全面/迁移/重写). 写入 status.json 的 `boundary_contract` / `execution_criteria` / `task_decomposition`,附 `/goal` prompt。
17
+
18
+ Node types:
19
+ - **internal** (default): ralph-execute `Read({command_path})` 命令 .md,按内容内联执行
20
+ - **decision**: ralph 评估
21
+ - **external**: 仅在显式声明时使用(`maestro delegate --to claude`)
22
+
23
+ Key difference from maestro coordinator:
24
+ - maestro: static chain → one-time selection → runs all steps
25
+ - ralph: living chain → decision nodes re-evaluate → chain grows/shrinks dynamically
26
+
27
+ Session: `.workflow/.maestro/ralph-{YYYYMMDD-HHmmss}/status.json`
28
+ Mutual invocation with `/maestro-ralph-execute` forms a self-perpetuating work loop.
29
+
30
+ ### Execution Flow
31
+
32
+ ```
33
+ /maestro-ralph "intent" ─▶ ralph infer → decompose → build chain
34
+ │ resolves command_path per step
35
+ │ writes status.json
36
+ │ emits /goal prompt
37
+
38
+ ralph-execute ◀─┐ internal Read(command_path) inline
39
+ │ │ decision Skill("maestro-ralph")
40
+ └─────────┘ writes step.completion_confirmed
41
+ loop until all completion_confirmed | paused
42
+ ```
43
+ </purpose>
44
+
45
+ <context>
46
+ $ARGUMENTS intent text, flags, or keywords.
47
+
48
+ **Parse:**
49
+ ```
50
+ -y flag → auto_confirm = true
51
+ .md/.txt path → input_doc (supplementary context only, NEVER substitutes lifecycle stages)
52
+ Remaining → intent
53
+ ```
54
+
55
+ **State files:**
56
+ - `.workflow/state.json` artifact registry, milestones, phases
57
+ - `.workflow/roadmap.md` milestone/phase structure
58
+ - `.workflow/.maestro/ralph-*/status.json`ralph session state
59
+ </context>
60
+
61
+ <invariants>
62
+ 1. **Ralph never executes steps** — only creates sessions and evaluates decisions
63
+ 2. **Handoff via Skill("maestro-ralph-execute")** — at session creation and after decision evaluation
64
+ 3. **Decision delegates read-only** — `maestro delegate --role analyze --mode analysis`
65
+ 4. **Default type = internal** — `external` 仅显式标注时出现,build 不默认生成
66
+ 5. **status.json 是唯一真源** — 不生成 markdown 清单或侧文件
67
+ 6. **每个 step 必须 `completion_confirmed: true`** — 基于 `--- COMPLETION STATUS ---` 的 `STATUS: DONE`;缺失则视为未完成
68
+ 7. **command_path 在 A_BUILD_STEPS 解析** — 全局优先 `~/.claude/commands/{name}.md`,fallback 项目 `.claude/commands/{name}.md`,写入 status.json
69
+ 8. **Decomposition is outcome-oriented** — sub-goals 为可观测交付,禁止 lifecycle 复刻;`/goal` 用户绑定,ralph 只发提示词
70
+ 9. **planning_mode governs arg granularity** — `unified` → skill args 无 `{phase}`;`independent` → 含 `{phase}`
71
+ 10. **task_decomposition 驱动 steps[] 动态生长** — `post-goal-audit` unmet 子目标插入 scoped mini-loop;字段可选/累加,既有字段不删不改
72
+ </invariants>
73
+
74
+ <state_machine>
75
+
76
+ <states>
77
+ S_PARSE_ROUTE — 解析参数、路由入口 PERSIST:
78
+ S_STATUS — 显示 session 进度 PERSIST:
79
+ S_CONTINUE 恢复执行 PERSIST:
80
+ S_RESOLVE_PHASE — 解析 phase + phase_is_new + D-007 milestone PERSIST: session.phase, session.phase_is_new, session.milestone
81
+ S_INFER — 基于已解析 phase 推断 lifecycle_position PERSIST: session.lifecycle_position
82
+ S_RESOLVE_SCOPE — 读 macro analyze conclusions.scope_verdict PERSIST: session.scope_verdict, session.analyze_macro_id
83
+ S_QUALITY_MODE — 决定质量管线模式 PERSIST: session.quality_mode
84
+ S_PLANNING_MODE — 决定统一/独立规划模式 PERSIST: session.planning_mode
85
+ S_DECOMPOSE — 边界澄清、写执行准则+子目标清单 PERSIST: session.boundary_contract, .execution_criteria, .task_decomposition
86
+ S_BUILD_CHAIN — 构建步骤链 PERSIST: session.steps[]
87
+ S_CREATE_SESSION — 写 status.json PERSIST: session (全量)
88
+ S_CONFIRM — 用户确认 PERSIST:
89
+ S_DISPATCH — 移交 maestro-ralph-execute PERSIST:
90
+ S_DECISION_EVAL 委托评估质量门 PERSIST:
91
+ S_APPLY_VERDICT — 应用裁决 + 插入命令 PERSIST: session.steps[], session.passed_gates[]
92
+ S_FALLBACK — 请求用户输入 PERSIST:
93
+ </states>
94
+
95
+ <transitions>
96
+
97
+ S_PARSE_ROUTE:
98
+ S_STATUS WHEN: intent == "status"
99
+ → S_CONTINUE WHEN: intent == "continue"
100
+ → S_DECISION_EVAL WHEN: running session with decision step in "running" status
101
+ S_RESOLVE_PHASE WHEN: intent is non-empty ← phase 必须先于 position
102
+ → S_FALLBACK WHEN: no intent AND no running session
103
+
104
+ S_STATUS:
105
+ → END DO: A_SHOW_STATUS
106
+
107
+ S_CONTINUE:
108
+ → S_DISPATCH WHEN: running session found
109
+ → S_FALLBACK WHEN: no running session DO: display "无运行中的 ralph 会话"
110
+
111
+ S_RESOLVE_PHASE:
112
+ → S_INFER WHEN: phase resolved or null DO: A_RESOLVE_PHASE
113
+ S_FALLBACK WHEN: ambiguous
114
+ GUARD: auto_confirm does NOT skip phase ambiguity
115
+
116
+ S_INFER:
117
+ S_RESOLVE_SCOPE WHEN: position resolved DO: A_INFER_POSITION
118
+ → S_FALLBACK WHEN: cannot infer
119
+
120
+ S_RESOLVE_SCOPE:
121
+ S_QUALITY_MODE DO: A_RESOLVE_SCOPE_VERDICT
122
+ GUARD: position {brainstorm, blueprint, init} → skip (scope_verdict = null)
123
+
124
+ S_QUALITY_MODE:
125
+ → S_PLANNING_MODE DO: A_DETERMINE_QUALITY_MODE
126
+
127
+ S_PLANNING_MODE:
128
+ S_DECOMPOSE DO: A_DETERMINE_PLANNING_MODE
129
+ GUARD: lifecycle_position ∈ {brainstorm, blueprint, init, analyze-macro, roadmap} → skip (force independent)
130
+
131
+ S_DECOMPOSE:
132
+ S_BUILD_CHAIN DO: A_DECOMPOSE_TASKS
133
+ GUARD: broad intent → MUST clarify boundary even if auto_confirm
134
+ GUARD: narrow intent → auto-derive, skip questions
135
+ GUARD: position {brainstorm, blueprint, init} → skip decomposition
136
+
137
+ S_BUILD_CHAIN:
138
+ → S_CREATE_SESSION DO: A_BUILD_STEPS
139
+
140
+ S_CREATE_SESSION:
141
+ S_CONFIRM WHEN: not auto_confirm DO: A_CREATE_SESSION
142
+ S_DISPATCH WHEN: auto_confirm DO: A_CREATE_SESSION
143
+
144
+ S_CONFIRM:
145
+ S_DISPATCH WHEN: user selects "Proceed"
146
+ S_BUILD_CHAIN WHEN: user selects "Edit"
147
+ END WHEN: user selects "Cancel"
148
+
149
+ S_DISPATCH:
150
+ → END DO: Skill({ skill: "maestro-ralph-execute" })
151
+
152
+ S_DECISION_EVAL:
153
+ S_APPLY_VERDICT WHEN: quality-gate (post-verify, post-business-test, post-review, post-test)
154
+ DO: A_DELEGATE_EVALUATE
155
+ S_APPLY_VERDICT WHEN: goal-gate (post-goal-audit)
156
+ DO: A_GOAL_AUDIT_EVALUATE
157
+ S_APPLY_VERDICT WHEN: scope-gate (post-analyze-scope)
158
+ DO: A_SCOPE_EVALUATE
159
+ → S_APPLY_VERDICT WHEN: structural (post-milestone, post-debug-escalate)
160
+ DO: A_STRUCTURAL_EVALUATE
161
+
162
+ S_APPLY_VERDICT:
163
+ S_DISPATCH WHEN: verdict == "proceed" DO: A_APPLY_PROCEED
164
+ → S_DISPATCH WHEN: post-goal-audit + unmet sub-goals DO: A_APPLY_GOAL_FIX
165
+ → S_DISPATCH WHEN: post-goal-audit + all sub-goals met DO: A_APPLY_GOAL_DONE
166
+ → S_DISPATCH WHEN: post-analyze-scope DO: A_APPLY_SCOPE_VERDICT
167
+ S_DISPATCH WHEN: verdict == "fix" DO: A_APPLY_FIX
168
+ → S_DISPATCH WHEN: verdict == "escalate" DO: A_APPLY_ESCALATE
169
+ S_DISPATCH WHEN: post-milestone + next milestone DO: A_ADVANCE_MILESTONE
170
+ → END WHEN: post-milestone + no next milestone DO: mark completed
171
+ END WHEN: post-debug-escalate (always STOP) DO: A_PAUSE_ESCALATE
172
+ GUARD: retry_count >= max_retries force escalate
173
+ GUARD: confidence_score < 60 AND proceed override to fix
174
+ GUARD: confidence_score > 95 AND fix AND retry > 0 → suggest proceed
175
+ GUARD: auto_confirm → skip user prompt, apply adjusted verdict
176
+ GUARD: not auto_confirm AskUserQuestion with override options
177
+
178
+ S_FALLBACK:
179
+ → S_PARSE_ROUTE WHEN: user provides input DO: AskUserQuestion
180
+ END WHEN: user cancels
181
+
182
+ </transitions>
183
+
184
+ <actions>
185
+
186
+ ### A_SHOW_STATUS
187
+
188
+ 1. Find latest ralph session (by created_at)
189
+ 2. Display: Session, Status, Position, Progress, Current step
190
+ 3. List steps: [✓] completion_confirmed, [▸] current, [ ] pending, [◆] decision;附 `command_scope`(global/project) + `command_path`
191
+ 4. If `task_decomposition` present (absent skip):
192
+ ```
193
+ Sub-goals ({done}/{total}) source: {session_dir}/status.json#/task_decomposition
194
+ [x] G1 done_when={done_when} evidence={evidence} confirmed={completion_confirmed}
195
+ [ ] G2 done_when={done_when} evidence={evidence} confirmed=false unmet
196
+ ```
197
+
198
+ ### A_RESOLVE_PHASE
199
+
200
+ 前置于 A_INFER_POSITION。产出 `phase` + `phase_is_new` + `milestone`(D-007 反查)三元组。
201
+
202
+ **Priority:**
203
+
204
+ | Step | 行为 | phase_is_new |
205
+ |------|------|--------------|
206
+ | 1 | intent 匹配 `phase\s*(\d+)` → 取 state.json 对应 phase | false |
207
+ | 2 | intent 派生短语 `state.json.milestones[*].phase_slugs` / `artifacts[*].path` 查找 | false (匹配) / true (无匹配) |
208
+ | 3 | 未派生 取最新 in-progress artifact phase | false |
209
+ | 4 | 仍无 state.json 首个 incomplete phase | false |
210
+ | 5 | position 将是 brainstorm/blueprint/init/roadmap/analyze-macro → phase = null | n/a |
211
+ | 6 | 仍模糊 → `AskUserQuestion` | 由用户回答确定 |
212
+
213
+ **D-007 Phase→Milestone 反查**(数字 phase 已解析时):
214
+ ```
215
+ resolve_milestone(phase_number):
216
+ for ms in state.json.milestones:
217
+ if str(phase_number) in ms.phase_slugs: return ms.id
218
+ return state.json.current_milestone # fallback
219
+ ```
220
+ 写入 `session.milestone`;禁止直接使用 `current_milestone` 当做 phase 所属 milestone。
221
+
222
+ **写入 session**: `phase`, `phase_is_new`, `milestone`。
223
+
224
+ **新派生 phase 时 milestone 处理**:
225
+ - state.json 当前 milestone active → 沿用,新增 phase
226
+ - intent 派生新 milestone 名 → 写入 session 仅作标签;`state.json.milestones` 由 `maestro-roadmap` / `maestro-milestone-release` 创建
227
+
228
+ ### A_INFER_POSITION
229
+
230
+ **Intent-based overrides** (按顺序匹配,先命中先用):
231
+
232
+ | Pattern | Position |
233
+ |---------|----------|
234
+ | brainstorm / 头脑风暴 / 探索 / ideate / 设计思路 | `brainstorm` |
235
+ | blueprint / 规格 / 正式文档 / spec-generate / 7-phase | `blueprint` |
236
+ | broad/medium intent 无数字 phase (重构/全面/重写/迁移/新功能 X) | `analyze-macro` |
237
+
238
+ **Bootstrap detection:**
239
+
240
+ | Condition | Position |
241
+ |-----------|----------|
242
+ | No `.workflow/` + no source files | `brainstorm` |
243
+ | No `.workflow/` + has source files | `init` |
244
+ | Has `.workflow/` but no state.json | `init` |
245
+ | Has state.json | → phase-aware artifact inference |
246
+
247
+ **Phase-aware artifact inference** (使用 A_RESOLVE_PHASE 已写入的 `session.phase` + `session.phase_is_new`):
248
+
249
+ | Condition | Position |
250
+ |-----------|----------|
251
+ | `phase_is_new == true` (新 phase) | `analyze` |
252
+ | no milestones AND no roadmap.md AND has analyze macro artifact | `roadmap` |
253
+ | no milestones AND no roadmap.md AND no analyze artifact | `analyze-macro` |
254
+ | `phase == null` (brainstorm/blueprint/init/roadmap/analyze-macro override 已定) | n/a |
255
+ | phase 已存在 + 无任何 artifact | `analyze` |
256
+ | phase 已存在 + 最新 artifact = analyze | `plan` |
257
+ | phase 已存在 + 最新 artifact = plan | `execute` |
258
+ | phase 已存在 + 最新 artifact = execute | `verify` |
259
+ | phase 已存在 + 最新 artifact = verify | → refine from result files |
260
+
261
+ **关键不变量**:artifact 过滤按 `session.phase`,不读 `state.json.current_phase`。`phase_is_new` → 直接 `analyze`。
262
+
263
+ ### A_RESOLVE_SCOPE_VERDICT
264
+
265
+ 仅当 `lifecycle_position {analyze-macro, roadmap, plan}` 且存在最新 analyze artifact 时执行。
266
+
267
+ 1. 定位最新 macro analyze artifact(`type=="analyze"` `scope=="macro"`,按 created_at DESC)→ `session.analyze_macro_id = ANL-xxx`
268
+ 2. `{artifact_path}/conclusions.json` `scope_verdict` 字段(`large | medium | small`)
269
+ 3. 写入 `session.scope_verdict`;缺失时设 `unknown`
270
+ 4. 路由建议(A_BUILD_STEPS 据此决定是否插入 roadmap、plan 是否走 `--from`):
271
+
272
+ | scope_verdict | 链路 |
273
+ |---------------|------|
274
+ | `large` | analyze-macro roadmap analyze plan execute ... |
275
+ | `medium` / `small` | analyze-macro plan --from analyze:{ANL_ID} execute → ...(跳过 roadmap + analyze-phase) |
276
+ | `unknown` | 默认走 large 路径,post-analyze-scope 决策节点再纠正 |
277
+
278
+ **Refine from verify results:**
279
+
280
+ | Condition | Position |
281
+ |-----------|----------|
282
+ | verification.json: passed==false or gaps[] | `verify-failed` |
283
+ | passed==true, no review.json | `business-test` |
284
+ | review.json: verdict=="BLOCK" | `review-failed` |
285
+ | review.json: verdict!="BLOCK" | `test` |
286
+ | uat.md: all passed | `milestone-audit` |
287
+ | uat.md: has failures | `test-failed` |
288
+
289
+ ### A_DETERMINE_QUALITY_MODE
290
+
291
+ 决定下游质量管线长度。读 `session.quality_mode_override`(CLI 标志 `--quality`),无则按规则推断:
292
+
293
+ | Condition | Mode | Pipeline (verify 之后) |
294
+ |-----------|------|-------------------------|
295
+ | Has `specs/REQ-*.md` + 当前 phase 业务范围明确 | `full` | business-test review test-gen → test |
296
+ | Default | `standard` | review → test-gen (当 coverage<80%) → test |
297
+ | `--quality quick` | `quick` | review --tier quick |
298
+
299
+ 写入 `session.quality_mode`。A_BUILD_STEPS 据此过滤 stage(见下)。
300
+
301
+ ### A_DETERMINE_PLANNING_MODE
302
+
303
+ 决定里程碑的规划粒度:一次性规划整个里程碑(统一)还是逐 phase 走完整生命周期(独立)。
304
+
305
+ **Auto-resolve rules (按优先级):**
306
+
307
+ | Condition | Mode | Reason |
308
+ |-----------|------|--------|
309
+ | lifecycle_position ∈ {brainstorm, init, roadmap} | `independent` | 前期阶段不涉及多 phase 规划 |
310
+ | `phase_is_new == true` | `independent` | 新 phase 尚无里程碑上下文 |
311
+ | intent 显式指定 phase 编号(如 "phase 2"、"P3") | `independent` | 用户明确针对单个 phase |
312
+ | milestone 仅含 1 phase(读 state.json) | `independent` | 统一无意义 |
313
+ | milestone 含多个 phase + `auto_confirm` | `unified` | 自动模式倾向高效 |
314
+ | milestone 含多个 phase + 非 `auto_confirm` | → AskUserQuestion | 征询用户选择 |
315
+
316
+ **AskUserQuestion** (仅当 milestone 含 ≥2 phase 且非 auto_confirm):
317
+
318
+ ```
319
+ question: "当前里程碑含 {N} phase,选择规划模式?"
320
+ options:
321
+ - label: "统一规划 (Recommended)"
322
+ description: "一次性分析+规划整个里程碑所有 phase,analyze/plan 走里程碑级,适合 phase 间关联紧密"
323
+ - label: "独立规划"
324
+ description: "逐个 phase 走完整生命周期(analyze→plan→execute→verify→...),适合 phase 间独立性高"
325
+ ```
326
+
327
+ 写入 `session.planning_mode`(`"unified"` `"independent"`)。`A_BUILD_STEPS` 据此决定 skill args 是否携带 `{phase}` 占位符。
328
+
329
+ ### A_DECOMPOSE_TASKS
330
+
331
+ Runs once before chain build; additive to status.json.
332
+
333
+ **1. Classify intent breadth:**
334
+
335
+ | Pattern | Breadth | Clarify? |
336
+ |---------|---------|----------|
337
+ | 重构/全面/重写/重做/整体/迁移 · overhaul/migrate/rewrite/revamp | broad | MUST (ignores auto_confirm) |
338
+ | named single file/function/bug, "fix X", "add Y to Z" | narrow | skip — auto-derive |
339
+ | otherwise | medium | clarify unless auto_confirm |
340
+
341
+ **2. Clarify boundary** (broad/medium) `AskUserQuestion`, ≤3 rounds, options pre-filled from intent + a quick Glob/Grep scan of the target module:
342
+
343
+ | Round | Question | Drives |
344
+ |-------|----------|--------|
345
+ | Scope | 哪些目录/文件/层在范围内?明确排除什么? | boundary_contract.in_scope / out_of_scope |
346
+ | Constraints | 必须向后兼容?公共 API 冻结?行为/性能预算?测试门槛? | boundary_contract.constraints + execution_criteria |
347
+ | Done | 什么可观测结果算"完成"?(如:测试全绿 + 行为零变更 + X 指标) | boundary_contract.definition_of_done |
348
+
349
+ narrow derive defaults from intent + codebase, skip questions.
350
+
351
+ **3. Derive `execution_criteria`**: backward-compat、scope-freeze、test/coverage bar、fix-don't-hide、incremental commit。
352
+
353
+ **4. Derive `task_decomposition`** (子目标清单 — outcome-oriented, NOT lifecycle stages). Each entry:
354
+ ```json
355
+ { "id": "G1", "goal": "<deliverable>", "boundary": "<in/out note>",
356
+ "done_when": "<objectively checkable condition>",
357
+ "evidence": "verification.json|review.json|uat.md|<test path>",
358
+ "lifecycle": ["analyze","execute","verify"], "status": "pending" }
359
+ ```
360
+ `done_when` 必须客观可验证,且引用 ralph 已产出的 artifact;`lifecycle` 字段映射到产出 evidence 的生命周期 stage。
361
+
362
+ **5. Persist** (additive): `boundary_contract`, `execution_criteria`, `task_decomposition`。每个 sub-goal 含 `status: "pending"` + `completion_confirmed: false`。
363
+
364
+ **6. Stage** the Goal Prompt (Appendix) for A_CREATE_SESSION to emit.
365
+
366
+ ### A_BUILD_STEPS
367
+
368
+ Generate steps from `session.lifecycle_position` to `milestone-complete`.
369
+
370
+ | Stage | Skill (independent) | Skill (unified) | Type | Decision after | quality_mode |
371
+ |-------|---------------------|-----------------|------|----------------|--------------|
372
+ | brainstorm | `maestro-brainstorm "{intent}"` | *(same)* | internal | | all |
373
+ | blueprint | `maestro-blueprint "{intent}"` | *(same)* | internal | — | all |
374
+ | init | `maestro-init` | *(same)* | internal | — | all |
375
+ | analyze-macro | `maestro-analyze "{intent}"` | *(same)* | internal | `post-analyze-scope` | all |
376
+ | roadmap | `maestro-roadmap --from analyze:{analyze_macro_id}` | *(same)* | internal | — | all |
377
+ | analyze | `maestro-analyze {phase}` | `maestro-analyze` | internal | — | all |
378
+ | plan | `maestro-plan {phase}` *(scope=phase)* / `maestro-plan --from analyze:{analyze_macro_id}` *(scope=standalone)* / `maestro-plan --from blueprint:{blueprint_id}` *(scope=standalone)* | `maestro-plan` | internal | — | all |
379
+ | execute | `maestro-execute {phase}` | `maestro-execute` | internal | — | all |
380
+ | verify | `maestro-verify {phase}` | `maestro-verify` | internal | `post-verify` | all |
381
+ | business-test | `quality-auto-test {phase}` | `quality-auto-test` | internal | `post-business-test` | full only |
382
+ | review | `quality-review {phase}` | `quality-review` | internal | `post-review` | all (quick: append `--tier quick`) |
383
+ | test-gen | `quality-auto-test {phase}` | `quality-auto-test` | internal | — | full / standard if coverage<80% |
384
+ | test | `quality-test {phase}` | `quality-test` | internal | `post-test` | full, standard |
385
+ | milestone-audit | `maestro-milestone-audit` | *(same)* | internal | | all |
386
+ | goal-audit | *(decision-only)* | *(same)* | decision | `post-goal-audit` | all (only if decomposed) |
387
+ | milestone-complete | `maestro-milestone-complete` | *(same)* | internal | `post-milestone` | all |
388
+
389
+ **Build rules (按顺序应用):**
390
+
391
+ 0. **planning_mode 选列**:`unified` → Skill (unified) 列;`independent` → Skill (independent) 列
392
+ 1. **起点**:从 `session.lifecycle_position` 开始
393
+ 2. **跳过已完成**:跳过当前 milestone+phase 下已有 completed artifact 的 stage(按 `session.phase` 过滤);unified 按 milestone 过滤
394
+ 3. **quality_mode 过滤**:按 `session.quality_mode` 排除不匹配 stage
395
+ 4. **决策节点**:每个 Decision after 非空的 stage 之后插入 `{ type: "decision", decision: "<gate>", retry_count: 0, max_retries: 2 }`
396
+ 5. **goal-audit 插入**:`task_decomposition` 存在时,在最后一个 evidence-producing stage(verify/review/test)之后、`milestone-complete` 之前插入 `decision:post-goal-audit`
397
+ 6. **终点硬约束**:chain 以 `milestone-complete` 结尾
398
+ 7. **goal_ref 传播**:`task_decomposition` 存在时,每个 step 按 `step.stage ∈ g.lifecycle` 匹配 `step.goal_ref = g.id`(多匹配取字典序最小);decision 节点不打 goal_ref
399
+ 8. **占位符**:independent 保留 `{phase}` `{intent}`;unified 不带 `{phase}`
400
+ 9. **command_path 解析**(每个非 decision step):
401
+ - skill 名(args 前的第一个 token)
402
+ - 全局优先:`~/.claude/commands/{name}.md` 存在 `command_scope = "global"`
403
+ - Fallback:`.claude/commands/{name}.md` 存在 `command_scope = "project"`
404
+ - 两者都缺 → `command_scope = "missing"`, `command_path = null`,A_CREATE_SESSION 报错 E006
405
+ 10. **每个 step 初始化** `completion_confirmed: false`, `completion_status: null`, `completion_evidence: null`
406
+ 11. **scope_verdict gating**(仅当 chain 起点 = `analyze-macro`):
407
+ - `scope_verdict {medium, small}` 跳过 `roadmap` + `analyze` 两 stage;`plan` 选 standalone 列(`--from analyze:{analyze_macro_id}`),不带 `{phase}`
408
+ - `scope_verdict == large` → 保留 `roadmap` + `analyze`;`plan` 选 phase 列(`{phase}`)
409
+ - `scope_verdict == unknown` → 默认 large 路径;由 `post-analyze-scope` 决策节点在 macro analyze 完成后纠正(A_APPLY_SCOPE_VERDICT)
410
+ 12. **--from 自动注入**:
411
+ - `analyze_macro_id` 存在且当前 step 是 `roadmap` → args 改为 `--from analyze:{analyze_macro_id}`
412
+ - `analyze_macro_id` 存在且 `scope_verdict ∈ {medium, small}` 且当前 step 是 `plan` → args 改为 `--from analyze:{analyze_macro_id}`
413
+ - `blueprint_id` 存在 → 当前 step 是 `plan` → args 改为 `--from blueprint:{blueprint_id}`(优先级低于 phase 数字参数)
414
+ - 写入 `step.source_artifact_ref` 以便审计
415
+ 13. **D-007 Milestone-ref 标注**:每个含 `{phase}` 占位符的 step → `step.milestone_id = session.milestone`(由 A_RESOLVE_PHASE 反查得出),禁止读 `current_milestone`
416
+ 14. **动态插入步骤**(A_APPLY_*)同样应用规则 7-13
417
+
418
+ ### A_CREATE_SESSION
419
+
420
+ 1. Validate: 所有 step 的 `command_scope != "missing"`;否则 raise E006 + 列出缺失 skill
421
+ 2. Write `.workflow/.maestro/ralph-{YYYYMMDD-HHmmss}/status.json` (Appendix: Session Schema)
422
+ 3. Display chain overview:每步显示 `{index}. {skill} [{type}] [{command_scope}]`
423
+ 4. If `task_decomposition` present: display the **Goal Prompt block** (Appendix: Goal Prompt Template)
424
+
425
+ ### A_DELEGATE_EVALUATE
426
+
427
+ 1. Resolve artifact dir: `.workflow/scratch/{artifact.path}/` with fallback glob
428
+ 2. Parse decision metadata: `{ decision, retry_count, max_retries }`
429
+ 3. Map result files:
430
+ | Decision | Files |
431
+ |----------|-------|
432
+ | post-verify | verification.json |
433
+ | post-business-test | .tests/auto-test/report.json |
434
+ | post-review | review.json |
435
+ | post-test | uat.md, .tests/test-results.json |
436
+ 4. Check artifact for confidence section → include as signal
437
+ 5. Execute delegate (run_in_background, STOP, wait for callback):
438
+ ```
439
+ maestro delegate "PURPOSE: 评估 {decision} 质量门结果
440
+ TASK: 读取结果 | 分析状态 | 评估严重性 | 给出建议
441
+ EXPECTED: ---VERDICT--- STATUS/REASON/GAP_SUMMARY/CONFIDENCE(high|medium|low)/CONFIDENCE_SCORE(0-100)/WEAKEST_DIMENSION ---END---
442
+ CONSTRAINTS: 只评估 | 置信度<60% 倾向 fix | retry {n}/{max} 达上限必须 escalate"
443
+ --role analyze --mode analysis
444
+ ```
445
+ 6. On callback: parse verdict; if parse fails → fallback STATUS="fix"
446
+ 7. Confidence adjustment: <60 + proceed → fix; >95 + fix + retry>0 → suggest proceed
447
+ 8. **Decision log**: Append to `{session_dir}/decisions.ndjson`:
448
+ ```json
449
+ { "id": "DEC-{timestamp}", "timestamp": "{ISO}", "source": "ralph",
450
+ "node_id": "{step.decision}", "type": "quality-gate",
451
+ "verdict": "{adjusted_verdict}", "confidence_score": {N},
452
+ "close_call": {N>=50 && N<=70}, "summary": "{REASON}" }
453
+ ```
454
+
455
+ ### A_STRUCTURAL_EVALUATE
456
+
457
+ **post-milestone:** Read state.json → next milestone? → insert lifecycle steps / complete
458
+ **post-debug-escalate:** Always STOP set paused, display "请人工介入"
459
+
460
+ ### A_SCOPE_EVALUATE
461
+
462
+ 仅由 `post-analyze-scope` 决策节点触发;macro analyze 完成后读 `conclusions.json.scope_verdict` 决定下游链路。
463
+
464
+ 1. 定位刚完成的 macro analyze artifact → `analyze_macro_id`, `conclusions_path = {artifact_path}/conclusions.json`
465
+ 2. 读取 `conclusions.scope_verdict`(`large | medium | small`),缺失 → `unknown`
466
+ 3. 写入 `session.scope_verdict` + `session.analyze_macro_id`
467
+ 4. Append `{session_dir}/decisions.ndjson`:
468
+ ```json
469
+ { "id": "DEC-{timestamp}", "type": "scope-gate",
470
+ "source": "ralph", "node_id": "post-analyze-scope",
471
+ "verdict": "{scope_verdict}", "analyze_macro_id": "{ANL_ID}" }
472
+ ```
473
+ 5. → A_APPLY_SCOPE_VERDICT
474
+
475
+ ### A_GOAL_AUDIT_EVALUATE
476
+
477
+ Runs only when `task_decomposition` present.
478
+
479
+ 1. Read `session.task_decomposition` from status.json
480
+ 2. For each sub-goal `status != "done"`: resolve `evidence` artifact under current phase scratch dir
481
+ 3. Delegate read-only audit (run_in_background, STOP, wait):
482
+ ```
483
+ maestro delegate "PURPOSE: 审计未完成子目标,判定 met / unmet
484
+ TASK:
485
+ 1. 读取 status.json.task_decomposition status!=done 的子目标
486
+ 2. 打开 evidence 产物,对照 done_when 严格判定
487
+ 3. 输出 met / unmet,unmet 给出 gap + target_phase
488
+ CONTEXT:
489
+ status.json = {session_dir}/status.json
490
+ evidence = {evidence artifacts}
491
+ execution_criteria = {execution_criteria}
492
+ boundary_contract = {boundary_contract}
493
+ EXPECTED:
494
+ ---VERDICT---
495
+ STATUS=all_met|has_unmet
496
+ UNMET=[{id:G2,gap:'...',target_phase:execute}, ...]
497
+ CONFIDENCE_SCORE=0-100
498
+ ---END---
499
+ CONSTRAINTS:
500
+ - 只评估,不修改文件
501
+ - 严格按 done_when 判定;evidence 缺失 → unmet
502
+ - 不得建议超出 boundary_contract 的修改
503
+ "
504
+ --role analyze --mode analysis
505
+ ```
506
+ 4. On callback: 对每个 met 子目标,set `task_decomposition[i].status="done"` + `completion_confirmed=true` + `completed_at=now`
507
+ 5. Append `{session_dir}/decisions.ndjson` with `"type": "goal-gate"`, `unmet_count`, `unmet_ids`
508
+ 6. Verdict: `all_met` → A_APPLY_GOAL_DONE; `has_unmet` → A_APPLY_GOAL_FIX
509
+ GUARD: retry_count >= max_retries AND still unmet → A_APPLY_ESCALATE
510
+
511
+ ### A_APPLY_PROCEED
512
+
513
+ 1. Mark decision completed, write status.json
514
+ 2. Display: ◆ Decision: {type} → proceed ({reason})
515
+
516
+ ### A_APPLY_FIX
517
+
518
+ 1. Insert fix-loop commands after current step (see Appendix: Fix-Loop Templates)
519
+ 2. Reindex steps, increment retry_count, write status.json
520
+ 3. Display: ◆ Decision: {type} → fix, +{N} commands inserted
521
+
522
+ ### A_APPLY_ESCALATE
523
+
524
+ 1. Insert `[quality-debug "{gap_summary}", decision:post-debug-escalate]`
525
+ 2. Increment retry_count, reindex, write status.json
526
+
527
+ ### A_APPLY_SCOPE_VERDICT
528
+
529
+ 由 `post-analyze-scope` 触发,依据 `session.scope_verdict` 重塑下游链路。
530
+
531
+ 1. 读 `session.scope_verdict`
532
+ 2. 路径 A(`large`):保持当前链;为后续 `roadmap` step 注入 `--from analyze:{analyze_macro_id}`;为后续 `plan` step 选 phase 列;继续推进
533
+ 3. 路径 B(`medium` / `small`):
534
+ - 删除 `goal-audit` 之前所有未完成的 `roadmap` + `analyze` (phase) step
535
+ - 把下一个未完成的 `plan` step 改为 `maestro-plan --from analyze:{analyze_macro_id}`,去掉 `{phase}`,`source_artifact_ref = analyze:{analyze_macro_id}`
536
+ - 后续 `execute` / `verify` 等沿用同一 standalone scope(不带 `{phase}`,由 plan 写出的 task 列表驱动)
537
+ 4. 路径 C(`unknown`):
538
+ - 非 auto_confirm → AskUserQuestion 二选一(large / medium-small);auto_confirm → 默认 large
539
+ 5. Reindex steps,标 decision completed,write status.json
540
+ 6. Display: ◆ Scope verdict: {verdict} → {kept|collapsed to standalone via analyze:{ANL_ID}}
541
+
542
+ ### A_APPLY_GOAL_FIX
543
+
544
+ 1. 对每个 unmet 子目标 `G{n}`(按 `target_phase` 分组去重):在 `goal-audit` 节点前插入 scoped mini-loop(见 Appendix: Fix-Loop Templates → post-goal-audit),每条插入 step `goal_ref: "G{n}"`,按 A_BUILD_STEPS 规则 9 解析 `command_path`
545
+ 2. 重新追加 `decision:post-goal-audit {retry+1}`
546
+ 3. Reindex steps, increment retry_count, write status.json
547
+ 4. Display: ◆ Goal audit: {k} unmet → +{N} steps inserted (G{ids}), retry {r}/{max}
548
+
549
+ ### A_APPLY_GOAL_DONE
550
+
551
+ 1. status.json: set 每个 `task_decomposition[*].status="done"`, `completion_confirmed=true`, `completed_at=now`,顶层 `task_decomposition_all_done=true`
552
+ 2. Mark goal-audit decision completed;proceed to `milestone-complete`
553
+ 3. Display: ◆ Goal audit: all met ✓
554
+
555
+ ### A_ADVANCE_MILESTONE
556
+
557
+ 1. Update session: milestone, phase, reset passed_gates
558
+ 2. Insert full lifecycle steps for next milestone
559
+ 3. Reindex, write status.json
560
+
561
+ ### A_PAUSE_ESCALATE
562
+
563
+ 1. Set session status = "paused", write status.json
564
+ 2. Display: ◆ 已达最大重试次数,debug 已执行。请人工介入。
565
+ 3. Display: /maestro-ralph continue 恢复
566
+
567
+ </actions>
568
+
569
+ </state_machine>
570
+
571
+ <appendix>
572
+
573
+ ### Session Schema
574
+
575
+ ```json
576
+ {
577
+ "session_id": "ralph-{YYYYMMDD-HHmmss}",
578
+ "source": "ralph", "status": "running",
579
+ "intent": "", "lifecycle_position": "",
580
+ "phase": null, "phase_is_new": false,
581
+ "milestone": "", // D-007 反查结果,禁止读 current_milestone
582
+ "auto_mode": false,
583
+ "quality_mode": "standard", // "full" | "standard" | "quick"
584
+ "planning_mode": "independent", // "unified" | "independent"
585
+ "scope_verdict": null, // "large" | "medium" | "small" | "unknown" | null
586
+ "analyze_macro_id": null, // "ANL-xxx" 来自最新 macro analyze
587
+ "blueprint_id": null, // "BLP-xxx" 若存在
588
+ "cli_tool": "claude", "passed_gates": [],
589
+ "context": { "issue_id": null, "scratch_dir": null, "plan_dir": null,
590
+ "analysis_dir": null, "brainstorm_dir": null, "blueprint_dir": null },
591
+ "steps": [{
592
+ "index": 0,
593
+ "type": "internal|external|decision",
594
+ "skill": "",
595
+ "args": "",
596
+ "stage": "", // brainstorm|blueprint|init|analyze-macro|roadmap|analyze|plan|execute|verify|...
597
+ "scope": null, // "phase"|"standalone"|"milestone"|null(plan 等需要)
598
+ "command_scope": "global|project|missing|null",
599
+ "command_path": "~/.claude/commands/{name}.md | .claude/commands/{name}.md | null",
600
+ "milestone_id": null, // D-007 反查注入;仅含 {phase} 占位符的 step 有
601
+ "source_artifact_ref": null, // "analyze:ANL-xxx" | "blueprint:BLP-xxx" | null
602
+ "status": "pending|running|completed|skipped|failed",
603
+ "goal_ref": null,
604
+ "completion_confirmed": false,
605
+ "completion_status": null,
606
+ "completion_evidence": null,
607
+ "completed_at": null
608
+ }],
609
+ "waves": [], "current_step": 0,
610
+
611
+ // Optional decomposition block (additive; absent → decomposition off)
612
+ "boundary_contract": {
613
+ "in_scope": [], "out_of_scope": [], "constraints": [], "definition_of_done": ""
614
+ },
615
+ "execution_criteria": [],
616
+ "task_decomposition": [
617
+ { "id": "G1", "goal": "", "boundary": "", "done_when": "",
618
+ "evidence": "", "lifecycle": [], "status": "pending|done",
619
+ "completion_confirmed": false, "completed_at": null }
620
+ ],
621
+ "task_decomposition_all_done": false
622
+ }
623
+ ```
624
+
625
+ 新增字段可选,缺省=旧行为;既有字段名不删不改。
626
+
627
+ ### Fix-Loop Templates
628
+
629
+ 所有插入 step 默认 `type: "internal"`,按 A_BUILD_STEPS 规则 9 解析 `command_path` + `command_scope`。
630
+
631
+ **post-verify:**
632
+ ```
633
+ quality-debug "{gap_summary}"
634
+ maestro-plan --gaps {phase}
635
+ maestro-execute {phase}
636
+ maestro-verify {phase}
637
+ decision:post-verify {retry+1}
638
+ ```
639
+
640
+ **post-business-test:**
641
+ ```
642
+ quality-debug --from-business-test "{gap_summary}"
643
+ maestro-plan --gaps {phase}
644
+ maestro-execute {phase}
645
+ maestro-verify {phase}
646
+ decision:post-verify {retry: 0}
647
+ quality-auto-test {phase}
648
+ decision:post-business-test {retry+1}
649
+ ```
650
+
651
+ **post-review:**
652
+ ```
653
+ quality-debug "{gap_summary}"
654
+ maestro-plan --gaps {phase}
655
+ maestro-execute {phase}
656
+ quality-review {phase}
657
+ decision:post-review {retry+1}
658
+ ```
659
+
660
+ **post-test:**
661
+ ```
662
+ quality-debug --from-uat "{gap_summary}"
663
+ maestro-plan --gaps {phase}
664
+ maestro-execute {phase}
665
+ maestro-verify {phase}
666
+ decision:post-verify {retry: 0}
667
+ quality-auto-test {phase}
668
+ decision:post-business-test {retry: 0}
669
+ quality-review {phase}
670
+ decision:post-review {retry: 0}
671
+ quality-auto-test {phase}
672
+ quality-test {phase}
673
+ decision:post-test {retry+1}
674
+ ```
675
+
676
+ **post-goal-audit:** (per unmet sub-goal group)
677
+ ```
678
+ # for each unmet sub-goal G{n}, scoped to target_phase:
679
+ maestro-plan --gaps {target_phase} "G{n}: {gap}" [goal_ref: G{n}]
680
+ maestro-execute {target_phase} [goal_ref: G{n}]
681
+ maestro-verify {target_phase} [goal_ref: G{n}]
682
+ # after all unmet groups inserted:
683
+ decision:post-goal-audit {retry+1}
684
+ ```
685
+
686
+ ### Goal Prompt Template
687
+
688
+ 链路概览后逐字显示(仅当 decomposition 已产出):
689
+
690
+ ```
691
+ 📋 任务分解完成。复制下面一行设定目标,会话在子目标全部达成前不停:
692
+
693
+ /goal 目标达成条件: {session_dir}/status.json 中 task_decomposition[*].status == "done" 且 task_decomposition[*].completion_confirmed == true 且 steps[*].completion_confirmed == true。未达成时:阅读 {session_dir}/status.json 取得 execution_criteria / boundary_contract / task_decomposition / steps 作为行动手册,调用 /maestro-ralph continue 推进;严禁手动执行 skill 或越界修改 status.json.boundary_contract.out_of_scope。
694
+
695
+ 随后运行 /maestro-ralph continue 立即开始执行。
696
+ ```
697
+
698
+ `/goal` 由用户输入;ralph 只输出此提示词。判据以 status.json 为权威。
699
+
700
+ ### Error Codes
701
+
702
+ | Code | Severity | Description | Recovery |
703
+ |------|----------|-------------|----------|
704
+ | E001 | error | No intent and no running session | Prompt for intent |
705
+ | E002 | error | Cannot infer lifecycle position | Show raw state, ask |
706
+ | E003 | error | Artifact dir not found for decision | Show glob, ask |
707
+ | E004 | error | Delegate verdict parse failed | Fallback: "fix" |
708
+ | E005 | error | Delegate execution failed | Fallback: "fix" |
709
+ | E006 | error | command_scope == "missing" for one or more steps | List missing skills, abort build |
710
+ | W001 | warning | Decision expanded chain | Auto-handled |
711
+ | W002 | warning | Max retries, escalating | Auto-handled |
712
+ | W003 | warning | Multiple running sessions | Use latest, warn |
713
+ | W004 | warning | Low delegate confidence | Show warning |
714
+
715
+ ### Success Criteria
716
+
717
+ - [ ] Phase 先于 position 解析;phase_is_new 标记写入 session
718
+ - [ ] D-007 反查:phase 数字 → `session.milestone`,禁止读 current_milestone;写入 step.milestone_id
719
+ - [ ] phase_is_new=true → lifecycle_position 强制 `analyze`
720
+ - [ ] Intent overrides 识别 brainstorm / blueprint / analyze-macro
721
+ - [ ] A_RESOLVE_SCOPE_VERDICT 读 macro analyze conclusions.scope_verdict,写入 session.scope_verdict + analyze_macro_id
722
+ - [ ] 链路起点 = analyze-macro 时:large→roadmap+analyze+plan(phase);medium/small→直跳 plan --from analyze:{ANL_ID}(跳过 roadmap+analyze)
723
+ - [ ] post-analyze-scope decision 节点在 macro analyze 之后插入;A_SCOPE_EVALUATE/A_APPLY_SCOPE_VERDICT 重塑链路
724
+ - [ ] plan step args 支持三路径:`{phase}` / `--from analyze:{ANL_ID}` / `--from blueprint:{BLP_ID}`,写入 step.source_artifact_ref
725
+ - [ ] roadmap step args 自动注入 `--from analyze:{analyze_macro_id}`(若存在)
726
+ - [ ] artifact 过滤按 session.phase;unified 按 milestone
727
+ - [ ] quality_mode 由 A_DETERMINE_QUALITY_MODE 决定,过滤 build steps
728
+ - [ ] Decomposition: broad intent ≤3 question clarify;narrow auto-derive
729
+ - [ ] status.json 唯一真源:boundary_contract + execution_criteria + task_decomposition;无外部清单
730
+ - [ ] 每个 step 默认 `type: "internal"`,含 `command_scope` + `command_path`(全局优先 fallback 项目)
731
+ - [ ] 每个 step 含 `completion_confirmed` + `completion_status` + `completion_evidence`(初始 false/null)
732
+ - [ ] 每个 sub-goal 含 `completion_confirmed`(初始 false)
733
+ - [ ] post-goal-audit decision 仅在 decomposed 时插入,位于 milestone-complete 之前
734
+ - [ ] Unmet sub-goals 动态 grow steps[](goal_ref tagged);max retries → escalate
735
+ - [ ] planning_mode 显式决定;unified=无 `{phase}`, independent=带 `{phase}`
736
+ - [ ] Chain 必须以 `milestone-complete` 结尾
737
+ - [ ] Decision nodes 由 maestro delegate --role analyze 评估
738
+ - [ ] Ralph 不执行 step,只 evaluate;Skill("maestro-ralph-execute") handoff
739
+
740
+ </appendix>