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
@@ -67,86 +67,27 @@ $ARGUMENTS — session path (required).
67
67
 
68
68
  ### Orchestration Lifecycle
69
69
 
70
- ```
71
- Validate session
72
- -> Phase 0: Reconcile state (reset interrupted, detect orphans)
73
- -> Phase 1: Spawn first batch team-worker agents (background) -> STOP
74
- -> Worker executes -> callback -> executor advances next step
75
- -> Loop until pipeline complete -> Phase 2 report + completion action
76
- ```
70
+ Validate session -> Phase 0 (reconcile state, reset interrupted tasks, detect orphans) -> Phase 1 (spawn first batch workers, STOP) -> callback loop (advance next step) -> Phase 2 (report + completion action).
77
71
 
78
72
  ### Worker Spawn Template
79
73
 
80
- ```
81
- spawn_agent({
82
- agent_type: "team_worker",
83
- task_name: "<task-id>",
84
- fork_turns: "none",
85
- message: `## Role Assignment
86
- role: <role>
87
- role_spec: <session-folder>/role-specs/<role>.md
88
- session: <session-folder>
89
- session_id: <session-id>
90
- requirement: <task-description>
91
- inner_loop: <true|false>
92
-
93
- Read role_spec file to load Phase 2-4 domain instructions.
94
-
95
- ## Task Context
96
- task_id: <task-id>
97
- title: <task-title>
98
- description: <task-description>
99
- pipeline_phase: <pipeline-phase>
100
-
101
- ## Upstream Context
102
- <prev_context>`
103
- })
104
- ```
105
-
106
- After spawning: `wait_agent({ timeout_ms: 1800000 })` (30 min). If `result.timed_out`: STATUS_CHECK via followup_task (3 min) → FINALIZE with interrupt (3 min) → mark timed_out, close agents.
74
+ Spawn via `team-worker` agent with role-spec path from session. Message includes: role, role_spec, 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) -> mark timed_out, close.
107
75
 
108
- ### Model Selection Guide
76
+ ### Model Selection
109
77
 
110
- Roles loaded dynamically from session role-specs:
111
- - Implementation/fix roles: `reasoning_effort: "high"`
112
- - Verification/test roles: `reasoning_effort: "medium"`
113
- - Default when unclear: `reasoning_effort: "high"`
78
+ Implementation/fix roles: `reasoning_effort: "high"`. Verification/test: `"medium"`. Default: `"high"`.
114
79
 
115
80
  ### State Reconciliation
116
81
 
117
- On resume, reconcile session state with actual running agents:
118
- ```
119
- const running = list_agents({})
120
- // Compare with task-analysis.json active tasks
121
- // Reset orphaned tasks (in_progress but agent gone) to pending
122
- ```
82
+ On resume: compare `list_agents({})` with task-analysis.json. Reset orphaned tasks to pending.
123
83
 
124
84
  ### Worker Communication
125
85
 
126
- - `send_message({ target: "<task-id>", message: "..." })` queue supplementary context
127
- - `followup_task({ target: "<task-id>", message: "..." })` — assign new work to inner_loop worker
128
- - `close_agent({ target: "<task-id>" })` — cleanup completed worker
86
+ `send_message` (supplementary context), `followup_task` (assign work to inner_loop worker), `close_agent` (cleanup).
129
87
 
130
88
  ### Completion Action
131
89
 
132
- ```
133
- request_user_input({
134
- questions: [{
135
- question: "Team pipeline complete. What would you like to do?",
136
- options: [
137
- { label: "Archive & Clean (Recommended)", description: "Archive session, clean up team" },
138
- { label: "Keep Active", description: "Keep session for follow-up work" },
139
- { label: "Export Results", description: "Export deliverables to target directory, then clean" }
140
- ]
141
- }]
142
- })
143
- ```
144
-
145
- | Choice | Steps |
146
- |--------|-------|
147
- | Archive & Clean | Update session status="completed" -> output final summary with artifact paths |
148
- | Keep Active | Update session status="paused" -> output resume command |
149
- | Export Results | request_user_input(target path) -> copy artifacts -> Archive & Clean |
90
+ Present choice: **Archive & Clean** (mark completed, output summary), **Keep Active** (mark paused, output resume command), **Export Results** (prompt path, copy, archive).
150
91
  </execution>
151
92
 
152
93
  <error_codes>
@@ -45,18 +45,11 @@ Parse `$ARGUMENTS` to determine handler:
45
45
  Worker completed a task. Verify completion, update state, auto-advance.
46
46
 
47
47
  ```
48
- Receive callback from [<role>]
49
- +- Find matching active agent by role (from tasks.json roles)
50
- +- Is this a progress update (not final)?
51
- | +- YES -> Update tasks.json state, do NOT remove from active_agents -> STOP
52
- +- Task status = completed?
53
- | +- YES -> close_agent, remove from active_agents -> update tasks.json
54
- | | +- -> handleSpawnNext
55
- | +- NO -> progress message, do not advance -> STOP
56
- +- No matching agent found
57
- +- Scan all active agents for completed tasks
58
- +- Found completed -> process each -> handleSpawnNext
59
- +- None completed -> STOP
48
+ Match agent by role -> route:
49
+ progress_update (not final) -> update state, keep in active_agents -> STOP
50
+ completed -> close_agent, remove from active_agents, -> handleSpawnNext
51
+ not_completed -> log progress -> STOP
52
+ no_match -> scan all agents for completions -> process any found -> handleSpawnNext, else STOP
60
53
  ```
61
54
 
62
55
  **Fast-advance note**: Check if expected next task is already `in_progress` (fast-advanced). If yes -> skip spawning, sync active_agents.
@@ -67,39 +60,20 @@ Receive callback from [<role>]
67
60
 
68
61
  Read-only status report. No pipeline advancement.
69
62
 
70
- ```javascript
71
- // Read progress and blocker messages from message bus
72
- const progressMsgs = mcp__maestro-tools__team_msg({
73
- operation: "list", session_id: sessionId, type: "progress", last: 50
74
- })
75
- const blockerMsgs = mcp__maestro-tools__team_msg({
76
- operation: "list", session_id: sessionId, type: "blocker", last: 10
77
- })
78
- ```
63
+ Read team_msg (type="progress", last=50) + team_msg (type="blocker", last=10). Aggregate per-worker milestones.
79
64
 
65
+ **Output format**:
80
66
  ```
81
- [executor] Pipeline Status
82
- [executor] Progress: <completed>/<total> (<percent>%)
83
-
84
- [executor] Execution Graph:
85
- <visual representation with status icons>
86
-
87
- done=completed >>>=running o=pending .=not created
88
-
89
- [executor] Active Workers:
90
- <task_id> <role> <milestone_phase> <pct>% "<summary>" <time_ago>
91
-
92
- [executor] Blockers:
93
- <task_id> <role> "<blocker_summary>" <time_ago>
94
- (omit section if no blockers)
95
-
67
+ [executor] Pipeline Status — Progress: <completed>/<total> (<percent>%)
68
+ [executor] Execution Graph: <dependency graph with status icons> done=completed >>>=running o=pending .=not created
69
+ [executor] Active Workers: <task_id> <role> <milestone_phase> <pct>% "<summary>" <time_ago>
70
+ [executor] Blockers: <task_id> <role> "<blocker_summary>" <time_ago> (omit if none)
96
71
  [executor] Ready to spawn: <subjects>
97
72
  [executor] Commands: 'resume' to advance | 'check' to refresh
98
-
99
- **CLI monitoring** (works while executor is blocked):
100
- maestro agent-msg list -s "<session_id>" --type progress --last 10
101
73
  ```
102
74
 
75
+ **CLI monitoring**: `maestro agent-msg list -s "<session_id>" --type progress --last 10`
76
+
103
77
  Then STOP.
104
78
 
105
79
  ---
@@ -109,16 +83,12 @@ Then STOP.
109
83
  Check active agent completion, process results, advance pipeline.
110
84
 
111
85
  ```
112
- Load active_agents from tasks.json
113
- +- No active agents -> handleSpawnNext
114
- +- Has active agents -> check each:
115
- +- status = completed -> mark done, close_agent, log
116
- +- status = in_progress -> still running, log
117
- +- other status -> worker failure -> reset to pending
118
- After processing:
119
- +- Some completed -> handleSpawnNext
120
- +- All still running -> report status -> STOP
121
- +- All failed -> handleSpawnNext (retry)
86
+ Load active_agents -> route:
87
+ none -> handleSpawnNext
88
+ has agents -> classify each: completed(close_agent) | in_progress | failed(reset to pending)
89
+ some completed -> handleSpawnNext
90
+ all running -> report status -> STOP
91
+ all failed -> handleSpawnNext (retry)
122
92
  ```
123
93
 
124
94
  ---
@@ -128,127 +98,42 @@ Load active_agents from tasks.json
128
98
  Find all ready tasks, spawn team_worker agents, wait for completion, process results.
129
99
 
130
100
  ```
131
- Read tasks.json
132
- +- completedTasks: status = completed
133
- +- inProgressTasks: status = in_progress
134
- +- readyTasks: pending + all deps in completedTasks
135
-
136
- Ready tasks found?
137
- +- NONE + work in progress -> report waiting -> STOP
138
- +- NONE + nothing in progress -> PIPELINE_COMPLETE -> handleComplete
139
- +- HAS ready tasks -> for each:
140
- +- Is task owner an Inner Loop role AND already has active_agents?
141
- | +- YES -> SKIP spawn (existing worker picks it up)
142
- | +- NO -> normal spawn below
143
- +- Update task status in tasks.json -> in_progress
144
- +- team_msg log -> task_unblocked (session_id=<session-id>)
145
- +- Spawn team_worker (see spawn tool call below)
146
- +- Add to tasks.json active_agents
147
- ```
148
-
149
- **Spawn worker tool call**:
101
+ Classify tasks: completed | in_progress | ready (pending + all deps completed)
150
102
 
151
- ```javascript
152
- const agentId = spawn_agent({
153
- agent_type: "team_worker",
154
- message: `## Role Assignment
155
- role: ${task.role}
156
- role_spec: ${sessionFolder}/role-specs/${task.role}.md
157
- session: ${sessionFolder}
158
- session_id: ${sessionId}
159
- team_name: ${teamName}
160
- requirement: ${task.description}
161
- inner_loop: ${hasInnerLoop(task.role)}
162
-
163
- Read role_spec file (${sessionFolder}/role-specs/${task.role}.md) to load Phase 2-4 domain instructions.
103
+ Ready tasks -> route:
104
+ none + in_progress exists -> report waiting -> STOP
105
+ none + nothing in_progress -> PIPELINE_COMPLETE -> handleComplete
106
+ has ready -> for each:
107
+ skip if Inner Loop role already has active_agent
108
+ else: set status="in_progress", log task_unblocked, spawn team_worker, add to active_agents
109
+ ```
164
110
 
111
+ **Spawn worker message template**:
112
+ ```
113
+ ## Role Assignment
114
+ role: <role> | role_spec: <session-folder>/role-specs/<role>.md
115
+ session: <session-folder> | session_id: <session-id> | team_name: <team-name>
116
+ requirement: <task-description> | inner_loop: <true|false>
117
+ Read role_spec for Phase 2-4 instructions.
165
118
  ## Task Context
166
- task_id: ${taskId}
167
- title: ${task.title}
168
- description: ${task.description}
169
-
119
+ task_id: <taskId> | title: <task-title> | description: <task-description>
170
120
  ## Upstream Context
171
- ${prevContext}
172
-
121
+ <prevContext>
173
122
  ## Progress Milestones
174
- session_id: ${sessionId}
175
- Report progress via team_msg at natural phase boundaries.
176
- Report blockers immediately via team_msg type="blocker".
177
- Report completion via team_msg type="task_complete" after report_agent_job_result.`
178
- })
179
-
180
- state.active_agents[taskId] = { agentId, role: task.role, started_at: now }
123
+ Report progress via team_msg at phase boundaries. Blockers via type="blocker". Completion via type="task_complete" after report_agent_job_result.
181
124
  ```
182
125
 
183
126
  ### Wait and Process Results
184
127
 
185
- After spawning all ready tasks:
186
-
187
- ```javascript
188
- // Batch wait for all spawned workers
189
- const agentIds = Object.values(state.active_agents)
190
- .filter(a => !a.resident)
191
- .map(a => a.agentId)
192
- const waitResult = wait_agent({ timeout_ms: 1800000 }) // 30 min
193
-
194
- // Drain progress from message bus
195
- const progressMsgs = mcp__maestro-tools__team_msg({
196
- operation: "list", session_id: sessionId, type: "progress", last: 100
197
- })
198
- for (const msg of (progressMsgs.result?.messages || [])) {
199
- console.log(`[executor] trace: ${msg.summary}`)
200
- }
201
-
202
- if (waitResult.timed_out) {
203
- for (const [taskId, agent] of Object.entries(state.active_agents)) {
204
- if (agent.resident) continue
205
- // Status probe before closing
206
- followup_task({ target: taskId, message: "STATUS_CHECK: Report current progress, findings so far, and estimated remaining work." })
207
- const status = wait_agent({ timeout_ms: 180000 }) // 3 min
208
- if (status.timed_out) {
209
- followup_task({ target: taskId, message: "FINALIZE: Output all current findings immediately. Time limit reached.", interrupt: true })
210
- const forced = wait_agent({ timeout_ms: 180000 }) // 3 min
211
- if (forced.timed_out) {
212
- const lastProgress = (progressMsgs.result?.messages || [])
213
- .filter(m => m.data?.task_id === taskId).pop()
214
- state.tasks[taskId].status = 'timed_out'
215
- state.tasks[taskId].error = lastProgress
216
- ? `Timed out at ${lastProgress.data.phase} (${lastProgress.data.progress_pct}%)`
217
- : 'Timed out with no progress reported'
218
- close_agent({ target: agent.agentId })
219
- delete state.active_agents[taskId]
220
- }
221
- // else: forced output received, process result
222
- }
223
- // else: status received, continue processing
224
- }
225
- } else {
226
- // Collect results from discoveries/{task_id}.json
227
- for (const [taskId, agent] of Object.entries(state.active_agents)) {
228
- if (agent.resident) continue
229
- try {
230
- const disc = JSON.parse(Read(`${sessionFolder}/discoveries/${taskId}.json`))
231
- state.tasks[taskId].status = disc.status || 'completed'
232
- state.tasks[taskId].findings = disc.findings || ''
233
- state.tasks[taskId].error = disc.error || null
234
- } catch {
235
- state.tasks[taskId].status = 'failed'
236
- state.tasks[taskId].error = 'No discovery file produced'
237
- }
238
- close_agent({ target: agent.agentId })
239
- delete state.active_agents[taskId]
240
- }
241
- }
242
- ```
128
+ `wait_agent({ timeout_ms: 1800000 })` (30 min), drain progress from team_msg.
129
+
130
+ **Timeout escalation**: STATUS_CHECK (3 min) -> FINALIZE with interrupt (3 min) -> mark timed_out with last progress context, close_agent.
131
+
132
+ **Normal completion**: Read `discoveries/{task_id}.json` for status/findings/error. Missing file -> status="failed". Close each agent.
243
133
 
244
134
  ### Persist and Loop
245
135
 
246
- After processing all results:
247
- 1. Write updated tasks.json
248
- 2. Check if more tasks are now ready (deps newly resolved)
249
- 3. If yes -> loop back to step 1 of handleSpawnNext
250
- 4. If no more ready and all done -> handleComplete
251
- 5. If no more ready but some still blocked -> report status, STOP
136
+ Write tasks.json -> more tasks ready? -> loop handleSpawnNext. All done -> handleComplete. Blocked -> report, STOP.
252
137
 
253
138
  ---
254
139
 
@@ -257,18 +142,15 @@ After processing all results:
257
142
  Pipeline complete. Execute completion action.
258
143
 
259
144
  ```
260
- All tasks completed (no pending, no in_progress)
261
- +- Generate pipeline summary (deliverables, stats, duration)
262
- +- Read tasks.json completion_action:
263
- |
264
- +- "interactive":
265
- | request_user_input -> user choice:
266
- | +- "Archive & Clean": rm -rf session folder -> summary
267
- | +- "Keep Active": session status="paused" -> resume command
268
- | +- "Export Results": copy artifacts -> Archive & Clean
269
- |
270
- +- "auto_archive": Execute Archive & Clean
271
- +- "auto_keep": Execute Keep Active
145
+ Generate summary: deliverables + stats + duration
146
+
147
+ Route by completion_action:
148
+ "interactive" -> request_user_input:
149
+ "Archive & Clean" -> rm session folder, output summary
150
+ "Keep Active" -> status="paused", output resume command
151
+ "Export Results" -> copy artifacts, then Archive & Clean
152
+ "auto_archive" -> Archive & Clean without prompt
153
+ "auto_keep" -> Keep Active without prompt
272
154
  ```
273
155
 
274
156
  **Fallback**: If completion action fails, default to Keep Active, log warning.
@@ -280,14 +162,10 @@ All tasks completed (no pending, no in_progress)
280
162
  **UNLIKE team-coordinate, executor CANNOT generate new role-specs.**
281
163
 
282
164
  ```
283
- Receive capability_gap from [<role>]
284
- +- Log via team_msg (type: warning)
285
- +- Check existing roles -> does any cover this?
286
- | +- YES -> redirect to that role -> STOP
287
- | +- NO -> genuine gap, report to user:
288
- | "Capability gap detected. team-executor cannot generate new role-specs.
289
- | Options: 1. Continue 2. Re-run team-coordinate 3. Manually add role-spec"
290
- +- Continue execution with existing roles
165
+ Log capability_gap via team_msg (type: warning)
166
+ Existing role covers gap? -> redirect -> STOP
167
+ Genuine gap -> report to user: "Options: 1. Continue 2. Re-run team-coordinate 3. Manually add role-spec"
168
+ Continue with existing roles
291
169
  ```
292
170
 
293
171
  ---
@@ -305,10 +183,10 @@ Detect orphaned tasks (in_progress without active_agents, > 5 minutes) -> reset
305
183
  ### Consensus-Blocked Handling
306
184
 
307
185
  ```
308
- Route by severity:
309
- +- HIGH: Create REVISION task (max 1). Already revised -> PAUSE for user (request_user_input)
310
- +- MEDIUM: Proceed with warning, log to wisdom/issues.md
311
- +- LOW: Proceed normally as consensus_reached with notes
186
+ Route by consensus_blocked severity:
187
+ HIGH -> create REVISION task (max 1, else PAUSE + escalate)
188
+ MEDIUM -> proceed with warning, log to wisdom/issues.md
189
+ LOW -> proceed normally as consensus_reached with notes
312
190
  ```
313
191
 
314
192
  ## Phase 4: Validation
@@ -43,45 +43,20 @@ team-executor validates the following before execution:
43
43
  | Role-spec file mapping | Each role in team-session.json#roles must have .md file | "Role-spec file not found: role-specs/<role>.md" |
44
44
  | Role-spec structure | Each role-spec must have YAML frontmatter + Phase 2-4 sections | "Invalid role-spec: role-specs/<role>.md missing required section" |
45
45
 
46
- ### Validation Algorithm
46
+ ### Validation Order
47
47
 
48
- ```
49
- 1. Parse --session=<path> from arguments
50
- +- Not provided -> ERROR: "Session required. Usage: --session=<path-to-TC-folder>"
51
-
52
- 2. Check directory exists
53
- +- Not exists -> ERROR: "Session directory not found: <path>"
54
-
55
- 3. Check team-session.json
56
- +- Not exists -> ERROR: "Invalid session: team-session.json missing"
57
- +- Parse error -> ERROR: "Invalid session: team-session.json corrupt"
58
- +- Validate required fields:
59
- +- session_id (string) -> missing -> ERROR
60
- +- task_description (string) -> missing -> ERROR
61
- +- status (string: active|paused|completed) -> invalid -> ERROR
62
- +- team_name (string) -> missing -> ERROR
63
- +- roles (array, non-empty) -> missing/empty -> ERROR
64
-
65
- 4. Check task-analysis.json
66
- +- Not exists -> ERROR: "Invalid session: task-analysis.json missing"
67
- +- Parse error -> ERROR: "Invalid session: task-analysis.json corrupt"
68
- +- Validate required fields:
69
- +- capabilities (array) -> missing -> ERROR
70
- +- dependency_graph (object) -> missing -> ERROR
71
- +- roles (array, non-empty) -> missing/empty -> ERROR
72
-
73
- 5. Check role-specs/ directory
74
- +- Not exists -> ERROR: "Invalid session: role-specs/ directory missing"
75
- +- No .md files -> ERROR: "Invalid session: no role-spec files in role-specs/"
76
-
77
- 6. Check role-spec file mapping and structure
78
- +- For each role in team-session.json#roles:
79
- +- Check role-specs/<role.name>.md exists
80
- +- Not exists -> ERROR: "Role-spec file not found: role-specs/<role.name>.md"
81
- +- Validate role-spec structure (see Role-Spec Structure Validation)
82
-
83
- 7. All checks pass -> proceed to Phase 0
84
- ```
48
+ Validate in sequence; halt on first error:
49
+
50
+ | Step | Target | Required Fields / Checks | Error on Failure |
51
+ |------|--------|--------------------------|------------------|
52
+ | 1 | `--session=<path>` argument | Must be provided | "Session required. Usage: --session=<path-to-TC-folder>" |
53
+ | 2 | Directory at path | Must exist | "Session directory not found: <path>" |
54
+ | 3 | `team-session.json` | Exists, valid JSON, contains: `session_id` (string), `task_description` (string), `status` (active\|paused\|completed), `team_name` (string), `roles` (non-empty array) | "Invalid session: team-session.json missing, corrupt, or missing required fields" |
55
+ | 4 | `task-analysis.json` | Exists, valid JSON, contains: `capabilities` (array), `dependency_graph` (object), `roles` (non-empty array) | "Invalid session: task-analysis.json missing, corrupt, or missing required fields" |
56
+ | 5 | `role-specs/` directory | Exists, contains >= 1 `.md` file | "Invalid session: no role-spec files in role-specs/" |
57
+ | 6 | Role-spec mapping | Each role in `team-session.json#roles` has matching `role-specs/<role.name>.md`; each file passes Role-Spec Structure Validation | "Role-spec file not found: role-specs/<role.name>.md" |
58
+
59
+ All checks pass -> proceed to Phase 0.
85
60
 
86
61
  ---
87
62
 
@@ -207,24 +182,15 @@ message_types:
207
182
 
208
183
  ### Role-Spec Structure Validation
209
184
 
210
- ```
211
- For each role-spec in role-specs/<role>.md:
212
- 1. Read file content
213
- 2. Check for YAML frontmatter (content between --- markers)
214
- +- Not found -> ERROR: "Invalid role-spec: role-specs/<role>.md missing frontmatter"
215
- 3. Parse frontmatter, check required fields:
216
- +- role (string) -> missing -> ERROR
217
- +- prefix (string) -> missing -> ERROR
218
- +- inner_loop (boolean) -> missing -> ERROR
219
- +- message_types (object) -> missing -> ERROR
220
- 4. Check for "## Phase 2" section
221
- +- Not found -> ERROR: "Invalid role-spec: missing Phase 2"
222
- 5. Check for "## Phase 3" section
223
- +- Not found -> ERROR: "Invalid role-spec: missing Phase 3"
224
- 6. Check for "## Phase 4" section
225
- +- Not found -> ERROR: "Invalid role-spec: missing Phase 4"
226
- 7. All checks pass -> role-spec valid
227
- ```
185
+ Each `role-specs/<role>.md` must satisfy:
186
+
187
+ | Check | Required | Error on Failure |
188
+ |-------|----------|------------------|
189
+ | YAML frontmatter (between `---` markers) | Present | "Invalid role-spec: missing frontmatter" |
190
+ | Frontmatter fields | `role` (string), `prefix` (string), `inner_loop` (boolean), `message_types` (object) | "Invalid role-spec: missing required field" |
191
+ | Body sections | `## Phase 2`, `## Phase 3`, `## Phase 4` headings present | "Invalid role-spec: missing Phase N" |
192
+
193
+ All checks pass -> role-spec valid.
228
194
 
229
195
  ---
230
196