maestro-flow 0.3.15 → 0.3.17

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 (390) hide show
  1. package/.claude/agents/workflow-planner.md +24 -8
  2. package/.claude/commands/maestro-amend.md +300 -0
  3. package/.claude/commands/maestro-analyze.md +1 -49
  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-roadmap.md +3 -101
  11. package/.claude/commands/maestro-spec-generate.md +1 -25
  12. package/.claude/commands/maestro-ui-design.md +14 -73
  13. package/.claude/commands/maestro-verify.md +1 -32
  14. package/.claude/commands/maestro.md +13 -30
  15. package/.claude/commands/manage-harvest.md +7 -44
  16. package/.claude/commands/manage-knowhow-capture.md +193 -0
  17. package/.claude/commands/{manage-memory.md → manage-knowhow.md} +77 -88
  18. package/.claude/commands/manage-learn.md +3 -28
  19. package/.claude/commands/manage-status.md +1 -20
  20. package/.claude/commands/manage-wiki.md +1 -1
  21. package/.claude/commands/quality-business-test.md +1 -1
  22. package/.claude/commands/quality-debug.md +3 -18
  23. package/.claude/commands/quality-integration-test.md +3 -23
  24. package/.claude/commands/quality-retrospective.md +1 -28
  25. package/.claude/commands/quality-review.md +3 -52
  26. package/.claude/commands/quality-test-gen.md +1 -10
  27. package/.claude/commands/quality-test.md +3 -25
  28. package/.claude/commands/spec-add.md +1 -21
  29. package/.claude/commands/spec-load.md +1 -16
  30. package/.claude/commands/wiki-connect.md +2 -112
  31. package/.claude/commands/wiki-digest.md +2 -141
  32. package/.codex/skills/learn-decompose/SKILL.md +2 -8
  33. package/.codex/skills/maestro/SKILL.md +60 -146
  34. package/.codex/skills/maestro-analyze/SKILL.md +52 -150
  35. package/.codex/skills/maestro-brainstorm/SKILL.md +36 -91
  36. package/.codex/skills/maestro-composer/SKILL.md +4 -76
  37. package/.codex/skills/maestro-execute/SKILL.md +46 -177
  38. package/.codex/skills/maestro-init/SKILL.md +7 -51
  39. package/.codex/skills/maestro-link-coordinate/SKILL.md +56 -229
  40. package/.codex/skills/maestro-milestone-audit/SKILL.md +7 -36
  41. package/.codex/skills/maestro-milestone-complete/SKILL.md +11 -93
  42. package/.codex/skills/maestro-overlay/SKILL.md +23 -92
  43. package/.codex/skills/maestro-plan/SKILL.md +70 -166
  44. package/.codex/skills/maestro-player/SKILL.md +24 -149
  45. package/.codex/skills/maestro-quick/SKILL.md +5 -48
  46. package/.codex/skills/maestro-roadmap/SKILL.md +21 -66
  47. package/.codex/skills/maestro-spec-generate/SKILL.md +20 -56
  48. package/.codex/skills/maestro-ui-design/SKILL.md +6 -53
  49. package/.codex/skills/maestro-verify/SKILL.md +39 -136
  50. package/.codex/skills/manage-codebase-rebuild/SKILL.md +25 -75
  51. package/.codex/skills/manage-codebase-refresh/SKILL.md +5 -32
  52. package/.codex/skills/manage-issue/SKILL.md +1 -6
  53. package/.codex/skills/manage-issue-discover/SKILL.md +33 -93
  54. package/.codex/skills/{manage-memory → manage-knowhow}/SKILL.md +95 -95
  55. package/.codex/skills/manage-knowhow-capture/SKILL.md +110 -0
  56. package/.codex/skills/manage-learn/SKILL.md +17 -71
  57. package/.codex/skills/manage-status/SKILL.md +4 -35
  58. package/.codex/skills/manage-wiki/SKILL.md +1 -1
  59. package/.codex/skills/quality-business-test/SKILL.md +2 -14
  60. package/.codex/skills/quality-debug/SKILL.md +41 -133
  61. package/.codex/skills/quality-integration-test/SKILL.md +36 -145
  62. package/.codex/skills/quality-refactor/SKILL.md +6 -59
  63. package/.codex/skills/quality-retrospective/SKILL.md +292 -531
  64. package/.codex/skills/quality-review/SKILL.md +30 -65
  65. package/.codex/skills/quality-sync/SKILL.md +2 -11
  66. package/.codex/skills/quality-test/SKILL.md +4 -45
  67. package/.codex/skills/quality-test-gen/SKILL.md +33 -121
  68. package/.codex/skills/spec-add/SKILL.md +2 -9
  69. package/.codex/skills/spec-load/SKILL.md +4 -14
  70. package/.codex/skills/spec-map/SKILL.md +4 -37
  71. package/.codex/skills/spec-remove/SKILL.md +3 -35
  72. package/.codex/skills/spec-setup/SKILL.md +2 -19
  73. package/.codex/skills/team-coordinate/SKILL.md +20 -132
  74. package/.codex/skills/team-coordinate/roles/coordinator/commands/monitor.md +61 -215
  75. package/.codex/skills/team-executor/SKILL.md +7 -66
  76. package/.codex/skills/team-executor/roles/executor/commands/monitor.md +60 -182
  77. package/.codex/skills/team-executor/specs/session-schema.md +22 -56
  78. package/.codex/skills/team-lifecycle-v4/SKILL.md +22 -143
  79. package/.codex/skills/team-lifecycle-v4/roles/coordinator/commands/monitor.md +31 -223
  80. package/.codex/skills/team-quality-assurance/SKILL.md +14 -88
  81. package/.codex/skills/team-quality-assurance/roles/coordinator/commands/monitor.md +46 -186
  82. package/.codex/skills/team-review/SKILL.md +12 -86
  83. package/.codex/skills/team-review/roles/coordinator/commands/monitor.md +49 -187
  84. package/.codex/skills/team-tech-debt/SKILL.md +11 -50
  85. package/.codex/skills/team-tech-debt/roles/coordinator/commands/monitor.md +50 -239
  86. package/.codex/skills/team-testing/SKILL.md +14 -99
  87. package/.codex/skills/team-testing/roles/coordinator/commands/monitor.md +52 -228
  88. package/.codex/skills/wiki-connect/SKILL.md +2 -5
  89. package/README.md +6 -0
  90. package/README.zh-CN.md +6 -0
  91. package/chains/_intent-map.json +7 -7
  92. package/chains/singles/{memory-capture.json → knowhow-capture.json} +5 -5
  93. package/chains/singles/{memory.json → knowhow.json} +6 -6
  94. package/dashboard/dist/assets/{ArtifactsPage-CUrrDGgN.js → ArtifactsPage-iJZtYsmR.js} +6 -6
  95. package/dashboard/dist/assets/ChatInput-DNnDLdQF.js +6 -0
  96. package/dashboard/dist/assets/ChatPage-BjBibfE4.js +22 -0
  97. package/dashboard/dist/assets/{CollabPage-DIUXeazv.js → CollabPage-8lUMUol_.js} +1 -1
  98. package/dashboard/dist/assets/{ExecutionPanel-VmYeADFj.js → ExecutionPanel-BKV3GZ7Q.js} +1 -1
  99. package/dashboard/dist/assets/{KanbanPage-DLq8v7hg.js → KanbanPage-diY3QmGd.js} +2 -2
  100. package/dashboard/dist/assets/{MarkdownRenderer-D7AehrnR.js → MarkdownRenderer-cYFfe1uX.js} +1 -1
  101. package/dashboard/dist/assets/McpPage-COjuIf7U.js +21 -0
  102. package/dashboard/dist/assets/MeetingRoomPage-wnvT7wlB.js +85 -0
  103. package/dashboard/dist/assets/{OutputPanel-B-Rjwgmv.js → OutputPanel-DDL90Idy.js} +1 -1
  104. package/dashboard/dist/assets/{ProblemsPanel-GEpF-oi4.js → ProblemsPanel-zFN9IIs0.js} +1 -1
  105. package/dashboard/dist/assets/{RequirementBoardPage-xs8uDM7I.js → RequirementBoardPage-DOPJoT0I.js} +2 -2
  106. package/dashboard/dist/assets/{RequirementPage-BKDSFwjA.js → RequirementPage-CEVquRgM.js} +1 -1
  107. package/dashboard/dist/assets/RoomsPage-D5USEWDh.js +1 -0
  108. package/dashboard/dist/assets/{SpecsPage-DLFb9ZH0.js → SpecsPage-BOwBin_o.js} +1 -1
  109. package/dashboard/dist/assets/{SupervisorPage-SOki_kgz.js → SupervisorPage-5iRyMU5T.js} +1 -1
  110. package/dashboard/dist/assets/TeamsPage-DlcEmr_Q.js +1 -0
  111. package/dashboard/dist/assets/{TreeBrowser-B9DHdULE.js → TreeBrowser-Y48Wz-QY.js} +1 -1
  112. package/dashboard/dist/assets/WorkflowPage-CmQaRVgL.js +6 -0
  113. package/dashboard/dist/assets/arrow-left-NCUOENvg.js +6 -0
  114. package/dashboard/dist/assets/{check-DJDk3A2a.js → check-o7nfGNHf.js} +1 -1
  115. package/dashboard/dist/assets/{chevron-right-C7bVDreZ.js → chevron-right-BXySK2fn.js} +1 -1
  116. package/dashboard/dist/assets/{circle-alert-Na1vf6qQ.js → circle-alert-DcSBokh4.js} +1 -1
  117. package/dashboard/dist/assets/{circle-check-CEGgy3NV.js → circle-check-Cd-jce4j.js} +1 -1
  118. package/dashboard/dist/assets/{circle-check-big-3JB8zRYj.js → circle-check-big-BN7Mdp4i.js} +1 -1
  119. package/dashboard/dist/assets/{circle-Qfgy4LB_.js → circle-cooAwnAR.js} +1 -1
  120. package/dashboard/dist/assets/{code-Ble63Idz.js → code-BQa9oL1n.js} +1 -1
  121. package/dashboard/dist/assets/{columns-3-BUcKlxve.js → columns-3-BzgxelGx.js} +1 -1
  122. package/dashboard/dist/assets/{download-CMqkfn8x.js → download-swRJnate.js} +1 -1
  123. package/dashboard/dist/assets/en-C_BD3UCD.js +1 -0
  124. package/dashboard/dist/assets/{folder-B9ewx9LL.js → folder-DbGbLNFN.js} +1 -1
  125. package/dashboard/dist/assets/index-BEUaOz_b.css +1 -0
  126. package/dashboard/dist/assets/{index-JTmGteaT.js → index-DIoMBMbv.js} +1 -1
  127. package/dashboard/dist/assets/index-DLBN_7fb.js +44 -0
  128. package/dashboard/dist/assets/index-uIqUCT8y.js +236 -0
  129. package/dashboard/dist/assets/{list-DI8Wn2aT.js → list-BTRAIvDq.js} +1 -1
  130. package/dashboard/dist/assets/loader-NHtB6Mdn.js +6 -0
  131. package/dashboard/dist/assets/{minus-Lp_BfctG.js → minus-BjMxRTET.js} +1 -1
  132. package/dashboard/dist/assets/{pen-line-Ch7sphzZ.js → pen-line-C4_O16H0.js} +1 -1
  133. package/dashboard/dist/assets/{pencil-_yRMHmGT.js → pencil-DTmKhyDY.js} +1 -1
  134. package/dashboard/dist/assets/{proxy-D72Y8a4Y.js → proxy-Dtx5p6IO.js} +1 -1
  135. package/dashboard/dist/assets/rows-2-GR1dZtRu.js +6 -0
  136. package/dashboard/dist/assets/{search-BS6fI6Bg.js → search-DVtgy2W7.js} +1 -1
  137. package/dashboard/dist/assets/{shallow-BXasQBvr.js → shallow-BOmvDNsv.js} +1 -1
  138. package/dashboard/dist/assets/{table-CeGlFjlP.js → table-DCzuJAFh.js} +1 -1
  139. package/dashboard/dist/assets/team-types-BPeOvVdA.js +6 -0
  140. package/dashboard/dist/assets/{terminal-BJic2yW-.js → terminal-CzogW4cl.js} +1 -1
  141. package/dashboard/dist/assets/{trash-2-Czz4X8Fb.js → trash-2-52LATVfW.js} +1 -1
  142. package/dashboard/dist/assets/users-DLFE2voE.js +6 -0
  143. package/dashboard/dist/assets/{zap-C3H0jVFA.js → zap-DhiYlgyZ.js} +1 -1
  144. package/dashboard/dist/assets/zh-CN-DvQKfow3.js +1 -0
  145. package/dashboard/dist/index.html +2 -2
  146. package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.d.ts +2 -0
  147. package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js +19 -11
  148. package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js.map +1 -1
  149. package/dashboard/dist-server/dashboard/src/server/agents/agent-sdk-adapter.js +5 -0
  150. package/dashboard/dist-server/dashboard/src/server/agents/agent-sdk-adapter.js.map +1 -1
  151. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.d.ts +1 -0
  152. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js +21 -4
  153. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js.map +1 -1
  154. package/dashboard/dist-server/dashboard/src/server/agents/env-cleanup.js +8 -0
  155. package/dashboard/dist-server/dashboard/src/server/agents/env-cleanup.js.map +1 -1
  156. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js +6 -6
  157. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js.map +1 -1
  158. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.test.js +2 -2
  159. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.test.js.map +1 -1
  160. package/dashboard/dist-server/dashboard/src/server/index.js +14 -3
  161. package/dashboard/dist-server/dashboard/src/server/index.js.map +1 -1
  162. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.d.ts +24 -0
  163. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.js +220 -0
  164. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.js.map +1 -0
  165. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.test.d.ts +1 -0
  166. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.test.js +115 -0
  167. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.test.js.map +1 -0
  168. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.d.ts +44 -0
  169. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.js +260 -0
  170. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.js.map +1 -0
  171. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.test.d.ts +1 -0
  172. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.test.js +194 -0
  173. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.test.js.map +1 -0
  174. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/stdio-bridge.d.ts +2 -0
  175. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/stdio-bridge.js +279 -0
  176. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/stdio-bridge.js.map +1 -0
  177. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.d.ts +14 -0
  178. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.js +131 -0
  179. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.js.map +1 -0
  180. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.test.d.ts +1 -0
  181. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.test.js +134 -0
  182. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.test.js.map +1 -0
  183. package/dashboard/dist-server/dashboard/src/server/rooms/meeting-room-session.d.ts +51 -0
  184. package/dashboard/dist-server/dashboard/src/server/rooms/meeting-room-session.js +185 -0
  185. package/dashboard/dist-server/dashboard/src/server/rooms/meeting-room-session.js.map +1 -0
  186. package/dashboard/dist-server/dashboard/src/server/rooms/room-agent-registry.d.ts +29 -0
  187. package/dashboard/dist-server/dashboard/src/server/rooms/room-agent-registry.js +125 -0
  188. package/dashboard/dist-server/dashboard/src/server/rooms/room-agent-registry.js.map +1 -0
  189. package/dashboard/dist-server/dashboard/src/server/rooms/room-mailbox.d.ts +18 -0
  190. package/dashboard/dist-server/dashboard/src/server/rooms/room-mailbox.js +63 -0
  191. package/dashboard/dist-server/dashboard/src/server/rooms/room-mailbox.js.map +1 -0
  192. package/dashboard/dist-server/dashboard/src/server/rooms/room-session-manager.d.ts +19 -0
  193. package/dashboard/dist-server/dashboard/src/server/rooms/room-session-manager.js +45 -0
  194. package/dashboard/dist-server/dashboard/src/server/rooms/room-session-manager.js.map +1 -0
  195. package/dashboard/dist-server/dashboard/src/server/rooms/room-task-board.d.ts +25 -0
  196. package/dashboard/dist-server/dashboard/src/server/rooms/room-task-board.js +115 -0
  197. package/dashboard/dist-server/dashboard/src/server/rooms/room-task-board.js.map +1 -0
  198. package/dashboard/dist-server/dashboard/src/server/rooms/room-types.d.ts +53 -0
  199. package/dashboard/dist-server/dashboard/src/server/rooms/room-types.js +5 -0
  200. package/dashboard/dist-server/dashboard/src/server/rooms/room-types.js.map +1 -0
  201. package/dashboard/dist-server/dashboard/src/server/routes/agents.js +6 -0
  202. package/dashboard/dist-server/dashboard/src/server/routes/agents.js.map +1 -1
  203. package/dashboard/dist-server/dashboard/src/server/routes/cli-history.js +20 -1
  204. package/dashboard/dist-server/dashboard/src/server/routes/cli-history.js.map +1 -1
  205. package/dashboard/dist-server/dashboard/src/server/routes/index.d.ts +2 -1
  206. package/dashboard/dist-server/dashboard/src/server/routes/index.js +8 -1
  207. package/dashboard/dist-server/dashboard/src/server/routes/index.js.map +1 -1
  208. package/dashboard/dist-server/dashboard/src/server/routes/install.js +1 -1
  209. package/dashboard/dist-server/dashboard/src/server/routes/install.js.map +1 -1
  210. package/dashboard/dist-server/dashboard/src/server/routes/mcp.js +2 -2
  211. package/dashboard/dist-server/dashboard/src/server/routes/mcp.js.map +1 -1
  212. package/dashboard/dist-server/dashboard/src/server/routes/room-mcp.d.ts +3 -0
  213. package/dashboard/dist-server/dashboard/src/server/routes/room-mcp.js +246 -0
  214. package/dashboard/dist-server/dashboard/src/server/routes/room-mcp.js.map +1 -0
  215. package/dashboard/dist-server/dashboard/src/server/routes/rooms.d.ts +3 -0
  216. package/dashboard/dist-server/dashboard/src/server/routes/rooms.js +38 -0
  217. package/dashboard/dist-server/dashboard/src/server/routes/rooms.js.map +1 -0
  218. package/dashboard/dist-server/dashboard/src/server/routes/wiki.integration.test.js +7 -7
  219. package/dashboard/dist-server/dashboard/src/server/routes/wiki.integration.test.js.map +1 -1
  220. package/dashboard/dist-server/dashboard/src/server/routes/wiki.js +1 -1
  221. package/dashboard/dist-server/dashboard/src/server/routes/wiki.js.map +1 -1
  222. package/dashboard/dist-server/dashboard/src/server/state/event-bus.d.ts +39 -1
  223. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js +12 -0
  224. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js.map +1 -1
  225. package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js +1 -1
  226. package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js.map +1 -1
  227. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js +25 -14
  228. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js.map +1 -1
  229. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.test.js +6 -6
  230. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.test.js.map +1 -1
  231. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-types.d.ts +1 -1
  232. package/dashboard/dist-server/dashboard/src/server/wiki/writer-stress.test.js +17 -16
  233. package/dashboard/dist-server/dashboard/src/server/wiki/writer-stress.test.js.map +1 -1
  234. package/dashboard/dist-server/dashboard/src/server/wiki/writer.d.ts +1 -1
  235. package/dashboard/dist-server/dashboard/src/server/wiki/writer.js +18 -7
  236. package/dashboard/dist-server/dashboard/src/server/wiki/writer.js.map +1 -1
  237. package/dashboard/dist-server/dashboard/src/server/ws/handlers/agent-handler.d.ts +3 -1
  238. package/dashboard/dist-server/dashboard/src/server/ws/handlers/agent-handler.js +75 -1
  239. package/dashboard/dist-server/dashboard/src/server/ws/handlers/agent-handler.js.map +1 -1
  240. package/dashboard/dist-server/dashboard/src/server/ws/handlers/room-handler.d.ts +17 -0
  241. package/dashboard/dist-server/dashboard/src/server/ws/handlers/room-handler.js +192 -0
  242. package/dashboard/dist-server/dashboard/src/server/ws/handlers/room-handler.js.map +1 -0
  243. package/dashboard/dist-server/dashboard/src/server/ws/session-scoped-event-filter.d.ts +13 -0
  244. package/dashboard/dist-server/dashboard/src/server/ws/session-scoped-event-filter.js +37 -0
  245. package/dashboard/dist-server/dashboard/src/server/ws/session-scoped-event-filter.js.map +1 -0
  246. package/dashboard/dist-server/dashboard/src/server/ws/ws-manager.d.ts +7 -1
  247. package/dashboard/dist-server/dashboard/src/server/ws/ws-manager.js +39 -2
  248. package/dashboard/dist-server/dashboard/src/server/ws/ws-manager.js.map +1 -1
  249. package/dashboard/dist-server/dashboard/src/shared/constants.js +12 -0
  250. package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
  251. package/dashboard/dist-server/dashboard/src/shared/room-leader-prompt.d.ts +1 -0
  252. package/dashboard/dist-server/dashboard/src/shared/room-leader-prompt.js +38 -0
  253. package/dashboard/dist-server/dashboard/src/shared/room-leader-prompt.js.map +1 -0
  254. package/dashboard/dist-server/dashboard/src/shared/team-types.d.ts +66 -0
  255. package/dashboard/dist-server/dashboard/src/shared/team-types.js.map +1 -1
  256. package/dashboard/dist-server/dashboard/src/shared/types.d.ts +24 -3
  257. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.d.ts +76 -2
  258. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.js.map +1 -1
  259. package/dashboard/dist-server/shared/agent-types.d.ts +2 -0
  260. package/dashboard/dist-server/src/commands/delegate.js +11 -8
  261. package/dashboard/dist-server/src/commands/delegate.js.map +1 -1
  262. package/dist/shared/agent-types.d.ts +2 -0
  263. package/dist/shared/agent-types.d.ts.map +1 -1
  264. package/dist/src/cli.js +2 -2
  265. package/dist/src/cli.js.map +1 -1
  266. package/dist/src/commands/delegate.d.ts.map +1 -1
  267. package/dist/src/commands/delegate.js +11 -8
  268. package/dist/src/commands/delegate.js.map +1 -1
  269. package/dist/src/commands/install-backend.d.ts +1 -1
  270. package/dist/src/commands/install-backend.d.ts.map +1 -1
  271. package/dist/src/commands/install-backend.js +1 -1
  272. package/dist/src/commands/install-backend.js.map +1 -1
  273. package/dist/src/commands/install-ui/ExecutionView.d.ts.map +1 -1
  274. package/dist/src/commands/install-ui/ExecutionView.js +4 -1
  275. package/dist/src/commands/install-ui/ExecutionView.js.map +1 -1
  276. package/dist/src/commands/install-ui/InstallExecution.d.ts.map +1 -1
  277. package/dist/src/commands/install-ui/InstallExecution.js +4 -1
  278. package/dist/src/commands/install-ui/InstallExecution.js.map +1 -1
  279. package/dist/src/commands/install.js +5 -5
  280. package/dist/src/commands/install.js.map +1 -1
  281. package/dist/src/commands/knowhow.d.ts +10 -0
  282. package/dist/src/commands/knowhow.d.ts.map +1 -0
  283. package/dist/src/commands/knowhow.js +217 -0
  284. package/dist/src/commands/knowhow.js.map +1 -0
  285. package/dist/src/commands/overlay-ui/OverlayList.d.ts +2 -0
  286. package/dist/src/commands/overlay-ui/OverlayList.d.ts.map +1 -1
  287. package/dist/src/commands/overlay-ui/OverlayList.js +6 -3
  288. package/dist/src/commands/overlay-ui/OverlayList.js.map +1 -1
  289. package/dist/src/commands/overlay-ui/index.d.ts.map +1 -1
  290. package/dist/src/commands/overlay-ui/index.js +70 -44
  291. package/dist/src/commands/overlay-ui/index.js.map +1 -1
  292. package/dist/src/commands/overlay.d.ts.map +1 -1
  293. package/dist/src/commands/overlay.js +4 -3
  294. package/dist/src/commands/overlay.js.map +1 -1
  295. package/dist/src/commands/update.d.ts.map +1 -1
  296. package/dist/src/commands/update.js +31 -21
  297. package/dist/src/commands/update.js.map +1 -1
  298. package/dist/src/core/manifest.d.ts +8 -1
  299. package/dist/src/core/manifest.d.ts.map +1 -1
  300. package/dist/src/core/manifest.js +3 -1
  301. package/dist/src/core/manifest.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/workflows/analyze.md +61 -185
  330. package/workflows/brainstorm.md +3 -23
  331. package/workflows/codebase-rebuild.md +79 -191
  332. package/workflows/codebase-refresh.md +26 -124
  333. package/workflows/debug.md +21 -141
  334. package/workflows/execute.md +183 -350
  335. package/workflows/fork.md +72 -230
  336. package/workflows/harvest.md +12 -79
  337. package/workflows/init.md +3 -17
  338. package/workflows/integration-test.md +21 -190
  339. package/workflows/issue-analyze.md +35 -153
  340. package/workflows/issue-discover.md +88 -263
  341. package/workflows/issue-execute.md +29 -208
  342. package/workflows/issue-plan.md +33 -154
  343. package/workflows/issue.md +44 -202
  344. package/workflows/knowhow.md +374 -0
  345. package/workflows/learn.md +30 -177
  346. package/workflows/maestro-coordinate.codex.md +77 -362
  347. package/workflows/maestro-link-coordinate.md +12 -61
  348. package/workflows/maestro.codex.md +124 -457
  349. package/workflows/maestro.md +562 -976
  350. package/workflows/map.md +16 -53
  351. package/workflows/merge.md +42 -197
  352. package/workflows/milestone-audit.md +5 -43
  353. package/workflows/milestone-complete.md +11 -60
  354. package/workflows/plan.md +188 -387
  355. package/workflows/quick.md +25 -174
  356. package/workflows/refactor.md +28 -221
  357. package/workflows/retrospective.md +104 -443
  358. package/workflows/review.md +87 -299
  359. package/workflows/roadmap.md +117 -97
  360. package/workflows/spec-generate.md +22 -118
  361. package/workflows/specs-add.md +5 -25
  362. package/workflows/specs-load.md +1 -5
  363. package/workflows/specs-remove.md +0 -11
  364. package/workflows/specs-setup.md +11 -47
  365. package/workflows/status.md +58 -200
  366. package/workflows/sync.md +28 -141
  367. package/workflows/test-gen.md +23 -100
  368. package/workflows/test.md +15 -125
  369. package/workflows/ui-design.md +139 -465
  370. package/workflows/ui-style.md +36 -228
  371. package/workflows/verify.md +52 -273
  372. package/workflows/wiki-connect.md +9 -46
  373. package/workflows/wiki-digest.md +7 -50
  374. package/workflows/wiki-manage.md +11 -108
  375. package/.claude/commands/maestro-coordinate.md +0 -63
  376. package/.claude/commands/manage-memory-capture.md +0 -59
  377. package/.codex/skills/maestro-coordinate/SKILL.md +0 -213
  378. package/.codex/skills/manage-memory-capture/SKILL.md +0 -93
  379. package/dashboard/dist/assets/ChatInput-pUOLJIKE.js +0 -49
  380. package/dashboard/dist/assets/ChatPage-B8Xqkt0v.js +0 -27
  381. package/dashboard/dist/assets/McpPage-BY0SjTgw.js +0 -21
  382. package/dashboard/dist/assets/TeamsPage-BO2kP70F.js +0 -11
  383. package/dashboard/dist/assets/WorkflowPage-C8hWbYim.js +0 -6
  384. package/dashboard/dist/assets/en-ZbRpfzuP.js +0 -1
  385. package/dashboard/dist/assets/index-C2Mcb4TJ.js +0 -231
  386. package/dashboard/dist/assets/index-DyBbPc18.css +0 -1
  387. package/dashboard/dist/assets/loader-B5F6PzFT.js +0 -11
  388. package/dashboard/dist/assets/zh-CN-CoXBFuny.js +0 -1
  389. package/workflows/maestro-coordinate.md +0 -582
  390. package/workflows/memory.md +0 -451
@@ -144,30 +144,16 @@ Each wave generates `wave-{N}.csv` with extra `prev_context` column.
144
144
 
145
145
  ### Session Initialization
146
146
 
147
- ```javascript
148
- const getUtc8ISOString = () => new Date(Date.now() + 8 * 60 * 60 * 1000).toISOString()
149
-
150
- // Parse flags
151
- const AUTO_YES = $ARGUMENTS.includes('--yes') || $ARGUMENTS.includes('-y')
152
- const continueMode = $ARGUMENTS.includes('--continue')
153
- const concurrencyMatch = $ARGUMENTS.match(/(?:--concurrency|-c)\s+(\d+)/)
154
- const maxConcurrency = concurrencyMatch ? parseInt(concurrencyMatch[1]) : 6
155
-
156
- // Parse review-specific flags
157
- const levelMatch = $ARGUMENTS.match(/--level\s+(quick|standard|deep)/)
158
- const dimsMatch = $ARGUMENTS.match(/--dimensions\s+([\w,]+)/)
159
-
160
- // Clean phase text
161
- const phaseArg = $ARGUMENTS
162
- .replace(/--yes|-y|--continue|--concurrency\s+\d+|-c\s+\d+|--level\s+\w+|--dimensions\s+[\w,]+/g, '')
163
- .trim()
147
+ Parse `$ARGUMENTS` to extract:
148
+ - `AUTO_YES` from `--yes` / `-y`
149
+ - `continueMode` from `--continue`
150
+ - `maxConcurrency` from `--concurrency N` / `-c N` (default: 6)
151
+ - `levelMatch` from `--level quick|standard|deep`
152
+ - `dimsMatch` from `--dimensions <list>`
153
+ - `phaseArg` = remaining text after stripping all flags
164
154
 
165
- const dateStr = getUtc8ISOString().substring(0, 10).replace(/-/g, '')
166
- const sessionId = `${dateStr}-review-P${phaseArg}-${phaseSlug}` // phaseSlug from index.json or roadmap
167
- const sessionFolder = `.workflow/.csv-wave/${sessionId}`
168
-
169
- Bash(`mkdir -p ${sessionFolder}`)
170
- ```
155
+ Session ID: `{YYYYMMDD}-review-P{phaseArg}-{phaseSlug}` (phaseSlug from index.json or roadmap)
156
+ Session folder: `.workflow/.csv-wave/{sessionId}/` create via `mkdir -p`
171
157
 
172
158
  ### Phase 1: Phase Resolution -> CSV
173
159
 
@@ -175,10 +161,10 @@ Bash(`mkdir -p ${sessionFolder}`)
175
161
 
176
162
  **Decomposition Rules**:
177
163
 
178
- 1. **Phase resolution**: Resolve `{phaseArg}` via artifact registry in `state.json` to `.workflow/scratch/{YYYYMMDD}-{type}-{slug}/`
179
- 2. **Related session discovery**: Query `state.json.artifacts[]` for all artifacts matching `phase === target_phase && milestone === current_milestone`. Each artifact's type determines its outputs: execute → .summaries/.task/, review → review.json, debug → understanding.md, test → uat.md. Extract conclusions that may affect this review (prior verdicts, root causes, UAT gaps) and pass as prior quality context to reviewer agents.
180
- 3. **File collection**: Read `.task/TASK-*.json` -> collect all `files[].path` where action != "read"
181
- 3. **Level detection**:
164
+ 1. **Phase resolution**: Resolve `{phaseArg}` via `state.json` artifact registry to `.workflow/scratch/{YYYYMMDD}-{type}-{slug}/`
165
+ 2. **Related session discovery**: Query `state.json.artifacts[]` for matching phase + milestone. Extract prior quality context (verdicts, root causes, UAT gaps) from artifact outputs by type (execute → .summaries/.task/, review → review.json, debug → understanding.md, test → uat.md)
166
+ 3. **File collection**: Read `.task/TASK-*.json` collect `files[].path` where action != "read"
167
+ 4. **Level detection**:
182
168
 
183
169
  | Condition | Level |
184
170
  |-----------|-------|
@@ -187,7 +173,7 @@ Bash(`mkdir -p ${sessionFolder}`)
187
173
  | 4-19 changed files | standard |
188
174
  | >=20 files OR phase marked critical | deep |
189
175
 
190
- 4. **Dimension selection**:
176
+ 5. **Dimension selection**:
191
177
 
192
178
  | Level | Dimensions |
193
179
  |-------|------------|
@@ -197,9 +183,8 @@ Bash(`mkdir -p ${sessionFolder}`)
197
183
 
198
184
  If `--dimensions` flag provided, override with explicit list.
199
185
 
200
- 5. **Specs loading**: Read `.workflow/specs/` for project conventions (unless `--skip-specs`)
201
-
202
- 6. **CSV generation**: One row per dimension + one aggregation row.
186
+ 6. **Specs loading**: Read `.workflow/specs/` for project conventions (unless `--skip-specs`)
187
+ 7. **CSV generation**: One row per dimension + one aggregation row
203
188
 
204
189
  **Wave computation**: Simple 2-wave -- all dimension tasks = wave 1, aggregation = wave 2.
205
190
 
@@ -211,11 +196,7 @@ If `--dimensions` flag provided, override with explicit list.
211
196
 
212
197
  #### Wave 1: Dimension Reviews (Parallel)
213
198
 
214
- 1. Read master `tasks.csv`
215
- 2. Filter rows where `wave == 1` AND `status == pending`
216
- 3. No prev_context needed (wave 1 has no predecessors)
217
- 4. Write `wave-1.csv`
218
- 5. Execute:
199
+ Filter master `tasks.csv` for `wave == 1 AND status == pending` → write `wave-1.csv` (no prev_context needed).
219
200
 
220
201
  ```javascript
221
202
  spawn_agents_on_csv({
@@ -240,32 +221,20 @@ spawn_agents_on_csv({
240
221
  })
241
222
  ```
242
223
 
243
- 6. Read `wave-1-results.csv`, merge into master `tasks.csv`
244
- 7. Delete `wave-1.csv`
224
+ Merge `wave-1-results.csv` into master `tasks.csv`, delete `wave-1.csv`.
245
225
 
246
226
  #### Wave 2: Aggregation + Deep-Dive
247
227
 
248
- 1. Read master `tasks.csv`
249
- 2. Filter rows where `wave == 2` AND `status == pending`
250
- 3. Check deps -- if all wave 1 tasks failed, skip aggregation
251
- 4. Build `prev_context` from wave 1 findings:
252
- ```
253
- [Task 1: Correctness Review] Found 2 critical issues: null pointer in login handler...
254
- [Task 2: Security Review] Found 1 high issue: SQL injection in query builder...
255
- ...
256
- ```
257
- 5. Write `wave-2.csv` with `prev_context` column
258
- 6. Execute `spawn_agents_on_csv` for aggregation agent
259
- 7. Merge results into master `tasks.csv`
260
- 8. Delete `wave-2.csv`
228
+ Filter master `tasks.csv` for `wave == 2 AND status == pending`. If all wave 1 tasks failed, skip aggregation.
229
+
230
+ Build `prev_context` from wave 1 findings (format: `[Task N: Title] summary...` per task).
231
+ Write `wave-2.csv` with `prev_context` column execute `spawn_agents_on_csv` → merge results → delete `wave-2.csv`.
261
232
 
262
233
  ### Phase 3: Results Aggregation
263
234
 
264
235
  **Objective**: Generate final results and human-readable report.
265
236
 
266
- 1. Read final master `tasks.csv`
267
- 2. Export as `results.csv`
268
- 3. Build `review.json`:
237
+ Export master `tasks.csv` as `results.csv`. Build `review.json`:
269
238
 
270
239
  ```json
271
240
  {
@@ -282,7 +251,7 @@ spawn_agents_on_csv({
282
251
  }
283
252
  ```
284
253
 
285
- 4. Generate `context.md`:
254
+ Generate `context.md`:
286
255
 
287
256
  ```markdown
288
257
  # Code Review Report -- Phase {phase}
@@ -315,7 +284,7 @@ spawn_agents_on_csv({
315
284
  {list of created issue IDs}
316
285
  ```
317
286
 
318
- 5. **Verdict determination**:
287
+ **Verdict determination**:
319
288
 
320
289
  | Condition | Verdict |
321
290
  |-----------|---------|
@@ -325,7 +294,7 @@ spawn_agents_on_csv({
325
294
  | Medium findings > 5 | WARN |
326
295
  | Otherwise | PASS |
327
296
 
328
- 6. **Issue creation**: Based on level thresholds:
297
+ **Issue creation** by level threshold:
329
298
 
330
299
  | Level | Create Issues For |
331
300
  |-------|------------------|
@@ -333,11 +302,11 @@ spawn_agents_on_csv({
333
302
  | standard | critical + high |
334
303
  | deep | critical + high + medium |
335
304
 
336
- 7. **Phase index update**: Update `{artifact_dir}/index.json` with review status.
305
+ **Phase index update**: Update `{artifact_dir}/index.json` with review status.
337
306
 
338
- 8. **Register artifact**: Append to `state.json.artifacts[]` with `type: "review"`, `id: REV-NNN`, `path: "scratch/{YYYYMMDD}-review-P{N}-{slug}"`, `depends_on: exec_art.id`. Output directory is independent scratch, not shared with plan.
307
+ **Register artifact**: Append to `state.json.artifacts[]` with `type: "review"`, `id: REV-NNN`, `path: "scratch/{YYYYMMDD}-review-P{N}-{slug}"`, `depends_on: exec_art.id`. Output directory is independent scratch, not shared with plan.
339
308
 
340
- 9. Display summary.
309
+ Display summary.
341
310
 
342
311
  ### Shared Discovery Board Protocol
343
312
 
@@ -362,11 +331,7 @@ spawn_agents_on_csv({
362
331
 
363
332
  #### Protocol
364
333
 
365
- 1. **Read** `{session_folder}/discoveries.ndjson` before own review
366
- 2. **Skip covered**: If discovery of same type + dedup key exists, skip
367
- 3. **Write immediately**: Append findings as found
368
- 4. **Append-only**: Never modify or delete
369
- 5. **Deduplicate**: Check before writing
334
+ Read `{session_folder}/discoveries.ndjson` before own review. Deduplicate by type + dedup key before writing. Append-only — never modify or delete.
370
335
 
371
336
  ```bash
372
337
  echo '{"ts":"<ISO>","worker":"{id}","type":"vulnerability","data":{"location":"src/auth/login.ts:42","type":"sql_injection","severity":"critical","cwe":"CWE-89"}}' >> {session_folder}/discoveries.ndjson
@@ -30,9 +30,7 @@ $quality-sync "--since abc123 --dry-run"
30
30
 
31
31
  ### Step 1: Validate
32
32
 
33
- ```bash
34
- test -d .workflow || exit 1 # E001: not initialized
35
- ```
33
+ Verify `.workflow/` directory exists — if missing, raise E001.
36
34
 
37
35
  ### Step 2: Detect Changes
38
36
 
@@ -72,14 +70,7 @@ Update `state.json`:
72
70
 
73
71
  Update affected `index.json` files in phase directories if task files were modified.
74
72
 
75
- Display summary:
76
- ```
77
- === SYNC COMPLETE ===
78
- Files changed: {N}
79
- Components affected: {C}
80
- Features affected: {F}
81
- Docs updated: {D}
82
- ```
73
+ Display summary: files changed, components affected, features affected, docs updated.
83
74
 
84
75
  </execution>
85
76
 
@@ -55,10 +55,7 @@ No auto mode -- UAT is inherently interactive. `--auto-fix` only automates gap c
55
55
 
56
56
  ### Step 2: Check Active Sessions
57
57
 
58
- ```bash
59
- find .workflow/scratch -name "uat.md" -type f 2>/dev/null | head -5
60
- find .workflow/phases -name "uat.md" -type f 2>/dev/null | head -5
61
- ```
58
+ Scan `.workflow/scratch` and `.workflow/phases` for existing `uat.md` files.
62
59
 
63
60
  - If active sessions exist and no target specified: display session table, ask user to resume or start new
64
61
  - If `--session ID` specified: resume that session directly (skip to Step 9)
@@ -88,21 +85,7 @@ Write `{target_dir}/uat.md` with frontmatter (status, target, started), Current
88
85
 
89
86
  ### Step 7: Present Test (Interactive Loop)
90
87
 
91
- Present one test at a time:
92
- ```
93
- ------------------------------------------------------------
94
- TEST {number}/{total}: {name}
95
- ------------------------------------------------------------
96
-
97
- Expected behavior:
98
- {expected}
99
-
100
- ------------------------------------------------------------
101
- > Type "pass" or describe what's wrong
102
- ------------------------------------------------------------
103
- ```
104
-
105
- Wait for user response (plain text).
88
+ Present one test at a time: show `TEST {number}/{total}: {name}`, expected behavior, then prompt user to type "pass" or describe what is wrong. Wait for user response (plain text).
106
89
 
107
90
  ### Step 8: Process Response
108
91
 
@@ -142,18 +125,7 @@ Read `uat.md`, find first `result: [pending]` test, announce progress, continue
142
125
 
143
126
  ### Step 11: Auto-Diagnose
144
127
 
145
- Cluster related gaps by component/area. Spawn one debug Agent per cluster:
146
-
147
- ```
148
- Agent({
149
- subagent_type: "general-purpose",
150
- description: "Diagnose UAT gap cluster: {cluster_name}",
151
- prompt: "Investigate UAT failures. Gaps: {gap list}. Find root cause, fix direction, affected files, evidence (file:line).",
152
- run_in_background: false
153
- })
154
- ```
155
-
156
- Update `uat.md` gaps with diagnosis results (root_cause, fix_direction, affected_files).
128
+ Cluster related gaps by component/area. Spawn one debug Agent per cluster to investigate UAT failures — find root cause, fix direction, affected files, evidence (file:line). Update `uat.md` gaps with diagnosis results.
157
129
 
158
130
  ### Step 12: Gap Closure Decision
159
131
 
@@ -169,20 +141,7 @@ Update issue lifecycle during gap-fix loop (registered -> planning -> executing
169
141
 
170
142
  ### Step 13: Report
171
143
 
172
- ```
173
- === UAT RESULTS ===
174
- Target: {target}
175
- Smoke Tests: {smoke_count} run, {smoke_pass} passed
176
- UAT Tests: {total} total
177
- Passed: {passed}
178
- Issues: {issues} ({blocker_count} blockers, {major_count} major)
179
- Skipped: {skipped}
180
- Diagnosis: {diagnosed_count}/{issues} gaps diagnosed
181
- Auto-fix: {fixed_count} gaps resolved
182
-
183
- Next steps:
184
- {suggested_next_command}
185
- ```
144
+ Display summary: target, smoke test results, UAT counts (passed/issues/skipped with severity breakdown), diagnosis coverage, auto-fix results, and suggested next command.
186
145
  </execution>
187
146
 
188
147
  <error_codes>
@@ -139,29 +139,21 @@ Each wave generates `wave-{N}.csv` with extra `prev_context` column (empty for w
139
139
 
140
140
  ### Session Initialization
141
141
 
142
- ```javascript
143
- const getUtc8ISOString = () => new Date(Date.now() + 8 * 60 * 60 * 1000).toISOString()
144
-
145
- // Parse flags
146
- const AUTO_YES = $ARGUMENTS.includes('--yes') || $ARGUMENTS.includes('-y')
147
- const continueMode = $ARGUMENTS.includes('--continue')
148
- const concurrencyMatch = $ARGUMENTS.match(/(?:--concurrency|-c)\s+(\d+)/)
149
- const maxConcurrency = concurrencyMatch ? parseInt(concurrencyMatch[1]) : 6
150
-
151
- // Parse test-gen-specific flags
152
- const typeMatch = $ARGUMENTS.match(/--type\s+(unit|integration|e2e)/)
153
- const frameworkMatch = $ARGUMENTS.match(/--framework\s+([\w]+)/)
154
-
155
- // Clean phase text
156
- const phaseArg = $ARGUMENTS
157
- .replace(/--yes|-y|--continue|--concurrency\s+\d+|-c\s+\d+|--type\s+\w+|--framework\s+[\w]+/g, '')
158
- .trim()
159
-
160
- const dateStr = getUtc8ISOString().substring(0, 10).replace(/-/g, '')
161
- const sessionId = `${dateStr}-testgen-P${phaseArg}-${phaseSlug}` // phaseSlug from index.json or roadmap
162
- const sessionFolder = `.workflow/.csv-wave/${sessionId}`
163
-
164
- Bash(`mkdir -p ${sessionFolder}`)
142
+ ```
143
+ Parse from $ARGUMENTS:
144
+ AUTO_YES ← --yes | -y
145
+ continueMode ← --continue
146
+ maxConcurrency --concurrency | -c N (default: 6)
147
+ typeFilter ← --type unit|integration|e2e (default: all)
148
+ framework ← --framework jest|vitest|... (default: auto-detect)
149
+ phaseArg ← remaining text after flag removal
150
+
151
+ Derive:
152
+ dateStr ← UTC+8 YYYYMMDD
153
+ sessionId ← "{dateStr}-testgen-P{phaseArg}-{phaseSlug}"
154
+ sessionFolder ← ".workflow/.csv-wave/{sessionId}"
155
+
156
+ mkdir -p {sessionFolder}
165
157
  ```
166
158
 
167
159
  ### Phase 1: Gap Analysis -> CSV
@@ -172,14 +164,9 @@ Bash(`mkdir -p ${sessionFolder}`)
172
164
 
173
165
  1. **Phase resolution**: Resolve `{phaseArg}` via artifact registry in `state.json` to `.workflow/scratch/{YYYYMMDD}-{type}-{slug}/`
174
166
 
175
- 2. **Related session discovery**: Query `state.json.artifacts[]` for all artifacts matching `phase === target_phase && milestone === current_milestone`. Each artifact's type determines its outputs: review review.json (critical findings become focused test targets), debug understanding.md (confirmed root causes become regression test targets), test uat.md (UAT gaps inform which behaviors need tests). Extract conclusions that may affect test generation priorities.
167
+ 2. **Related session discovery**: Query `state.json.artifacts[]` for matching phase+milestone. Extract relevant outputs by type: review -> review.json (focused test targets), debug -> understanding.md (regression targets), test -> uat.md (behavior gaps).
176
168
 
177
- 3. **Test infrastructure discovery**:
178
- - Find config files: `jest.config.*`, `vitest.config.*`, `pytest.ini`, `.mocharc.*`
179
- - Find existing test files: `*.test.*`, `*.spec.*`, `test_*`
180
- - Find test utilities: `test-utils.*`, `testHelper*`, `conftest.py`
181
- - Read 2-3 existing tests to learn patterns (imports, assertions, mocking)
182
- - If no framework detected: Error E003
169
+ 3. **Test infrastructure discovery**: Scan for config files (`jest.config.*`, `vitest.config.*`, `pytest.ini`, `.mocharc.*`), existing test files (`*.test.*`, `*.spec.*`, `test_*`), and test utilities. Read 2-3 existing tests to learn patterns. Error E003 if no framework detected.
183
170
 
184
171
  3. **Gap identification**:
185
172
 
@@ -219,72 +206,35 @@ Bash(`mkdir -p ${sessionFolder}`)
219
206
 
220
207
  #### Wave 1: Test Generation (Independent Parallel)
221
208
 
222
- 1. Read master `tasks.csv`
223
- 2. Filter rows where `wave == 1` AND `status == pending`
224
- 3. No prev_context needed (single wave, no predecessors)
225
- 4. Write `wave-1.csv`
226
- 5. Execute:
209
+ 1. Extract wave 1 pending rows from master `tasks.csv` into `wave-1.csv` (no prev_context needed)
210
+ 2. Execute:
227
211
 
228
212
  ```javascript
229
213
  spawn_agents_on_csv({
230
214
  csv_path: `${sessionFolder}/wave-1.csv`,
231
215
  id_column: "id",
232
216
  instruction: buildTestGenInstruction(sessionFolder),
233
- max_concurrency: maxConcurrency,
234
- max_runtime_seconds: 600,
217
+ max_concurrency: maxConcurrency, max_runtime_seconds: 600,
235
218
  output_csv_path: `${sessionFolder}/wave-1-results.csv`,
236
- output_schema: {
237
- type: "object",
238
- properties: {
239
- id: { type: "string" },
240
- status: { type: "string", enum: ["completed", "failed"] },
241
- findings: { type: "string" },
242
- tests_created: { type: "string" },
243
- coverage_delta: { type: "string" },
244
- error: { type: "string" }
245
- },
246
- required: ["id", "status", "findings"]
247
- }
219
+ output_schema: { id, status: [completed|failed], findings, tests_created, coverage_delta, error }
248
220
  })
249
221
  ```
250
222
 
251
- 6. Read `wave-1-results.csv`, merge into master `tasks.csv`
252
- 7. Delete `wave-1.csv`
253
-
254
- **Agent Instruction Template** (`buildTestGenInstruction`):
223
+ 3. Merge results into master `tasks.csv`, delete `wave-1.csv`
255
224
 
256
- Each agent receives:
257
- - Source file path and test type classification
258
- - Detected framework and existing test patterns
259
- - Gap references (requirement IDs, descriptions)
260
- - RED-GREEN methodology rules:
261
- 1. **RED**: Write test that fails if behavior is broken (not trivially passing)
262
- 2. **Verify RED**: Run test -- if passes, strengthen; if fails with expected error, good
263
- 3. **GREEN assessment**: If source satisfies, gap was missing test; if fails, record as bug discovery
264
- - Discovery board protocol for sharing test patterns and fixtures
265
- - Instruction to NOT fix source code -- failing tests are valuable bug documentation
225
+ **Agent Instruction** (`buildTestGenInstruction`): Each agent receives source file path, test type, detected framework, existing patterns, gap references, and RED-GREEN methodology (RED: write failing test -> verify it fails -> GREEN: assess if source satisfies). Agents must NOT fix source code -- failing tests document bugs. Discovery board protocol included.
266
226
 
267
227
  ### Phase 3: Results Aggregation
268
228
 
269
229
  **Objective**: Run full suite, generate final results and human-readable report.
270
230
 
271
- 1. Read final master `tasks.csv`
272
- 2. Export as `results.csv`
231
+ 1. Export final `tasks.csv` as `results.csv`
273
232
 
274
- 3. **Run full test suite** to verify no regressions:
275
- ```bash
276
- {test_run_command} 2>&1 | tail -50
277
- ```
278
- Categorize: new passing (gap filled), new failing (bug discovered), existing broken (regression).
233
+ 2. **Run full test suite**: Categorize results as new passing (gap filled), new failing (bug discovered), existing broken (regression).
279
234
 
280
- 4. **Archive previous artifacts** before writing:
281
- ```
282
- IF file exists "{artifact_dir}/.tests/test-gen-report.json":
283
- mkdir -p "{artifact_dir}/.history"
284
- mv to "{artifact_dir}/.history/test-gen-report-{TIMESTAMP}.json"
285
- ```
235
+ 3. **Archive previous artifacts**: Move existing `test-gen-report.json` to `.history/` with timestamp before overwriting.
286
236
 
287
- 5. Build `test-gen-report.json`:
237
+ 4. Build `test-gen-report.json`:
288
238
 
289
239
  ```json
290
240
  {
@@ -324,49 +274,15 @@ Each agent receives:
324
274
  }
325
275
  ```
326
276
 
327
- 6. Generate `context.md`:
328
-
329
- ```markdown
330
- # Test Generation Report -- Phase {phase}
331
-
332
- ## Summary
333
- - Framework: {framework}
334
- - Source files analyzed: {file_count}
335
- - Test type filter: {type_filter or "all"}
336
-
337
- ## Classification
338
- | Category | Files |
339
- |----------|-------|
340
- | Unit | {N} |
341
- | Integration | {N} |
342
- | E2E | {N} |
343
- | Skipped | {N} |
344
-
345
- ## Generation Results
346
- | # | Source File | Type | Tests | Status | Bugs |
347
- |---|-----------|------|-------|--------|------|
348
- | 1 | validate.ts | unit | 4 | passing | 0 |
349
- | 2 | ChatWindow.tsx | e2e | 3 | mixed | 1 |
350
-
351
- ## Test Suite Verification
352
- - New tests passing: {N} (coverage gaps filled)
353
- - New tests failing: {N} (bugs discovered)
354
- - Existing tests broken: {N} (regressions)
355
-
356
- ## Bugs Discovered
357
- {list of failing tests with descriptions -- NOT fixed, documented only}
358
-
359
- ## Next Steps
360
- {suggested_next_command}
361
- ```
277
+ 5. **Generate context.md**: Report with summary (framework, file count, type filter), classification table (unit/integration/e2e/skipped counts), generation results per file (source, type, tests, status, bugs), test suite verification (passing/failing/regression counts), discovered bugs, and next steps.
362
278
 
363
- 7. Update `validation.json` gaps: change MISSING -> COVERED for gaps that now have tests.
279
+ 6. **Update validation.json**: Change MISSING -> COVERED for gaps that now have tests.
364
280
 
365
- 8. Copy `test-gen-report.json` to phase `.tests/` directory.
281
+ 7. **Copy** `test-gen-report.json` to phase `.tests/` directory.
366
282
 
367
- 9. **Register artifact**: Append to `state.json.artifacts[]` with `type: "test"`, `id: TST-NNN`, `path: "scratch/{YYYYMMDD}-testgen-P{N}-{slug}"`, `depends_on: exec_art.id`. Output directory is independent scratch.
283
+ 8. **Register artifact**: Append to `state.json.artifacts[]` with `type: "test"`, `id: TST-NNN`, `depends_on: exec_art.id`.
368
284
 
369
- 10. Display summary.
285
+ 9. Display summary.
370
286
 
371
287
  **Next step routing**:
372
288
 
@@ -400,11 +316,7 @@ Each agent receives:
400
316
 
401
317
  #### Protocol
402
318
 
403
- 1. **Read** `{session_folder}/discoveries.ndjson` before own test generation
404
- 2. **Skip covered**: If discovery of same type + dedup key exists, skip
405
- 3. **Write immediately**: Append findings as found
406
- 4. **Append-only**: Never modify or delete
407
- 5. **Deduplicate**: Check before writing
319
+ Read `discoveries.ndjson` before test generation. Append-only: dedup by type+key before writing, never modify/delete.
408
320
 
409
321
  ```bash
410
322
  echo '{"ts":"<ISO>","worker":"{id}","type":"test_pattern","data":{"name":"api-endpoint-test","file":"src/api/__tests__/users.test.ts","framework":"vitest","description":"supertest + vitest pattern for REST endpoints"}}' >> {session_folder}/discoveries.ndjson
@@ -50,9 +50,7 @@ Extract category (first token) and content (remainder) from arguments.
50
50
 
51
51
  ### Step 2: Validate Specs Directory
52
52
 
53
- ```bash
54
- test -d .workflow/specs || exit 1 # E002: not initialized
55
- ```
53
+ Verify `.workflow/specs/` exists (E002).
56
54
 
57
55
  ### Step 3: Route to File
58
56
 
@@ -81,12 +79,7 @@ Append `<spec-entry>` closed-tag block to target file:
81
79
 
82
80
  ### Step 6: Confirm
83
81
 
84
- ```
85
- Added [{category}] to {target_file}
86
- Keywords: {kw1}, {kw2}, {kw3}
87
- Verify: /spec-load --keyword {kw1}
88
- Remove: /spec-remove <entry-id>
89
- ```
82
+ Display: category, target file, extracted keywords, and commands for verify (`/spec-load`) and remove (`/spec-remove`).
90
83
  </execution>
91
84
 
92
85
  <error_codes>
@@ -46,29 +46,19 @@ Extended types (`bug`, `pattern`, `decision`, `rule`, `validation`) are stored i
46
46
 
47
47
  ### Step 1: Validate Specs Directory
48
48
 
49
- ```bash
50
- test -d .workflow/specs || exit 1 # E001: not initialized
51
- ```
49
+ Verify `.workflow/specs/` exists (E001).
52
50
 
53
51
  ### Step 2: Parse Arguments
54
52
 
55
- Extract optional `--category` and `--keyword` flags from arguments.
53
+ Extract optional `--category` and `--keyword` flags.
56
54
 
57
55
  ### Step 3: Load via CLI
58
56
 
59
- ```bash
60
- maestro spec load [--category <cat>] [--keyword <word>]
61
- ```
62
-
63
- If CLI unavailable, read files directly and apply keyword filter.
57
+ Run `maestro spec load [--category <cat>] [--keyword <word>]`. If CLI unavailable, read files directly and apply keyword filter.
64
58
 
65
59
  ### Step 4: Display Results
66
60
 
67
- ```
68
- === SPECS: {category} {keyword ? "keyword=" + keyword : ""} ===
69
- --- {filename} ({category}) ---
70
- {matched entry content (tags stripped)}
71
- ```
61
+ Show matched entries grouped by filename and category, with `<spec-entry>` tags stripped.
72
62
  </execution>
73
63
 
74
64
  <error_codes>
@@ -98,52 +98,19 @@ id,title,description,focus_area,output_file,deps,context_from,wave,status,findin
98
98
 
99
99
  ### Session Initialization
100
100
 
101
- ```javascript
102
- const AUTO_YES = $ARGUMENTS.includes('--yes') || $ARGUMENTS.includes('-y')
103
- const focusArea = $ARGUMENTS.replace(/--yes|-y|--continue|--concurrency\s+\d+|-c\s+\d+/g, '').trim() || 'full'
104
- const dateStr = new Date(Date.now() + 8*60*60*1000).toISOString().substring(0,10).replace(/-/g,'')
105
- const sessionId = `${dateStr}-map-${focusArea.substring(0,20)}`
106
- const sessionFolder = `.workflow/.csv-wave/${sessionId}`
107
-
108
- Bash(`mkdir -p ${sessionFolder}`)
109
- Bash(`mkdir -p .workflow/codebase`)
110
- ```
101
+ Parse flags from `$ARGUMENTS` (`-y`, `-c N`, `--continue`). Extract focus area (default: "full"). Generate session ID: `{YYYYMMDD}-map-{focusArea}`. Create session folder at `.workflow/.csv-wave/{sessionId}/` and `.workflow/codebase/`.
111
102
 
112
103
  ### Phase 1: Generate tasks.csv
113
104
 
114
- Generate 4 mapper rows. If focus_area is specified, scope descriptions to that area.
105
+ Generate 4 mapper rows. If focus area specified, scope descriptions to that area.
115
106
 
116
107
  ### Phase 2: Wave Execution
117
108
 
118
- Single wave all 4 mappers run concurrently:
119
-
120
- ```javascript
121
- spawn_agents_on_csv({
122
- csv_path: `${sessionFolder}/wave-1.csv`,
123
- id_column: "id",
124
- instruction: buildMapperInstruction(sessionFolder, focusArea),
125
- max_concurrency: 4,
126
- max_runtime_seconds: 600,
127
- output_csv_path: `${sessionFolder}/wave-1-results.csv`,
128
- output_schema: {
129
- type: "object",
130
- properties: {
131
- id: { type: "string" },
132
- status: { type: "string", enum: ["completed", "failed"] },
133
- findings: { type: "string" },
134
- error: { type: "string" }
135
- },
136
- required: ["id", "status", "findings"]
137
- }
138
- })
139
- ```
109
+ Single wave -- all 4 mappers via `spawn_agents_on_csv` (max_concurrency: 4, 600s timeout). Each agent returns: id, status (completed/failed), findings, error.
140
110
 
141
111
  ### Phase 3: Write Output Files
142
112
 
143
- 1. Read each agent's findings from results
144
- 2. Write to `.workflow/codebase/{output_file}`
145
- 3. Generate context.md summary
146
- 4. Display report
113
+ Read each agent's findings, write to `.workflow/codebase/{output_file}`, generate `context.md` summary, display report.
147
114
 
148
115
  ### Shared Discovery Board Protocol
149
116
 
@@ -35,51 +35,19 @@ Extract entry ID from arguments.
35
35
 
36
36
  ### Step 2: Lookup Entry
37
37
 
38
- ```bash
39
- maestro wiki get <entry-id> --json
40
- ```
41
-
42
- - Validate entry exists (E003 if not found)
43
- - Validate entry is spec sub-node: `type` = "spec" and `parent` field set (E004 if not)
44
- - Extract: title, category, keywords, container path, body preview
38
+ Run `maestro wiki get <entry-id> --json`. Validate: entry exists (E003), is spec sub-node with `type="spec"` and `parent` set (E004). Extract title, category, keywords, container path.
45
39
 
46
40
  ### Step 3: Confirm
47
41
 
48
42
  Display entry details. Ask user to confirm unless `-y` flag present.
49
43
 
50
- ```
51
- == Spec Entry to Remove ==
52
- ID: {entry-id}
53
- Title: {title}
54
- Category: {category}
55
- Keywords: {keywords}
56
- Container: .workflow/specs/{filename}
57
-
58
- Remove this entry? [y/N]
59
- ```
60
-
61
44
  ### Step 4: Remove
62
45
 
63
- ```bash
64
- maestro wiki remove-entry <entry-id>
65
- ```
66
-
67
- WikiIndexer auto-updates `.workflow/wiki-index.json`.
46
+ Run `maestro wiki remove-entry <entry-id>`. WikiIndexer auto-updates `wiki-index.json`.
68
47
 
69
48
  ### Step 5: Verify & Report
70
49
 
71
- ```bash
72
- maestro wiki get <entry-id> # should return not-found
73
- ```
74
-
75
- ```
76
- == Entry Removed ==
77
- ID: {entry-id}
78
- From: .workflow/specs/{filename}
79
-
80
- To verify: maestro wiki list --type spec --category {category}
81
- To re-add: /spec-add {category} {content}
82
- ```
50
+ Confirm removal via `maestro wiki get <entry-id>` (should return not-found). Display removed ID, source file, and commands for verify/re-add.
83
51
  </execution>
84
52
 
85
53
  <error_codes>