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
@@ -87,134 +87,39 @@ Before calling ANY tool, apply this check:
87
87
 
88
88
  ### Worker Spawn Template
89
89
 
90
- Coordinator spawns workers using this template:
91
-
92
- ```
93
- spawn_agent({
94
- agent_type: "team_worker",
95
- task_name: "<task-id>",
96
- fork_turns: "none",
97
- message: `## Role Assignment
98
- role: <role>
99
- role_spec: <skill_root>/roles/<role>/role.md
100
- session: <session-folder>
101
- session_id: <session-id>
102
- requirement: <task-description>
103
- inner_loop: <true|false>
104
-
105
- Read role_spec file (<skill_root>/roles/<role>/role.md) to load Phase 2-4 domain instructions.
106
- Execute built-in Phase 1 (task discovery) -> role Phase 2-4 -> built-in Phase 5 (report).
107
-
108
- ## Task Context
109
- task_id: <task-id>
110
- title: <task-title>
111
- description: <task-description>
112
- pipeline_phase: <pipeline-phase>
113
-
114
- ## Upstream Context
115
- <prev_context>`
116
- })
117
- ```
90
+ Spawn via `team-worker` agent. Message includes: role, role_spec path (`<skill_root>/roles/<role>/role.md`), session folder/id, requirement, inner_loop flag, task context (id, title, description, pipeline_phase), upstream context. Worker executes: Phase 1 (discovery) -> role Phase 2-4 -> Phase 5 (report).
118
91
 
119
92
  ### Supervisor Spawn Template
120
93
 
121
- Supervisor is a **resident agent** (independent from team_worker). Spawned once during session init, woken via followup_task for each CHECKPOINT task.
122
-
123
- #### Spawn (Phase 2 -- once per session)
124
-
125
- ```
126
- supervisorId = spawn_agent({
127
- agent_type: "team_supervisor",
128
- task_name: "supervisor",
129
- fork_turns: "none",
130
- message: `## Role Assignment
131
- role: supervisor
132
- role_spec: <skill_root>/roles/supervisor/role.md
133
- session: <session-folder>
134
- session_id: <session-id>
135
- requirement: <task-description>
136
-
137
- Read role_spec file (<skill_root>/roles/supervisor/role.md) to load checkpoint definitions.
138
- Init: load baseline context, report ready, go idle.
139
- Wake cycle: orchestrator sends checkpoint requests via followup_task.`
140
- })
141
- ```
94
+ Supervisor is a **resident agent** (`team_supervisor`), independent from team_worker.
142
95
 
143
- #### Wake (per CHECKPOINT task)
144
-
145
- ```
146
- followup_task({
147
- target: "supervisor",
148
- message: `## Checkpoint Request
149
- task_id: <CHECKPOINT-NNN>
150
- scope: [<upstream-task-ids>]
151
- pipeline_progress: <done>/<total> tasks completed`
152
- })
153
- wait_agent({ timeout_ms: 1800000 }) // 30 min
154
- ```
155
-
156
- #### Shutdown (pipeline complete)
157
-
158
- ```
159
- close_agent({ target: "supervisor" })
160
- ```
96
+ - **Spawn** (Phase 2, once): Load role-spec from `roles/supervisor/role.md`, init baseline context, go idle
97
+ - **Wake** (per CHECKPOINT): `followup_task` with checkpoint task_id, upstream scope, progress. `wait_agent` (30 min)
98
+ - **Shutdown**: `close_agent({ target: "supervisor" })` at pipeline end
161
99
 
162
100
  ### Model Selection Guide
163
101
 
164
- | Role | model | reasoning_effort | Rationale |
165
- |------|-------|-------------------|-----------|
166
- | Analyst (RESEARCH-*) | (default) | medium | Read-heavy exploration, less reasoning needed |
167
- | Writer (DRAFT-*) | (default) | high | Spec writing requires precision and completeness |
168
- | Planner (PLAN-*) | (default) | high | Architecture decisions need full reasoning |
169
- | Executor (IMPL-*) | (default) | high | Code generation needs precision |
170
- | Tester (TEST-*) | (default) | high | Test generation requires deep code understanding |
171
- | Reviewer (REVIEW-*, QUALITY-*, IMPROVE-*) | (default) | high | Deep analysis for quality assessment |
172
- | Supervisor (CHECKPOINT-*) | (default) | medium | Gate checking, report aggregation |
173
-
174
- Override model/reasoning_effort in spawn_agent when cost optimization is needed:
175
- ```
176
- spawn_agent({
177
- agent_type: "team_worker",
178
- task_name: "<task-id>",
179
- fork_turns: "none",
180
- model: "<model-override>",
181
- reasoning_effort: "<effort-level>",
182
- message: "..."
183
- })
184
- ```
185
-
186
- ### v4 Agent Coordination
187
-
188
- #### Message Semantics
189
-
190
- | Intent | API | Example |
191
- |--------|-----|---------|
192
- | Queue supplementary info (don't interrupt) | `send_message` | Send planning results to running implementers |
193
- | Wake resident supervisor for checkpoint | `followup_task` | Trigger CHECKPOINT-* evaluation on supervisor |
194
- | Supervisor reports back to coordinator | `send_message` | Supervisor sends checkpoint verdict as supplementary info |
195
- | Check running agents | `list_agents` | Verify agent + supervisor health during resume |
102
+ | Role | reasoning_effort |
103
+ |------|-------------------|
104
+ | Analyst (RESEARCH-*) | medium |
105
+ | Writer (DRAFT-*) | high |
106
+ | Planner (PLAN-*) | high |
107
+ | Executor (IMPL-*) | high |
108
+ | Tester (TEST-*) | high |
109
+ | Reviewer (REVIEW-*, QUALITY-*, IMPROVE-*) | high |
110
+ | Supervisor (CHECKPOINT-*) | medium |
196
111
 
197
- **CRITICAL**: The supervisor is a **resident agent** woken via `followup_task`, NOT `send_message`. Regular workers complete and are closed; the supervisor persists across checkpoints. See "Supervisor Spawn Template" above.
112
+ Override via `model`/`reasoning_effort` params in spawn_agent for cost optimization.
198
113
 
199
- #### Agent Health Check
114
+ ### v4 Agent Coordination
200
115
 
201
- Use `list_agents({})` in handleResume and handleComplete:
116
+ **Message Semantics**: `send_message` for supplementary info to workers. `followup_task` to wake supervisor for checkpoints. `list_agents` for health checks.
202
117
 
203
- ```
204
- // Reconcile session state with actual running agents
205
- const running = list_agents({})
206
- // Compare with tasks.json active_agents
207
- // Reset orphaned tasks (in_progress but agent gone) to pending
208
- // ALSO check supervisor: if supervisor missing but CHECKPOINT tasks pending -> respawn
209
- ```
118
+ **CRITICAL**: Supervisor is a **resident agent** woken via `followup_task`, NOT `send_message`. Regular workers are one-shot; supervisor persists across checkpoints.
210
119
 
211
- #### Named Agent Targeting
120
+ **Agent Health Check**: Reconcile `tasks.json.active_agents` with `list_agents({})`. Reset orphaned tasks to pending. If supervisor missing but CHECKPOINT tasks pending, respawn.
212
121
 
213
- Workers are spawned with `task_name: "<task-id>"` enabling direct addressing:
214
- - `send_message({ target: "IMPL-001", message: "..." })` -- queue planning context to running implementer
215
- - `followup_task({ target: "supervisor", message: "..." })` -- wake supervisor for checkpoint
216
- - `close_agent({ target: "IMPL-001" })` -- cleanup regular worker by name
217
- - `close_agent({ target: "supervisor" })` -- shutdown supervisor at pipeline end
122
+ **Named Targeting**: `send_message({ target: "IMPL-001" })`, `followup_task({ target: "supervisor" })`, `close_agent({ target: ... })`.
218
123
 
219
124
  ### User Commands
220
125
 
@@ -229,22 +134,7 @@ Workers are spawned with `task_name: "<task-id>"` enabling direct addressing:
229
134
 
230
135
  ### Completion Action
231
136
 
232
- When pipeline completes, coordinator presents:
233
-
234
- ```
235
- request_user_input({
236
- questions: [{
237
- question: "Pipeline complete. What would you like to do?",
238
- header: "Completion",
239
- multiSelect: false,
240
- options: [
241
- { label: "Archive & Clean (Recommended)", description: "Archive session, clean up resources" },
242
- { label: "Keep Active", description: "Keep session for follow-up work" },
243
- { label: "Export Results", description: "Export deliverables to target directory" }
244
- ]
245
- }]
246
- })
247
- ```
137
+ Present choice via `request_user_input`: **Archive & Clean** (recommended), **Keep Active**, **Export Results**.
248
138
 
249
139
  ### Specs Reference
250
140
 
@@ -271,18 +161,7 @@ request_user_input({
271
161
 
272
162
  ### Wave Execution Engine
273
163
 
274
- For each wave in the pipeline:
275
-
276
- 1. **Load state** -- Read `<session>/tasks.json`, filter tasks for current wave
277
- 2. **Skip failed deps** -- Mark tasks whose dependencies failed/skipped as `skipped`
278
- 3. **Build upstream context** -- For each task, gather findings from `context_from` tasks via tasks.json and `discoveries/{id}.json`
279
- 4. **Separate task types** -- Split into regular tasks and CHECKPOINT tasks
280
- 5. **Spawn regular tasks** -- For each regular task, call `spawn_agent({ agent_type: "team_worker", message: "..." })`, collect agent IDs
281
- 6. **Wait** -- `wait_agent({ timeout_ms: 1800000 })` (30 min). If `result.timed_out`, send STATUS_CHECK via followup_task (wait 3 min), then FINALIZE with interrupt (wait 3 min), then mark timed_out and close agents.
282
- 7. **Collect results** -- Read `discoveries/{task_id}.json` for each agent, update tasks.json status/findings/error, then `close_agent({ target })` each worker
283
- 8. **Execute checkpoints** -- For each CHECKPOINT task, `followup_task` to supervisor, `wait_agent`, read checkpoint report from `artifacts/`, parse verdict
284
- 9. **Handle block** -- If verdict is `block`, prompt user via `request_user_input` with options: Override / Revise upstream / Abort
285
- 10. **Persist** -- Write updated state to `<session>/tasks.json`
164
+ Per wave: load state from `tasks.json` -> skip tasks with failed deps -> build upstream context from `discoveries/{id}.json` -> separate regular vs CHECKPOINT tasks -> spawn regular workers (`wait_agent` 30 min, timeout: STATUS_CHECK 3 min -> FINALIZE 3 min -> close) -> collect results to `discoveries/`, update `tasks.json` -> execute checkpoints via `followup_task` to supervisor -> handle `block` verdict (prompt: Override/Revise/Abort) -> persist state.
286
165
  </execution>
287
166
 
288
167
  <error_codes>
@@ -21,75 +21,30 @@ Synchronous pipeline coordination using spawn_agent + wait_agent.
21
21
 
22
22
  Read-only status report from tasks.json + team_msg progress, then STOP.
23
23
 
24
- 1. Read tasks.json
25
- 2. Count tasks by status (pending, in_progress, completed, failed, skipped)
26
- 3. Read worker progress from message bus:
27
- ```javascript
28
- const progressMsgs = mcp__maestro-tools__team_msg({
29
- operation: "list",
30
- session_id: sessionId,
31
- type: "progress",
32
- last: 50
33
- })
34
- const blockerMsgs = mcp__maestro-tools__team_msg({
35
- operation: "list",
36
- session_id: sessionId,
37
- type: "blocker",
38
- last: 10
39
- })
40
- // Aggregate latest milestone per task
41
- const taskProgress = {}
42
- for (const msg of progressMsgs.result.messages) {
43
- const tid = msg.data?.task_id
44
- if (tid && (!taskProgress[tid] || msg.ts > taskProgress[tid].ts)) {
45
- taskProgress[tid] = { phase: msg.data.phase, pct: msg.data.progress_pct, ts: msg.ts, summary: msg.summary }
46
- }
47
- }
48
- ```
49
-
50
- 4. Output enhanced status:
24
+ Read tasks.json + team_msg (type="progress", last=50) + team_msg (type="blocker", last=10). Aggregate latest milestone per task.
51
25
 
26
+ **Output format**:
52
27
  ```
53
- [coordinator] Pipeline Status
54
- [coordinator] Progress: <done>/<total> (<pct>%)
55
- [coordinator]
56
- [coordinator] Active Workers:
57
- [coordinator] <task_id> <role> <milestone_phase> <pct>% "<summary>" <time_ago>
58
- [coordinator] ...
59
- [coordinator]
60
- [coordinator] Blockers: <count> (or "none")
61
- [coordinator] <task_id>: <blocker_detail> ← only if blockers exist
62
- [coordinator]
28
+ [coordinator] Pipeline Status — Progress: <done>/<total> (<pct>%)
29
+ [coordinator] Active Workers: <task_id> <role> <milestone_phase> <pct>% "<summary>" <time_ago>
30
+ [coordinator] Blockers: <count or "none"> (detail per blocker if any)
63
31
  [coordinator] Completed: <list>
64
32
  [coordinator] Ready: <pending with resolved deps>
65
33
  [coordinator] Commands: 'resume' to advance | 'check' to refresh
66
34
  ```
67
35
 
68
- **CLI equivalent for human monitoring** (no coordinator needed):
69
- ```bash
70
- maestro agent-msg list -s "<session_id>" --type progress --last 10
71
- maestro agent-msg list -s "<session_id>" --type blocker
72
- ```
36
+ **CLI monitoring**: `maestro agent-msg list -s "<session_id>" --type progress --last 10`
73
37
 
74
38
  ## handleResume
75
39
 
76
- **Agent Health Check** (v4):
40
+ **Agent Health Check** (v4): Cross-check `list_agents()` against `active_agents`. Missing agents -> reset task to pending. Crashed supervisor (resident + no CHECKPOINT in_progress + pending CHECKPOINT exists) -> respawn with recovery: true.
41
+
77
42
  ```
78
- // Verify actual running agents match session state
79
- const runningAgents = list_agents({})
80
- // For each active_agent in tasks.json:
81
- // - If agent NOT in runningAgents -> agent crashed
82
- // - Reset that task to pending, remove from active_agents
83
- // This prevents stale agent references from blocking the pipeline
43
+ Load active_agents -> route:
44
+ none -> handleSpawnNext
45
+ has agents -> health check, process completions -> handleSpawnNext
84
46
  ```
85
47
 
86
- 1. Read tasks.json, check active_agents
87
- 2. No active agents -> handleSpawnNext
88
- 3. Has active agents -> check each:
89
- - If supervisor with `resident: true` + no CHECKPOINT in_progress + pending CHECKPOINT exists
90
- -> supervisor may have crashed. Respawn via spawn_agent({ agent_type: "team_supervisor" }) with recovery: true
91
- 4. Proceed to handleSpawnNext
92
-
93
48
  ## handleSpawnNext
94
49
 
95
50
  Find ready tasks, spawn workers, wait for completion, process results.
@@ -104,195 +59,48 @@ Find ready tasks, spawn workers, wait for completion, process results.
104
59
 
105
60
  For each ready non-CHECKPOINT task:
106
61
 
107
- ```javascript
108
- // 1) Update status in tasks.json
109
- state.tasks[task.id].status = 'in_progress'
110
-
111
- // 2) Spawn worker
112
- const agentId = spawn_agent({
113
- agent_type: "team_worker",
114
- task_name: task.id, // e.g., "PLAN-001" — enables named targeting
115
- message: `## Role Assignment
116
- role: ${task.role}
117
- role_spec: ${skillRoot}/roles/${task.role}/role.md
118
- session: ${sessionFolder}
119
- session_id: ${sessionId}
120
- requirement: ${requirement}
121
- inner_loop: ${hasInnerLoop(task.role)}
122
-
123
- Read role_spec file (${skillRoot}/roles/${task.role}/role.md) to load Phase 2-4 domain instructions.
124
- Execute built-in Phase 1 (task discovery) -> role Phase 2-4 -> built-in Phase 5 (report).
125
-
62
+ **Spawn worker message template**:
63
+ ```
64
+ ## Role Assignment
65
+ role: <role> | role_spec: <skillRoot>/roles/<role>/role.md
66
+ session: <session-folder> | session_id: <session-id>
67
+ requirement: <requirement> | inner_loop: <true|false>
68
+ Read role_spec for Phase 2-4 instructions. Execute Phase 1 -> role Phase 2-4 -> Phase 5 (report).
126
69
  ## Task Context
127
- task_id: ${task.id}
128
- title: ${task.title}
129
- description: ${task.description}
130
- pipeline_phase: ${task.pipeline_phase}
131
-
70
+ task_id: <id> | title: <title> | description: <description> | pipeline_phase: <phase>
132
71
  ## Upstream Context
133
- ${prevContext}
134
-
72
+ <prevContext>
135
73
  ## Progress Milestones
136
- session_id: ${sessionId}
137
- Report progress via team_msg at natural phase boundaries (context loaded → core work done → verification).
138
- Report blockers immediately via team_msg type="blocker".
139
- Report completion via team_msg type="task_complete" after report_agent_job_result.
140
- See agent-instruction.md "Progress Milestone Protocol" for format.`
141
- })
142
-
143
- // 3) Track agent
144
- state.active_agents[task.id] = { agentId, role: task.role, started_at: now }
74
+ Report progress via team_msg at phase boundaries. Blockers via type="blocker". Completion via type="task_complete" after report_agent_job_result.
145
75
  ```
146
76
 
147
- After spawning all ready regular tasks:
148
-
149
- ```javascript
150
- // 4) Batch wait — use task_name for stable targeting (v4)
151
- const taskNames = Object.entries(state.active_agents)
152
- .filter(([_, a]) => !a.resident)
153
- .map(([taskId]) => taskId)
154
- const waitResult = wait_agent({ timeout_ms: 1800000 }) // 30 min
155
- // 4a) Drain progress from message bus (before collecting discoveries)
156
- const progressMsgs = mcp__maestro-tools__team_msg({
157
- operation: "list", session_id: sessionId, type: "progress", last: 100
158
- })
159
- const blockerMsgs = mcp__maestro-tools__team_msg({
160
- operation: "list", session_id: sessionId, type: "blocker", last: 20
161
- })
162
- // Log execution trace
163
- for (const msg of (progressMsgs.result?.messages || [])) {
164
- console.log(`[coordinator] trace: ${msg.summary}`)
165
- }
166
- if (blockerMsgs.result?.messages?.length > 0) {
167
- console.log(`[coordinator] WARNING: ${blockerMsgs.result.messages.length} blocker(s) reported during execution`)
168
- for (const b of blockerMsgs.result.messages) {
169
- console.log(`[coordinator] ${b.data?.task_id}: ${b.data?.blocker_detail}`)
170
- }
171
- }
172
-
173
- if (waitResult.timed_out) {
174
- // Use progress trace to understand where workers got stuck
175
- for (const taskId of taskNames) {
176
- // Status probe before closing
177
- followup_task({ target: taskId, message: "STATUS_CHECK: Report current progress, findings so far, and estimated remaining work." })
178
- const status = wait_agent({ timeout_ms: 180000 }) // 3 min
179
- if (status.timed_out) {
180
- followup_task({ target: taskId, message: "FINALIZE: Output all current findings immediately. Time limit reached.", interrupt: true })
181
- const forced = wait_agent({ timeout_ms: 180000 }) // 3 min
182
- if (forced.timed_out) {
183
- const lastProgress = (progressMsgs.result?.messages || [])
184
- .filter(m => m.data?.task_id === taskId)
185
- .pop()
186
- state.tasks[taskId].status = 'timed_out'
187
- state.tasks[taskId].error = lastProgress
188
- ? `Timed out at ${lastProgress.data.phase} (${lastProgress.data.progress_pct}%)`
189
- : 'Timed out with no progress reported'
190
- close_agent({ target: taskId })
191
- delete state.active_agents[taskId]
192
- }
193
- // else: forced output received, process result
194
- }
195
- // else: status received, continue processing
196
- }
197
- } else {
198
- // 5) Collect results from discoveries/{task_id}.json
199
- for (const [taskId, agent] of Object.entries(state.active_agents)) {
200
- if (agent.resident) continue
201
- try {
202
- const disc = JSON.parse(Read(`${sessionFolder}/discoveries/${taskId}.json`))
203
- state.tasks[taskId].status = disc.status || 'completed'
204
- state.tasks[taskId].findings = disc.findings || ''
205
- state.tasks[taskId].quality_score = disc.quality_score || null
206
- state.tasks[taskId].error = disc.error || null
207
- } catch {
208
- state.tasks[taskId].status = 'failed'
209
- state.tasks[taskId].error = 'No discovery file produced'
210
- }
211
- close_agent({ target: taskId }) // Use task_name, not agentId
212
- delete state.active_agents[taskId]
213
- }
214
- }
215
- ```
216
-
217
- **Cross-Agent Supplementary Context** (v4):
77
+ **Result collection**: `wait_agent({ timeout_ms: 1800000 })` (30 min), drain progress + blockers from team_msg, log execution trace.
218
78
 
219
- When spawning workers in a later pipeline phase, send upstream results as supplementary context to already-running workers:
79
+ **Timeout escalation**: STATUS_CHECK (3 min) -> FINALIZE with interrupt (3 min) -> mark timed_out with last progress context, close_agent. Normal completion -> read `discoveries/{task_id}.json` for status/findings/quality_score/error. Missing file -> status="failed". Close each agent (use task_name, not agentId).
220
80
 
221
- ```
222
- // Example: Send planning results to running implementers
223
- send_message({
224
- target: "<running-agent-task-name>",
225
- message: `## Supplementary Context\n${upstreamFindings}`
226
- })
227
- // Note: send_message queues info without interrupting the agent's current work
228
- ```
229
-
230
- Use `send_message` (not `followup_task`) for supplementary info that enriches but doesn't redirect the agent's current task.
81
+ **Cross-Agent Supplementary Context** (v4): Use `send_message` (not `followup_task`) to deliver upstream results to running downstream workers as non-interrupting supplementary context.
231
82
 
232
83
  ### Handle CHECKPOINT Tasks
233
84
 
234
85
  For each ready CHECKPOINT task:
235
86
 
236
- 1. Verify supervisor is in active_agents with `resident: true`
237
- - Not found -> spawn supervisor via SKILL.md Supervisor Spawn Template, record supervisorId
238
- 2. Determine scope: list task IDs that this checkpoint depends on (its deps)
239
- 3. Wake supervisor:
240
- ```javascript
241
- followup_task({
242
- target: supervisorId,
243
- message: `## Checkpoint Request
244
- task_id: ${task.id}
245
- scope: [${task.deps.join(', ')}]
246
- pipeline_progress: ${completedCount}/${totalCount} tasks completed`
247
- })
248
- const cpResult = wait_agent({ timeout_ms: 1800000 }) // 30 min
249
- if (cpResult.timed_out) {
250
- followup_task({ target: supervisorId, message: "STATUS_CHECK: Report current progress, findings so far, and estimated remaining work." })
251
- const status = wait_agent({ timeout_ms: 180000 }) // 3 min
252
- if (status.timed_out) {
253
- followup_task({ target: supervisorId, message: "FINALIZE: Output all current findings immediately. Time limit reached.", interrupt: true })
254
- const forced = wait_agent({ timeout_ms: 180000 }) // 3 min
255
- if (forced.timed_out) { /* mark checkpoint timed_out, close supervisor, STOP */ }
256
- }
257
- }
258
- ```
259
- 4. Read checkpoint report from artifacts/${task.id}-report.md
260
- 5. Parse verdict (pass / warn / block):
87
+ 1. Ensure supervisor in active_agents (resident: true). Not found -> spawn via SKILL.md Supervisor Spawn Template.
88
+ 2. Wake supervisor via `followup_task` with checkpoint scope (dep task IDs) + pipeline progress.
89
+ 3. `wait_agent` (30 min) with standard timeout escalation (STATUS_CHECK -> FINALIZE -> timed_out).
90
+ 4. Read `artifacts/${task.id}-report.md`, parse verdict:
261
91
  - **pass** -> mark completed, proceed
262
92
  - **warn** -> log risks to wisdom, mark completed, proceed
263
93
  - **block** -> request_user_input: Override / Revise upstream / Abort
264
94
 
265
95
  ### Persist and Loop
266
96
 
267
- After processing all results:
268
- 1. Write updated tasks.json
269
- 2. Check if more tasks are now ready (deps newly resolved)
270
- 3. If yes -> loop back to step 1 of handleSpawnNext
271
- 4. If no more ready and all done -> handleComplete
272
- 5. If no more ready but some still blocked -> report status, STOP
97
+ Write tasks.json -> more tasks ready? -> loop handleSpawnNext. All done -> handleComplete. Blocked -> report, STOP.
273
98
 
274
99
  ## handleComplete
275
100
 
276
- **Cleanup Verification** (v4):
277
- ```
278
- // Verify all agents are properly closed
279
- const remaining = list_agents({})
280
- // If any team agents still running -> close_agent each
281
- // Ensures clean session shutdown
282
- ```
101
+ **Cleanup Verification** (v4): `list_agents()` -> close any still-running team agents (including resident supervisor).
283
102
 
284
- Pipeline done. Generate report and completion action.
285
-
286
- 1. Shutdown resident supervisor (if active):
287
- ```javascript
288
- close_agent({ target: supervisorId })
289
- ```
290
- Remove from active_agents in tasks.json
291
- 2. Generate summary (deliverables, stats, discussions)
292
- 3. Read tasks.json completion_action:
293
- - interactive -> request_user_input (Archive/Keep/Export)
294
- - auto_archive -> Archive & Clean (rm -rf session folder)
295
- - auto_keep -> Keep Active (update status to "paused")
103
+ Pipeline done. Generate summary (deliverables, stats, discussions). Route by completion_action: interactive (Archive/Keep/Export) | auto_archive | auto_keep.
296
104
 
297
105
  ## handleAdapt
298
106
 
@@ -79,57 +79,19 @@ Before calling ANY tool, apply this check:
79
79
 
80
80
  ### Worker Spawn Template
81
81
 
82
- Coordinator spawns workers using this template:
83
-
84
- ```
85
- spawn_agent({
86
- agent_type: "team_worker",
87
- task_name: "<task-id>",
88
- fork_turns: "none",
89
- message: `## Role Assignment
90
- role: <role>
91
- role_spec: <skill_root>/roles/<role>/role.md
92
- session: <session-folder>
93
- session_id: <session-id>
94
- requirement: <task-description>
95
- inner_loop: <true|false>
96
-
97
- Read role_spec file (<skill_root>/roles/<role>/role.md) to load Phase 2-4 domain instructions.
98
-
99
- ## Task Context
100
- task_id: <task-id>
101
- title: <task-title>
102
- description: <task-description>
103
- pipeline_phase: <pipeline-phase>
104
-
105
- ## Upstream Context
106
- <prev_context>`
107
- })
108
- ```
109
-
110
- After spawning, use `wait_agent({ timeout_ms: 1800000 })` to collect results (30 min). If `result.timed_out`, send STATUS_CHECK via followup_task (wait 3 min), then FINALIZE with interrupt (wait 3 min), then mark timed_out and close agents. Use `close_agent({ target })` each worker.
82
+ Spawn via `team-worker` agent. Message includes: role, role_spec path, session folder/id, requirement, inner_loop flag, task context, upstream context. After spawning: `wait_agent` (30 min). Timeout: STATUS_CHECK (3 min) -> FINALIZE (3 min) -> close.
111
83
 
112
84
  ### Model Selection Guide
113
85
 
114
- | Role | model | reasoning_effort | Rationale |
115
- |------|-------|-------------------|-----------|
116
- | Scout (SCOUT-*) | (default) | medium | Issue discovery scanning, less reasoning needed |
117
- | Strategist (QASTRAT-*) | (default) | high | Test strategy design requires deep analysis |
118
- | Generator (QAGEN-*) | (default) | high | Test code generation needs precision |
119
- | Executor (QARUN-*) | (default) | medium | Running tests and collecting results |
120
- | Analyst (QAANA-*) | (default) | high | Quality analysis and coverage assessment |
86
+ | Role | reasoning_effort |
87
+ |------|-------------------|
88
+ | Scout (SCOUT-*) | medium |
89
+ | Strategist (QASTRAT-*) | high |
90
+ | Generator (QAGEN-*) | high |
91
+ | Executor (QARUN-*) | medium |
92
+ | Analyst (QAANA-*) | high |
121
93
 
122
- Override model/reasoning_effort in spawn_agent when cost optimization is needed:
123
- ```
124
- spawn_agent({
125
- agent_type: "team_worker",
126
- task_name: "<task-id>",
127
- fork_turns: "none",
128
- model: "<model-override>",
129
- reasoning_effort: "<effort-level>",
130
- message: "..."
131
- })
132
- ```
94
+ Override via `model`/`reasoning_effort` params in spawn_agent for cost optimization.
133
95
 
134
96
  ### User Commands
135
97
 
@@ -143,53 +105,17 @@ spawn_agent({
143
105
 
144
106
  ### v4 Agent Coordination
145
107
 
146
- #### Message Semantics
147
-
148
- | Intent | API | Example |
149
- |--------|-----|---------|
150
- | Send scout findings to running strategist | `send_message` | Queue issue scan results to QASTRAT-* |
151
- | Not used in this skill | `followup_task` | No resident agents -- all workers are one-shot |
152
- | Check running agents | `list_agents` | Verify agent health during resume |
153
-
154
- #### Pipeline Pattern
108
+ **Message Semantics**: `send_message` to queue scout findings to strategist. `list_agents` for health checks. `followup_task` not used (all one-shot workers).
155
109
 
156
- Sequential pipeline with GC loops: scout -> strategist -> generator -> executor -> analyst. The executor/generator may loop via GC fix tasks when coverage is below target (max 3 rounds).
110
+ **Pipeline Pattern**: Sequential with GC loops: scout -> strategist -> generator -> executor -> analyst. Generator/executor may loop (max 3 rounds) when coverage below target.
157
111
 
158
- #### Agent Health Check
112
+ **Agent Health Check**: Reconcile `tasks.json` with `list_agents({})`. Reset orphaned tasks to pending.
159
113
 
160
- Use `list_agents({})` in handleResume and handleComplete:
161
-
162
- ```
163
- // Reconcile session state with actual running agents
164
- const running = list_agents({})
165
- // Compare with tasks.json active_agents
166
- // Reset orphaned tasks (in_progress but agent gone) to pending
167
- ```
168
-
169
- #### Named Agent Targeting
170
-
171
- Workers are spawned with `task_name: "<task-id>"` enabling direct addressing:
172
- - `send_message({ target: "QASTRAT-001", message: "..." })` -- queue scout findings to running strategist
173
- - `close_agent({ target: "SCOUT-001" })` -- cleanup by name after completion
114
+ **Named Targeting**: `send_message({ target: "QASTRAT-001" })`, `close_agent({ target: "SCOUT-001" })`.
174
115
 
175
116
  ### Completion Action
176
117
 
177
- When pipeline completes, coordinator presents:
178
-
179
- ```
180
- request_user_input({
181
- questions: [{
182
- question: "Quality Assurance pipeline complete. What would you like to do?",
183
- header: "Completion",
184
- multiSelect: false,
185
- options: [
186
- { label: "Archive & Clean (Recommended)", description: "Archive session, clean up" },
187
- { label: "Keep Active", description: "Keep session for follow-up work" },
188
- { label: "Export Results", description: "Export deliverables to target directory" }
189
- ]
190
- }]
191
- })
192
- ```
118
+ Present choice: **Archive & Clean** (recommended), **Keep Active**, **Export Results**.
193
119
 
194
120
  ### Session Directory
195
121