maestro-flow 0.3.9 → 0.3.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. package/.claude/agents/workflow-collab-planner.md +1 -1
  2. package/.claude/agents/workflow-executor.md +1 -1
  3. package/.claude/agents/workflow-plan-checker.md +1 -1
  4. package/.claude/agents/workflow-planner.md +1 -1
  5. package/.claude/commands/learn-decompose.md +176 -176
  6. package/.claude/commands/learn-follow.md +167 -167
  7. package/.claude/commands/learn-retro.md +1 -1
  8. package/.claude/commands/maestro-analyze.md +46 -3
  9. package/.claude/commands/maestro-coordinate.md +1 -3
  10. package/.claude/commands/maestro-execute.md +14 -0
  11. package/.claude/commands/maestro-plan.md +16 -0
  12. package/.claude/commands/manage-harvest.md +131 -131
  13. package/.claude/commands/manage-issue-discover.md +2 -2
  14. package/.claude/commands/manage-issue.md +5 -5
  15. package/.claude/commands/spec-add.md +67 -56
  16. package/.claude/commands/spec-load.md +66 -64
  17. package/.claude/commands/spec-setup.md +5 -9
  18. package/.codex/skills/learn-decompose/SKILL.md +119 -0
  19. package/.codex/skills/learn-follow/SKILL.md +83 -0
  20. package/.codex/skills/learn-investigate/SKILL.md +83 -0
  21. package/.codex/skills/learn-retro/SKILL.md +83 -0
  22. package/.codex/skills/learn-second-opinion/SKILL.md +86 -0
  23. package/.codex/skills/maestro/SKILL.md +335 -0
  24. package/.codex/skills/maestro-analyze/SKILL.md +84 -75
  25. package/.codex/skills/maestro-brainstorm/SKILL.md +452 -463
  26. package/.codex/skills/maestro-chain/SKILL.md +233 -0
  27. package/.codex/skills/maestro-coordinate/SKILL.md +167 -278
  28. package/.codex/skills/maestro-execute/SKILL.md +435 -438
  29. package/.codex/skills/maestro-fork/SKILL.md +68 -0
  30. package/.codex/skills/maestro-init/SKILL.md +171 -167
  31. package/.codex/skills/maestro-learn/SKILL.md +80 -0
  32. package/.codex/skills/maestro-link-coordinate/SKILL.md +224 -220
  33. package/.codex/skills/maestro-merge/SKILL.md +62 -0
  34. package/.codex/skills/maestro-milestone-audit/SKILL.md +108 -103
  35. package/.codex/skills/maestro-milestone-complete/SKILL.md +155 -149
  36. package/.codex/skills/maestro-milestone-release/SKILL.md +70 -0
  37. package/.codex/skills/maestro-overlay/SKILL.md +188 -185
  38. package/.codex/skills/maestro-plan/SKILL.md +66 -69
  39. package/.codex/skills/maestro-quick/SKILL.md +26 -23
  40. package/.codex/skills/maestro-roadmap/SKILL.md +65 -73
  41. package/.codex/skills/maestro-spec-generate/SKILL.md +66 -74
  42. package/.codex/skills/maestro-ui-design/SKILL.md +34 -31
  43. package/.codex/skills/maestro-verify/SKILL.md +556 -566
  44. package/.codex/skills/manage-codebase-rebuild/SKILL.md +397 -405
  45. package/.codex/skills/manage-codebase-refresh/SKILL.md +93 -82
  46. package/.codex/skills/manage-harvest/SKILL.md +82 -0
  47. package/.codex/skills/manage-issue/SKILL.md +80 -65
  48. package/.codex/skills/manage-issue-discover/SKILL.md +491 -503
  49. package/.codex/skills/manage-learn/SKILL.md +190 -186
  50. package/.codex/skills/manage-memory/SKILL.md +95 -72
  51. package/.codex/skills/manage-memory-capture/SKILL.md +99 -86
  52. package/.codex/skills/manage-status/SKILL.md +102 -89
  53. package/.codex/skills/quality-business-test/SKILL.md +228 -223
  54. package/.codex/skills/quality-debug/SKILL.md +54 -66
  55. package/.codex/skills/quality-integration-test/SKILL.md +532 -544
  56. package/.codex/skills/quality-refactor/SKILL.md +197 -191
  57. package/.codex/skills/quality-retrospective/SKILL.md +512 -505
  58. package/.codex/skills/quality-review/SKILL.md +93 -105
  59. package/.codex/skills/quality-sync/SKILL.md +101 -89
  60. package/.codex/skills/quality-test/SKILL.md +202 -198
  61. package/.codex/skills/quality-test-gen/SKILL.md +93 -104
  62. package/.codex/skills/spec-add/SKILL.md +58 -39
  63. package/.codex/skills/spec-load/SKILL.md +45 -40
  64. package/.codex/skills/spec-map/SKILL.md +180 -182
  65. package/.codex/skills/spec-setup/SKILL.md +94 -76
  66. package/.codex/skills/team-coordinate/SKILL.md +346 -357
  67. package/.codex/skills/team-executor/SKILL.md +70 -112
  68. package/.codex/skills/team-lifecycle-v4/SKILL.md +311 -299
  69. package/.codex/skills/team-quality-assurance/SKILL.md +234 -227
  70. package/.codex/skills/team-review/SKILL.md +232 -225
  71. package/.codex/skills/team-tech-debt/SKILL.md +78 -100
  72. package/.codex/skills/team-testing/SKILL.md +242 -235
  73. package/.codex/skills/wiki-connect/SKILL.md +75 -0
  74. package/.codex/skills/wiki-digest/SKILL.md +87 -0
  75. package/README.md +14 -11
  76. package/README.zh-CN.md +14 -11
  77. package/chains/issue-lifecycle.json +13 -13
  78. package/chains/singles/issue-analyze.json +3 -3
  79. package/chains/singles/issue-execute.json +3 -3
  80. package/chains/singles/issue-plan.json +3 -3
  81. package/dashboard/dist-server/dashboard/src/server/commander/commander-agent.js +2 -2
  82. package/dashboard/dist-server/dashboard/src/server/commander/commander-agent.js.map +1 -1
  83. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js +3 -3
  84. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js.map +1 -1
  85. package/dashboard/dist-server/dashboard/src/server/routes/issues.js +34 -0
  86. package/dashboard/dist-server/dashboard/src/server/routes/issues.js.map +1 -1
  87. package/dashboard/dist-server/dashboard/src/server/routes/specs.d.ts +1 -1
  88. package/dashboard/dist-server/dashboard/src/server/routes/specs.js +75 -30
  89. package/dashboard/dist-server/dashboard/src/server/routes/specs.js.map +1 -1
  90. package/dashboard/dist-server/dashboard/src/server/state/event-bus.d.ts +5 -0
  91. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js +5 -0
  92. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js.map +1 -1
  93. package/dashboard/dist-server/dashboard/src/server/ws/handlers/execution-handler.js +2 -3
  94. package/dashboard/dist-server/dashboard/src/server/ws/handlers/execution-handler.js.map +1 -1
  95. package/dashboard/dist-server/dashboard/src/shared/constants.js +5 -0
  96. package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
  97. package/dashboard/dist-server/dashboard/src/shared/issue-types.d.ts +5 -0
  98. package/dashboard/dist-server/dashboard/src/shared/issue-types.js.map +1 -1
  99. package/dashboard/dist-server/dashboard/src/shared/normalize-task.d.ts +2 -0
  100. package/dashboard/dist-server/dashboard/src/shared/normalize-task.js +75 -0
  101. package/dashboard/dist-server/dashboard/src/shared/normalize-task.js.map +1 -0
  102. package/dashboard/dist-server/dashboard/src/shared/team-types.d.ts +21 -0
  103. package/dashboard/dist-server/dashboard/src/shared/team-types.js.map +1 -1
  104. package/dashboard/dist-server/dashboard/src/shared/types.d.ts +3 -2
  105. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.d.ts +1 -1
  106. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.js.map +1 -1
  107. package/dashboard/dist-server/src/hooks/constants.d.ts +92 -12
  108. package/dashboard/dist-server/src/hooks/constants.js +151 -16
  109. package/dashboard/dist-server/src/hooks/constants.js.map +1 -1
  110. package/dashboard/dist-server/src/types/index.d.ts +5 -0
  111. package/dist/src/commands/collab.d.ts +1 -34
  112. package/dist/src/commands/collab.d.ts.map +1 -1
  113. package/dist/src/commands/collab.js +8 -76
  114. package/dist/src/commands/collab.js.map +1 -1
  115. package/dist/src/commands/hooks.d.ts +5 -1
  116. package/dist/src/commands/hooks.d.ts.map +1 -1
  117. package/dist/src/commands/hooks.js +115 -10
  118. package/dist/src/commands/hooks.js.map +1 -1
  119. package/dist/src/commands/install-ui/InstallConfirm.d.ts +3 -1
  120. package/dist/src/commands/install-ui/InstallConfirm.d.ts.map +1 -1
  121. package/dist/src/commands/install-ui/InstallConfirm.js +3 -1
  122. package/dist/src/commands/install-ui/InstallConfirm.js.map +1 -1
  123. package/dist/src/commands/install-ui/InstallExecution.d.ts.map +1 -1
  124. package/dist/src/commands/install-ui/InstallExecution.js +5 -1
  125. package/dist/src/commands/install-ui/InstallExecution.js.map +1 -1
  126. package/dist/src/commands/install-ui/InstallFlow.d.ts.map +1 -1
  127. package/dist/src/commands/install-ui/InstallFlow.js +7 -3
  128. package/dist/src/commands/install-ui/InstallFlow.js.map +1 -1
  129. package/dist/src/commands/install-ui/StatuslineConfig.d.ts +6 -1
  130. package/dist/src/commands/install-ui/StatuslineConfig.d.ts.map +1 -1
  131. package/dist/src/commands/install-ui/StatuslineConfig.js +27 -5
  132. package/dist/src/commands/install-ui/StatuslineConfig.js.map +1 -1
  133. package/dist/src/commands/spec.d.ts.map +1 -1
  134. package/dist/src/commands/spec.js +7 -2
  135. package/dist/src/commands/spec.js.map +1 -1
  136. package/dist/src/hooks/__tests__/statusline-visual-test.d.ts +7 -0
  137. package/dist/src/hooks/__tests__/statusline-visual-test.d.ts.map +1 -0
  138. package/dist/src/hooks/__tests__/statusline-visual-test.js +236 -0
  139. package/dist/src/hooks/__tests__/statusline-visual-test.js.map +1 -0
  140. package/dist/src/hooks/constants.d.ts +92 -12
  141. package/dist/src/hooks/constants.d.ts.map +1 -1
  142. package/dist/src/hooks/constants.js +151 -16
  143. package/dist/src/hooks/constants.js.map +1 -1
  144. package/dist/src/hooks/guards/index.d.ts +2 -0
  145. package/dist/src/hooks/guards/index.d.ts.map +1 -1
  146. package/dist/src/hooks/guards/index.js +2 -0
  147. package/dist/src/hooks/guards/index.js.map +1 -1
  148. package/dist/src/hooks/guards/preflight-guard.d.ts +29 -0
  149. package/dist/src/hooks/guards/preflight-guard.d.ts.map +1 -0
  150. package/dist/src/hooks/guards/preflight-guard.js +95 -0
  151. package/dist/src/hooks/guards/preflight-guard.js.map +1 -0
  152. package/dist/src/hooks/guards/spec-validator.d.ts +25 -0
  153. package/dist/src/hooks/guards/spec-validator.d.ts.map +1 -0
  154. package/dist/src/hooks/guards/spec-validator.js +66 -0
  155. package/dist/src/hooks/guards/spec-validator.js.map +1 -0
  156. package/dist/src/hooks/index.d.ts +1 -0
  157. package/dist/src/hooks/index.d.ts.map +1 -1
  158. package/dist/src/hooks/index.js +1 -0
  159. package/dist/src/hooks/index.js.map +1 -1
  160. package/dist/src/hooks/keyword-spec-injector.d.ts +21 -0
  161. package/dist/src/hooks/keyword-spec-injector.d.ts.map +1 -0
  162. package/dist/src/hooks/keyword-spec-injector.js +96 -0
  163. package/dist/src/hooks/keyword-spec-injector.js.map +1 -0
  164. package/dist/src/hooks/plugins/spec-injection-plugin.d.ts +2 -1
  165. package/dist/src/hooks/plugins/spec-injection-plugin.d.ts.map +1 -1
  166. package/dist/src/hooks/plugins/spec-injection-plugin.js +21 -12
  167. package/dist/src/hooks/plugins/spec-injection-plugin.js.map +1 -1
  168. package/dist/src/hooks/preflight-core.d.ts +37 -0
  169. package/dist/src/hooks/preflight-core.d.ts.map +1 -0
  170. package/dist/src/hooks/preflight-core.js +86 -0
  171. package/dist/src/hooks/preflight-core.js.map +1 -0
  172. package/dist/src/hooks/spec-bridge.d.ts +40 -0
  173. package/dist/src/hooks/spec-bridge.d.ts.map +1 -0
  174. package/dist/src/hooks/spec-bridge.js +97 -0
  175. package/dist/src/hooks/spec-bridge.js.map +1 -0
  176. package/dist/src/hooks/spec-injector.d.ts.map +1 -1
  177. package/dist/src/hooks/spec-injector.js +18 -12
  178. package/dist/src/hooks/spec-injector.js.map +1 -1
  179. package/dist/src/hooks/statusline.d.ts +8 -17
  180. package/dist/src/hooks/statusline.d.ts.map +1 -1
  181. package/dist/src/hooks/statusline.js +269 -112
  182. package/dist/src/hooks/statusline.js.map +1 -1
  183. package/dist/src/i18n/locales/en.d.ts.map +1 -1
  184. package/dist/src/i18n/locales/en.js +5 -0
  185. package/dist/src/i18n/locales/en.js.map +1 -1
  186. package/dist/src/i18n/locales/zh.d.ts.map +1 -1
  187. package/dist/src/i18n/locales/zh.js +5 -0
  188. package/dist/src/i18n/locales/zh.js.map +1 -1
  189. package/dist/src/i18n/types.d.ts +5 -0
  190. package/dist/src/i18n/types.d.ts.map +1 -1
  191. package/dist/src/team/phase-orchestrator.d.ts +52 -0
  192. package/dist/src/team/phase-orchestrator.d.ts.map +1 -0
  193. package/dist/src/team/phase-orchestrator.js +165 -0
  194. package/dist/src/team/phase-orchestrator.js.map +1 -0
  195. package/dist/src/team/phase-types.d.ts +51 -0
  196. package/dist/src/team/phase-types.d.ts.map +1 -0
  197. package/dist/src/team/phase-types.js +41 -0
  198. package/dist/src/team/phase-types.js.map +1 -0
  199. package/dist/src/tools/collab-adapter.d.ts +17 -0
  200. package/dist/src/tools/collab-adapter.d.ts.map +1 -1
  201. package/dist/src/tools/collab-adapter.js +138 -0
  202. package/dist/src/tools/collab-adapter.js.map +1 -1
  203. package/dist/src/tools/index.d.ts.map +1 -1
  204. package/dist/src/tools/index.js +6 -0
  205. package/dist/src/tools/index.js.map +1 -1
  206. package/dist/src/tools/merge-validator.d.ts +24 -0
  207. package/dist/src/tools/merge-validator.d.ts.map +1 -0
  208. package/dist/src/tools/merge-validator.js +220 -0
  209. package/dist/src/tools/merge-validator.js.map +1 -0
  210. package/dist/src/tools/spec-entry-parser.d.ts +56 -0
  211. package/dist/src/tools/spec-entry-parser.d.ts.map +1 -0
  212. package/dist/src/tools/spec-entry-parser.js +196 -0
  213. package/dist/src/tools/spec-entry-parser.js.map +1 -0
  214. package/dist/src/tools/spec-init.d.ts.map +1 -1
  215. package/dist/src/tools/spec-init.js +66 -92
  216. package/dist/src/tools/spec-init.js.map +1 -1
  217. package/dist/src/tools/spec-keyword-index.d.ts +30 -0
  218. package/dist/src/tools/spec-keyword-index.d.ts.map +1 -0
  219. package/dist/src/tools/spec-keyword-index.js +101 -0
  220. package/dist/src/tools/spec-keyword-index.js.map +1 -0
  221. package/dist/src/tools/spec-loader.d.ts +3 -3
  222. package/dist/src/tools/spec-loader.d.ts.map +1 -1
  223. package/dist/src/tools/spec-loader.js +49 -23
  224. package/dist/src/tools/spec-loader.js.map +1 -1
  225. package/dist/src/tools/team-agents.d.ts +27 -0
  226. package/dist/src/tools/team-agents.d.ts.map +1 -0
  227. package/dist/src/tools/team-agents.js +362 -0
  228. package/dist/src/tools/team-agents.js.map +1 -0
  229. package/dist/src/tools/team-mailbox.d.ts +40 -0
  230. package/dist/src/tools/team-mailbox.d.ts.map +1 -0
  231. package/dist/src/tools/team-mailbox.js +384 -0
  232. package/dist/src/tools/team-mailbox.js.map +1 -0
  233. package/dist/src/tools/team-msg.d.ts +17 -8
  234. package/dist/src/tools/team-msg.d.ts.map +1 -1
  235. package/dist/src/tools/team-msg.js +110 -13
  236. package/dist/src/tools/team-msg.js.map +1 -1
  237. package/dist/src/tools/team-tasks-mcp.d.ts +27 -0
  238. package/dist/src/tools/team-tasks-mcp.d.ts.map +1 -0
  239. package/dist/src/tools/team-tasks-mcp.js +408 -0
  240. package/dist/src/tools/team-tasks-mcp.js.map +1 -0
  241. package/dist/src/types/index.d.ts +5 -0
  242. package/dist/src/types/index.d.ts.map +1 -1
  243. package/package.json +2 -1
  244. package/templates/cli/prompts/workflow-skill-conflict-patterns.txt +3 -3
  245. package/templates/cli/prompts/workflow-skill-lessons-learned.txt +3 -3
  246. package/templates/search-tools.md +1 -1
  247. package/workflows/analyze.md +816 -816
  248. package/workflows/brainstorm.md +471 -471
  249. package/workflows/cli-tools-usage.md +44 -27
  250. package/workflows/codebase-rebuild.md +332 -332
  251. package/workflows/codebase-refresh.md +240 -240
  252. package/workflows/delegate-usage.md +3 -3
  253. package/workflows/execute.md +1 -1
  254. package/workflows/harvest.md +420 -420
  255. package/workflows/integration-test.md +343 -343
  256. package/workflows/issue-analyze.md +6 -2
  257. package/workflows/issue-discover.md +414 -414
  258. package/workflows/issue-execute.md +6 -3
  259. package/workflows/issue-plan.md +5 -2
  260. package/workflows/maestro-coordinate.codex.md +281 -470
  261. package/workflows/maestro-coordinate.md +14 -14
  262. package/workflows/maestro-link-coordinate.md +2 -2
  263. package/workflows/maestro.codex.md +710 -0
  264. package/workflows/maestro.md +10 -11
  265. package/workflows/map.md +111 -111
  266. package/workflows/milestone-complete.md +176 -176
  267. package/workflows/plan.md +1 -1
  268. package/workflows/quick.md +497 -497
  269. package/workflows/refactor.md +300 -300
  270. package/workflows/retrospective.md +1 -1
  271. package/workflows/roadmap.md +335 -335
  272. package/workflows/spec-generate.md +640 -640
  273. package/workflows/specs-add.md +46 -81
  274. package/workflows/specs-load.md +15 -17
  275. package/workflows/specs-setup.md +40 -161
  276. package/.claude/commands/manage-issue-analyze.md +0 -62
  277. package/.claude/commands/manage-issue-execute.md +0 -73
  278. package/.claude/commands/manage-issue-plan.md +0 -62
  279. package/.codex/skills/manage-issue-analyze/SKILL.md +0 -207
  280. package/.codex/skills/manage-issue-execute/SKILL.md +0 -200
  281. package/.codex/skills/manage-issue-plan/SKILL.md +0 -186
@@ -0,0 +1,233 @@
1
+ ---
2
+ name: maestro-chain
3
+ description: Flat chain coordinator — resolve intent, build single CSV with all steps, execute via spawn_agents_on_csv (max_workers=1). Sub-agents self-discover context. No coordinator-side artifact analysis. Simpler than maestro.
4
+ argument-hint: "\"intent text\" [-y] [-c|--continue] [--dry-run] [--chain <name>]"
5
+ allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
6
+ ---
7
+
8
+ <purpose>
9
+ Flat sequential chain coordinator. Resolves intent, builds a single CSV with all steps,
10
+ executes via one `spawn_agents_on_csv` call (max_workers=1). Sub-agents are self-discovering:
11
+ each skill reads `.workflow/state.json` and globs for latest artifacts on its own.
12
+ Coordinator only assembles initial args and launches — no mid-chain artifact analysis.
13
+
14
+ ```
15
+ Intent → Resolve Chain → Build tasks.csv → spawn_agents_on_csv(max_workers=1) → Read results → Report
16
+ (all steps) step 1 → step 2 → … → step N
17
+ (each skill self-discovers context)
18
+ ```
19
+
20
+ **When to use this vs `$maestro`**:
21
+ - `$maestro-chain` — all skills self-discover (read state.json, glob artifacts)
22
+ - `$maestro` — need coordinator-side artifact analysis between steps (dynamic arg resolution)
23
+ </purpose>
24
+
25
+ <required_reading>
26
+ @~/.maestro/workflows/maestro.codex.md — authoritative `detectTaskType`, `detectNextAction`, `chainMap` (35+ intent patterns, 40+ chain types). Read before executing any step.
27
+ </required_reading>
28
+
29
+ <context>
30
+ $ARGUMENTS — user intent text, or special flags.
31
+
32
+ **Flags:**
33
+ - `-y, --yes` — Auto mode: skip all prompts; propagate `-y` to each skill
34
+ - `--continue` — Resume latest paused session (re-run from first failed/pending step)
35
+ - `--dry-run` — Display planned chain without executing
36
+ - `--chain <name>` — Force specific chain (skips intent classification)
37
+
38
+ **Session state**: `.workflow/.maestro-chain/{session-id}/`
39
+ **Core output**: `tasks.csv` + `results.csv` + `state.json`
40
+ </context>
41
+
42
+ <invariants>
43
+ 1. **ALL skills via spawn_agents_on_csv**: The entire chain is a single `spawn_agents_on_csv` invocation. Coordinator NEVER directly executes any skill. No exceptions.
44
+ 2. **Coordinator = prompt assembler only**: Classify intent → build CSV → spawn → read results → report. It never runs skill logic itself.
45
+ 3. **One CSV, one call**: All steps go into one `tasks.csv`, one `spawn_agents_on_csv` call.
46
+ 4. **max_workers=1**: Strict sequential execution — step N finishes before step N+1 starts.
47
+ 5. **Skills self-discover**: Each skill reads `.workflow/state.json` and globs for latest artifacts. No coordinator-side artifact analysis between steps.
48
+ 6. **Args resolved once**: All `{phase}`, `{description}` placeholders resolved at CSV build time — no dynamic updates mid-chain.
49
+ 7. **Abort tolerance**: A failed step doesn't auto-skip subsequent steps — each skill decides independently whether to proceed.
50
+ 8. **Resume = rebuild CSV**: `--continue` rebuilds CSV from first pending/failed step.
51
+ </invariants>
52
+
53
+ <chain_map>
54
+ | Intent keywords | Chain | Steps (skills, in order) |
55
+ |----------------|-------|--------------------------|
56
+ | fix, bug, error, broken, crash | `quality-fix` | $maestro-analyze --gaps → $maestro-plan --gaps → $maestro-execute → $maestro-verify |
57
+ | test, spec, coverage | `quality-test` | $quality-test |
58
+ | refactor, cleanup, debt | `quality-refactor` | $quality-refactor |
59
+ | feature, implement, add, build | `feature` | $maestro-plan → $maestro-execute → $maestro-verify |
60
+ | review, check, audit | `quality-review` | $quality-review |
61
+ | deploy, release, ship | `deploy` | $maestro-verify → $maestro-execute |
62
+ </chain_map>
63
+
64
+ <execution>
65
+
66
+ ### Phase 1: Resolve Intent and Chain
67
+
68
+ 1. Parse arguments: extract `AUTO_YES`, `RESUME`, `DRY_RUN`, `forceChain`, `intent`
69
+ 2. Read `.workflow/state.json` for project context
70
+ 3. Classify intent → select chain (same logic as `$maestro`)
71
+ 4. If unclear and not AUTO_YES: ask one clarifying question
72
+ 5. Resolve phase from intent or state
73
+
74
+ **`--continue`**: Load latest `state.json` from `.workflow/.maestro-chain/`, rebuild CSV from first pending step.
75
+
76
+ **`--dry-run`**: Display chain and stop.
77
+
78
+ ### Phase 2: Build CSV and Execute
79
+
80
+ #### Skill Call Assembly
81
+
82
+ ```javascript
83
+ const AUTO_FLAG_MAP = {
84
+ 'maestro-analyze': '-y', 'maestro-brainstorm': '-y',
85
+ 'maestro-ui-design': '-y', 'maestro-plan': '--auto',
86
+ 'maestro-spec-generate': '-y', 'quality-test': '--auto-fix',
87
+ 'quality-retrospective': '--auto-yes',
88
+ };
89
+
90
+ function buildSkillCall(step) {
91
+ let args = (step.args ?? '')
92
+ .replace(/{phase}/g, resolvedPhase ?? '')
93
+ .replace(/{description}/g, intent ?? '')
94
+ .replace(/{issue_id}/g, resolvedIssueId ?? '');
95
+ if (AUTO_YES) {
96
+ const flag = AUTO_FLAG_MAP[step.cmd];
97
+ if (flag && !args.includes(flag)) args = args ? `${args} ${flag}` : flag;
98
+ }
99
+ return `$${step.cmd} ${args}`.trim();
100
+ }
101
+ ```
102
+
103
+ #### Session Init + CSV Generation
104
+
105
+ ```javascript
106
+ const sessionId = `MC-${dateStr}-${timeStr}`;
107
+ const sessionDir = `.workflow/.maestro-chain/${sessionId}`;
108
+ Bash(`mkdir -p ${sessionDir}`);
109
+
110
+ Write(`${sessionDir}/state.json`, JSON.stringify({
111
+ id: sessionId, intent, chain: chainName, auto_yes: AUTO_YES,
112
+ status: "running", started_at: new Date().toISOString(),
113
+ steps: chain.map((s, i) => ({
114
+ step_n: i + 1, cmd: s.cmd,
115
+ skill_call: buildSkillCall(s), status: "pending"
116
+ }))
117
+ }, null, 2));
118
+ ```
119
+
120
+ ```csv
121
+ id,skill_call,topic
122
+ "1","$maestro-analyze --gaps \"fix auth\" -y","Chain quality-fix step 1/4"
123
+ "2","$maestro-plan --gaps -y","Chain quality-fix step 2/4"
124
+ "3","$maestro-execute -y","Chain quality-fix step 3/4"
125
+ "4","$maestro-verify -y","Chain quality-fix step 4/4"
126
+ ```
127
+
128
+ #### Spawn — ALL execution via spawn_agents_on_csv, never direct
129
+
130
+ ```javascript
131
+ spawn_agents_on_csv({
132
+ csv_path: `${sessionDir}/tasks.csv`,
133
+ id_column: "id",
134
+ instruction: INSTRUCTION,
135
+ max_workers: 1,
136
+ max_runtime_seconds: 1800,
137
+ output_csv_path: `${sessionDir}/results.csv`,
138
+ output_schema: RESULT_SCHEMA
139
+ });
140
+ ```
141
+
142
+ ### Sub-Agent Instruction Template
143
+
144
+ ```
145
+ 你是 CSV job 子 agent。
146
+
147
+ 先原样执行这一段技能调用:
148
+ {skill_call}
149
+
150
+ 然后基于结果完成这一行任务说明:
151
+ {topic}
152
+
153
+ 限制:
154
+ - skill 内部自己管理 session 和产物发现
155
+ - 不要修改 .workflow/.maestro-chain/ 下的 state 文件
156
+
157
+ 最后必须调用 `report_agent_job_result`,返回 JSON:
158
+ {"status":"completed|failed","skill_call":"{skill_call}","summary":"一句话结果","artifacts":"产物路径或空字符串","error":"失败原因或空字符串"}
159
+ ```
160
+
161
+ ### Result Schema
162
+
163
+ ```javascript
164
+ const RESULT_SCHEMA = {
165
+ type: "object",
166
+ properties: {
167
+ status: { type: "string", enum: ["completed", "failed"] },
168
+ skill_call: { type: "string" },
169
+ summary: { type: "string" },
170
+ artifacts: { type: "string" },
171
+ error: { type: "string" }
172
+ },
173
+ required: ["status", "skill_call", "summary", "artifacts", "error"]
174
+ };
175
+ ```
176
+
177
+ ### Phase 3: Report
178
+
179
+ ```javascript
180
+ const results = parseCSV(Read(`${sessionDir}/results.csv`));
181
+ const done = results.filter(r => r.status === 'completed').length;
182
+ const failed = results.filter(r => r.status === 'failed').length;
183
+
184
+ state.status = failed > 0 ? 'completed_with_errors' : 'completed';
185
+ state.completed_at = new Date().toISOString();
186
+ for (const row of results) {
187
+ const step = state.steps[parseInt(row.id) - 1];
188
+ step.status = row.status;
189
+ step.summary = row.summary;
190
+ step.artifacts = row.artifacts;
191
+ step.error = row.error;
192
+ }
193
+ Write(`${sessionDir}/state.json`, JSON.stringify(state, null, 2));
194
+ ```
195
+
196
+ ```
197
+ === CHAIN COMPLETE ===
198
+ Session: <sessionId>
199
+ Chain: <chain>
200
+ Steps: <done>/<total>
201
+
202
+ RESULTS:
203
+ [1] $maestro-analyze --gaps → ✓ <summary>
204
+ [2] $maestro-plan --gaps → ✓ <summary>
205
+ [3] $maestro-execute → ✓ <summary>
206
+ [4] $maestro-verify → ✓ <summary>
207
+
208
+ State: .workflow/.maestro-chain/<sessionId>/state.json
209
+ Resume: $maestro-chain --continue
210
+ ```
211
+ </execution>
212
+
213
+ <error_codes>
214
+ | Code | Severity | Condition | Recovery |
215
+ |------|----------|-----------|----------|
216
+ | E001 | error | Intent unclassifiable | Default to `feature` chain |
217
+ | E002 | error | `--chain` not in map | List valid chains, abort |
218
+ | E003 | error | Step timeout | Mark `failed` in results (subsequent steps still attempt) |
219
+ | E004 | error | `--continue`: no session | List sessions, prompt |
220
+ </error_codes>
221
+
222
+ <success_criteria>
223
+ - [ ] Intent classified and chain resolved
224
+ - [ ] Session dir initialized with `state.json` before spawn
225
+ - [ ] All steps in one `tasks.csv`, one `spawn_agents_on_csv` call — no direct skill execution
226
+ - [ ] max_workers=1 enforced (strict sequential)
227
+ - [ ] Each skill self-discovers context (no coordinator-side artifact analysis)
228
+ - [ ] Args resolved at CSV build time, no mid-chain updates
229
+ - [ ] Results read, state.json updated with per-step status
230
+ - [ ] Completion report displayed
231
+ - [ ] `--dry-run` shows chain, no execution
232
+ - [ ] `--continue` rebuilds CSV from first pending/failed step
233
+ </success_criteria>