maestro-flow 0.3.14 → 0.3.16

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 (392) hide show
  1. package/.claude/commands/maestro-amend.md +300 -0
  2. package/.claude/commands/maestro-analyze.md +1 -49
  3. package/.claude/commands/maestro-composer.md +354 -0
  4. package/.claude/commands/maestro-execute.md +2 -56
  5. package/.claude/commands/maestro-fork.md +3 -50
  6. package/.claude/commands/maestro-merge.md +2 -26
  7. package/.claude/commands/maestro-milestone-audit.md +1 -5
  8. package/.claude/commands/maestro-milestone-complete.md +1 -7
  9. package/.claude/commands/maestro-plan.md +6 -127
  10. package/.claude/commands/maestro-player.md +404 -0
  11. package/.claude/commands/maestro-roadmap.md +3 -101
  12. package/.claude/commands/maestro-spec-generate.md +1 -25
  13. package/.claude/commands/maestro-ui-design.md +14 -73
  14. package/.claude/commands/maestro-verify.md +1 -32
  15. package/.claude/commands/maestro.md +13 -30
  16. package/.claude/commands/manage-harvest.md +7 -44
  17. package/.claude/commands/manage-knowhow-capture.md +193 -0
  18. package/.claude/commands/{manage-memory.md → manage-knowhow.md} +77 -88
  19. package/.claude/commands/manage-learn.md +3 -28
  20. package/.claude/commands/manage-status.md +1 -20
  21. package/.claude/commands/manage-wiki.md +1 -1
  22. package/.claude/commands/quality-business-test.md +1 -1
  23. package/.claude/commands/quality-debug.md +3 -18
  24. package/.claude/commands/quality-integration-test.md +3 -23
  25. package/.claude/commands/quality-retrospective.md +1 -28
  26. package/.claude/commands/quality-review.md +3 -52
  27. package/.claude/commands/quality-test-gen.md +1 -10
  28. package/.claude/commands/quality-test.md +3 -25
  29. package/.claude/commands/spec-add.md +1 -21
  30. package/.claude/commands/spec-load.md +1 -16
  31. package/.claude/commands/wiki-connect.md +2 -112
  32. package/.claude/commands/wiki-digest.md +2 -141
  33. package/.claude/skills/skill-iter-tune/SKILL.md +382 -0
  34. package/.claude/skills/skill-iter-tune/phases/01-setup.md +144 -0
  35. package/.claude/skills/skill-iter-tune/phases/02-execute.md +292 -0
  36. package/.claude/skills/skill-iter-tune/phases/03-evaluate.md +312 -0
  37. package/.claude/skills/skill-iter-tune/phases/04-improve.md +186 -0
  38. package/.claude/skills/skill-iter-tune/phases/05-report.md +166 -0
  39. package/.claude/skills/skill-iter-tune/specs/evaluation-criteria.md +63 -0
  40. package/.claude/skills/skill-iter-tune/templates/eval-prompt.md +134 -0
  41. package/.claude/skills/skill-iter-tune/templates/execute-prompt.md +97 -0
  42. package/.claude/skills/workflow-skill-designer/SKILL.md +496 -0
  43. package/.claude/skills/workflow-skill-designer/phases/01-requirements-analysis.md +356 -0
  44. package/.claude/skills/workflow-skill-designer/phases/02-orchestrator-design.md +444 -0
  45. package/.claude/skills/workflow-skill-designer/phases/03-phase-design.md +458 -0
  46. package/.claude/skills/workflow-skill-designer/phases/04-validation.md +471 -0
  47. package/.codex/skills/learn-decompose/SKILL.md +2 -8
  48. package/.codex/skills/maestro/SKILL.md +60 -146
  49. package/.codex/skills/maestro-analyze/SKILL.md +52 -150
  50. package/.codex/skills/maestro-brainstorm/SKILL.md +36 -91
  51. package/.codex/skills/maestro-composer/SKILL.md +213 -0
  52. package/.codex/skills/maestro-execute/SKILL.md +46 -177
  53. package/.codex/skills/maestro-init/SKILL.md +7 -51
  54. package/.codex/skills/maestro-link-coordinate/SKILL.md +56 -229
  55. package/.codex/skills/maestro-milestone-audit/SKILL.md +7 -36
  56. package/.codex/skills/maestro-milestone-complete/SKILL.md +11 -93
  57. package/.codex/skills/maestro-overlay/SKILL.md +23 -92
  58. package/.codex/skills/maestro-plan/SKILL.md +42 -166
  59. package/.codex/skills/maestro-player/SKILL.md +323 -0
  60. package/.codex/skills/maestro-quick/SKILL.md +5 -48
  61. package/.codex/skills/maestro-roadmap/SKILL.md +21 -66
  62. package/.codex/skills/maestro-spec-generate/SKILL.md +20 -56
  63. package/.codex/skills/maestro-ui-design/SKILL.md +6 -53
  64. package/.codex/skills/maestro-verify/SKILL.md +39 -136
  65. package/.codex/skills/manage-codebase-rebuild/SKILL.md +25 -75
  66. package/.codex/skills/manage-codebase-refresh/SKILL.md +5 -32
  67. package/.codex/skills/manage-issue/SKILL.md +1 -6
  68. package/.codex/skills/manage-issue-discover/SKILL.md +33 -93
  69. package/.codex/skills/{manage-memory → manage-knowhow}/SKILL.md +95 -95
  70. package/.codex/skills/manage-knowhow-capture/SKILL.md +110 -0
  71. package/.codex/skills/manage-learn/SKILL.md +17 -71
  72. package/.codex/skills/manage-status/SKILL.md +4 -35
  73. package/.codex/skills/manage-wiki/SKILL.md +1 -1
  74. package/.codex/skills/quality-business-test/SKILL.md +2 -14
  75. package/.codex/skills/quality-debug/SKILL.md +41 -133
  76. package/.codex/skills/quality-integration-test/SKILL.md +36 -145
  77. package/.codex/skills/quality-refactor/SKILL.md +6 -59
  78. package/.codex/skills/quality-retrospective/SKILL.md +292 -531
  79. package/.codex/skills/quality-review/SKILL.md +30 -65
  80. package/.codex/skills/quality-sync/SKILL.md +2 -11
  81. package/.codex/skills/quality-test/SKILL.md +4 -45
  82. package/.codex/skills/quality-test-gen/SKILL.md +33 -121
  83. package/.codex/skills/spec-add/SKILL.md +2 -9
  84. package/.codex/skills/spec-load/SKILL.md +4 -14
  85. package/.codex/skills/spec-map/SKILL.md +4 -37
  86. package/.codex/skills/spec-remove/SKILL.md +3 -35
  87. package/.codex/skills/spec-setup/SKILL.md +2 -19
  88. package/.codex/skills/team-coordinate/SKILL.md +20 -132
  89. package/.codex/skills/team-coordinate/roles/coordinator/commands/monitor.md +61 -215
  90. package/.codex/skills/team-executor/SKILL.md +7 -66
  91. package/.codex/skills/team-executor/roles/executor/commands/monitor.md +60 -182
  92. package/.codex/skills/team-executor/specs/session-schema.md +22 -56
  93. package/.codex/skills/team-lifecycle-v4/SKILL.md +22 -143
  94. package/.codex/skills/team-lifecycle-v4/roles/coordinator/commands/monitor.md +31 -223
  95. package/.codex/skills/team-quality-assurance/SKILL.md +14 -88
  96. package/.codex/skills/team-quality-assurance/roles/coordinator/commands/monitor.md +46 -186
  97. package/.codex/skills/team-review/SKILL.md +12 -86
  98. package/.codex/skills/team-review/roles/coordinator/commands/monitor.md +49 -187
  99. package/.codex/skills/team-tech-debt/SKILL.md +11 -50
  100. package/.codex/skills/team-tech-debt/roles/coordinator/commands/monitor.md +50 -239
  101. package/.codex/skills/team-testing/SKILL.md +14 -99
  102. package/.codex/skills/team-testing/roles/coordinator/commands/monitor.md +52 -228
  103. package/.codex/skills/wiki-connect/SKILL.md +2 -5
  104. package/README.md +6 -0
  105. package/README.zh-CN.md +6 -0
  106. package/chains/_intent-map.json +7 -7
  107. package/chains/singles/{memory-capture.json → knowhow-capture.json} +5 -5
  108. package/chains/singles/{memory.json → knowhow.json} +6 -6
  109. package/dashboard/dist/assets/{ArtifactsPage-CUrrDGgN.js → ArtifactsPage-iJZtYsmR.js} +6 -6
  110. package/dashboard/dist/assets/ChatInput-DNnDLdQF.js +6 -0
  111. package/dashboard/dist/assets/ChatPage-BjBibfE4.js +22 -0
  112. package/dashboard/dist/assets/{CollabPage-DIUXeazv.js → CollabPage-8lUMUol_.js} +1 -1
  113. package/dashboard/dist/assets/{ExecutionPanel-VmYeADFj.js → ExecutionPanel-BKV3GZ7Q.js} +1 -1
  114. package/dashboard/dist/assets/{KanbanPage-DLq8v7hg.js → KanbanPage-diY3QmGd.js} +2 -2
  115. package/dashboard/dist/assets/{MarkdownRenderer-D7AehrnR.js → MarkdownRenderer-cYFfe1uX.js} +1 -1
  116. package/dashboard/dist/assets/McpPage-COjuIf7U.js +21 -0
  117. package/dashboard/dist/assets/MeetingRoomPage-wnvT7wlB.js +85 -0
  118. package/dashboard/dist/assets/{OutputPanel-B-Rjwgmv.js → OutputPanel-DDL90Idy.js} +1 -1
  119. package/dashboard/dist/assets/{ProblemsPanel-GEpF-oi4.js → ProblemsPanel-zFN9IIs0.js} +1 -1
  120. package/dashboard/dist/assets/{RequirementBoardPage-xs8uDM7I.js → RequirementBoardPage-DOPJoT0I.js} +2 -2
  121. package/dashboard/dist/assets/{RequirementPage-BKDSFwjA.js → RequirementPage-CEVquRgM.js} +1 -1
  122. package/dashboard/dist/assets/RoomsPage-D5USEWDh.js +1 -0
  123. package/dashboard/dist/assets/{SpecsPage-DLFb9ZH0.js → SpecsPage-BOwBin_o.js} +1 -1
  124. package/dashboard/dist/assets/{SupervisorPage-SOki_kgz.js → SupervisorPage-5iRyMU5T.js} +1 -1
  125. package/dashboard/dist/assets/TeamsPage-DlcEmr_Q.js +1 -0
  126. package/dashboard/dist/assets/{TreeBrowser-B9DHdULE.js → TreeBrowser-Y48Wz-QY.js} +1 -1
  127. package/dashboard/dist/assets/WorkflowPage-CmQaRVgL.js +6 -0
  128. package/dashboard/dist/assets/arrow-left-NCUOENvg.js +6 -0
  129. package/dashboard/dist/assets/{check-DJDk3A2a.js → check-o7nfGNHf.js} +1 -1
  130. package/dashboard/dist/assets/{chevron-right-C7bVDreZ.js → chevron-right-BXySK2fn.js} +1 -1
  131. package/dashboard/dist/assets/{circle-alert-Na1vf6qQ.js → circle-alert-DcSBokh4.js} +1 -1
  132. package/dashboard/dist/assets/{circle-check-CEGgy3NV.js → circle-check-Cd-jce4j.js} +1 -1
  133. package/dashboard/dist/assets/{circle-check-big-3JB8zRYj.js → circle-check-big-BN7Mdp4i.js} +1 -1
  134. package/dashboard/dist/assets/{circle-Qfgy4LB_.js → circle-cooAwnAR.js} +1 -1
  135. package/dashboard/dist/assets/{code-Ble63Idz.js → code-BQa9oL1n.js} +1 -1
  136. package/dashboard/dist/assets/{columns-3-BUcKlxve.js → columns-3-BzgxelGx.js} +1 -1
  137. package/dashboard/dist/assets/{download-CMqkfn8x.js → download-swRJnate.js} +1 -1
  138. package/dashboard/dist/assets/en-C_BD3UCD.js +1 -0
  139. package/dashboard/dist/assets/{folder-B9ewx9LL.js → folder-DbGbLNFN.js} +1 -1
  140. package/dashboard/dist/assets/index-BEUaOz_b.css +1 -0
  141. package/dashboard/dist/assets/{index-JTmGteaT.js → index-DIoMBMbv.js} +1 -1
  142. package/dashboard/dist/assets/index-DLBN_7fb.js +44 -0
  143. package/dashboard/dist/assets/index-uIqUCT8y.js +236 -0
  144. package/dashboard/dist/assets/{list-DI8Wn2aT.js → list-BTRAIvDq.js} +1 -1
  145. package/dashboard/dist/assets/loader-NHtB6Mdn.js +6 -0
  146. package/dashboard/dist/assets/{minus-Lp_BfctG.js → minus-BjMxRTET.js} +1 -1
  147. package/dashboard/dist/assets/{pen-line-Ch7sphzZ.js → pen-line-C4_O16H0.js} +1 -1
  148. package/dashboard/dist/assets/{pencil-_yRMHmGT.js → pencil-DTmKhyDY.js} +1 -1
  149. package/dashboard/dist/assets/{proxy-D72Y8a4Y.js → proxy-Dtx5p6IO.js} +1 -1
  150. package/dashboard/dist/assets/rows-2-GR1dZtRu.js +6 -0
  151. package/dashboard/dist/assets/{search-BS6fI6Bg.js → search-DVtgy2W7.js} +1 -1
  152. package/dashboard/dist/assets/{shallow-BXasQBvr.js → shallow-BOmvDNsv.js} +1 -1
  153. package/dashboard/dist/assets/{table-CeGlFjlP.js → table-DCzuJAFh.js} +1 -1
  154. package/dashboard/dist/assets/team-types-BPeOvVdA.js +6 -0
  155. package/dashboard/dist/assets/{terminal-BJic2yW-.js → terminal-CzogW4cl.js} +1 -1
  156. package/dashboard/dist/assets/{trash-2-Czz4X8Fb.js → trash-2-52LATVfW.js} +1 -1
  157. package/dashboard/dist/assets/users-DLFE2voE.js +6 -0
  158. package/dashboard/dist/assets/{zap-C3H0jVFA.js → zap-DhiYlgyZ.js} +1 -1
  159. package/dashboard/dist/assets/zh-CN-DvQKfow3.js +1 -0
  160. package/dashboard/dist/index.html +2 -2
  161. package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.d.ts +2 -0
  162. package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js +19 -11
  163. package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js.map +1 -1
  164. package/dashboard/dist-server/dashboard/src/server/agents/agent-sdk-adapter.js +5 -0
  165. package/dashboard/dist-server/dashboard/src/server/agents/agent-sdk-adapter.js.map +1 -1
  166. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.d.ts +1 -0
  167. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js +21 -4
  168. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js.map +1 -1
  169. package/dashboard/dist-server/dashboard/src/server/agents/env-cleanup.js +8 -0
  170. package/dashboard/dist-server/dashboard/src/server/agents/env-cleanup.js.map +1 -1
  171. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js +6 -6
  172. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js.map +1 -1
  173. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.test.js +2 -2
  174. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.test.js.map +1 -1
  175. package/dashboard/dist-server/dashboard/src/server/index.js +14 -3
  176. package/dashboard/dist-server/dashboard/src/server/index.js.map +1 -1
  177. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.d.ts +24 -0
  178. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.js +220 -0
  179. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.js.map +1 -0
  180. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.test.d.ts +1 -0
  181. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.test.js +115 -0
  182. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.test.js.map +1 -0
  183. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.d.ts +44 -0
  184. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.js +260 -0
  185. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.js.map +1 -0
  186. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.test.d.ts +1 -0
  187. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.test.js +194 -0
  188. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.test.js.map +1 -0
  189. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/stdio-bridge.d.ts +2 -0
  190. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/stdio-bridge.js +279 -0
  191. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/stdio-bridge.js.map +1 -0
  192. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.d.ts +14 -0
  193. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.js +131 -0
  194. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.js.map +1 -0
  195. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.test.d.ts +1 -0
  196. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.test.js +134 -0
  197. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.test.js.map +1 -0
  198. package/dashboard/dist-server/dashboard/src/server/rooms/meeting-room-session.d.ts +51 -0
  199. package/dashboard/dist-server/dashboard/src/server/rooms/meeting-room-session.js +185 -0
  200. package/dashboard/dist-server/dashboard/src/server/rooms/meeting-room-session.js.map +1 -0
  201. package/dashboard/dist-server/dashboard/src/server/rooms/room-agent-registry.d.ts +29 -0
  202. package/dashboard/dist-server/dashboard/src/server/rooms/room-agent-registry.js +125 -0
  203. package/dashboard/dist-server/dashboard/src/server/rooms/room-agent-registry.js.map +1 -0
  204. package/dashboard/dist-server/dashboard/src/server/rooms/room-mailbox.d.ts +18 -0
  205. package/dashboard/dist-server/dashboard/src/server/rooms/room-mailbox.js +63 -0
  206. package/dashboard/dist-server/dashboard/src/server/rooms/room-mailbox.js.map +1 -0
  207. package/dashboard/dist-server/dashboard/src/server/rooms/room-session-manager.d.ts +19 -0
  208. package/dashboard/dist-server/dashboard/src/server/rooms/room-session-manager.js +45 -0
  209. package/dashboard/dist-server/dashboard/src/server/rooms/room-session-manager.js.map +1 -0
  210. package/dashboard/dist-server/dashboard/src/server/rooms/room-task-board.d.ts +25 -0
  211. package/dashboard/dist-server/dashboard/src/server/rooms/room-task-board.js +115 -0
  212. package/dashboard/dist-server/dashboard/src/server/rooms/room-task-board.js.map +1 -0
  213. package/dashboard/dist-server/dashboard/src/server/rooms/room-types.d.ts +53 -0
  214. package/dashboard/dist-server/dashboard/src/server/rooms/room-types.js +5 -0
  215. package/dashboard/dist-server/dashboard/src/server/rooms/room-types.js.map +1 -0
  216. package/dashboard/dist-server/dashboard/src/server/routes/agents.js +6 -0
  217. package/dashboard/dist-server/dashboard/src/server/routes/agents.js.map +1 -1
  218. package/dashboard/dist-server/dashboard/src/server/routes/cli-history.js +20 -1
  219. package/dashboard/dist-server/dashboard/src/server/routes/cli-history.js.map +1 -1
  220. package/dashboard/dist-server/dashboard/src/server/routes/index.d.ts +2 -1
  221. package/dashboard/dist-server/dashboard/src/server/routes/index.js +8 -1
  222. package/dashboard/dist-server/dashboard/src/server/routes/index.js.map +1 -1
  223. package/dashboard/dist-server/dashboard/src/server/routes/install.js +1 -1
  224. package/dashboard/dist-server/dashboard/src/server/routes/install.js.map +1 -1
  225. package/dashboard/dist-server/dashboard/src/server/routes/mcp.js +2 -2
  226. package/dashboard/dist-server/dashboard/src/server/routes/mcp.js.map +1 -1
  227. package/dashboard/dist-server/dashboard/src/server/routes/room-mcp.d.ts +3 -0
  228. package/dashboard/dist-server/dashboard/src/server/routes/room-mcp.js +246 -0
  229. package/dashboard/dist-server/dashboard/src/server/routes/room-mcp.js.map +1 -0
  230. package/dashboard/dist-server/dashboard/src/server/routes/rooms.d.ts +3 -0
  231. package/dashboard/dist-server/dashboard/src/server/routes/rooms.js +38 -0
  232. package/dashboard/dist-server/dashboard/src/server/routes/rooms.js.map +1 -0
  233. package/dashboard/dist-server/dashboard/src/server/routes/wiki.integration.test.js +7 -7
  234. package/dashboard/dist-server/dashboard/src/server/routes/wiki.integration.test.js.map +1 -1
  235. package/dashboard/dist-server/dashboard/src/server/routes/wiki.js +1 -1
  236. package/dashboard/dist-server/dashboard/src/server/routes/wiki.js.map +1 -1
  237. package/dashboard/dist-server/dashboard/src/server/state/event-bus.d.ts +39 -1
  238. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js +12 -0
  239. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js.map +1 -1
  240. package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js +1 -1
  241. package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js.map +1 -1
  242. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js +25 -14
  243. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js.map +1 -1
  244. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.test.js +6 -6
  245. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.test.js.map +1 -1
  246. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-types.d.ts +1 -1
  247. package/dashboard/dist-server/dashboard/src/server/wiki/writer-stress.test.js +17 -16
  248. package/dashboard/dist-server/dashboard/src/server/wiki/writer-stress.test.js.map +1 -1
  249. package/dashboard/dist-server/dashboard/src/server/wiki/writer.d.ts +1 -1
  250. package/dashboard/dist-server/dashboard/src/server/wiki/writer.js +18 -7
  251. package/dashboard/dist-server/dashboard/src/server/wiki/writer.js.map +1 -1
  252. package/dashboard/dist-server/dashboard/src/server/ws/handlers/agent-handler.d.ts +3 -1
  253. package/dashboard/dist-server/dashboard/src/server/ws/handlers/agent-handler.js +75 -1
  254. package/dashboard/dist-server/dashboard/src/server/ws/handlers/agent-handler.js.map +1 -1
  255. package/dashboard/dist-server/dashboard/src/server/ws/handlers/room-handler.d.ts +17 -0
  256. package/dashboard/dist-server/dashboard/src/server/ws/handlers/room-handler.js +192 -0
  257. package/dashboard/dist-server/dashboard/src/server/ws/handlers/room-handler.js.map +1 -0
  258. package/dashboard/dist-server/dashboard/src/server/ws/session-scoped-event-filter.d.ts +13 -0
  259. package/dashboard/dist-server/dashboard/src/server/ws/session-scoped-event-filter.js +37 -0
  260. package/dashboard/dist-server/dashboard/src/server/ws/session-scoped-event-filter.js.map +1 -0
  261. package/dashboard/dist-server/dashboard/src/server/ws/ws-manager.d.ts +7 -1
  262. package/dashboard/dist-server/dashboard/src/server/ws/ws-manager.js +39 -2
  263. package/dashboard/dist-server/dashboard/src/server/ws/ws-manager.js.map +1 -1
  264. package/dashboard/dist-server/dashboard/src/shared/constants.js +12 -0
  265. package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
  266. package/dashboard/dist-server/dashboard/src/shared/room-leader-prompt.d.ts +1 -0
  267. package/dashboard/dist-server/dashboard/src/shared/room-leader-prompt.js +38 -0
  268. package/dashboard/dist-server/dashboard/src/shared/room-leader-prompt.js.map +1 -0
  269. package/dashboard/dist-server/dashboard/src/shared/team-types.d.ts +66 -0
  270. package/dashboard/dist-server/dashboard/src/shared/team-types.js.map +1 -1
  271. package/dashboard/dist-server/dashboard/src/shared/types.d.ts +24 -3
  272. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.d.ts +76 -2
  273. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.js.map +1 -1
  274. package/dashboard/dist-server/shared/agent-types.d.ts +2 -0
  275. package/dashboard/dist-server/src/commands/delegate.js +11 -8
  276. package/dashboard/dist-server/src/commands/delegate.js.map +1 -1
  277. package/dist/shared/agent-types.d.ts +2 -0
  278. package/dist/shared/agent-types.d.ts.map +1 -1
  279. package/dist/src/cli.js +2 -2
  280. package/dist/src/cli.js.map +1 -1
  281. package/dist/src/commands/delegate.d.ts.map +1 -1
  282. package/dist/src/commands/delegate.js +11 -8
  283. package/dist/src/commands/delegate.js.map +1 -1
  284. package/dist/src/commands/install-backend.d.ts +1 -1
  285. package/dist/src/commands/install-backend.d.ts.map +1 -1
  286. package/dist/src/commands/install-backend.js +1 -1
  287. package/dist/src/commands/install-backend.js.map +1 -1
  288. package/dist/src/commands/knowhow.d.ts +10 -0
  289. package/dist/src/commands/knowhow.d.ts.map +1 -0
  290. package/dist/src/commands/knowhow.js +217 -0
  291. package/dist/src/commands/knowhow.js.map +1 -0
  292. package/dist/src/commands/overlay-ui/OverlayList.d.ts +2 -0
  293. package/dist/src/commands/overlay-ui/OverlayList.d.ts.map +1 -1
  294. package/dist/src/commands/overlay-ui/OverlayList.js +6 -3
  295. package/dist/src/commands/overlay-ui/OverlayList.js.map +1 -1
  296. package/dist/src/commands/overlay-ui/index.d.ts.map +1 -1
  297. package/dist/src/commands/overlay-ui/index.js +70 -44
  298. package/dist/src/commands/overlay-ui/index.js.map +1 -1
  299. package/dist/src/commands/overlay.d.ts.map +1 -1
  300. package/dist/src/commands/overlay.js +4 -3
  301. package/dist/src/commands/overlay.js.map +1 -1
  302. package/dist/src/core/overlay/applier.d.ts +1 -1
  303. package/dist/src/core/overlay/applier.d.ts.map +1 -1
  304. package/dist/src/core/overlay/applier.js +40 -13
  305. package/dist/src/core/overlay/applier.js.map +1 -1
  306. package/dist/src/core/overlay/loader.d.ts.map +1 -1
  307. package/dist/src/core/overlay/loader.js +6 -0
  308. package/dist/src/core/overlay/loader.js.map +1 -1
  309. package/dist/src/core/overlay/types.d.ts +5 -1
  310. package/dist/src/core/overlay/types.d.ts.map +1 -1
  311. package/dist/src/core/overlay/types.js +1 -1
  312. package/dist/src/core/overlay/types.js.map +1 -1
  313. package/dist/src/hooks/context-monitor.js +1 -1
  314. package/dist/src/hooks/context-monitor.js.map +1 -1
  315. package/dist/src/hooks/skill-context.js +1 -1
  316. package/dist/src/hooks/skill-context.js.map +1 -1
  317. package/dist/src/mcp/delegate-channel-relay.d.ts +4 -0
  318. package/dist/src/mcp/delegate-channel-relay.d.ts.map +1 -1
  319. package/dist/src/mcp/delegate-channel-relay.js +73 -4
  320. package/dist/src/mcp/delegate-channel-relay.js.map +1 -1
  321. package/dist/src/tools/index.js +2 -2
  322. package/dist/src/tools/index.js.map +1 -1
  323. package/dist/src/tools/store-knowhow.d.ts +21 -0
  324. package/dist/src/tools/store-knowhow.d.ts.map +1 -0
  325. package/dist/src/tools/store-knowhow.js +295 -0
  326. package/dist/src/tools/store-knowhow.js.map +1 -0
  327. package/package.json +1 -1
  328. package/shared/agent-types.ts +2 -0
  329. package/templates/workflows/specs/node-catalog.md +170 -0
  330. package/templates/workflows/specs/template-schema.md +157 -0
  331. package/workflows/analyze.md +61 -185
  332. package/workflows/brainstorm.md +3 -23
  333. package/workflows/codebase-rebuild.md +79 -191
  334. package/workflows/codebase-refresh.md +26 -124
  335. package/workflows/debug.md +21 -141
  336. package/workflows/execute.md +183 -350
  337. package/workflows/fork.md +72 -230
  338. package/workflows/harvest.md +12 -79
  339. package/workflows/init.md +3 -17
  340. package/workflows/integration-test.md +21 -190
  341. package/workflows/issue-analyze.md +35 -153
  342. package/workflows/issue-discover.md +88 -263
  343. package/workflows/issue-execute.md +29 -208
  344. package/workflows/issue-plan.md +33 -154
  345. package/workflows/issue.md +44 -202
  346. package/workflows/knowhow.md +374 -0
  347. package/workflows/learn.md +30 -177
  348. package/workflows/maestro-coordinate.codex.md +77 -362
  349. package/workflows/maestro-link-coordinate.md +12 -61
  350. package/workflows/maestro.codex.md +124 -457
  351. package/workflows/maestro.md +562 -976
  352. package/workflows/map.md +16 -53
  353. package/workflows/merge.md +42 -197
  354. package/workflows/milestone-audit.md +5 -43
  355. package/workflows/milestone-complete.md +11 -60
  356. package/workflows/plan.md +176 -387
  357. package/workflows/quick.md +25 -174
  358. package/workflows/refactor.md +28 -221
  359. package/workflows/retrospective.md +104 -443
  360. package/workflows/review.md +87 -299
  361. package/workflows/roadmap.md +117 -97
  362. package/workflows/spec-generate.md +22 -118
  363. package/workflows/specs-add.md +5 -25
  364. package/workflows/specs-load.md +1 -5
  365. package/workflows/specs-remove.md +0 -11
  366. package/workflows/specs-setup.md +11 -47
  367. package/workflows/status.md +58 -200
  368. package/workflows/sync.md +28 -141
  369. package/workflows/test-gen.md +23 -100
  370. package/workflows/test.md +15 -125
  371. package/workflows/ui-design.md +139 -465
  372. package/workflows/ui-style.md +36 -228
  373. package/workflows/verify.md +52 -273
  374. package/workflows/wiki-connect.md +9 -46
  375. package/workflows/wiki-digest.md +7 -50
  376. package/workflows/wiki-manage.md +11 -108
  377. package/.claude/commands/maestro-coordinate.md +0 -63
  378. package/.claude/commands/manage-memory-capture.md +0 -59
  379. package/.codex/skills/maestro-coordinate/SKILL.md +0 -213
  380. package/.codex/skills/manage-memory-capture/SKILL.md +0 -93
  381. package/dashboard/dist/assets/ChatInput-pUOLJIKE.js +0 -49
  382. package/dashboard/dist/assets/ChatPage-B8Xqkt0v.js +0 -27
  383. package/dashboard/dist/assets/McpPage-BY0SjTgw.js +0 -21
  384. package/dashboard/dist/assets/TeamsPage-BO2kP70F.js +0 -11
  385. package/dashboard/dist/assets/WorkflowPage-C8hWbYim.js +0 -6
  386. package/dashboard/dist/assets/en-ZbRpfzuP.js +0 -1
  387. package/dashboard/dist/assets/index-C2Mcb4TJ.js +0 -231
  388. package/dashboard/dist/assets/index-DyBbPc18.css +0 -1
  389. package/dashboard/dist/assets/loader-B5F6PzFT.js +0 -11
  390. package/dashboard/dist/assets/zh-CN-CoXBFuny.js +0 -1
  391. package/workflows/maestro-coordinate.md +0 -582
  392. package/workflows/memory.md +0 -451
@@ -163,31 +163,22 @@ Each wave generates `wave-{N}.csv` with extra `prev_context` column.
163
163
 
164
164
  ### Session Initialization
165
165
 
166
- ```javascript
167
- const getUtc8ISOString = () => new Date(Date.now() + 8 * 60 * 60 * 1000).toISOString()
168
-
169
- // Parse flags
170
- const AUTO_YES = $ARGUMENTS.includes('--yes') || $ARGUMENTS.includes('-y')
171
- const continueMode = $ARGUMENTS.includes('--continue')
172
- const concurrencyMatch = $ARGUMENTS.match(/(?:--concurrency|-c)\s+(\d+)/)
173
- const maxConcurrency = concurrencyMatch ? parseInt(concurrencyMatch[1]) : 6
174
-
175
- // Parse brainstorm-specific flags
176
- const countMatch = $ARGUMENTS.match(/--count\s+(\d+)/)
177
- const roleCount = countMatch ? Math.min(parseInt(countMatch[1]), 9) : 3
178
- const skipQuestions = $ARGUMENTS.includes('--skip-questions')
179
-
180
- // Clean topic text
181
- const topicArg = $ARGUMENTS
182
- .replace(/--yes|-y|--continue|--concurrency\s+\d+|-c\s+\d+|--count\s+\d+|--skip-questions/g, '')
183
- .trim()
184
-
185
- const slug = topicArg.toLowerCase().replace(/[^a-z0-9]+/g, '-').substring(0, 40)
186
- const dateStr = getUtc8ISOString().substring(0, 10).replace(/-/g, '')
187
- const sessionId = `${dateStr}-brainstorm-${slug}`
188
- const sessionFolder = `.workflow/.csv-wave/${sessionId}`
189
-
190
- Bash(`mkdir -p ${sessionFolder}/.brainstorming`)
166
+ ```
167
+ Parse from $ARGUMENTS:
168
+ AUTO_YES ← --yes | -y
169
+ continueMode ← --continue
170
+ maxConcurrency --concurrency | -c N (default: 6)
171
+ roleCount ← --count N (default: 3, max: 9)
172
+ skipQuestions ← --skip-questions
173
+ topicArg ← remaining text after flag removal
174
+
175
+ Derive:
176
+ slug ← topicArg kebab-cased, max 40 chars
177
+ dateStr ← UTC+8 YYYYMMDD
178
+ sessionId ← "{dateStr}-brainstorm-{slug}"
179
+ sessionFolder ← ".workflow/.csv-wave/{sessionId}"
180
+
181
+ mkdir -p {sessionFolder}/.brainstorming
191
182
  ```
192
183
 
193
184
  ### Phase 1: Topic Resolution -> CSV
@@ -231,37 +222,22 @@ Bash(`mkdir -p ${sessionFolder}/.brainstorming`)
231
222
 
232
223
  #### Wave 1: Guidance Specification (Single Agent)
233
224
 
234
- 1. Read master `tasks.csv`
235
- 2. Filter rows where `wave == 1` AND `status == pending`
236
- 3. No prev_context needed (wave 1 has no predecessors)
237
- 4. Write `wave-1.csv`
238
- 5. Execute:
225
+ 1. Extract wave 1 pending rows from master `tasks.csv` into `wave-1.csv` (no prev_context needed)
226
+ 2. Execute:
239
227
 
240
228
  ```javascript
241
229
  spawn_agents_on_csv({
242
230
  csv_path: `${sessionFolder}/wave-1.csv`,
243
231
  id_column: "id",
244
232
  instruction: buildGuidanceInstruction(sessionFolder, topicArg),
245
- max_concurrency: 1,
246
- max_runtime_seconds: 600,
233
+ max_concurrency: 1, max_runtime_seconds: 600,
247
234
  output_csv_path: `${sessionFolder}/wave-1-results.csv`,
248
- output_schema: {
249
- type: "object",
250
- properties: {
251
- id: { type: "string" },
252
- status: { type: "string", enum: ["completed", "failed"] },
253
- findings: { type: "string" },
254
- analysis_file: { type: "string" },
255
- error: { type: "string" }
256
- },
257
- required: ["id", "status", "findings"]
258
- }
235
+ output_schema: { id, status: [completed|failed], findings, analysis_file, error }
259
236
  })
260
237
  ```
261
238
 
262
- 6. Read `wave-1-results.csv`, merge into master `tasks.csv`
263
- 7. Delete `wave-1.csv`
264
- 8. Read generated `guidance-specification.md` for wave 2 context propagation
239
+ 3. Merge results into master `tasks.csv`, delete `wave-1.csv`
240
+ 4. Read generated `guidance-specification.md` for wave 2 context propagation
265
241
 
266
242
  **Guidance agent responsibilities**:
267
243
  - Analyze topic, extract 5-10 core domain terms
@@ -272,40 +248,23 @@ spawn_agents_on_csv({
272
248
 
273
249
  #### Wave 2: Role Analysis (Parallel, 3-9 Agents)
274
250
 
275
- 1. Read master `tasks.csv`
276
- 2. Filter rows where `wave == 2` AND `status == pending`
277
- 3. Build `prev_context` from wave 1 findings:
278
- ```
279
- [Task 1: Guidance Specification] Generated guidance-specification.md with N features, M terms defined...
280
- ```
281
- 4. Include `guidance-specification.md` content in prev_context for each role agent
282
- 5. Write `wave-2.csv` with `prev_context` column
283
- 6. Execute:
251
+ 1. Extract wave 2 pending rows from master `tasks.csv`
252
+ 2. Build `prev_context` from wave 1 findings + `guidance-specification.md` content
253
+ 3. Write `wave-2.csv` with `prev_context` column
254
+ 4. Execute:
284
255
 
285
256
  ```javascript
286
257
  spawn_agents_on_csv({
287
258
  csv_path: `${sessionFolder}/wave-2.csv`,
288
259
  id_column: "id",
289
260
  instruction: buildRoleAnalysisInstruction(sessionFolder),
290
- max_concurrency: maxConcurrency,
291
- max_runtime_seconds: 900,
261
+ max_concurrency: maxConcurrency, max_runtime_seconds: 900,
292
262
  output_csv_path: `${sessionFolder}/wave-2-results.csv`,
293
- output_schema: {
294
- type: "object",
295
- properties: {
296
- id: { type: "string" },
297
- status: { type: "string", enum: ["completed", "failed"] },
298
- findings: { type: "string" },
299
- analysis_file: { type: "string" },
300
- error: { type: "string" }
301
- },
302
- required: ["id", "status", "findings"]
303
- }
263
+ output_schema: { id, status: [completed|failed], findings, analysis_file, error }
304
264
  })
305
265
  ```
306
266
 
307
- 7. Read `wave-2-results.csv`, merge into master `tasks.csv`
308
- 8. Delete `wave-2.csv`
267
+ 5. Merge results into master `tasks.csv`, delete `wave-2.csv`
309
268
 
310
269
  **Role agent responsibilities**:
311
270
  - Read guidance-specification.md for framework context
@@ -321,19 +280,10 @@ spawn_agents_on_csv({
321
280
 
322
281
  #### Wave 3: Synthesis + Feature Index (Single Agent)
323
282
 
324
- 1. Read master `tasks.csv`
325
- 2. Filter rows where `wave == 3` AND `status == pending`
326
- 3. Check deps -- if all wave 2 tasks failed, skip synthesis
327
- 4. Build `prev_context` from wave 2 findings:
328
- ```
329
- [Task 2: System Architect Analysis] Key findings: microservice architecture with event sourcing...
330
- [Task 3: UI Designer Analysis] Key findings: component-based design system with real-time cursors...
331
- [Task 4: Product Manager Analysis] Key findings: MVP focuses on document editing + presence...
332
- ```
333
- 5. Write `wave-3.csv` with `prev_context` column
334
- 6. Execute `spawn_agents_on_csv` for synthesis agent
335
- 7. Merge results into master `tasks.csv`
336
- 8. Delete `wave-3.csv`
283
+ 1. If all wave 2 tasks failed, skip synthesis entirely
284
+ 2. Extract wave 3 pending rows, build `prev_context` from wave 2 findings
285
+ 3. Write `wave-3.csv`, execute `spawn_agents_on_csv` for synthesis agent (same output_schema pattern)
286
+ 4. Merge results into master `tasks.csv`, delete `wave-3.csv`
337
287
 
338
288
  **Synthesis agent responsibilities**:
339
289
  - Cross-role analysis: consensus, conflicts, unique contributions
@@ -347,9 +297,8 @@ spawn_agents_on_csv({
347
297
 
348
298
  **Objective**: Generate final results and human-readable report.
349
299
 
350
- 1. Read final master `tasks.csv`
351
- 2. Export as `results.csv`
352
- 3. Generate `context.md`:
300
+ 1. Export final `tasks.csv` as `results.csv`
301
+ 2. Generate `context.md`:
353
302
 
354
303
  ```markdown
355
304
  # Brainstorm Report -- {topic}
@@ -411,11 +360,7 @@ spawn_agents_on_csv({
411
360
 
412
361
  #### Protocol
413
362
 
414
- 1. **Read** `{session_folder}/discoveries.ndjson` before own analysis
415
- 2. **Skip covered**: If discovery of same type + dedup key exists, skip
416
- 3. **Write immediately**: Append findings as found
417
- 4. **Append-only**: Never modify or delete
418
- 5. **Deduplicate**: Check before writing
363
+ Read `discoveries.ndjson` before analysis. Append-only: dedup by type+key before writing, never modify/delete.
419
364
 
420
365
  ```bash
421
366
  echo '{"ts":"<ISO>","worker":"{id}","type":"terminology","data":{"term":"CRDT","definition":"Conflict-free Replicated Data Type","aliases":["conflict-free"],"category":"technical"}}' >> {session_folder}/discoveries.ndjson
@@ -0,0 +1,213 @@
1
+ ---
2
+ name: maestro-composer
3
+ description: Interactive workflow template composer — parse natural language into DAG of skill nodes, auto-inject checkpoints, confirm pipeline interactively, persist as reusable JSON template to ~/.maestro/templates/workflows/
4
+ argument-hint: "\"workflow description\" [--resume] [--edit <template-path>]"
5
+ allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
6
+ ---
7
+
8
+ <purpose>
9
+ Interactive workflow template composer. Parses natural language into a reusable DAG template
10
+ via 5 phases with user confirmation at each boundary. Templates saved globally at
11
+ `~/.maestro/templates/workflows/`. Progressive disclosure — specs loaded only when phase needs them.
12
+
13
+ Sequential interactive flow (no spawn_agents_on_csv — this is design, not execution):
14
+ ```
15
+ Parse NL → [confirm] → Resolve to nodes → [confirm] → Inject checkpoints → Confirm pipeline → Persist
16
+ ```
17
+
18
+ Three entry modes:
19
+ 1. **New design**: Phase 1-5
20
+ 2. **Resume design**: Load draft from `.workflow/templates/design-drafts/`
21
+ 3. **Edit template**: Load existing, modify, re-save
22
+ </purpose>
23
+
24
+ <context>
25
+ $ARGUMENTS — natural language workflow description, or flags.
26
+
27
+ **Flags:**
28
+ - `--resume` — Resume in-progress design session
29
+ - `--edit <template-path>` — Edit an existing template
30
+
31
+ **Shared constants:**
32
+
33
+ | Constant | Value |
34
+ |----------|-------|
35
+ | Session prefix | `WFD` |
36
+ | Template dir (global) | `~/.maestro/templates/workflows/` |
37
+ | Template index (global) | `~/.maestro/templates/workflows/index.json` |
38
+ | Design drafts dir (local) | `.workflow/templates/design-drafts/` |
39
+ | Template ID format | `wft-<slug>-<YYYYMMDD>` |
40
+ | Node ID format | `N-<seq>` (e.g. N-001), `CP-<seq>` for checkpoints |
41
+ | Max nodes | 20 |
42
+
43
+ **Entry routing:**
44
+
45
+ | Detection | Condition | Handler |
46
+ |-----------|-----------|---------|
47
+ | Resume | `--resume` or existing WFD session | Phase 0: Resume |
48
+ | Edit | `--edit <path>` | Phase 0: Load + Edit |
49
+ | New | Default | Phase 1: Parse |
50
+
51
+ **Node catalog**: Read `~/.maestro/templates/workflows/specs/node-catalog.md` at Phase 2 (deferred).
52
+ **Template schema**: Read `~/.maestro/templates/workflows/specs/template-schema.md` at Phase 5 (deferred).
53
+ </context>
54
+
55
+ <execution>
56
+
57
+ ### Phase 0: Resume / Edit (conditional)
58
+
59
+ **Resume** (`--resume`):
60
+ 1. Scan `.workflow/templates/design-drafts/WFD-*/` for in-progress designs
61
+ 2. Multiple → AskUserQuestion for selection
62
+ 3. Load draft → skip to last incomplete phase
63
+
64
+ **Edit** (`--edit <path>`):
65
+ 1. Load template JSON
66
+ 2. Show pipeline visualization (Phase 4 format)
67
+ 3. AskUserQuestion: which nodes to modify/add/remove
68
+ 4. Re-enter at Phase 3
69
+
70
+ ---
71
+
72
+ ### Phase 1: Parse — Semantic Intent Extraction
73
+
74
+ **Step 1.1** — Parse `$ARGUMENTS`. If empty, AskUserQuestion:
75
+ ```
76
+ "Describe the workflow you want to automate.
77
+ Include: what steps to run, in what order, and what varies each time.
78
+ Example: 'analyze the code, then plan, implement, and test the feature'"
79
+ ```
80
+
81
+ **Step 1.2** — Extract sequential actions as candidate nodes:
82
+
83
+ | Signal | Candidate Type |
84
+ |--------|---------------|
85
+ | "analyze", "review", "explore" | analysis (cli) |
86
+ | "plan", "design", "spec" | planning (skill) |
87
+ | "implement", "build", "code", "fix" | execution (skill) |
88
+ | "test", "validate", "verify" | testing (skill) |
89
+ | "brainstorm", "ideate" | brainstorm (skill) |
90
+ | "review code" | review (skill) |
91
+ | "then", "next", "after" | sequential edge |
92
+ | "parallel", "simultaneously" | parallel edge |
93
+
94
+ **Step 1.3** — Extract variables (inputs that vary per run).
95
+
96
+ **Step 1.4** — Classify task type: `bugfix | feature | tdd | review | brainstorm | spec-driven | roadmap | refactor | integration-test | quick-task | custom`
97
+
98
+ **Step 1.5** — Assess complexity: `simple` (1-3 nodes), `medium` (4-7), `complex` (8+)
99
+
100
+ **Step 1.6** — Write `intent.json` to `.workflow/templates/design-drafts/WFD-<slug>-<date>/`.
101
+
102
+ **Step 1.7 — Interactive confirmation**: Display description, task type, complexity, detected steps (numbered with type_hint), and variables. AskUserQuestion: `Continue to resolution` / `Edit steps` / `Add a step` / `Cancel`
103
+
104
+ ---
105
+
106
+ ### Phase 2: Resolve — Map Steps to Executor Nodes
107
+
108
+ **Read deferred**: `~/.maestro/templates/workflows/specs/node-catalog.md`
109
+
110
+ If spec not found, use built-in fallback:
111
+
112
+ | type_hint | executor type | executor |
113
+ |-----------|--------------|----------|
114
+ | `planning` | skill | `maestro-plan` |
115
+ | `execution` | skill | `maestro-execute` |
116
+ | `testing` | skill | `quality-test` |
117
+ | `review` | skill | `quality-review` |
118
+ | `brainstorm` | skill | `maestro-brainstorm` |
119
+ | `analysis` | cli | `maestro delegate --to gemini --mode analysis` |
120
+ | `verify` | skill | `maestro-verify` |
121
+ | `refactor` | skill | `quality-refactor` |
122
+ | `debug` | skill | `quality-debug` |
123
+ | `spec` | skill | `maestro-spec-generate` |
124
+ | `checkpoint` | checkpoint | — |
125
+
126
+ **Step 2.1** — Load `intent.json`, map each step to executor.
127
+
128
+ **Step 2.2** — Build `args_template` with variable placeholders and context injection:
129
+ - Planning after analysis → `--context {prev_output_path}`
130
+ - Execution after planning → inherit phase
131
+ - Testing after execution → inherit phase
132
+
133
+ **Step 2.3** — Assign `parallel_group` for parallel steps.
134
+
135
+ **Step 2.4** — Write `nodes.json`.
136
+
137
+ **Step 2.5 — Interactive confirmation**: Display resolved nodes table (ID, type, executor, args) and parallel groups. AskUserQuestion: `Continue to checkpoint injection` / `Change executor` / `Change node type` / `Back to intent` / `Cancel`
138
+
139
+ ---
140
+
141
+ ### Phase 3: Enrich — Inject Checkpoints + Build DAG
142
+
143
+ **Step 3.1** — Load `nodes.json`. Build sequential edges. For parallel groups: fan-out/fan-in.
144
+
145
+ **Step 3.2** — Auto-inject checkpoint nodes:
146
+
147
+ | Rule | Condition |
148
+ |------|-----------|
149
+ | Artifact boundary | Source output_ports: plan, spec, analysis, review-findings |
150
+ | Execution gate | Target executor contains `execute` |
151
+ | Agent spawn | Target type is `agent` |
152
+ | Long-running | Target is maestro-plan, maestro-spec-generate |
153
+ | User-defined | Step had `type_hint: checkpoint` |
154
+ | Post-testing | Source executor contains `test` or `integration-test` |
155
+
156
+ Set `auto_continue: false` for checkpoints before user-facing deliverables.
157
+
158
+ **Step 3.3** — Finalize `context_schema`, validate DAG (no cycles, no orphans).
159
+
160
+ **Step 3.4** — Write `dag.json`. → Proceed to Phase 4.
161
+
162
+ ---
163
+
164
+ ### Phase 4: Confirm — Visualize + User Approval
165
+
166
+ **Step 4.1** — Render ASCII pipeline: vertical node chain with `|` connectors showing each node (ID, type, executor, args) and checkpoint nodes (auto-continue vs pause-for-user). Footer: required variables, checkpoint counts, node counts.
167
+
168
+ **Step 4.2** — AskUserQuestion: `Confirm & Save` / `Edit a node` / `Add a node` / `Remove a node` / `Rename template` / `Re-run checkpoint injection` / `Cancel`
169
+
170
+ **Step 4.3** — Loop edits until Confirm or Cancel.
171
+
172
+ ---
173
+
174
+ ### Phase 5: Persist — Assemble + Save Template
175
+
176
+ **Read deferred**: `~/.maestro/templates/workflows/specs/template-schema.md`
177
+
178
+ **Step 5.1** — Load `intent.json` + `dag.json`. Assemble template JSON.
179
+
180
+ **Step 5.2** — Determine slug (kebab-case). If exists, append `-v2`.
181
+
182
+ **Step 5.3** — Write `~/.maestro/templates/workflows/<slug>.json`.
183
+
184
+ **Step 5.4** — Update `~/.maestro/templates/workflows/index.json`.
185
+
186
+ **Step 5.5** — Output summary: path, template ID, node/checkpoint counts, required variables. Include usage commands: `$maestro-player <slug> --context goal="..."`, `$maestro-composer --edit <path>`, `$maestro-player --list`.
187
+
188
+ **Step 5.6** — Clean up design draft directory.
189
+ </execution>
190
+
191
+ <error_codes>
192
+ | Code | Severity | Condition | Recovery |
193
+ |------|----------|-----------|----------|
194
+ | E001 | error | Empty description and no flags | AskUserQuestion for description |
195
+ | E002 | error | 0 steps extracted | Ask to rephrase with action verbs |
196
+ | E003 | error | Node count exceeds 20 | Suggest splitting into sub-workflows |
197
+ | E004 | error | DAG cycle detected | Show cycle, ask to resolve |
198
+ | E005 | error | Resume session not found | Show available drafts |
199
+ | E006 | error | Edit template not found | Show available templates |
200
+ | W001 | warning | Ambiguous executor mapping | Show candidates, let user choose |
201
+ | W002 | warning | No checkpoint rules triggered | Warn, offer manual add |
202
+ | W003 | warning | Deferred spec not found | Use built-in fallback |
203
+ </error_codes>
204
+
205
+ <success_criteria>
206
+ - [ ] Intent parsed and confirmed by user (Phase 1 gate)
207
+ - [ ] Nodes resolved and confirmed by user (Phase 2 gate)
208
+ - [ ] DAG built with auto-injected checkpoints
209
+ - [ ] Pipeline visualized and confirmed by user (Phase 4 gate)
210
+ - [ ] Template JSON written to `~/.maestro/templates/workflows/<slug>.json`
211
+ - [ ] Template index updated
212
+ - [ ] Deferred specs loaded only when phase needs them
213
+ </success_criteria>