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
@@ -8,59 +8,21 @@ CSV wave coordinator version of the intelligent coordinator. Replaces `spawn_age
8
8
 
9
9
  ## Step 1: Parse Arguments
10
10
 
11
- ```javascript
12
- const args = $ARGUMENTS.trim();
13
- const AUTO_YES = new RegExp('\\b(-y|--yes)\\b').test(args);
14
- const RESUME = new RegExp('\\b(-c|--continue)\\b').test(args);
15
- const DRY_RUN = new RegExp('\\b--dry-run\\b').test(args);
16
- const forceChain = args.match(new RegExp('--chain\\s+(\\S+)'))?.[1] ?? null;
17
- const intent = args
18
- .replace(new RegExp('\\b(-y|--yes|-c|--continue|--dry-run)\\b', 'g'), '')
19
- .replace(new RegExp('--(chain)\\s+\\S+', 'g'), '')
20
- .trim();
21
- ```
11
+ Extract from `$ARGUMENTS`:
12
+ - Flags: `-y`/`--yes` (AUTO_YES), `-c`/`--continue` (RESUME), `--dry-run`, `--chain <name>`
13
+ - `intent` = remaining text after flag removal
22
14
 
23
- **Resume mode**: If `RESUME`:
24
- 1. Glob `.workflow/.maestro-coordinate/coord-*/state.json`, sort desc by name, load latest
25
- 2. Set `current_step` to index of first step where `status === "pending"`
26
- 3. Jump to **Step 6**
15
+ **Resume mode**: If RESUME, load latest `.workflow/.maestro-coordinate/coord-*/state.json`, set `current_step` to first pending step, jump to **Step 6**.
27
16
 
28
17
  ---
29
18
 
30
19
  ## Step 2: Read Project State
31
20
 
32
- ```javascript
33
- const stateFile = '.workflow/state.json';
34
- let projectState = { initialized: false };
35
-
36
- if (fileExists(stateFile)) {
37
- const raw = JSON.parse(Read(stateFile));
38
- projectState = {
39
- initialized: true,
40
- // Derive current_phase from artifacts (first in_progress execute, or first without completed execute)
41
- current_phase: (() => {
42
- const arts = raw.artifacts ?? [];
43
- const ip = arts.find(a => a.type === 'execute' && a.status === 'in_progress');
44
- if (ip) return ip.phase;
45
- const phases = [...new Set(arts.map(a => a.phase).filter(Boolean))].sort((a,b) => a - b);
46
- return phases.find(p => !arts.some(a => a.phase === p && a.type === 'execute' && a.status === 'completed')) ?? raw.current_phase ?? null;
47
- })(),
48
- phase_slug: raw.phase_slug,
49
- phase_status: raw.phase_status, // pending|exploring|planning|executing|verifying|testing|completed|blocked
50
- phase_artifacts: raw.phase_artifacts ?? {},
51
- execution: raw.execution ?? { tasks_completed: 0, tasks_total: 0 },
52
- verification_status: raw.verification_status ?? 'pending',
53
- review_verdict: raw.review_verdict ?? null,
54
- uat_status: raw.uat_status ?? 'pending',
55
- phases_total: raw.phases_total ?? 0,
56
- phases_completed: raw.phases_completed ?? 0,
57
- has_blockers: raw.has_blockers ?? false,
58
- accumulated_context: raw.accumulated_context ?? null
59
- };
60
- }
21
+ Read `.workflow/state.json` if present. Derive `projectState`:
22
+ - `current_phase`: first in-progress execute artifact, else first phase without completed execute
23
+ - Fields: `phase_slug`, `phase_status` (pending|exploring|planning|executing|verifying|testing|completed|blocked), `phase_artifacts`, `execution` (tasks_completed/total), `verification_status`, `review_verdict`, `uat_status`, `phases_total/completed`, `has_blockers`, `accumulated_context`
61
24
 
62
- if (!projectState.initialized && !intent) throw new Error('E001: No project state and no intent. Run $maestro-init first.');
63
- ```
25
+ If not initialized and no intent Error E001.
64
26
 
65
27
  ---
66
28
 
@@ -70,18 +32,7 @@ if (!projectState.initialized && !intent) throw new Error('E001: No project stat
70
32
 
71
33
  If `forceChain` is set → validate against chainMap and jump to **3c**.
72
34
 
73
- ```javascript
74
- const exactMatch = {
75
- 'continue': 'state_continue', 'next': 'state_continue', 'go': 'state_continue',
76
- '继续': 'state_continue', '下一步': 'state_continue',
77
- 'status': 'status', '状态': 'status', 'dashboard': 'status',
78
- };
79
- const normalized = intent.toLowerCase().trim();
80
- if (exactMatch[normalized]) {
81
- taskType = exactMatch[normalized];
82
- // → skip to 3c
83
- }
84
- ```
35
+ Exact-match keywords: `continue`/`next`/`go`/`继续`/`下一步` → `state_continue`; `status`/`状态`/`dashboard` → `status`. If matched, skip to **3c**.
85
36
 
86
37
  ### 3a-2: Structured intent extraction (LLM-native)
87
38
 
@@ -102,104 +53,49 @@ Instead of regex, extract a structured intent tuple using LLM semantic understan
102
53
 
103
54
  ### 3a-3: Route via action × object matrix
104
55
 
105
- ```javascript
106
- function routeIntent(intent, projectState) {
107
- const { action, object, issue_id } = intent;
108
-
109
- // Hard signal: explicit issue ID issue pipeline
110
- if (issue_id) {
111
- const issueRoutes = { 'analyze': 'issue_analyze', 'plan': 'issue_plan', 'fix': 'issue_execute', 'execute': 'issue_execute', 'debug': 'issue_analyze', 'manage': 'issue' };
112
- return issueRoutes[action] || 'issue';
113
- }
114
-
115
- // Action × Object matrix
116
- const matrix = {
117
- 'fix': { 'bug': 'debug', 'issue': 'issue', 'code': 'debug', 'performance': 'debug', 'security': 'debug', '_default': 'debug' },
118
- 'create': { 'feature': 'quick', 'issue': 'issue', 'test': 'test_gen', 'spec': 'spec_generate', 'ui': 'ui_design', 'config': 'init', 'phase': 'phase_add', '_default': 'quick' },
119
- 'analyze': { 'bug': 'analyze', 'issue': 'issue_analyze', 'code': 'analyze', 'codebase': 'spec_map', '_default': 'analyze' },
120
- 'explore': { 'issue': 'issue_discover', 'feature': 'brainstorm', 'ui': 'ui_design', '_default': 'brainstorm' },
121
- 'plan': { 'issue': 'issue_plan', 'spec': 'spec_generate', '_default': 'plan' },
122
- 'execute': { 'issue': 'issue_execute', '_default': 'execute' },
123
- 'verify': { '_default': 'verify' },
124
- 'review': { '_default': 'review' },
125
- 'test': { '_default': 'test' },
126
- 'debug': { '_default': 'debug' },
127
- 'refactor': { '_default': 'refactor' },
128
- 'manage': { 'issue': 'issue', 'milestone': 'milestone_audit', 'phase': 'phase_transition', 'memory': 'memory', 'doc': 'sync', 'codebase': 'codebase_refresh', '_default': 'status' },
129
- 'transition':{ 'phase': 'phase_transition', 'milestone': 'milestone_complete', '_default': 'phase_transition' },
130
- 'continue': { '_default': 'state_continue' },
131
- 'sync': { '_default': 'sync' },
132
- 'learn': { '_default': 'learn' },
133
- 'retrospect':{ '_default': 'retrospective' },
134
- };
135
-
136
- const actionMap = matrix[action] || matrix['fix'];
137
- return actionMap[object] || actionMap['_default'] || 'quick';
138
- }
139
- ```
56
+ Route via `action × object` matrix. If `issue_id` present → issue pipeline directly.
57
+
58
+ | action | object-specific overrides | default |
59
+ |--------|--------------------------|---------|
60
+ | fix | bug/code/perf/security→debug, issue→issue | debug |
61
+ | create | feature→quick, issue→issue, test→test_gen, spec→spec_generate, ui→ui_design, config→init | quick |
62
+ | analyze | bug/code→analyze, issue→issue_analyze, codebase→spec_map | analyze |
63
+ | explore | issue→issue_discover, feature/ui→brainstorm/ui_design | brainstorm |
64
+ | plan | issue→issue_plan, spec→spec_generate | plan |
65
+ | execute | issue→issue_execute | execute |
66
+ | manage | issue→issue, milestone→milestone_audit, phase→phase_transition, memory/doc/codebase→memory/sync/codebase_refresh | status |
67
+ | transition | phase→phase_transition, milestone→milestone_complete | phase_transition |
68
+ | verify, review, test, debug, refactor, continue, sync, learn, retrospect, release, amend, compose | — | self-named |
140
69
 
141
70
  **Clarity scoring**: 3 = action+object+scope, 2 = action+object, 1 = action only, 0 = empty.
142
- If `clarity < 2` and not `AUTO_YES`: call `functions.request_user_input` with one focused question (max 2 rounds).
71
+ If `clarity < 2` and not `AUTO_YES`: request user input (max 2 rounds).
143
72
 
144
73
  ### 3b: State-based routing (when `taskType === 'state_continue'`)
145
74
 
146
- ```javascript
147
- function detectNextAction(s) {
148
- if (!s.initialized) return { chain: 'init', steps: [{ cmd: 'maestro-init' }] };
149
- const ps = s.phase_status, art = s.phase_artifacts, exec = s.execution;
150
-
151
- if (s.phases_total === 0 && !fileExists('.workflow/roadmap.md') && s.accumulated_context)
152
- return { chain: 'next-milestone', steps: [{ cmd: 'maestro-roadmap', args: '"{description}"' }] };
153
- if (s.phases_total === 0)
154
- return { chain: 'brainstorm-driven', steps: [
155
- { cmd: 'maestro-brainstorm', args: '"{description}"' },
156
- { cmd: 'maestro-plan', args: '{phase}' },
157
- { cmd: 'maestro-execute', args: '{phase}' },
158
- { cmd: 'maestro-verify', args: '{phase}' }
159
- ]};
160
-
161
- if (ps === 'pending') {
162
- if (art.context) return { chain: 'plan', steps: [{ cmd: 'maestro-plan', args: '{phase}' }] };
163
- return { chain: 'analyze', steps: [{ cmd: 'maestro-analyze', args: '{phase}' }] };
164
- }
165
- if (ps === 'exploring' || ps === 'planning') {
166
- if (art.plan) return { chain: 'execute-verify', steps: [
167
- { cmd: 'maestro-execute', args: '{phase}' },
168
- { cmd: 'maestro-verify', args: '{phase}' }
169
- ]};
170
- return { chain: 'plan', steps: [{ cmd: 'maestro-plan', args: '{phase}' }] };
171
- }
172
- if (ps === 'executing') {
173
- if (exec.tasks_completed >= exec.tasks_total && exec.tasks_total > 0)
174
- return { chain: 'verify', steps: [{ cmd: 'maestro-verify', args: '{phase}' }] };
175
- return { chain: 'execute', steps: [{ cmd: 'maestro-execute', args: '{phase}' }] };
176
- }
177
- if (ps === 'verifying') {
178
- if (s.verification_status === 'passed') {
179
- if (!s.review_verdict) return { chain: 'review', steps: [{ cmd: 'quality-review', args: '{phase}' }] };
180
- if (s.uat_status === 'pending') return { chain: 'test', steps: [{ cmd: 'quality-test', args: '{phase}' }] };
181
- if (s.uat_status === 'passed') return { chain: 'phase-transition', steps: [{ cmd: 'maestro-phase-transition' }] };
182
- return { chain: 'debug', steps: [{ cmd: 'quality-debug', args: '--from-uat {phase}' }] };
183
- }
184
- return { chain: 'quality-loop-partial', steps: [
185
- { cmd: 'maestro-plan', args: '{phase} --gaps' },
186
- { cmd: 'maestro-execute', args: '{phase}' },
187
- { cmd: 'maestro-verify', args: '{phase}' }
188
- ]};
189
- }
190
- if (ps === 'testing') {
191
- if (s.uat_status === 'passed') return { chain: 'phase-transition', steps: [{ cmd: 'maestro-phase-transition' }] };
192
- return { chain: 'debug', steps: [{ cmd: 'quality-debug', args: '--from-uat {phase}' }] };
193
- }
194
- if (ps === 'completed') {
195
- if (s.phases_completed >= s.phases_total)
196
- return { chain: 'milestone-close', steps: [{ cmd: 'maestro-milestone-audit' }, { cmd: 'maestro-milestone-complete' }] };
197
- return { chain: 'phase-transition', steps: [{ cmd: 'maestro-phase-transition' }] };
198
- }
199
- if (ps === 'blocked') return { chain: 'debug', steps: [{ cmd: 'quality-debug' }] };
200
- return { chain: 'status', steps: [{ cmd: 'manage-status' }] };
201
- }
202
- ```
75
+ Returns `{ chain, argsOverride? }`. Steps resolved from `chainMap[chain]`.
76
+
77
+ | Condition | Chain |
78
+ |-----------|-------|
79
+ | Not initialized | `init` |
80
+ | No phases, no roadmap, has accumulated_context | `next-milestone` (with deferred/decisions context) |
81
+ | No phases | `brainstorm-driven` |
82
+ | pending + has context | `plan` |
83
+ | pending, no context | `analyze` |
84
+ | exploring/planning + has plan | `execute-verify` |
85
+ | exploring/planning, no plan | `plan` |
86
+ | executing, all tasks done | `verify` |
87
+ | executing, tasks remain | `execute` |
88
+ | verifying, passed + no review | `review` |
89
+ | verifying, passed + BLOCK | `review-fix` |
90
+ | verifying, passed + UAT pending | `test` |
91
+ | verifying, passed + UAT passed | `milestone-close` |
92
+ | verifying, passed + UAT failed | `debug` |
93
+ | verifying, not passed | `quality-loop-partial` |
94
+ | testing, UAT passed | `milestone-close` |
95
+ | testing, UAT not passed | `debug` |
96
+ | completed | `milestone-close` |
97
+ | blocked | `debug` |
98
+ | fallback | `status` |
203
99
 
204
100
  ### 3c: Intent-based chain map
205
101
 
@@ -221,19 +117,18 @@ const chainMap = {
221
117
  'review': [{ cmd: 'quality-review', args: '{phase}' }],
222
118
  'retrospective': [{ cmd: 'quality-retrospective', args: '{phase}' }],
223
119
  'learn': [{ cmd: 'manage-learn', args: '"{description}"' }],
224
- 'sync': [{ cmd: 'quality-sync', args: '{phase}' }],
225
- 'phase_transition': [{ cmd: 'maestro-phase-transition' }],
226
- 'phase_add': [{ cmd: 'maestro-phase-add', args: '"{description}"' }],
120
+ 'sync': [{ cmd: 'quality-sync' }],
121
+ 'phase_transition': [{ cmd: 'maestro-milestone-audit' }, { cmd: 'maestro-milestone-complete' }],
227
122
  'milestone_audit': [{ cmd: 'maestro-milestone-audit' }],
228
123
  'milestone_complete': [{ cmd: 'maestro-milestone-complete' }],
229
124
  'codebase_rebuild': [{ cmd: 'manage-codebase-rebuild' }],
230
125
  'codebase_refresh': [{ cmd: 'manage-codebase-refresh' }],
231
126
  'spec_setup': [{ cmd: 'spec-setup' }],
232
127
  'spec_add': [{ cmd: 'spec-add', args: '"{description}"' }],
233
- 'spec_load': [{ cmd: 'spec-load', args: '"{description}"' }],
128
+ 'spec_load': [{ cmd: 'spec-load' }],
234
129
  'spec_map': [{ cmd: 'manage-codebase-rebuild' }],
235
- 'memory_capture': [{ cmd: 'manage-memory-capture', args: '"{description}"' }],
236
- 'memory': [{ cmd: 'manage-memory', args: '"{description}"' }],
130
+ 'knowhow_capture': [{ cmd: 'manage-knowhow-capture', args: '"{description}"' }],
131
+ 'knowhow': [{ cmd: 'manage-knowhow', args: '"{description}"' }],
237
132
  'issue': [{ cmd: 'manage-issue', args: '"{description}"' }],
238
133
  'issue_discover': [{ cmd: 'manage-issue-discover', args: '"{description}"' }],
239
134
  'issue_analyze': [{ cmd: 'maestro-analyze', args: '--gaps "{description}"' }],
@@ -266,7 +161,8 @@ const chainMap = {
266
161
  { cmd: 'maestro-verify', args: '{phase}' },
267
162
  { cmd: 'quality-review', args: '{phase}' },
268
163
  { cmd: 'quality-test', args: '{phase}' },
269
- { cmd: 'maestro-phase-transition' }
164
+ { cmd: 'maestro-milestone-audit' },
165
+ { cmd: 'maestro-milestone-complete' }
270
166
  ],
271
167
  'execute-verify': [
272
168
  { cmd: 'maestro-execute', args: '{phase}' },
@@ -311,12 +207,13 @@ const chainMap = {
311
207
  ],
312
208
  'quality-fix': [
313
209
  { cmd: 'maestro-analyze', args: '--gaps "{description}"' },
210
+ { cmd: 'maestro-plan', args: '--gaps' },
314
211
  { cmd: 'maestro-execute', args: '' },
315
212
  { cmd: 'maestro-verify', args: '{phase}' }
316
213
  ],
317
214
  'deploy': [
318
- { cmd: 'maestro-verify', args: '{phase}' },
319
- { cmd: 'maestro-execute', args: '{phase}' }
215
+ { cmd: 'maestro-verify', args: '{phase}' },
216
+ { cmd: 'maestro-milestone-release' }
320
217
  ],
321
218
 
322
219
  // ── Issue lifecycle chains (with quality gates) ────────────────────────────
@@ -324,7 +221,7 @@ const chainMap = {
324
221
  { cmd: 'maestro-analyze', args: '--gaps {issue_id}' },
325
222
  { cmd: 'maestro-plan', args: '--gaps' },
326
223
  { cmd: 'maestro-execute', args: '' },
327
- { cmd: 'quality-review', args: '--scope {affected_files}' },
224
+ { cmd: 'quality-review', args: '{phase}' },
328
225
  { cmd: 'manage-issue', args: 'close {issue_id} --resolution fixed' }
329
226
  ],
330
227
  'issue-quick': [
@@ -332,6 +229,36 @@ const chainMap = {
332
229
  { cmd: 'maestro-execute', args: '' },
333
230
  { cmd: 'manage-issue', args: 'close {issue_id} --resolution fixed' }
334
231
  ],
232
+
233
+ 'review-fix': [
234
+ { cmd: 'maestro-plan', args: '{phase} --gaps' },
235
+ { cmd: 'maestro-execute', args: '{phase}' },
236
+ { cmd: 'quality-review', args: '{phase}' }
237
+ ],
238
+ 'quality-loop-partial': [
239
+ { cmd: 'maestro-plan', args: '{phase} --gaps' },
240
+ { cmd: 'maestro-execute', args: '{phase}' },
241
+ { cmd: 'maestro-verify', args: '{phase}' }
242
+ ],
243
+ 'milestone-release': [
244
+ { cmd: 'maestro-milestone-audit' },
245
+ { cmd: 'maestro-milestone-release' }
246
+ ],
247
+
248
+ 'learn': [{ cmd: 'maestro-learn', args: '"{description}"' }],
249
+ 'harvest': [{ cmd: 'manage-harvest', args: '"{description}"' }],
250
+ 'wiki': [{ cmd: 'manage-wiki' }],
251
+ 'wiki_connect': [{ cmd: 'wiki-connect' }],
252
+ 'wiki_digest': [{ cmd: 'wiki-digest' }],
253
+ 'business_test': [{ cmd: 'quality-business-test', args: '{phase}' }],
254
+ 'spec_remove': [{ cmd: 'spec-remove', args: '"{description}"' }],
255
+ 'amend': [{ cmd: 'maestro-amend', args: '"{description}"' }],
256
+ 'release': [{ cmd: 'maestro-milestone-release' }],
257
+ 'compose': [{ cmd: 'maestro-composer', args: '"{description}"' }],
258
+ 'play': [{ cmd: 'maestro-player', args: '"{description}"' }],
259
+ 'update': [{ cmd: 'maestro-update' }],
260
+ 'overlay': [{ cmd: 'maestro-overlay', args: '"{description}"' }],
261
+ 'link_coordinate': [{ cmd: 'maestro-link-coordinate', args: '"{description}"' }],
335
262
  };
336
263
 
337
264
  // Aliases: task type → named chain
@@ -344,39 +271,16 @@ const taskToChain = {
344
271
 
345
272
  **Resolution order:**
346
273
  1. `forceChain` → `chainMap[forceChain]` (E002 if not found)
347
- 2. `state_continue` → `detectNextAction(projectState)`
274
+ 2. `state_continue` → `detectNextAction(projectState)` → returns `{ chain, argsOverride? }`. Steps from `chainMap[chain]`. If `argsOverride` present, apply before template substitution.
348
275
  3. `taskToChain[taskType]` → named chain
349
276
  4. `chainMap[taskType]` → direct lookup
350
277
 
351
278
  ### 3d: Resolve phase, description, and issue ID
352
279
 
353
- ```javascript
354
- function resolvePhase() {
355
- // From structured extraction
356
- if (intentAnalysis.phase_ref) return intentAnalysis.phase_ref;
357
- // Fallback regex
358
- const m = intent.match(new RegExp('^(\\d+)$')) ?? intent.match(new RegExp('phase\\s*(\\d+)', 'i'));
359
- if (m) return m[1] ?? m[2];
360
- if (projectState.initialized) return projectState.current_phase;
361
- return null;
362
- }
363
-
364
- function resolveIssueId() {
365
- if (intentAnalysis.issue_id) return intentAnalysis.issue_id;
366
- const m = intent.match(new RegExp('ISS-[\\w]+-\\d+', 'i'));
367
- return m ? m[0] : null;
368
- }
280
+ **Phase**: from structured extraction → fallback regex (`phase N` or bare number) → `projectState.current_phase`.
281
+ **Issue ID**: from structured extraction → regex match `ISS-*-NNN`.
369
282
 
370
- const resolvedPhase = resolvePhase();
371
- const resolvedIssueId = resolveIssueId();
372
- const context = {
373
- current_phase: resolvedPhase,
374
- user_intent: intent,
375
- issue_id: resolvedIssueId,
376
- spec_session_id: null,
377
- scratch_dir: null
378
- };
379
- ```
283
+ Build context: `{ current_phase, user_intent, issue_id, spec_session_id: null, scratch_dir: null }`.
380
284
 
381
285
  ---
382
286
 
@@ -400,59 +304,13 @@ MAESTRO-COORDINATE: {chain_name} (dry run)
400
304
 
401
305
  ## Step 5: Setup Session
402
306
 
403
- ```javascript
404
- const ts = new Date().toISOString().replaceAll('-', '').replaceAll(':', '').replaceAll('T', '').slice(0, 15);
405
- const sessionId = `coord-${ts}`;
406
- const sessionDir = `.workflow/.maestro-coordinate/${sessionId}`;
407
- Bash(`mkdir -p "${sessionDir}"`);
408
-
409
- const BARRIER_SKILLS = new Set([
410
- 'maestro-analyze', 'maestro-plan', 'maestro-brainstorm',
411
- 'maestro-spec-generate', 'maestro-execute'
412
- ]);
413
-
414
- const AUTO_FLAG_MAP = {
415
- 'maestro-analyze': '-y',
416
- 'maestro-brainstorm': '-y',
417
- 'maestro-ui-design': '-y',
418
- 'maestro-plan': '--auto',
419
- 'maestro-spec-generate': '-y',
420
- 'quality-test': '--auto-fix',
421
- 'quality-retrospective': '--auto-yes',
422
- };
307
+ Create session directory `.workflow/.maestro-coordinate/coord-{timestamp}/`.
423
308
 
424
- const context = {
425
- phase: resolvedPhase,
426
- plan_dir: null,
427
- analysis_dir: null,
428
- brainstorm_dir: null,
429
- spec_session_id: null,
430
- issue_id: resolvedIssueId,
431
- gaps: null
432
- };
309
+ **Barrier skills** (solo wave, coordinator analyzes artifacts after): `maestro-analyze`, `maestro-plan`, `maestro-brainstorm`, `maestro-spec-generate`, `maestro-execute`.
433
310
 
434
- const state = {
435
- session_id: sessionId,
436
- status: 'running',
437
- created_at: new Date().toISOString(),
438
- intent,
439
- task_type: taskType,
440
- chain_name: chainName,
441
- auto_yes: AUTO_YES,
442
- context,
443
- waves: [],
444
- steps: chain.map((s, i) => ({
445
- index: i,
446
- cmd: s.cmd,
447
- args: s.args ?? '',
448
- status: 'pending',
449
- wave_n: null,
450
- findings: null,
451
- artifacts: null
452
- }))
453
- };
454
- Write(`${sessionDir}/state.json`, JSON.stringify(state, null, 2));
455
- ```
311
+ **Auto-flag injection** (when AUTO_YES): `maestro-analyze/-brainstorm/-ui-design/-spec-generate` → `-y`, `maestro-plan` → `--auto`, `quality-test` → `--auto-fix`, `quality-retrospective` → `--auto-yes`.
312
+
313
+ Initialize `state.json` with: session_id, intent, chain_name, auto_yes, context (phase, dirs, issue_id, gaps), waves[], and steps[] (each with index, cmd, args, status=pending).
456
314
 
457
315
  ---
458
316
 
@@ -460,132 +318,26 @@ Write(`${sessionDir}/state.json`, JSON.stringify(state, null, 2));
460
318
 
461
319
  ### 6a: Helper functions
462
320
 
463
- ```javascript
464
- function buildSkillCall(step, ctx) {
465
- let a = (step.args ?? '')
466
- .replaceAll('{phase}', ctx.phase ?? '')
467
- .replaceAll('{description}', state.intent ?? '')
468
- .replaceAll('{issue_id}', ctx.issue_id ?? '')
469
- .replaceAll('{plan_dir}', ctx.plan_dir ?? '')
470
- .replaceAll('{analysis_dir}', ctx.analysis_dir ?? '')
471
- .replaceAll('{brainstorm_dir}', ctx.brainstorm_dir ?? '')
472
- .replaceAll('{spec_session_id}', ctx.spec_session_id ?? '')
473
- .replaceAll('{scratch_dir}', ctx.scratch_dir ?? '');
474
-
475
- if (state.auto_yes) {
476
- const flag = AUTO_FLAG_MAP[step.cmd];
477
- if (flag && !a.includes(flag)) a = a ? `${a} ${flag}` : flag;
478
- }
479
- return `$${step.cmd} ${a}`.trim();
480
- }
321
+ **buildSkillCall**: Replace template placeholders (`{phase}`, `{description}`, `{issue_id}`, `{plan_dir}`, `{analysis_dir}`, `{brainstorm_dir}`, `{spec_session_id}`, `{scratch_dir}`) from context. Inject auto-flag if AUTO_YES. Return `$<cmd> <args>`.
481
322
 
482
- function buildNextWave(steps) {
483
- const pending = steps.filter(s => s.status === 'pending');
484
- if (!pending.length) return [];
485
- const first = pending[0];
486
- // Barrier skill → solo wave
487
- if (BARRIER_SKILLS.has(first.cmd)) return [first];
488
- // Group consecutive non-barriers
489
- const wave = [first];
490
- for (let i = 1; i < pending.length; i++) {
491
- if (BARRIER_SKILLS.has(pending[i].cmd)) break;
492
- wave.push(pending[i]);
493
- }
494
- return wave;
495
- }
496
- ```
323
+ **buildNextWave**: Take first pending step. If barrier → solo wave. Otherwise group consecutive non-barrier steps into one wave.
497
324
 
498
- ### 6b: Wave instruction template (simple)
325
+ ### 6b: Wave instruction template
499
326
 
500
- ```javascript
501
- const WAVE_INSTRUCTION = `你是 CSV job 子 agent。
502
-
503
- 先原样执行这一段技能调用:
504
- {skill_call}
505
-
506
- 然后基于结果完成这一行任务说明:
507
- {topic}
508
-
509
- 限制:
510
- - 不要修改 .workflow/.maestro-coordinate/ 下的 state 文件
511
- - skill 内部有自己的 session 管理,按 skill SKILL.md 执行即可
512
-
513
- 最后必须调用 report_agent_job_result,返回 JSON:
514
- {"status":"completed|failed","skill_call":"{skill_call}","summary":"一句话结果","artifacts":"产物路径或空字符串","error":"失败原因或空字符串"}`;
515
-
516
- const RESULT_SCHEMA = {
517
- type: "object",
518
- properties: {
519
- status: { type: "string", enum: ["completed", "failed"] },
520
- skill_call: { type: "string" },
521
- summary: { type: "string" },
522
- artifacts: { type: "string" },
523
- error: { type: "string" }
524
- },
525
- required: ["status", "skill_call", "summary", "artifacts", "error"]
526
- };
527
- ```
327
+ Sub-agent instruction: execute `{skill_call}`, complete `{topic}`, do not modify state files, call `report_agent_job_result` with result JSON.
328
+
329
+ Result schema: `{ status: "completed"|"failed", skill_call, summary, artifacts, error }` (all required).
528
330
 
529
331
  ### 6c: Main loop
530
332
 
531
- ```javascript
532
- let waveNum = 0;
533
-
534
- while (state.steps.some(s => s.status === 'pending')) {
535
- waveNum++;
536
- const waveSteps = buildNextWave(state.steps);
537
- if (!waveSteps.length) break;
538
-
539
- // Build wave CSV — skill_call assembled with latest context
540
- const csvRows = waveSteps.map(step => {
541
- const skillCall = buildSkillCall(step, context);
542
- const topic = `Chain "${state.chain_name}" step ${step.index + 1}/${state.steps.length}`;
543
- return `"${step.index + 1}","${skillCall.replace(/"/g, '""')}","${topic.replace(/"/g, '""')}"`;
544
- });
545
- Write(`${sessionDir}/wave-${waveNum}.csv`, 'id,skill_call,topic\n' + csvRows.join('\n'));
546
-
547
- // Execute wave
548
- spawn_agents_on_csv({
549
- csv_path: `${sessionDir}/wave-${waveNum}.csv`,
550
- id_column: "id",
551
- instruction: WAVE_INSTRUCTION,
552
- max_workers: waveSteps.length, // parallel for non-barriers, 1 for barriers
553
- max_runtime_seconds: 1800,
554
- output_csv_path: `${sessionDir}/wave-${waveNum}-results.csv`,
555
- output_schema: RESULT_SCHEMA
556
- });
557
-
558
- // Read results
559
- const results = parseCSV(Read(`${sessionDir}/wave-${waveNum}-results.csv`));
560
-
561
- // Update step status
562
- for (const row of results) {
563
- const step = state.steps[parseInt(row.id) - 1];
564
- step.status = row.status;
565
- step.findings = row.summary;
566
- step.artifacts = row.artifacts;
567
- step.wave_n = waveNum;
568
- step.completed_at = new Date().toISOString();
569
- }
570
-
571
- // Barrier analysis — coordinator reads artifacts, updates context
572
- if (waveSteps.length === 1 && BARRIER_SKILLS.has(waveSteps[0].cmd)) {
573
- analyzeBarrierArtifacts(waveSteps[0], results[0], context);
574
- }
575
-
576
- // Record wave
577
- state.waves.push({ wave_n: waveNum, step_ids: waveSteps.map(s => s.index + 1) });
578
- Write(`${sessionDir}/state.json`, JSON.stringify(state, null, 2));
579
-
580
- // Abort on failure
581
- if (results.some(r => r.status === 'failed')) {
582
- state.status = 'aborted';
583
- state.steps.filter(s => s.status === 'pending').forEach(s => { s.status = 'skipped'; });
584
- Write(`${sessionDir}/state.json`, JSON.stringify(state, null, 2));
585
- break;
586
- }
587
- }
588
- ```
333
+ While pending steps remain:
334
+ 1. Build next wave via `buildNextWave` (barrier → solo, non-barriers → grouped)
335
+ 2. Write wave CSV (`id, skill_call, topic`) to session dir
336
+ 3. Execute via `spawn_agents_on_csv` (max_workers = wave size, timeout 1800s)
337
+ 4. Read results CSV, update each step's status/findings/artifacts
338
+ 5. If barrier wave → run `analyzeBarrierArtifacts` to update context
339
+ 6. Record wave in state, persist `state.json`
340
+ 7. On any failure → abort (mark remaining steps skipped, break)
589
341
 
590
342
  ---
591
343
 
@@ -593,112 +345,27 @@ while (state.steps.some(s => s.status === 'pending')) {
593
345
 
594
346
  After a barrier skill completes, the coordinator reads its artifacts and updates `context` for subsequent waves:
595
347
 
596
- ```javascript
597
- function analyzeBarrierArtifacts(step, result, ctx) {
598
- const artifactPath = result.artifacts;
599
- if (!artifactPath) return;
600
-
601
- switch (step.cmd) {
602
- case 'maestro-analyze': {
603
- // Read analysis conclusions → extract gaps, phase
604
- ctx.analysis_dir = artifactPath;
605
- const contextMd = Read(`${artifactPath}/context.md`);
606
- // Extract gap markers
607
- const gapLines = contextMd.match(/^[-*]\s.*gap|issue|problem.*/gmi);
608
- if (gapLines) ctx.gaps = gapLines.join('; ').slice(0, 500);
609
- // Extract phase if detected
610
- const phaseMatch = contextMd.match(/phase\s*[:=]\s*(\d+)/i);
611
- if (phaseMatch && !ctx.phase) ctx.phase = phaseMatch[1];
612
- break;
613
- }
614
- case 'maestro-plan': {
615
- // Read plan.json → know task count and structure
616
- ctx.plan_dir = artifactPath;
617
- if (fileExists(`${artifactPath}/plan.json`)) {
618
- const plan = JSON.parse(Read(`${artifactPath}/plan.json`));
619
- ctx.task_count = plan.tasks?.length ?? 0;
620
- ctx.wave_count = plan.waves?.length ?? 0;
621
- }
622
- break;
623
- }
624
- case 'maestro-brainstorm': {
625
- ctx.brainstorm_dir = artifactPath;
626
- break;
627
- }
628
- case 'maestro-spec-generate': {
629
- ctx.spec_session_id = artifactPath.match(/SPEC-[\w-]+/)?.[0] ?? artifactPath;
630
- break;
631
- }
632
- case 'maestro-execute': {
633
- // Read execution results for verify context
634
- if (fileExists(`${artifactPath}/results.csv`)) {
635
- const execResults = parseCSV(Read(`${artifactPath}/results.csv`));
636
- ctx.exec_completed = execResults.filter(r => r.status === 'completed').length;
637
- ctx.exec_failed = execResults.filter(r => r.status === 'failed').length;
638
- }
639
- break;
640
- }
641
- }
642
- }
643
- ```
348
+ Context updates per barrier skill:
644
349
 
645
- **Key principle**: The coordinator owns all context assembly. Sub-agents receive a fully-resolved `skill_call` — they don't need to discover or resolve anything themselves.
350
+ | Barrier | Extracts |
351
+ |---------|----------|
352
+ | `maestro-analyze` | `analysis_dir`, gaps (from context.md markers), phase (if detected) |
353
+ | `maestro-plan` | `plan_dir`, task/wave count (from plan.json) |
354
+ | `maestro-brainstorm` | `brainstorm_dir` |
355
+ | `maestro-spec-generate` | `spec_session_id` (SPEC-* pattern) |
356
+ | `maestro-execute` | `exec_completed`/`exec_failed` counts (from results.csv) |
357
+
358
+ **Key principle**: The coordinator owns all context assembly. Sub-agents receive a fully-resolved `skill_call`.
646
359
 
647
360
  ---
648
361
 
649
362
  ## Step 8: Completion Report
650
363
 
651
- ```javascript
652
- const done = state.steps.filter(s => s.status === 'completed').length;
653
- const failed = state.steps.filter(s => s.status === 'failed').length;
654
- const total = state.steps.length;
655
-
656
- state.status = state.steps.every(s => s.status === 'completed') ? 'completed' : state.status;
657
- state.completed_at = new Date().toISOString();
658
- Write(`${sessionDir}/state.json`, JSON.stringify(state, null, 2));
659
- ```
660
-
661
- Generate `context.md`:
662
-
663
- ```markdown
664
- # Coordinate Report — {chainName}
665
-
666
- ## Summary
667
- - Session: {sessionId}
668
- - Chain: {chainName}
669
- - Waves: {waveNum} executed
670
- - Steps: {done}/{total} completed, {failed} failed
671
-
672
- ## Wave Results
673
- ### Wave {N}
674
- | Step | Skill Call | Status | Summary |
675
- |------|-----------|--------|---------|
676
- | {index+1} | {skill_call} | {status} | {summary} |
364
+ Finalize `state.json` (status: completed or current, completed_at timestamp).
677
365
 
678
- Context update: {what changed in ctx}
679
- ```
680
-
681
- Display:
366
+ Generate `context.md` report: session ID, chain name, waves executed, steps completed/failed, per-wave result table with context updates.
682
367
 
683
- ```
684
- ============================================================
685
- MAESTRO-COORDINATE COMPLETE
686
- ============================================================
687
- Session: {session_id}
688
- Chain: {chain_name}
689
- Waves: {waveNum} executed
690
- Steps: {done}/{total}
691
-
692
- WAVE RESULTS:
693
- [W1] $maestro-analyze --gaps → ✓ found 3 gaps
694
- [W2] $maestro-plan --gaps → ✓ 12 tasks in 3 waves
695
- [W3] $maestro-execute → ✓ 12/12 tasks done
696
- [W4] $maestro-verify → ✓ all criteria met
697
-
698
- Artifacts: .workflow/.maestro-coordinate/{session_id}/
699
- Resume: $maestro --continue
700
- ============================================================
701
- ```
368
+ Display completion banner: session, chain, wave results (per-step status + summary), artifacts path, resume command.
702
369
 
703
370
  ---
704
371