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
@@ -0,0 +1,110 @@
1
+ ---
2
+ name: manage-knowhow-capture
3
+ description: Capture reusable knowledge into .workflow/knowhow/ — session compact, template, recipe, reference, decision, or tip
4
+ argument-hint: "[type] [description] [--lang lang] [--source url] [--tag tag1,tag2]"
5
+ allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
6
+ ---
7
+
8
+ <purpose>
9
+ Capture reusable knowledge into `.workflow/knowhow/`. Six content types: `session` (full session recovery), `template` (code/config pattern), `recipe` (step-by-step guide), `reference` (external doc summary), `decision` (ADR), `tip` (quick note). Auto-detects type or asks user.
10
+ </purpose>
11
+
12
+ <context>
13
+ $ARGUMENTS — type token followed by description and optional flags.
14
+
15
+ ```bash
16
+ $manage-knowhow-capture
17
+ $manage-knowhow-capture "compact"
18
+ $manage-knowhow-capture "template React form pattern --lang typescript"
19
+ $manage-knowhow-capture "tip Always check state.json before phase operations --tag workflow,state"
20
+ $manage-knowhow-capture "recipe Deploy to production --tag deploy,ops"
21
+ $manage-knowhow-capture "reference Stripe API --source https://docs.stripe.com/api"
22
+ $manage-knowhow-capture "decision Use PostgreSQL over MongoDB --status accepted"
23
+ ```
24
+
25
+ **Types**: `compact` | `template` | `recipe` | `reference` | `decision` | `tip`
26
+
27
+ **Flags**:
28
+ - `--lang <lang>` — Language for templates (typescript, python, bash, yaml, ...)
29
+ - `--source <url>` — Source URL for references
30
+ - `--tag tag1,tag2` — Categorization tags
31
+ - `--title <title>` — Explicit title
32
+ </context>
33
+
34
+ <execution>
35
+
36
+ ### Step 1: Validate
37
+
38
+ Verify `.workflow/` exists (E001). Create `.workflow/knowhow/` if missing.
39
+
40
+ ### Step 2: Detect Type
41
+
42
+ Parse first token as type. If absent or ambiguous, ask user via AskUserQuestion.
43
+
44
+ | Token | Type |
45
+ |-------|------|
46
+ | `compact`, `session`, `压缩` | session |
47
+ | `template`, `tpl`, `模板` | template |
48
+ | `recipe`, `rcp`, `配方`, `步骤` | recipe |
49
+ | `reference`, `ref`, `参考` | reference |
50
+ | `decision`, `dcs`, `决策` | decision |
51
+ | `tip`, `note`, `记录` | tip |
52
+
53
+ ### Step 3: Capture Content by Type
54
+
55
+ **session** (KNW-{YYYYMMDD}-{HHMM}.md):
56
+ Extract from conversation: objective, key decisions, modified files (absolute paths), execution plan (verbatim), pending work, notes. Sections: Session ID, Project Root, Objective, Execution Plan, Working Files, Reference Files, Last Action, Decisions, Constraints, Dependencies, Changes Made, Pending, Notes.
57
+
58
+ **template** (TPL-{YYYYMMDD}-{HHMM}.md):
59
+ Prompt for or extract: language (`--lang`), usage context, code content, parameters, dependencies. Sections: Usage, Parameters, Dependencies, Code (fenced block).
60
+
61
+ **recipe** (RCP-{YYYYMMDD}-{HHMM}.md):
62
+ Prompt for or extract: goal, prerequisites, numbered steps, expected outcome, common pitfalls, related entries. Sections: Goal, Prerequisites, Steps, Expected Outcome, Common Pitfalls, Related.
63
+
64
+ **reference** (REF-{YYYYMMDD}-{HHMM}.md):
65
+ Source from `--source` flag (offer WebFetch if URL). Extract: key points, applicable scenarios, quick examples. Sections: Source, Key Points, Applicable Scenarios, Quick Examples.
66
+
67
+ **decision** (DCS-{YYYYMMDD}-{HHMM}.md):
68
+ Prompt for or extract: context, decision, alternatives (at least 2), rationale, consequences. Sections: Context, Decision, Alternatives Considered (table), Rationale, Consequences, Related.
69
+
70
+ **tip** (TIP-{YYYYMMDD}-{HHMM}.md):
71
+ Content from remaining arguments. Auto-detect context from recent conversation files. Sections: Content, Context, Tags, Timestamp.
72
+
73
+ ### Step 4: Write File
74
+
75
+ Write to `.workflow/knowhow/{PREFIX}-{YYYYMMDD}-{HHMM}.md` with YAML frontmatter:
76
+
77
+ ```yaml
78
+ ---
79
+ title: {auto or --title}
80
+ type: {type}
81
+ category: {type}
82
+ created: {ISO timestamp}
83
+ tags: [{tags}]
84
+ ```
85
+ Plus type-specific: `lang` (template), `source` (reference), `status` (decision).
86
+
87
+ ### Step 5: Confirm
88
+
89
+ Display: type, ID, file path, and type-specific summary.
90
+ </execution>
91
+
92
+ <error_codes>
93
+ | Code | Severity | Description |
94
+ |------|----------|-------------|
95
+ | E001 | error | `.workflow/` not initialized — run `Skill({ skill: "maestro-init" })` first |
96
+ | E002 | error | Template: no code provided after prompt |
97
+ | E003 | error | Recipe: no steps provided after prompt |
98
+ | W001 | warning | No active workflow session — compact captures conversation only |
99
+ | W002 | warning | No explicit plan found — using inferred plan |
100
+ | W003 | warning | `--source` URL could not be fetched — proceeding with manual entry |
101
+ </error_codes>
102
+
103
+ <success_criteria>
104
+ - [ ] `.workflow/` existence validated; `.workflow/knowhow/` created if missing
105
+ - [ ] Type detected or prompted (all 6 types)
106
+ - [ ] Type-specific content collected (code for template, steps for recipe, etc.)
107
+ - [ ] YAML frontmatter with type-specific fields written
108
+ - [ ] Markdown file written with correct prefix and structured sections
109
+ - [ ] Confirmation displayed with ID, type, category, and file path
110
+ </success_criteria>
@@ -74,98 +74,44 @@ Validate `--category` if provided (allowed: pattern, antipattern, decision, tool
74
74
 
75
75
  ### Step 2: Bootstrap Learning Store (on first use)
76
76
 
77
- Check if `.workflow/learning/lessons.jsonl` exists. If not:
78
- ```javascript
79
- // Create directory and empty files — use Bash + Write (apply_patch cannot create empty files reliably)
80
- Bash('mkdir -p .workflow/learning && touch .workflow/learning/lessons.jsonl')
81
- Write('.workflow/learning/learning-index.json', '{"version":1,"entries":[]}\n')
82
- ```
83
-
84
- Verify `.workflow/` exists (E001 if not).
77
+ Verify `.workflow/` exists (E001 if not). If `.workflow/learning/lessons.jsonl` missing: create directory, empty `lessons.jsonl`, and initialize `learning-index.json` with `{"version":1,"entries":[]}`.
85
78
 
86
79
  ### Step 3: Execute Mode
87
80
 
88
81
  #### Capture Mode
89
82
 
90
- 1. **Infer category** from insight text (keyword heuristics, no LLM):
83
+ 1. **Infer category** from keywords (no LLM):
91
84
 
92
- | Keywords present in text | Inferred category |
93
- |--------------------------|-------------------|
85
+ | Keywords | Category |
86
+ |----------|----------|
94
87
  | always, should, prefer, best practice | pattern |
95
88
  | never, avoid, don't, pitfall, breaks | antipattern |
96
- | decided, chose, tradeoff, because, reason | decision |
97
- | tool, library, framework, package, cli | tool |
98
- | gotcha, surprising, unexpected, watch out | gotcha |
99
- | technique, approach, method, pattern for | technique |
100
-
101
- 2. **Auto-link phase**: Read `.workflow/state.json` for current phase (derived from artifact registry). Resolve matching directory slug via artifact registry in `state.json` to `.workflow/scratch/{YYYYMMDD}-{type}-{slug}/`. `--phase 0` forces null.
102
-
103
- 3. **Generate stable INS-id**: `INS-{8 lowercase hex}` from `hash(insightText + timestamp)`.
104
-
105
- 4. **Build lessons.jsonl row**:
106
- ```json
107
- {
108
- "id": "INS-a3f7b2c1",
109
- "title": "<first 80 chars of insight>",
110
- "summary": "<full insight text>",
111
- "source": "manual",
112
- "lens": null,
113
- "category": "<inferred or explicit>",
114
- "tags": ["manual", "<user tags...>"],
115
- "phase": "<N or null>",
116
- "phase_slug": "<slug or null>",
117
- "confidence": "<high|medium|low>",
118
- "routed_to": null,
119
- "routed_id": null,
120
- "created_at": "<ISO>"
121
- }
122
- ```
89
+ | decided, chose, tradeoff, because | decision |
90
+ | tool, library, framework, package | tool |
91
+ | gotcha, surprising, unexpected | gotcha |
92
+ | technique, approach, method | technique |
123
93
 
124
- 5. **Append to lessons.jsonl**:
125
- ```javascript
126
- // Append single JSON line Bash echo avoids rewriting the whole file
127
- Bash(`echo '${JSON.stringify(insightRow)}' >> .workflow/learning/lessons.jsonl`)
128
- ```
129
-
130
- 6. **Update learning-index.json**: Read, push entry, write back:
131
- ```javascript
132
- const index = JSON.parse(Read('.workflow/learning/learning-index.json'))
133
- index.entries.push({ id: insightRow.id, title: insightRow.title, category: insightRow.category, tags: insightRow.tags, phase: insightRow.phase, created_at: insightRow.created_at })
134
- Write('.workflow/learning/learning-index.json', JSON.stringify(index, null, 2) + '\n')
135
- ```
94
+ 2. **Auto-link phase** from `state.json` artifact registry. `--phase 0` forces null.
95
+ 3. **Generate INS-id**: `INS-{8 hex}` from `hash(insightText + timestamp)`.
96
+ 4. **Build row** with fields: id, title (first 80 chars), summary, source="manual", lens=null, category, tags (includes "manual"), phase, phase_slug, confidence, routed_to=null, created_at.
97
+ 5. **Append** JSON line to `lessons.jsonl` (append-only, never rewrite).
98
+ 6. **Update** `learning-index.json`: push entry with id, title, category, tags, phase, created_at.
136
99
 
137
100
  #### List Mode
138
101
 
139
- Read `learning-index.json` entries array. Apply filters (`--tag`, `--category`, `--phase`, `--lens`). Sort newest-first. Display up to `--limit` rows (default 20):
140
-
141
- ```
142
- ID Category Phase Tags Title
143
- INS-a3f7b2c1 gotcha 3 manual,zod Zod v4 breaks z.object().strict() API
144
- INS-b1c2d3e4 pattern 2 manual Always read state.json before planning
145
- ```
102
+ Read `learning-index.json`, apply filters (`--tag`, `--category`, `--phase`, `--lens`), sort newest-first, display up to `--limit` rows (default 20) as table.
146
103
 
147
104
  #### Search Mode
148
105
 
149
- Grep across `lessons.jsonl` for the query string. Rank by field match weight: title (3) > tags (2) > summary (1). Display top matches with ID, category, phase, title.
106
+ Grep `lessons.jsonl` for query. Rank by field weight: title (3) > tags (2) > summary (1). Display top matches.
150
107
 
151
108
  #### Show Mode
152
109
 
153
- Validate INS-id format `INS-[0-9a-f]{8}`. Find row in `lessons.jsonl` where `id` matches. Display full record with all fields. If `routed_to` is set, display the linked artifact path.
110
+ Validate `INS-[0-9a-f]{8}` format. Find matching row, display full record. Show linked artifact if `routed_to` is set.
154
111
 
155
112
  ### Step 4: Display Confirmation
156
113
 
157
- Capture mode:
158
- ```
159
- === INSIGHT CAPTURED ===
160
- ID: INS-a3f7b2c1
161
- Category: gotcha
162
- Phase: 3 (phase-03-api-layer)
163
- Confidence: medium
164
- Tags: manual, zod, typescript
165
-
166
- Next: $manage-learn "list" or $manage-learn "search zod"
167
- Wiki: maestro wiki list --type lesson (lessons auto-indexed in wiki graph)
168
- ```
114
+ Capture mode: display ID, category, phase, confidence, tags, and next-step commands (`$manage-learn "list"`, `$manage-learn "search ..."`).
169
115
  </execution>
170
116
 
171
117
  <error_codes>
@@ -28,19 +28,11 @@ Reads from:
28
28
 
29
29
  ### Step 1: Validate Project
30
30
 
31
- ```bash
32
- # Verify .workflow/ exists
33
- test -d .workflow || exit 1 # E001: not initialized
34
- test -f .workflow/state.json || exit 1 # E002: state missing
35
- ```
31
+ Verify `.workflow/` exists (E001) and `state.json` is present (E002).
36
32
 
37
33
  ### Step 2: Load State Files
38
34
 
39
- Read all state sources:
40
- - `.workflow/state.json` -- project-level state machine
41
- - `.workflow/roadmap.md` -- milestone and phase structure
42
- - `.workflow/scratch/*/index.json` -- per-phase metadata and progress (resolved via state.json artifact registry)
43
- - `.workflow/scratch/*/.task/TASK-*.json` -- individual task statuses (resolved via state.json artifact registry)
35
+ Read: `state.json`, `roadmap.md`, per-phase `scratch/*/index.json`, task files `scratch/*/.task/TASK-*.json` (all resolved via artifact registry).
44
36
 
45
37
  ### Step 3: Calculate Progress
46
38
 
@@ -51,30 +43,7 @@ For each phase directory found:
51
43
 
52
44
  ### Step 4: Render Dashboard
53
45
 
54
- Display formatted output:
55
-
56
- ```
57
- === PROJECT DASHBOARD ===
58
- Project: {name} | Status: {state}
59
-
60
- --- Milestones & Phases ---
61
- {For each milestone}
62
- M{N}: {title}
63
- {For each phase}
64
- Phase {N}: {title} [{status}] {progress_bar} {completed}/{total} ({pct}%)
65
-
66
- --- Active Work ---
67
- Phase {N}: {title}
68
- In-progress: {list}
69
- Blocked: {list}
70
-
71
- --- Knowledge Graph ---
72
- Wiki entries: {total} (spec: {N}, memory: {N}, note: {N}, lesson: {N}, issue: {N})
73
- Health: {score}/100 | Orphans: {N}
74
-
75
- --- Next Steps ---
76
- Based on current state: {suggestion with Skill() reference}
77
- ```
46
+ Display sections: **Milestones & Phases** (per-phase status, progress bars, completion %), **Active Work** (in-progress and blocked tasks), **Knowledge Graph** (wiki entry counts by type, health score, orphans), **Next Steps** (state-based suggestion).
78
47
 
79
48
  ### Step 5: Suggest Next Steps
80
49
 
@@ -87,7 +56,7 @@ Use this decision table to suggest the next action:
87
56
  | Phase executed, not verified | `Skill({ skill: "maestro-verify", args: "<N>" })` |
88
57
  | Phase verified with gaps | `Skill({ skill: "maestro-plan", args: "<N> --gaps" })` |
89
58
  | Phase reviewed PASS/WARN | `Skill({ skill: "quality-test", args: "<N>" })` |
90
- | UAT passed | `Skill({ skill: "maestro-phase-transition" })` |
59
+ | UAT passed | `Skill({ skill: "maestro-milestone-audit" })` |
91
60
  | All milestone phases done | `Skill({ skill: "maestro-milestone-audit" })` |
92
61
  </execution>
93
62
 
@@ -27,7 +27,7 @@ $ARGUMENTS — subcommand and optional flags.
27
27
  | `stats` | Graph statistics — type distribution, tag frequency, growth |
28
28
 
29
29
  **Flags:**
30
- - `--type <type>` — Filter: spec, memory, note, lesson, issue
30
+ - `--type <type>` — Filter: spec, knowhow, note, lesson, issue
31
31
  - `--fix` — Auto-fix issues during cleanup
32
32
  - `--json` — JSON output
33
33
  </context>
@@ -162,19 +162,7 @@ Record results in `.tests/business/test-results-iter-{N}.json`.
162
162
 
163
163
  ### Step 7: Build Traceability Matrix
164
164
 
165
- Map each result to `REQ-NNN:AC-N`:
166
-
167
- ```
168
- FOR each REQ:
169
- FOR each AC:
170
- ac_status = "passed" if ALL scenarios passed
171
- "failed" if ANY failed
172
- "blocked" if ANY blocked (none failed)
173
- "untested" if no scenarios mapped
174
- verdict = "verified" if all MUST+SHOULD passed
175
- "partial" if some failed
176
- "unverified" if all failed/untested
177
- ```
165
+ Map each result to `REQ-NNN:AC-N`. Per AC: `passed` (all scenarios pass), `failed` (any fail), `blocked` (any blocked, none failed), `untested` (no scenarios). Per REQ verdict: `verified` (all MUST+SHOULD AC passed), `partial` (some failed), `unverified` (all failed/untested).
178
166
 
179
167
  ### Step 8: Generate Reports
180
168
 
@@ -196,7 +184,7 @@ FOR each REQ:
196
184
 
197
185
  | Result | Suggestion |
198
186
  |--------|------------|
199
- | All requirements verified | Skill({ skill: "maestro-phase-transition", args: "{phase}" }) |
187
+ | All requirements verified | Skill({ skill: "maestro-milestone-audit" }) |
200
188
  | Failures found | Skill({ skill: "quality-debug", args: "--from-business-test {phase}" }) |
201
189
  | `--re-run` all pass | Skill({ skill: "maestro-verify", args: "{phase}" }) |
202
190
  | Low coverage (< 60%) | Skill({ skill: "quality-test-gen", args: "{phase}" }) |
@@ -139,30 +139,22 @@ Each wave generates `wave-{N}.csv` with extra `prev_context` column.
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]) : 5
150
-
151
- // Parse debug-specific flags
152
- const fromUatMatch = $ARGUMENTS.match(/--from-uat\s+(\S+)/)
153
- const parallelMode = $ARGUMENTS.includes('--parallel')
154
-
155
- // Clean bug description
156
- const bugDescription = $ARGUMENTS
157
- .replace(/--yes|-y|--continue|--concurrency\s+\d+|-c\s+\d+|--from-uat\s+\S+|--parallel/g, '')
158
- .trim()
159
-
160
- const slug = bugDescription.toLowerCase().replace(/[^a-z0-9]+/g, '-').substring(0, 40)
161
- const dateStr = getUtc8ISOString().substring(0, 10).replace(/-/g, '')
162
- const sessionId = fromUatMatch ? `${dateStr}-debug-P${fromUatMatch[1]}-${slug}` : `${dateStr}-debug-${slug}`
163
- const sessionFolder = `.workflow/.csv-wave/${sessionId}`
164
-
165
- Bash(`mkdir -p ${sessionFolder}`)
142
+ ```
143
+ Parse from $ARGUMENTS:
144
+ AUTO_YES ← --yes | -y
145
+ continueMode ← --continue
146
+ maxConcurrency --concurrency | -c N (default: 5)
147
+ fromUat ← --from-uat <phase> (default: null)
148
+ parallelMode ← --parallel
149
+ bugDescription remaining text after flag removal
150
+
151
+ Derive:
152
+ slug ← bugDescription kebab-cased, max 40 chars
153
+ dateStr ← UTC+8 YYYYMMDD
154
+ sessionId ← fromUat ? "{dateStr}-debug-P{fromUat}-{slug}" : "{dateStr}-debug-{slug}"
155
+ sessionFolder ← ".workflow/.csv-wave/{sessionId}"
156
+
157
+ mkdir -p {sessionFolder}
166
158
  ```
167
159
 
168
160
  ### Phase 1: Input Resolution -> CSV
@@ -179,7 +171,7 @@ Bash(`mkdir -p ${sessionFolder}`)
179
171
  | `--parallel` flag present | parallel (implies from-uat, one agent per gap cluster) |
180
172
  | Neither flag | standalone (gather symptoms interactively) |
181
173
 
182
- 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 (findings guide hypothesis formation), debug understanding.md (avoid re-investigation), test uat.md. Extract conclusions that may affect this debug session.
174
+ 2. **Related session discovery**: Query `state.json.artifacts[]` for matching phase+milestone. Extract relevant outputs by type: execute -> .summaries/.task/, review -> review.json (guide hypotheses), debug -> understanding.md (avoid re-investigation), test -> uat.md.
183
175
 
184
176
  3. **Symptom collection**:
185
177
 
@@ -189,15 +181,9 @@ Bash(`mkdir -p ${sessionFolder}`)
189
181
  | from-uat | test artifact's uat.md (via registry) | Parse Gaps section, cluster by component |
190
182
  | parallel | test artifact's uat.md (via registry) | Same as from-uat, one investigation per cluster |
191
183
 
192
- 3. **Hypothesis generation**: For each symptom cluster or bug description:
193
- - Analyze code patterns around affected area
194
- - Generate 3-5 ranked hypotheses
195
- - Each hypothesis becomes a wave 1 CSV row
184
+ 3. **Hypothesis generation**: Per symptom cluster, analyze affected code and generate 3-5 ranked hypotheses (each becomes a wave 1 row).
196
185
 
197
- 4. **Fix task generation**: For each hypothesis, pre-generate a wave 2 fix row:
198
- - `deps` points to the hypothesis ID
199
- - `context_from` points to the hypothesis ID
200
- - Wave 2 tasks only execute if their hypothesis is confirmed
186
+ 4. **Fix task generation**: Pre-generate wave 2 fix row per hypothesis (`deps`/`context_from` -> hypothesis ID). Only executes if hypothesis confirmed.
201
187
 
202
188
  5. **CSV generation**: Hypothesis rows (wave 1) + fix rows (wave 2).
203
189
 
@@ -211,134 +197,60 @@ Bash(`mkdir -p ${sessionFolder}`)
211
197
 
212
198
  #### Wave 1: Hypothesis Investigation (Parallel)
213
199
 
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:
200
+ 1. Extract wave 1 pending rows from master `tasks.csv` into `wave-1.csv` (no prev_context needed)
201
+ 2. Execute:
219
202
 
220
203
  ```javascript
221
204
  spawn_agents_on_csv({
222
205
  csv_path: `${sessionFolder}/wave-1.csv`,
223
206
  id_column: "id",
224
207
  instruction: buildInvestigationInstruction(sessionFolder),
225
- max_concurrency: maxConcurrency,
226
- max_runtime_seconds: 600,
208
+ max_concurrency: maxConcurrency, max_runtime_seconds: 600,
227
209
  output_csv_path: `${sessionFolder}/wave-1-results.csv`,
228
- output_schema: {
229
- type: "object",
230
- properties: {
231
- id: { type: "string" },
232
- status: { type: "string", enum: ["confirmed", "refuted", "inconclusive", "failed"] },
233
- findings: { type: "string" },
234
- evidence_for: { type: "string" },
235
- evidence_against: { type: "string" },
236
- error: { type: "string" }
237
- },
238
- required: ["id", "status", "findings"]
239
- }
210
+ output_schema: { id, status: [confirmed|refuted|inconclusive|failed], findings, evidence_for, evidence_against, error }
240
211
  })
241
212
  ```
242
213
 
243
- 6. Read `wave-1-results.csv`, merge into master `tasks.csv`
244
- 7. Delete `wave-1.csv`
245
- 8. **Filter for wave 2**: Mark wave 2 fix tasks as `skipped` if their hypothesis was `refuted` or `inconclusive`
214
+ 3. Merge results into master `tasks.csv`, delete `wave-1.csv`
215
+ 4. **Filter for wave 2**: Mark fix tasks as `skipped` if their hypothesis was `refuted` or `inconclusive`
246
216
 
247
217
  #### Wave 2: Fix Attempts (Parallel, Confirmed Only)
248
218
 
249
- 1. Read master `tasks.csv`
250
- 2. Filter rows where `wave == 2` AND `status == pending` (not skipped)
251
- 3. If no confirmed hypotheses, skip wave 2 entirely
252
- 4. Build `prev_context` from wave 1 findings:
253
- ```
254
- [H1: Null pointer in login handler] CONFIRMED: User object null when DB returns empty...
255
- [H3: Stale session token] CONFIRMED: Refresh logic only handles 403, not 401...
256
- ```
257
- 5. Write `wave-2.csv` with `prev_context` column
258
- 6. Execute:
219
+ 1. If no confirmed hypotheses remain, skip wave 2 entirely
220
+ 2. Extract wave 2 pending rows, build `prev_context` from confirmed wave 1 findings
221
+ 3. Write `wave-2.csv`, then execute:
259
222
 
260
223
  ```javascript
261
224
  spawn_agents_on_csv({
262
225
  csv_path: `${sessionFolder}/wave-2.csv`,
263
226
  id_column: "id",
264
227
  instruction: buildFixInstruction(sessionFolder),
265
- max_concurrency: maxConcurrency,
266
- max_runtime_seconds: 900,
228
+ max_concurrency: maxConcurrency, max_runtime_seconds: 900,
267
229
  output_csv_path: `${sessionFolder}/wave-2-results.csv`,
268
- output_schema: {
269
- type: "object",
270
- properties: {
271
- id: { type: "string" },
272
- status: { type: "string", enum: ["fixed", "fix_failed", "failed"] },
273
- findings: { type: "string" },
274
- fix_applied: { type: "string" },
275
- verified: { type: "string" },
276
- error: { type: "string" }
277
- },
278
- required: ["id", "status", "findings"]
279
- }
230
+ output_schema: { id, status: [fixed|fix_failed|failed], findings, fix_applied, verified, error }
280
231
  })
281
232
  ```
282
233
 
283
- 7. Merge results into master `tasks.csv`
284
- 8. Delete `wave-2.csv`
234
+ 4. Merge results into master `tasks.csv`, delete `wave-2.csv`
285
235
 
286
236
  ### Phase 3: Results Aggregation
287
237
 
288
238
  **Objective**: Generate final results and human-readable report.
289
239
 
290
- 1. Read final master `tasks.csv`
291
- 2. Export as `results.csv`
292
- 3. Generate `context.md`:
293
-
294
- ```markdown
295
- # Debug Report -- {bug_description}
240
+ 1. Export final `tasks.csv` as `results.csv`
296
241
 
297
- ## Summary
298
- - Mode: {standalone | from-uat | parallel}
299
- - Hypotheses: {total} investigated
300
- - Confirmed: {confirmed_count}
301
- - Fixes applied: {fixed_count}
302
- - Fixes verified: {verified_count}
303
-
304
- ## Hypothesis Results
305
-
306
- ### H{N}: {title} [{status}]
307
- **Hypothesis**: {hypothesis}
308
- **Evidence For**: {evidence_for}
309
- **Evidence Against**: {evidence_against}
310
- **Findings**: {findings}
311
-
312
- ## Fix Results
313
-
314
- ### FIX-H{N}: {title} [{status}]
315
- **Fix Applied**: {fix_applied}
316
- **Verified**: {verified}
317
- **Findings**: {findings}
318
-
319
- ## Root Causes
320
- {aggregated confirmed hypotheses with evidence}
321
-
322
- ## Next Steps
323
- {suggested actions based on results}
324
- ```
242
+ 2. **Generate context.md**: Debug report with summary (mode, hypothesis/confirmed/fixed/verified counts), per-hypothesis results (hypothesis, evidence for/against, findings, status), per-fix results (fix applied, verified, findings), aggregated root causes, and next steps.
325
243
 
326
- 4. **UAT update** (if --from-uat): For each confirmed hypothesis with fix:
327
- - Update `{artifact_dir}/uat.md` gaps with `root_cause`, `fix_direction`, `affected_files`
244
+ 3. **UAT update** (if --from-uat): Update `uat.md` gaps with `root_cause`, `fix_direction`, `affected_files` for confirmed hypotheses.
328
245
 
329
- 5. **Issue update**: If `.workflow/issues/issues.jsonl` exists:
330
- - Update matching issues with status `diagnosed`, add `context.suggested_fix` and `context.notes`
246
+ 4. **Issue update**: If `issues.jsonl` exists, update matching issues with status `diagnosed`, add `context.suggested_fix` and `context.notes`.
331
247
 
332
- 6. **Register artifact** (phase-scoped only): Append to `state.json.artifacts[]` with `type: "debug"`, `id: DBG-NNN`, `path: "scratch/{YYYYMMDD}-debug-P{N}-{slug}"`, `depends_on: triggering_review_id || exec_art.id`. Output directory is independent scratch.
248
+ 5. **Register artifact** (phase-scoped only): Append to `state.json.artifacts[]` with `type: "debug"`, `id: DBG-NNN`, `depends_on: triggering_review_id || exec_art.id`.
333
249
 
334
- 7. **Post-debug Knowledge Inquiry** (after root causes confirmed):
335
- - **Recurring pattern**: If root cause matches a recurring pattern (similar to prior debug sessions):
336
- Ask: "This root cause pattern has appeared before. Should it be documented in `debug-notes.md` to prevent recurrence? (`/spec-add debug`)"
337
- - **Non-obvious fix**: If fix involved a non-obvious approach or workaround:
338
- → Ask: "This fix used a non-obvious strategy. Should it be recorded as a learning? (`/spec-add learning`)"
339
- - **Architectural gap**: If root cause traces to architectural boundary violation or missing constraint:
340
- → Ask: "Root cause points to an architectural gap. Should `architecture-constraints.md` be updated? (`/spec-add arch`)"
341
- - If user confirms, append `<spec-entry>` to matching category file via `spec-add` mechanism
250
+ 6. **Post-debug Knowledge Inquiry**: Prompt user to capture knowledge when:
251
+ - Recurring root cause pattern detected -> `/spec-add debug`
252
+ - Non-obvious fix strategy used -> `/spec-add learning`
253
+ - Architectural gap identified -> `/spec-add arch`
342
254
 
343
255
  8. **Next step routing**:
344
256
 
@@ -375,11 +287,7 @@ spawn_agents_on_csv({
375
287
 
376
288
  #### Protocol
377
289
 
378
- 1. **Read** `{session_folder}/discoveries.ndjson` before own investigation
379
- 2. **Skip covered**: If discovery of same type + dedup key exists, skip
380
- 3. **Write immediately**: Append findings as found
381
- 4. **Append-only**: Never modify or delete
382
- 5. **Deduplicate**: Check before writing
290
+ Read `discoveries.ndjson` before investigation. Append-only: dedup by type+key before writing, never modify/delete.
383
291
 
384
292
  ```bash
385
293
  echo '{"ts":"<ISO>","worker":"{id}","type":"root_cause","data":{"location":"src/auth/login.ts:42","cause":"null_dereference","severity":"high","confidence":"confirmed"}}' >> {session_folder}/discoveries.ndjson