maestro-flow 0.3.14 → 0.3.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (392) hide show
  1. package/.claude/commands/maestro-amend.md +300 -0
  2. package/.claude/commands/maestro-analyze.md +1 -49
  3. package/.claude/commands/maestro-composer.md +354 -0
  4. package/.claude/commands/maestro-execute.md +2 -56
  5. package/.claude/commands/maestro-fork.md +3 -50
  6. package/.claude/commands/maestro-merge.md +2 -26
  7. package/.claude/commands/maestro-milestone-audit.md +1 -5
  8. package/.claude/commands/maestro-milestone-complete.md +1 -7
  9. package/.claude/commands/maestro-plan.md +6 -127
  10. package/.claude/commands/maestro-player.md +404 -0
  11. package/.claude/commands/maestro-roadmap.md +3 -101
  12. package/.claude/commands/maestro-spec-generate.md +1 -25
  13. package/.claude/commands/maestro-ui-design.md +14 -73
  14. package/.claude/commands/maestro-verify.md +1 -32
  15. package/.claude/commands/maestro.md +13 -30
  16. package/.claude/commands/manage-harvest.md +7 -44
  17. package/.claude/commands/manage-knowhow-capture.md +193 -0
  18. package/.claude/commands/{manage-memory.md → manage-knowhow.md} +77 -88
  19. package/.claude/commands/manage-learn.md +3 -28
  20. package/.claude/commands/manage-status.md +1 -20
  21. package/.claude/commands/manage-wiki.md +1 -1
  22. package/.claude/commands/quality-business-test.md +1 -1
  23. package/.claude/commands/quality-debug.md +3 -18
  24. package/.claude/commands/quality-integration-test.md +3 -23
  25. package/.claude/commands/quality-retrospective.md +1 -28
  26. package/.claude/commands/quality-review.md +3 -52
  27. package/.claude/commands/quality-test-gen.md +1 -10
  28. package/.claude/commands/quality-test.md +3 -25
  29. package/.claude/commands/spec-add.md +1 -21
  30. package/.claude/commands/spec-load.md +1 -16
  31. package/.claude/commands/wiki-connect.md +2 -112
  32. package/.claude/commands/wiki-digest.md +2 -141
  33. package/.claude/skills/skill-iter-tune/SKILL.md +382 -0
  34. package/.claude/skills/skill-iter-tune/phases/01-setup.md +144 -0
  35. package/.claude/skills/skill-iter-tune/phases/02-execute.md +292 -0
  36. package/.claude/skills/skill-iter-tune/phases/03-evaluate.md +312 -0
  37. package/.claude/skills/skill-iter-tune/phases/04-improve.md +186 -0
  38. package/.claude/skills/skill-iter-tune/phases/05-report.md +166 -0
  39. package/.claude/skills/skill-iter-tune/specs/evaluation-criteria.md +63 -0
  40. package/.claude/skills/skill-iter-tune/templates/eval-prompt.md +134 -0
  41. package/.claude/skills/skill-iter-tune/templates/execute-prompt.md +97 -0
  42. package/.claude/skills/workflow-skill-designer/SKILL.md +496 -0
  43. package/.claude/skills/workflow-skill-designer/phases/01-requirements-analysis.md +356 -0
  44. package/.claude/skills/workflow-skill-designer/phases/02-orchestrator-design.md +444 -0
  45. package/.claude/skills/workflow-skill-designer/phases/03-phase-design.md +458 -0
  46. package/.claude/skills/workflow-skill-designer/phases/04-validation.md +471 -0
  47. package/.codex/skills/learn-decompose/SKILL.md +2 -8
  48. package/.codex/skills/maestro/SKILL.md +60 -146
  49. package/.codex/skills/maestro-analyze/SKILL.md +52 -150
  50. package/.codex/skills/maestro-brainstorm/SKILL.md +36 -91
  51. package/.codex/skills/maestro-composer/SKILL.md +213 -0
  52. package/.codex/skills/maestro-execute/SKILL.md +46 -177
  53. package/.codex/skills/maestro-init/SKILL.md +7 -51
  54. package/.codex/skills/maestro-link-coordinate/SKILL.md +56 -229
  55. package/.codex/skills/maestro-milestone-audit/SKILL.md +7 -36
  56. package/.codex/skills/maestro-milestone-complete/SKILL.md +11 -93
  57. package/.codex/skills/maestro-overlay/SKILL.md +23 -92
  58. package/.codex/skills/maestro-plan/SKILL.md +42 -166
  59. package/.codex/skills/maestro-player/SKILL.md +323 -0
  60. package/.codex/skills/maestro-quick/SKILL.md +5 -48
  61. package/.codex/skills/maestro-roadmap/SKILL.md +21 -66
  62. package/.codex/skills/maestro-spec-generate/SKILL.md +20 -56
  63. package/.codex/skills/maestro-ui-design/SKILL.md +6 -53
  64. package/.codex/skills/maestro-verify/SKILL.md +39 -136
  65. package/.codex/skills/manage-codebase-rebuild/SKILL.md +25 -75
  66. package/.codex/skills/manage-codebase-refresh/SKILL.md +5 -32
  67. package/.codex/skills/manage-issue/SKILL.md +1 -6
  68. package/.codex/skills/manage-issue-discover/SKILL.md +33 -93
  69. package/.codex/skills/{manage-memory → manage-knowhow}/SKILL.md +95 -95
  70. package/.codex/skills/manage-knowhow-capture/SKILL.md +110 -0
  71. package/.codex/skills/manage-learn/SKILL.md +17 -71
  72. package/.codex/skills/manage-status/SKILL.md +4 -35
  73. package/.codex/skills/manage-wiki/SKILL.md +1 -1
  74. package/.codex/skills/quality-business-test/SKILL.md +2 -14
  75. package/.codex/skills/quality-debug/SKILL.md +41 -133
  76. package/.codex/skills/quality-integration-test/SKILL.md +36 -145
  77. package/.codex/skills/quality-refactor/SKILL.md +6 -59
  78. package/.codex/skills/quality-retrospective/SKILL.md +292 -531
  79. package/.codex/skills/quality-review/SKILL.md +30 -65
  80. package/.codex/skills/quality-sync/SKILL.md +2 -11
  81. package/.codex/skills/quality-test/SKILL.md +4 -45
  82. package/.codex/skills/quality-test-gen/SKILL.md +33 -121
  83. package/.codex/skills/spec-add/SKILL.md +2 -9
  84. package/.codex/skills/spec-load/SKILL.md +4 -14
  85. package/.codex/skills/spec-map/SKILL.md +4 -37
  86. package/.codex/skills/spec-remove/SKILL.md +3 -35
  87. package/.codex/skills/spec-setup/SKILL.md +2 -19
  88. package/.codex/skills/team-coordinate/SKILL.md +20 -132
  89. package/.codex/skills/team-coordinate/roles/coordinator/commands/monitor.md +61 -215
  90. package/.codex/skills/team-executor/SKILL.md +7 -66
  91. package/.codex/skills/team-executor/roles/executor/commands/monitor.md +60 -182
  92. package/.codex/skills/team-executor/specs/session-schema.md +22 -56
  93. package/.codex/skills/team-lifecycle-v4/SKILL.md +22 -143
  94. package/.codex/skills/team-lifecycle-v4/roles/coordinator/commands/monitor.md +31 -223
  95. package/.codex/skills/team-quality-assurance/SKILL.md +14 -88
  96. package/.codex/skills/team-quality-assurance/roles/coordinator/commands/monitor.md +46 -186
  97. package/.codex/skills/team-review/SKILL.md +12 -86
  98. package/.codex/skills/team-review/roles/coordinator/commands/monitor.md +49 -187
  99. package/.codex/skills/team-tech-debt/SKILL.md +11 -50
  100. package/.codex/skills/team-tech-debt/roles/coordinator/commands/monitor.md +50 -239
  101. package/.codex/skills/team-testing/SKILL.md +14 -99
  102. package/.codex/skills/team-testing/roles/coordinator/commands/monitor.md +52 -228
  103. package/.codex/skills/wiki-connect/SKILL.md +2 -5
  104. package/README.md +6 -0
  105. package/README.zh-CN.md +6 -0
  106. package/chains/_intent-map.json +7 -7
  107. package/chains/singles/{memory-capture.json → knowhow-capture.json} +5 -5
  108. package/chains/singles/{memory.json → knowhow.json} +6 -6
  109. package/dashboard/dist/assets/{ArtifactsPage-CUrrDGgN.js → ArtifactsPage-iJZtYsmR.js} +6 -6
  110. package/dashboard/dist/assets/ChatInput-DNnDLdQF.js +6 -0
  111. package/dashboard/dist/assets/ChatPage-BjBibfE4.js +22 -0
  112. package/dashboard/dist/assets/{CollabPage-DIUXeazv.js → CollabPage-8lUMUol_.js} +1 -1
  113. package/dashboard/dist/assets/{ExecutionPanel-VmYeADFj.js → ExecutionPanel-BKV3GZ7Q.js} +1 -1
  114. package/dashboard/dist/assets/{KanbanPage-DLq8v7hg.js → KanbanPage-diY3QmGd.js} +2 -2
  115. package/dashboard/dist/assets/{MarkdownRenderer-D7AehrnR.js → MarkdownRenderer-cYFfe1uX.js} +1 -1
  116. package/dashboard/dist/assets/McpPage-COjuIf7U.js +21 -0
  117. package/dashboard/dist/assets/MeetingRoomPage-wnvT7wlB.js +85 -0
  118. package/dashboard/dist/assets/{OutputPanel-B-Rjwgmv.js → OutputPanel-DDL90Idy.js} +1 -1
  119. package/dashboard/dist/assets/{ProblemsPanel-GEpF-oi4.js → ProblemsPanel-zFN9IIs0.js} +1 -1
  120. package/dashboard/dist/assets/{RequirementBoardPage-xs8uDM7I.js → RequirementBoardPage-DOPJoT0I.js} +2 -2
  121. package/dashboard/dist/assets/{RequirementPage-BKDSFwjA.js → RequirementPage-CEVquRgM.js} +1 -1
  122. package/dashboard/dist/assets/RoomsPage-D5USEWDh.js +1 -0
  123. package/dashboard/dist/assets/{SpecsPage-DLFb9ZH0.js → SpecsPage-BOwBin_o.js} +1 -1
  124. package/dashboard/dist/assets/{SupervisorPage-SOki_kgz.js → SupervisorPage-5iRyMU5T.js} +1 -1
  125. package/dashboard/dist/assets/TeamsPage-DlcEmr_Q.js +1 -0
  126. package/dashboard/dist/assets/{TreeBrowser-B9DHdULE.js → TreeBrowser-Y48Wz-QY.js} +1 -1
  127. package/dashboard/dist/assets/WorkflowPage-CmQaRVgL.js +6 -0
  128. package/dashboard/dist/assets/arrow-left-NCUOENvg.js +6 -0
  129. package/dashboard/dist/assets/{check-DJDk3A2a.js → check-o7nfGNHf.js} +1 -1
  130. package/dashboard/dist/assets/{chevron-right-C7bVDreZ.js → chevron-right-BXySK2fn.js} +1 -1
  131. package/dashboard/dist/assets/{circle-alert-Na1vf6qQ.js → circle-alert-DcSBokh4.js} +1 -1
  132. package/dashboard/dist/assets/{circle-check-CEGgy3NV.js → circle-check-Cd-jce4j.js} +1 -1
  133. package/dashboard/dist/assets/{circle-check-big-3JB8zRYj.js → circle-check-big-BN7Mdp4i.js} +1 -1
  134. package/dashboard/dist/assets/{circle-Qfgy4LB_.js → circle-cooAwnAR.js} +1 -1
  135. package/dashboard/dist/assets/{code-Ble63Idz.js → code-BQa9oL1n.js} +1 -1
  136. package/dashboard/dist/assets/{columns-3-BUcKlxve.js → columns-3-BzgxelGx.js} +1 -1
  137. package/dashboard/dist/assets/{download-CMqkfn8x.js → download-swRJnate.js} +1 -1
  138. package/dashboard/dist/assets/en-C_BD3UCD.js +1 -0
  139. package/dashboard/dist/assets/{folder-B9ewx9LL.js → folder-DbGbLNFN.js} +1 -1
  140. package/dashboard/dist/assets/index-BEUaOz_b.css +1 -0
  141. package/dashboard/dist/assets/{index-JTmGteaT.js → index-DIoMBMbv.js} +1 -1
  142. package/dashboard/dist/assets/index-DLBN_7fb.js +44 -0
  143. package/dashboard/dist/assets/index-uIqUCT8y.js +236 -0
  144. package/dashboard/dist/assets/{list-DI8Wn2aT.js → list-BTRAIvDq.js} +1 -1
  145. package/dashboard/dist/assets/loader-NHtB6Mdn.js +6 -0
  146. package/dashboard/dist/assets/{minus-Lp_BfctG.js → minus-BjMxRTET.js} +1 -1
  147. package/dashboard/dist/assets/{pen-line-Ch7sphzZ.js → pen-line-C4_O16H0.js} +1 -1
  148. package/dashboard/dist/assets/{pencil-_yRMHmGT.js → pencil-DTmKhyDY.js} +1 -1
  149. package/dashboard/dist/assets/{proxy-D72Y8a4Y.js → proxy-Dtx5p6IO.js} +1 -1
  150. package/dashboard/dist/assets/rows-2-GR1dZtRu.js +6 -0
  151. package/dashboard/dist/assets/{search-BS6fI6Bg.js → search-DVtgy2W7.js} +1 -1
  152. package/dashboard/dist/assets/{shallow-BXasQBvr.js → shallow-BOmvDNsv.js} +1 -1
  153. package/dashboard/dist/assets/{table-CeGlFjlP.js → table-DCzuJAFh.js} +1 -1
  154. package/dashboard/dist/assets/team-types-BPeOvVdA.js +6 -0
  155. package/dashboard/dist/assets/{terminal-BJic2yW-.js → terminal-CzogW4cl.js} +1 -1
  156. package/dashboard/dist/assets/{trash-2-Czz4X8Fb.js → trash-2-52LATVfW.js} +1 -1
  157. package/dashboard/dist/assets/users-DLFE2voE.js +6 -0
  158. package/dashboard/dist/assets/{zap-C3H0jVFA.js → zap-DhiYlgyZ.js} +1 -1
  159. package/dashboard/dist/assets/zh-CN-DvQKfow3.js +1 -0
  160. package/dashboard/dist/index.html +2 -2
  161. package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.d.ts +2 -0
  162. package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js +19 -11
  163. package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js.map +1 -1
  164. package/dashboard/dist-server/dashboard/src/server/agents/agent-sdk-adapter.js +5 -0
  165. package/dashboard/dist-server/dashboard/src/server/agents/agent-sdk-adapter.js.map +1 -1
  166. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.d.ts +1 -0
  167. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js +21 -4
  168. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js.map +1 -1
  169. package/dashboard/dist-server/dashboard/src/server/agents/env-cleanup.js +8 -0
  170. package/dashboard/dist-server/dashboard/src/server/agents/env-cleanup.js.map +1 -1
  171. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js +6 -6
  172. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js.map +1 -1
  173. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.test.js +2 -2
  174. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.test.js.map +1 -1
  175. package/dashboard/dist-server/dashboard/src/server/index.js +14 -3
  176. package/dashboard/dist-server/dashboard/src/server/index.js.map +1 -1
  177. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.d.ts +24 -0
  178. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.js +220 -0
  179. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.js.map +1 -0
  180. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.test.d.ts +1 -0
  181. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.test.js +115 -0
  182. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/mcp-config-builder.test.js.map +1 -0
  183. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.d.ts +44 -0
  184. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.js +260 -0
  185. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.js.map +1 -0
  186. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.test.d.ts +1 -0
  187. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.test.js +194 -0
  188. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/meeting-room-mcp-server.test.js.map +1 -0
  189. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/stdio-bridge.d.ts +2 -0
  190. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/stdio-bridge.js +279 -0
  191. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/stdio-bridge.js.map +1 -0
  192. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.d.ts +14 -0
  193. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.js +131 -0
  194. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.js.map +1 -0
  195. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.test.d.ts +1 -0
  196. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.test.js +134 -0
  197. package/dashboard/dist-server/dashboard/src/server/rooms/mcp-server/tcp-helpers.test.js.map +1 -0
  198. package/dashboard/dist-server/dashboard/src/server/rooms/meeting-room-session.d.ts +51 -0
  199. package/dashboard/dist-server/dashboard/src/server/rooms/meeting-room-session.js +185 -0
  200. package/dashboard/dist-server/dashboard/src/server/rooms/meeting-room-session.js.map +1 -0
  201. package/dashboard/dist-server/dashboard/src/server/rooms/room-agent-registry.d.ts +29 -0
  202. package/dashboard/dist-server/dashboard/src/server/rooms/room-agent-registry.js +125 -0
  203. package/dashboard/dist-server/dashboard/src/server/rooms/room-agent-registry.js.map +1 -0
  204. package/dashboard/dist-server/dashboard/src/server/rooms/room-mailbox.d.ts +18 -0
  205. package/dashboard/dist-server/dashboard/src/server/rooms/room-mailbox.js +63 -0
  206. package/dashboard/dist-server/dashboard/src/server/rooms/room-mailbox.js.map +1 -0
  207. package/dashboard/dist-server/dashboard/src/server/rooms/room-session-manager.d.ts +19 -0
  208. package/dashboard/dist-server/dashboard/src/server/rooms/room-session-manager.js +45 -0
  209. package/dashboard/dist-server/dashboard/src/server/rooms/room-session-manager.js.map +1 -0
  210. package/dashboard/dist-server/dashboard/src/server/rooms/room-task-board.d.ts +25 -0
  211. package/dashboard/dist-server/dashboard/src/server/rooms/room-task-board.js +115 -0
  212. package/dashboard/dist-server/dashboard/src/server/rooms/room-task-board.js.map +1 -0
  213. package/dashboard/dist-server/dashboard/src/server/rooms/room-types.d.ts +53 -0
  214. package/dashboard/dist-server/dashboard/src/server/rooms/room-types.js +5 -0
  215. package/dashboard/dist-server/dashboard/src/server/rooms/room-types.js.map +1 -0
  216. package/dashboard/dist-server/dashboard/src/server/routes/agents.js +6 -0
  217. package/dashboard/dist-server/dashboard/src/server/routes/agents.js.map +1 -1
  218. package/dashboard/dist-server/dashboard/src/server/routes/cli-history.js +20 -1
  219. package/dashboard/dist-server/dashboard/src/server/routes/cli-history.js.map +1 -1
  220. package/dashboard/dist-server/dashboard/src/server/routes/index.d.ts +2 -1
  221. package/dashboard/dist-server/dashboard/src/server/routes/index.js +8 -1
  222. package/dashboard/dist-server/dashboard/src/server/routes/index.js.map +1 -1
  223. package/dashboard/dist-server/dashboard/src/server/routes/install.js +1 -1
  224. package/dashboard/dist-server/dashboard/src/server/routes/install.js.map +1 -1
  225. package/dashboard/dist-server/dashboard/src/server/routes/mcp.js +2 -2
  226. package/dashboard/dist-server/dashboard/src/server/routes/mcp.js.map +1 -1
  227. package/dashboard/dist-server/dashboard/src/server/routes/room-mcp.d.ts +3 -0
  228. package/dashboard/dist-server/dashboard/src/server/routes/room-mcp.js +246 -0
  229. package/dashboard/dist-server/dashboard/src/server/routes/room-mcp.js.map +1 -0
  230. package/dashboard/dist-server/dashboard/src/server/routes/rooms.d.ts +3 -0
  231. package/dashboard/dist-server/dashboard/src/server/routes/rooms.js +38 -0
  232. package/dashboard/dist-server/dashboard/src/server/routes/rooms.js.map +1 -0
  233. package/dashboard/dist-server/dashboard/src/server/routes/wiki.integration.test.js +7 -7
  234. package/dashboard/dist-server/dashboard/src/server/routes/wiki.integration.test.js.map +1 -1
  235. package/dashboard/dist-server/dashboard/src/server/routes/wiki.js +1 -1
  236. package/dashboard/dist-server/dashboard/src/server/routes/wiki.js.map +1 -1
  237. package/dashboard/dist-server/dashboard/src/server/state/event-bus.d.ts +39 -1
  238. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js +12 -0
  239. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js.map +1 -1
  240. package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js +1 -1
  241. package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js.map +1 -1
  242. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js +25 -14
  243. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js.map +1 -1
  244. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.test.js +6 -6
  245. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.test.js.map +1 -1
  246. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-types.d.ts +1 -1
  247. package/dashboard/dist-server/dashboard/src/server/wiki/writer-stress.test.js +17 -16
  248. package/dashboard/dist-server/dashboard/src/server/wiki/writer-stress.test.js.map +1 -1
  249. package/dashboard/dist-server/dashboard/src/server/wiki/writer.d.ts +1 -1
  250. package/dashboard/dist-server/dashboard/src/server/wiki/writer.js +18 -7
  251. package/dashboard/dist-server/dashboard/src/server/wiki/writer.js.map +1 -1
  252. package/dashboard/dist-server/dashboard/src/server/ws/handlers/agent-handler.d.ts +3 -1
  253. package/dashboard/dist-server/dashboard/src/server/ws/handlers/agent-handler.js +75 -1
  254. package/dashboard/dist-server/dashboard/src/server/ws/handlers/agent-handler.js.map +1 -1
  255. package/dashboard/dist-server/dashboard/src/server/ws/handlers/room-handler.d.ts +17 -0
  256. package/dashboard/dist-server/dashboard/src/server/ws/handlers/room-handler.js +192 -0
  257. package/dashboard/dist-server/dashboard/src/server/ws/handlers/room-handler.js.map +1 -0
  258. package/dashboard/dist-server/dashboard/src/server/ws/session-scoped-event-filter.d.ts +13 -0
  259. package/dashboard/dist-server/dashboard/src/server/ws/session-scoped-event-filter.js +37 -0
  260. package/dashboard/dist-server/dashboard/src/server/ws/session-scoped-event-filter.js.map +1 -0
  261. package/dashboard/dist-server/dashboard/src/server/ws/ws-manager.d.ts +7 -1
  262. package/dashboard/dist-server/dashboard/src/server/ws/ws-manager.js +39 -2
  263. package/dashboard/dist-server/dashboard/src/server/ws/ws-manager.js.map +1 -1
  264. package/dashboard/dist-server/dashboard/src/shared/constants.js +12 -0
  265. package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
  266. package/dashboard/dist-server/dashboard/src/shared/room-leader-prompt.d.ts +1 -0
  267. package/dashboard/dist-server/dashboard/src/shared/room-leader-prompt.js +38 -0
  268. package/dashboard/dist-server/dashboard/src/shared/room-leader-prompt.js.map +1 -0
  269. package/dashboard/dist-server/dashboard/src/shared/team-types.d.ts +66 -0
  270. package/dashboard/dist-server/dashboard/src/shared/team-types.js.map +1 -1
  271. package/dashboard/dist-server/dashboard/src/shared/types.d.ts +24 -3
  272. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.d.ts +76 -2
  273. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.js.map +1 -1
  274. package/dashboard/dist-server/shared/agent-types.d.ts +2 -0
  275. package/dashboard/dist-server/src/commands/delegate.js +11 -8
  276. package/dashboard/dist-server/src/commands/delegate.js.map +1 -1
  277. package/dist/shared/agent-types.d.ts +2 -0
  278. package/dist/shared/agent-types.d.ts.map +1 -1
  279. package/dist/src/cli.js +2 -2
  280. package/dist/src/cli.js.map +1 -1
  281. package/dist/src/commands/delegate.d.ts.map +1 -1
  282. package/dist/src/commands/delegate.js +11 -8
  283. package/dist/src/commands/delegate.js.map +1 -1
  284. package/dist/src/commands/install-backend.d.ts +1 -1
  285. package/dist/src/commands/install-backend.d.ts.map +1 -1
  286. package/dist/src/commands/install-backend.js +1 -1
  287. package/dist/src/commands/install-backend.js.map +1 -1
  288. package/dist/src/commands/knowhow.d.ts +10 -0
  289. package/dist/src/commands/knowhow.d.ts.map +1 -0
  290. package/dist/src/commands/knowhow.js +217 -0
  291. package/dist/src/commands/knowhow.js.map +1 -0
  292. package/dist/src/commands/overlay-ui/OverlayList.d.ts +2 -0
  293. package/dist/src/commands/overlay-ui/OverlayList.d.ts.map +1 -1
  294. package/dist/src/commands/overlay-ui/OverlayList.js +6 -3
  295. package/dist/src/commands/overlay-ui/OverlayList.js.map +1 -1
  296. package/dist/src/commands/overlay-ui/index.d.ts.map +1 -1
  297. package/dist/src/commands/overlay-ui/index.js +70 -44
  298. package/dist/src/commands/overlay-ui/index.js.map +1 -1
  299. package/dist/src/commands/overlay.d.ts.map +1 -1
  300. package/dist/src/commands/overlay.js +4 -3
  301. package/dist/src/commands/overlay.js.map +1 -1
  302. package/dist/src/core/overlay/applier.d.ts +1 -1
  303. package/dist/src/core/overlay/applier.d.ts.map +1 -1
  304. package/dist/src/core/overlay/applier.js +40 -13
  305. package/dist/src/core/overlay/applier.js.map +1 -1
  306. package/dist/src/core/overlay/loader.d.ts.map +1 -1
  307. package/dist/src/core/overlay/loader.js +6 -0
  308. package/dist/src/core/overlay/loader.js.map +1 -1
  309. package/dist/src/core/overlay/types.d.ts +5 -1
  310. package/dist/src/core/overlay/types.d.ts.map +1 -1
  311. package/dist/src/core/overlay/types.js +1 -1
  312. package/dist/src/core/overlay/types.js.map +1 -1
  313. package/dist/src/hooks/context-monitor.js +1 -1
  314. package/dist/src/hooks/context-monitor.js.map +1 -1
  315. package/dist/src/hooks/skill-context.js +1 -1
  316. package/dist/src/hooks/skill-context.js.map +1 -1
  317. package/dist/src/mcp/delegate-channel-relay.d.ts +4 -0
  318. package/dist/src/mcp/delegate-channel-relay.d.ts.map +1 -1
  319. package/dist/src/mcp/delegate-channel-relay.js +73 -4
  320. package/dist/src/mcp/delegate-channel-relay.js.map +1 -1
  321. package/dist/src/tools/index.js +2 -2
  322. package/dist/src/tools/index.js.map +1 -1
  323. package/dist/src/tools/store-knowhow.d.ts +21 -0
  324. package/dist/src/tools/store-knowhow.d.ts.map +1 -0
  325. package/dist/src/tools/store-knowhow.js +295 -0
  326. package/dist/src/tools/store-knowhow.js.map +1 -0
  327. package/package.json +1 -1
  328. package/shared/agent-types.ts +2 -0
  329. package/templates/workflows/specs/node-catalog.md +170 -0
  330. package/templates/workflows/specs/template-schema.md +157 -0
  331. package/workflows/analyze.md +61 -185
  332. package/workflows/brainstorm.md +3 -23
  333. package/workflows/codebase-rebuild.md +79 -191
  334. package/workflows/codebase-refresh.md +26 -124
  335. package/workflows/debug.md +21 -141
  336. package/workflows/execute.md +183 -350
  337. package/workflows/fork.md +72 -230
  338. package/workflows/harvest.md +12 -79
  339. package/workflows/init.md +3 -17
  340. package/workflows/integration-test.md +21 -190
  341. package/workflows/issue-analyze.md +35 -153
  342. package/workflows/issue-discover.md +88 -263
  343. package/workflows/issue-execute.md +29 -208
  344. package/workflows/issue-plan.md +33 -154
  345. package/workflows/issue.md +44 -202
  346. package/workflows/knowhow.md +374 -0
  347. package/workflows/learn.md +30 -177
  348. package/workflows/maestro-coordinate.codex.md +77 -362
  349. package/workflows/maestro-link-coordinate.md +12 -61
  350. package/workflows/maestro.codex.md +124 -457
  351. package/workflows/maestro.md +562 -976
  352. package/workflows/map.md +16 -53
  353. package/workflows/merge.md +42 -197
  354. package/workflows/milestone-audit.md +5 -43
  355. package/workflows/milestone-complete.md +11 -60
  356. package/workflows/plan.md +176 -387
  357. package/workflows/quick.md +25 -174
  358. package/workflows/refactor.md +28 -221
  359. package/workflows/retrospective.md +104 -443
  360. package/workflows/review.md +87 -299
  361. package/workflows/roadmap.md +117 -97
  362. package/workflows/spec-generate.md +22 -118
  363. package/workflows/specs-add.md +5 -25
  364. package/workflows/specs-load.md +1 -5
  365. package/workflows/specs-remove.md +0 -11
  366. package/workflows/specs-setup.md +11 -47
  367. package/workflows/status.md +58 -200
  368. package/workflows/sync.md +28 -141
  369. package/workflows/test-gen.md +23 -100
  370. package/workflows/test.md +15 -125
  371. package/workflows/ui-design.md +139 -465
  372. package/workflows/ui-style.md +36 -228
  373. package/workflows/verify.md +52 -273
  374. package/workflows/wiki-connect.md +9 -46
  375. package/workflows/wiki-digest.md +7 -50
  376. package/workflows/wiki-manage.md +11 -108
  377. package/.claude/commands/maestro-coordinate.md +0 -63
  378. package/.claude/commands/manage-memory-capture.md +0 -59
  379. package/.codex/skills/maestro-coordinate/SKILL.md +0 -213
  380. package/.codex/skills/manage-memory-capture/SKILL.md +0 -93
  381. package/dashboard/dist/assets/ChatInput-pUOLJIKE.js +0 -49
  382. package/dashboard/dist/assets/ChatPage-B8Xqkt0v.js +0 -27
  383. package/dashboard/dist/assets/McpPage-BY0SjTgw.js +0 -21
  384. package/dashboard/dist/assets/TeamsPage-BO2kP70F.js +0 -11
  385. package/dashboard/dist/assets/WorkflowPage-C8hWbYim.js +0 -6
  386. package/dashboard/dist/assets/en-ZbRpfzuP.js +0 -1
  387. package/dashboard/dist/assets/index-C2Mcb4TJ.js +0 -231
  388. package/dashboard/dist/assets/index-DyBbPc18.css +0 -1
  389. package/dashboard/dist/assets/loader-B5F6PzFT.js +0 -11
  390. package/dashboard/dist/assets/zh-CN-CoXBFuny.js +0 -1
  391. package/workflows/maestro-coordinate.md +0 -582
  392. package/workflows/memory.md +0 -451
@@ -24,121 +24,11 @@ Leverages maestro's unique wiki graph infrastructure (BM25 search, backlinks, he
24
24
  <context>
25
25
  Arguments: $ARGUMENTS
26
26
 
27
- **Flags:**
28
- - `--scope <type>` — Limit analysis to a wiki type (spec, memory, note, lesson, issue). Default: all types.
29
- - `--min-similarity N` — Minimum similarity score threshold 0.0-1.0 (default: 0.3)
30
- - `--fix` — Auto-apply the top suggestions by updating wiki entries with new `related` links
31
- - `--max N` — Maximum number of suggestions to generate (default: 20)
32
-
33
- **Storage written:**
34
- - `.workflow/learning/wiki-connections-{YYYY-MM-DD}.md` — Connection analysis report
35
- - If `--fix`: wiki entries updated via `maestro wiki update` with new `related` links
36
- - `.workflow/learning/lessons.jsonl` — Graph structure insights (source: "wiki-connect")
37
-
38
- **Storage read (via maestro wiki CLI, offline mode):**
39
- - `maestro wiki list --json` — All wiki entries
40
- - `maestro wiki graph` — Full graph structure (forward + backlinks)
41
- - `maestro wiki health` — Current health score
42
- - `maestro wiki orphans` — Orphaned entries
43
- - `maestro wiki hubs` — Hub entries (most referenced)
27
+ Flags, storage paths, and CLI commands defined in workflow wiki-connect.md.
44
28
  </context>
45
29
 
46
30
  <execution>
47
-
48
- ### Stage 1: Load Wiki State
49
- Run these `maestro wiki` commands in parallel:
50
-
51
- ```bash
52
- maestro wiki list --json
53
- maestro wiki health
54
- maestro wiki orphans
55
- maestro wiki hubs --top 10
56
- ```
57
-
58
- Parse results:
59
- - Entry count, type distribution
60
- - Baseline health score (from `wiki health`)
61
- - Orphan list (entries with 0 in-degree and 0 out-degree)
62
- - Hub list (most-referenced entries)
63
-
64
- Apply `--scope` filter if provided.
65
-
66
- ### Stage 2: Identify Connection Candidates
67
- For each entry, compute potential connections:
68
-
69
- **2a. Orphan Rescue:**
70
- For each orphan entry, search for related entries using:
71
- - `maestro wiki search "<orphan title>"` — BM25 match by title
72
- - Tag overlap: entries sharing 2+ tags with the orphan
73
- - Same category: entries with matching `category`
74
-
75
- **2b. Missing Bidirectional Links:**
76
- For entries that have forward links but no corresponding backlink (A links to B, but B doesn't link to A), suggest adding the reverse link.
77
-
78
- **2c. Transitive Closure:**
79
- If A → B and B → C, but A has no link to C, and A and C share tags or category, suggest A → C.
80
-
81
- **2d. Type Bridge:**
82
- Entries of different types that reference the same concept (e.g., a `spec-auth` and a `lesson-auth-gotcha`) but aren't linked.
83
-
84
- ### Stage 3: Score Candidates
85
- For each candidate connection (source → target), compute similarity:
86
-
87
- ```
88
- score = 0.4 × tag_overlap_ratio
89
- + 0.3 × title_bm25_similarity
90
- + 0.2 × same_category_bonus
91
- + 0.1 × type_bridge_bonus
92
- ```
93
-
94
- - `tag_overlap_ratio`: shared_tags / max(source_tags, target_tags)
95
- - `title_bm25_similarity`: normalized BM25 score from wiki search
96
- - `same_category_bonus`: 1.0 if same category, else 0.0
97
- - `type_bridge_bonus`: 1.0 if different types, else 0.0
98
-
99
- Filter by `--min-similarity`, rank descending, limit to `--max`.
100
-
101
- ### Stage 4: Present Suggestions
102
- Display ranked connection suggestions:
103
-
104
- ```
105
- == Wiki Connection Suggestions ==
106
- Baseline health: 72/100 | Orphans: 8 | Broken links: 3
107
-
108
- # Score Source → Target Reason
109
- 1 0.85 memory-auth-flow → spec-auth tag overlap (auth, security) + same phase
110
- 2 0.71 note-cache-pattern → spec-performance title BM25 match + type bridge
111
- 3 0.65 lesson-retry-fix → spec-error-handling tag overlap (error, retry)
112
- ...
113
-
114
- Projected health after fix: 81/100 (+9)
115
- ```
116
-
117
- If NOT `--fix`: display and exit.
118
- If `--fix`: proceed to Stage 5.
119
-
120
- ### Stage 5: Apply Connections (--fix only)
121
- For each accepted suggestion:
122
- 1. Get current entry: `maestro wiki get <source-id> --json`
123
- 2. Extract existing `related` list from frontmatter
124
- 3. Append target-id to `related` if not already present
125
- 4. Update: `maestro wiki update <source-id> --frontmatter "related: [existing..., new-target]"`
126
- 5. Log success/failure
127
-
128
- After all updates:
129
- - Re-run `maestro wiki health` to get new health score
130
- - Report delta
131
-
132
- ### Stage 6: Persist & Report
133
- 1. Write `.workflow/learning/wiki-connections-{date}.md` with:
134
- - Baseline and final health scores
135
- - All suggestions (applied and unapplied)
136
- - Orphan rescue results
137
- - Graph structure observations (hub concentration, type distribution)
138
- 2. Append graph insights to `lessons.jsonl`:
139
- - `source: "wiki-connect"`, `category: "technique"`
140
- - e.g., "Auth-related entries are poorly connected", "Phase 3 has 5 orphaned notes"
141
- 3. Display summary
31
+ Follow '~/.maestro/workflows/wiki-connect.md' completely (Stages 1-6).
142
32
 
143
33
  **Next-step routing:**
144
34
  - Generate knowledge digest → `/wiki-digest <topic>`
@@ -28,150 +28,11 @@ Unlike `maestro wiki list` which shows raw entries, this command synthesizes and
28
28
  <context>
29
29
  Arguments: $ARGUMENTS
30
30
 
31
- **Scope resolution (auto-detected):**
32
- - `<topic>` — Search wiki for entries matching the topic via `maestro wiki search`
33
- - `--recent N` — Entries updated in the last N days
34
- - `--type <type>` — Filter by wiki type (spec, memory, note, lesson, issue)
35
- - No arguments — digest of the entire wiki
36
-
37
- **Flags:**
38
- - `--format brief` — Compact summary, one paragraph per theme (default)
39
- - `--format full` — Detailed digest with per-entry summaries and full gap analysis
40
- - `--create-issues` — Auto-create `type: "knowledge-gap"` entries in `.workflow/issues/issues.jsonl` for each identified gap (closes the discovery→action loop)
41
-
42
- **Storage written:**
43
- - `.workflow/learning/digest-{slug}-{YYYY-MM-DD}.md` — Digest document
44
- - `.workflow/learning/lessons.jsonl` — Meta-insights about knowledge structure (source: "wiki-digest")
45
- - `.workflow/issues/issues.jsonl` — Knowledge-gap issues (only when `--create-issues`)
46
-
47
- **Storage read (via maestro wiki CLI, offline mode):**
48
- - `maestro wiki list --json` — All entries (or filtered)
49
- - `maestro wiki search <topic>` — Topic-scoped entries
50
- - `maestro wiki get <id>` — Entry bodies for summarization
51
- - `maestro wiki backlinks <id>` / `maestro wiki forward <id>` — Relationship context
52
- - `maestro wiki health` — Overall graph health
53
- - `.workflow/learning/lessons.jsonl` — Cross-reference for unlinked insights
31
+ Flags, scope resolution, storage paths, and CLI commands defined in workflow wiki-digest.md.
54
32
  </context>
55
33
 
56
34
  <execution>
57
-
58
- ### Stage 1: Scope & Load
59
- - Parse arguments to determine scope:
60
- - Topic: `maestro wiki search "<topic>" --json` → matching entries
61
- - Recent N: `maestro wiki list --json` → filter by `updated` within N days
62
- - Type: `maestro wiki list --type <type> --json`
63
- - All: `maestro wiki list --json`
64
- - Load entry metadata (id, title, tags, status, type, related, summary)
65
- - For `--format full`: also load entry bodies via `maestro wiki get <id>` for top entries
66
- - Run `maestro wiki health` for baseline metrics
67
-
68
- ### Stage 2: Theme Clustering
69
- Group entries into 3-5 semantic themes using:
70
-
71
- 1. **Tag co-occurrence**: entries sharing 2+ tags belong to the same theme
72
- 2. **Title similarity**: BM25-based grouping (entries whose titles match each other's keywords)
73
- 3. **Relationship proximity**: entries connected by `related` links cluster together
74
- 4. **Type grouping**: if entries are all same type, sub-cluster by content
75
-
76
- For each theme:
77
- - Name: most common tag or dominant keyword
78
- - Entry count
79
- - Type distribution within theme
80
- - Status distribution (draft/active/completed/archived)
81
-
82
- ### Stage 3: Per-Theme Analysis
83
- For each theme, produce:
84
-
85
- **Summary paragraph**: synthesize the key knowledge in this theme area (what do these entries collectively say?)
86
-
87
- **Key entries**: top 3-5 most important entries (by hub score / backlink count)
88
-
89
- **Gap detection**:
90
- - Broken links: `[[references]]` that don't resolve within the theme
91
- - Orphans: entries in this theme with no connections
92
- - Questions: entries with `?` in title or "TODO" / "TBD" markers in body
93
- - Missing perspectives: if theme has specs but no lessons, or issues but no decisions
94
-
95
- **Health**: per-theme health score (adapted from wiki health formula)
96
-
97
- ### Stage 4: Cross-Reference with Lessons
98
- - Search `lessons.jsonl` for insights related to each theme
99
- - Identify unlinked insights: lessons that match a theme but are not referenced by any wiki entry in that theme
100
- - Flag these as "knowledge not yet connected to the graph"
101
-
102
- ### Stage 5: Coverage Heatmap
103
- Build a matrix showing knowledge density by type × theme:
104
-
105
- ```
106
- Theme 1 Theme 2 Theme 3 Theme 4 Theme 5
107
- spec ███░░ ░░░░░ █████ ██░░░ ░░░░░
108
- memory ░░░░░ ████░ ██░░░ ░░░░░ ███░░
109
- lesson █░░░░ ██░░░ ████░ █░░░░ ░░░░░
110
- issue ██░░░ ░░░░░ █░░░░ ███░░ ░░░░░
111
-
112
- Legend: █ = entries exist, ░ = sparse/missing
113
- ```
114
-
115
- Identify: which theme × type cells are empty? These are knowledge gaps.
116
-
117
- ### Stage 6: Write Digest
118
- Produce `.workflow/learning/digest-{slug}-{date}.md`:
119
-
120
- ```markdown
121
- # Knowledge Digest: {scope description}
122
- **Generated:** {date} | **Entries:** {count} | **Health:** {score}/100
123
-
124
- ## Themes
125
-
126
- ### 1. {Theme Name} ({N} entries)
127
- {summary paragraph}
128
-
129
- **Key entries:** {linked entry IDs}
130
- **Gaps:** {list of missing knowledge}
131
- **Health:** {score}/100
132
-
133
- ### 2. {Theme Name} ...
134
-
135
- ## Coverage Heatmap
136
- {matrix}
137
-
138
- ## Knowledge Gaps
139
- | Gap | Theme | Type Missing | Suggested Action |
140
- |-----|-------|-------------|-----------------|
141
- | No lessons for auth patterns | Security | lesson | Run /learn-decompose on src/auth/ |
142
-
143
- ## Unlinked Insights
144
- {lessons.jsonl entries not connected to wiki graph}
145
-
146
- ## Recommended Actions
147
- 1. {action}: {reason}
148
- 2. ...
149
- ```
150
-
151
- ### Stage 7: Gap → Issue Routing (if --create-issues)
152
- For each knowledge gap identified in Stage 5:
153
- 1. Check `.workflow/issues/issues.jsonl` for existing gap with same theme + type
154
- 2. If not duplicate, append to `issues.jsonl` using the canonical schema from `~/.maestro/workflows/issue.md` Step 4:
155
- - `id`: `ISS-XXXXXXXX-NNN` format (8 hex hash + sequence)
156
- - `title`: "Knowledge gap: {gap description}"
157
- - `type`: "knowledge-gap"
158
- - `status`: "open"
159
- - `severity`: "low"
160
- - `priority`: "low"
161
- - `source`: "wiki-digest"
162
- - `description`: "Theme: {theme}, Missing type: {type}. Suggested action: {action}"
163
- - `tags`: ["knowledge-gap", "{theme-slug}"]
164
- - `created`: ISO date
165
- - `issue_history`: initial entry with `action: "created"`, `by: "wiki-digest"`, `timestamp`
166
- 3. Report created issue count
167
-
168
- ### Stage 8: Persist
169
- 1. Write digest file
170
- 2. Append meta-insights to `lessons.jsonl`:
171
- - `source: "wiki-digest"`, `category: "technique"`
172
- - e.g., "Auth knowledge is concentrated in specs but lacks lessons", "Security category has no decision entries"
173
- 3. Update `learning-index.json`
174
- 4. Display summary with key findings
35
+ Follow '~/.maestro/workflows/wiki-digest.md' completely (Stages 1-8).
175
36
 
176
37
  **Next-step routing:**
177
38
  - Deep dive on a theme → `/learn-follow <wiki-id>`
@@ -0,0 +1,382 @@
1
+ ---
2
+ name: skill-iter-tune
3
+ description: Iterative skill tuning via execute-evaluate-improve feedback loop. Uses ccw cli Claude to execute skill, Gemini to evaluate quality, and Agent to apply improvements. Iterates until quality threshold or max iterations. Triggers on "skill iter tune", "iterative skill tuning", "tune skill".
4
+ allowed-tools: Skill, Agent, AskUserQuestion, TaskCreate, TaskUpdate, TaskList, Read, Write, Edit, Bash, Glob, Grep
5
+ ---
6
+
7
+ # Skill Iter Tune
8
+
9
+ Iterative skill refinement through execute-evaluate-improve feedback loops. Each iteration runs the skill via Claude, evaluates output via Gemini, and applies improvements via Agent.
10
+
11
+ ## Architecture Overview
12
+
13
+ ```
14
+ ┌──────────────────────────────────────────────────────────────────────────┐
15
+ │ Skill Iter Tune Orchestrator (SKILL.md) │
16
+ │ → Parse input → Setup workspace → Iteration Loop → Final Report │
17
+ └────────────────────────────┬─────────────────────────────────────────────┘
18
+
19
+ ┌───────────────────┼───────────────────────────────────┐
20
+ ↓ ↓ ↓
21
+ ┌──────────┐ ┌─────────────────────────────┐ ┌──────────┐
22
+ │ Phase 1 │ │ Iteration Loop (2→3→4) │ │ Phase 5 │
23
+ │ Setup │ │ ┌─────┐ ┌─────┐ ┌─────┐ │ │ Report │
24
+ │ │─────→│ │ P2 │→ │ P3 │→ │ P4 │ │────→│ │
25
+ │ Backup + │ │ │Exec │ │Eval │ │Impr │ │ │ History │
26
+ │ Init │ │ └─────┘ └─────┘ └─────┘ │ │ Summary │
27
+ └──────────┘ │ ↑ │ │ └──────────┘
28
+ │ └───────────────┘ │
29
+ │ (if score < threshold │
30
+ │ AND iter < max) │
31
+ └─────────────────────────────┘
32
+ ```
33
+
34
+ ### Chain Mode Extension
35
+
36
+ ```
37
+ Chain Mode (execution_mode === "chain"):
38
+
39
+ Phase 2 runs per-skill in chain_order:
40
+ Skill A → ccw cli → artifacts/skill-A/
41
+ ↓ (artifacts as input)
42
+ Skill B → ccw cli → artifacts/skill-B/
43
+ ↓ (artifacts as input)
44
+ Skill C → ccw cli → artifacts/skill-C/
45
+
46
+ Phase 3 evaluates entire chain output + per-skill scores
47
+ Phase 4 improves weakest skill(s) in chain
48
+ ```
49
+
50
+ ## Key Design Principles
51
+
52
+ 1. **Iteration Loop**: Phases 2-3-4 repeat until quality threshold, max iterations, or convergence
53
+ 2. **Two-Tool Pipeline**: Claude (write/execute) + Gemini (analyze/evaluate) = complementary perspectives
54
+ 3. **Pure Orchestrator**: SKILL.md coordinates only — execution detail lives in phase files
55
+ 4. **Progressive Phase Loading**: Phase docs read only when that phase executes
56
+ 5. **Skill Versioning**: Each iteration snapshots skill state before execution
57
+ 6. **Convergence Detection**: Stop early if score stalls (no improvement in 2 consecutive iterations)
58
+
59
+ ## Interactive Preference Collection
60
+
61
+ ```javascript
62
+ // ★ Auto mode detection
63
+ const autoYes = /\b(-y|--yes)\b/.test($ARGUMENTS)
64
+
65
+ if (autoYes) {
66
+ workflowPreferences = {
67
+ autoYes: true,
68
+ maxIterations: 5,
69
+ qualityThreshold: 80,
70
+ executionMode: 'single'
71
+ }
72
+ } else {
73
+ const prefResponse = AskUserQuestion({
74
+ questions: [
75
+ {
76
+ question: "选择迭代调优配置:",
77
+ header: "Tune Config",
78
+ multiSelect: false,
79
+ options: [
80
+ { label: "Quick (3 iter, 70)", description: "快速迭代,适合小幅改进" },
81
+ { label: "Standard (5 iter, 80) (Recommended)", description: "平衡方案,适合多数场景" },
82
+ { label: "Thorough (8 iter, 90)", description: "深度优化,适合生产级 skill" }
83
+ ]
84
+ }
85
+ ]
86
+ })
87
+
88
+ const configMap = {
89
+ "Quick": { maxIterations: 3, qualityThreshold: 70 },
90
+ "Standard": { maxIterations: 5, qualityThreshold: 80 },
91
+ "Thorough": { maxIterations: 8, qualityThreshold: 90 }
92
+ }
93
+ const selected = Object.keys(configMap).find(k =>
94
+ prefResponse["Tune Config"].startsWith(k)
95
+ ) || "Standard"
96
+ workflowPreferences = { autoYes: false, ...configMap[selected] }
97
+
98
+ // ★ Mode selection: chain vs single
99
+ const modeResponse = AskUserQuestion({
100
+ questions: [{
101
+ question: "选择调优模式:",
102
+ header: "Tune Mode",
103
+ multiSelect: false,
104
+ options: [
105
+ { label: "Single Skill (Recommended)", description: "独立调优每个 skill,适合单一 skill 优化" },
106
+ { label: "Skill Chain", description: "按链序执行,前一个 skill 的产出作为后一个的输入" }
107
+ ]
108
+ }]
109
+ });
110
+ workflowPreferences.executionMode = modeResponse["Tune Mode"].startsWith("Skill Chain")
111
+ ? "chain" : "single";
112
+ }
113
+ ```
114
+
115
+ ## Input Processing
116
+
117
+ ```
118
+ $ARGUMENTS → Parse:
119
+ ├─ Skill path(s): first arg, comma-separated for multiple
120
+ │ e.g., ".claude/skills/my-skill" or "my-skill" (auto-prefixed)
121
+ │ Chain mode: order preserved as chain_order
122
+ ├─ Test scenario: --scenario "description" or remaining text
123
+ └─ Flags: --max-iterations=N, --threshold=N, -y/--yes
124
+ ```
125
+
126
+ ## Execution Flow
127
+
128
+ > **⚠️ COMPACT DIRECTIVE**: Context compression MUST check TodoWrite phase status.
129
+ > The phase currently marked `in_progress` is the active execution phase — preserve its FULL content.
130
+ > Only compress phases marked `completed` or `pending`.
131
+
132
+ ### Phase 1: Setup (one-time)
133
+
134
+ Read and execute: `Ref: phases/01-setup.md`
135
+
136
+ - Parse skill paths, validate existence
137
+ - Create workspace at `.workflow/.scratchpad/skill-iter-tune-{ts}/`
138
+ - Backup original skill files
139
+ - Initialize iteration-state.json
140
+
141
+ Output: `workDir`, `targetSkills[]`, `testScenario`, initialized state
142
+
143
+ ### Iteration Loop
144
+
145
+ ```javascript
146
+ // Orchestrator iteration loop
147
+ while (true) {
148
+ // Increment iteration
149
+ state.current_iteration++;
150
+ state.iterations.push({
151
+ round: state.current_iteration,
152
+ status: 'pending',
153
+ execution: null,
154
+ evaluation: null,
155
+ improvement: null
156
+ });
157
+
158
+ // Update TodoWrite
159
+ TaskUpdate(iterationTask, {
160
+ subject: `Iteration ${state.current_iteration}/${state.max_iterations}`,
161
+ status: 'in_progress',
162
+ activeForm: `Running iteration ${state.current_iteration}`
163
+ });
164
+
165
+ // === Phase 2: Execute ===
166
+ // Read: phases/02-execute.md
167
+ // Single mode: one ccw cli call for all skills
168
+ // Chain mode: sequential ccw cli per skill in chain_order, passing artifacts
169
+ // Snapshot skill → construct prompt → ccw cli --tool claude --mode write
170
+ // Collect artifacts
171
+
172
+ // === Phase 3: Evaluate ===
173
+ // Read: phases/03-evaluate.md
174
+ // Construct eval prompt → ccw cli --tool gemini --mode analysis
175
+ // Parse score → write iteration-N-eval.md → check termination
176
+
177
+ // Check termination
178
+ if (shouldTerminate(state)) {
179
+ break; // → Phase 5
180
+ }
181
+
182
+ // === Phase 4: Improve ===
183
+ // Read: phases/04-improve.md
184
+ // Agent applies suggestions → write iteration-N-changes.md
185
+
186
+ // Update TodoWrite with score
187
+ // Continue loop
188
+ }
189
+ ```
190
+
191
+ ### Phase 2: Execute Skill (per iteration)
192
+
193
+ Read and execute: `Ref: phases/02-execute.md`
194
+
195
+ - Snapshot skill → `iteration-{N}/skill-snapshot/`
196
+ - Build execution prompt from skill content + test scenario
197
+ - Execute: `ccw cli -p "..." --tool claude --mode write --cd "${iterDir}/artifacts"`
198
+ - Collect artifacts
199
+
200
+ ### Phase 3: Evaluate Quality (per iteration)
201
+
202
+ Read and execute: `Ref: phases/03-evaluate.md`
203
+
204
+ - Build evaluation prompt with skill + artifacts + criteria + history
205
+ - Execute: `ccw cli -p "..." --tool gemini --mode analysis`
206
+ - Parse 5-dimension score (Clarity, Completeness, Correctness, Effectiveness, Efficiency)
207
+ - Write `iteration-{N}-eval.md`
208
+ - Check termination: score >= threshold | iter >= max | convergence | error limit
209
+
210
+ ### Phase 4: Apply Improvements (per iteration, skipped on termination)
211
+
212
+ Read and execute: `Ref: phases/04-improve.md`
213
+
214
+ - Read evaluation suggestions
215
+ - Launch general-purpose Agent to apply changes
216
+ - Write `iteration-{N}-changes.md`
217
+ - Update state
218
+
219
+ ### Phase 5: Final Report (one-time)
220
+
221
+ Read and execute: `Ref: phases/05-report.md`
222
+
223
+ - Generate comprehensive report with score progression table
224
+ - Write `final-report.md`
225
+ - Display summary to user
226
+
227
+ **Phase Reference Documents** (read on-demand when phase executes):
228
+
229
+ | Phase | Document | Purpose | Compact |
230
+ |-------|----------|---------|---------|
231
+ | 1 | [phases/01-setup.md](phases/01-setup.md) | Initialize workspace and state | TodoWrite 驱动 |
232
+ | 2 | [phases/02-execute.md](phases/02-execute.md) | Execute skill via ccw cli Claude | TodoWrite 驱动 + 🔄 sentinel |
233
+ | 3 | [phases/03-evaluate.md](phases/03-evaluate.md) | Evaluate via ccw cli Gemini | TodoWrite 驱动 + 🔄 sentinel |
234
+ | 4 | [phases/04-improve.md](phases/04-improve.md) | Apply improvements via Agent | TodoWrite 驱动 + 🔄 sentinel |
235
+ | 5 | [phases/05-report.md](phases/05-report.md) | Generate final report | TodoWrite 驱动 |
236
+
237
+ **Compact Rules**:
238
+ 1. **TodoWrite `in_progress`** → 保留完整内容,禁止压缩
239
+ 2. **TodoWrite `completed`** → 可压缩为摘要
240
+ 3. **🔄 sentinel fallback** → 若 compact 后仅存 sentinel 而无完整 Step 协议,立即 `Read()` 恢复
241
+
242
+ ## Core Rules
243
+
244
+ 1. **Start Immediately**: First action is preference collection → Phase 1 setup
245
+ 2. **Progressive Loading**: Read phase doc ONLY when that phase is about to execute
246
+ 3. **Snapshot Before Execute**: Always snapshot skill state before each iteration
247
+ 4. **Background CLI**: ccw cli runs in background, wait for hook callback before proceeding
248
+ 5. **Parse Every Output**: Extract structured JSON from CLI outputs for state updates
249
+ 6. **DO NOT STOP**: Continuous iteration until termination condition met
250
+ 7. **Single State Source**: `iteration-state.json` is the only source of truth
251
+
252
+ ## Data Flow
253
+
254
+ ```
255
+ User Input (skill paths + test scenario)
256
+ ↓ (+ execution_mode + chain_order if chain mode)
257
+
258
+ Phase 1: Setup
259
+ ↓ workDir, targetSkills[], testScenario, iteration-state.json
260
+
261
+ ┌─→ Phase 2: Execute (ccw cli claude)
262
+ │ ↓ artifacts/ (skill execution output)
263
+ │ ↓
264
+ │ Phase 3: Evaluate (ccw cli gemini)
265
+ │ ↓ score, dimensions[], suggestions[], iteration-N-eval.md
266
+ │ ↓
267
+ │ [Terminate?]─── YES ──→ Phase 5: Report → final-report.md
268
+ │ ↓ NO
269
+ │ ↓
270
+ │ Phase 4: Improve (Agent)
271
+ │ ↓ modified skill files, iteration-N-changes.md
272
+ │ ↓
273
+ └───┘ next iteration
274
+ ```
275
+
276
+ ## TodoWrite Pattern
277
+
278
+ ```javascript
279
+ // Initial state
280
+ TaskCreate({ subject: "Phase 1: Setup workspace", activeForm: "Setting up workspace" })
281
+ TaskCreate({ subject: "Iteration Loop", activeForm: "Running iterations" })
282
+ TaskCreate({ subject: "Phase 5: Final Report", activeForm: "Generating report" })
283
+
284
+ // Chain mode: create per-skill tracking tasks
285
+ if (state.execution_mode === 'chain') {
286
+ for (const skillName of state.chain_order) {
287
+ TaskCreate({
288
+ subject: `Chain: ${skillName}`,
289
+ activeForm: `Tracking ${skillName}`,
290
+ description: `Skill chain member position ${state.chain_order.indexOf(skillName) + 1}`
291
+ })
292
+ }
293
+ }
294
+
295
+ // During iteration N
296
+ // Single mode: one score per iteration (existing behavior)
297
+ // Chain mode: per-skill status updates
298
+ if (state.execution_mode === 'chain') {
299
+ // After each skill executes in Phase 2:
300
+ TaskUpdate(chainSkillTask, {
301
+ subject: `Chain: ${skillName} — Iter ${N} executed`,
302
+ activeForm: `${skillName} iteration ${N}`
303
+ })
304
+ // After Phase 3 evaluates:
305
+ TaskUpdate(chainSkillTask, {
306
+ subject: `Chain: ${skillName} — Score ${chainScores[skillName]}/100`,
307
+ activeForm: `${skillName} scored`
308
+ })
309
+ } else {
310
+ // Single mode (existing)
311
+ TaskCreate({
312
+ subject: `Iteration ${N}: Score ${score}/100`,
313
+ activeForm: `Iteration ${N} complete`,
314
+ description: `Strengths: ... | Weaknesses: ... | Suggestions: ${count}`
315
+ })
316
+ }
317
+
318
+ // Completed — collapse
319
+ TaskUpdate(iterLoop, {
320
+ subject: `Iteration Loop (${totalIters} iters, final: ${finalScore})`,
321
+ status: 'completed'
322
+ })
323
+ ```
324
+
325
+ ## Termination Logic
326
+
327
+ ```javascript
328
+ function shouldTerminate(state) {
329
+ // 1. Quality threshold met
330
+ if (state.latest_score >= state.quality_threshold) {
331
+ return { terminate: true, reason: 'quality_threshold_met' };
332
+ }
333
+ // 2. Max iterations reached
334
+ if (state.current_iteration >= state.max_iterations) {
335
+ return { terminate: true, reason: 'max_iterations_reached' };
336
+ }
337
+ // 3. Convergence: ≤2 points improvement over last 2 iterations
338
+ if (state.score_trend.length >= 3) {
339
+ const last3 = state.score_trend.slice(-3);
340
+ if (last3[2] - last3[0] <= 2) {
341
+ state.converged = true;
342
+ return { terminate: true, reason: 'convergence_detected' };
343
+ }
344
+ }
345
+ // 4. Error limit
346
+ if (state.error_count >= state.max_errors) {
347
+ return { terminate: true, reason: 'error_limit_reached' };
348
+ }
349
+ return { terminate: false };
350
+ }
351
+ ```
352
+
353
+ ## Error Handling
354
+
355
+ | Phase | Error | Recovery |
356
+ |-------|-------|----------|
357
+ | 2: Execute | CLI timeout/crash | Retry once with simplified prompt, then skip |
358
+ | 3: Evaluate | CLI fails | Retry once, then use score 50 with warning |
359
+ | 3: Evaluate | JSON parse fails | Extract score heuristically, save raw output |
360
+ | 4: Improve | Agent fails | Rollback from `iteration-{N}/skill-snapshot/` |
361
+ | Any | 3+ consecutive errors | Terminate with error report |
362
+
363
+ **Error Budget**: Each phase gets 1 retry. 3 consecutive failed iterations triggers termination.
364
+
365
+ ## Coordinator Checklist
366
+
367
+ ### Pre-Phase Actions
368
+ - [ ] Read iteration-state.json for current state
369
+ - [ ] Verify workspace directory exists
370
+ - [ ] Check error count hasn't exceeded limit
371
+
372
+ ### Per-Iteration Actions
373
+ - [ ] Increment current_iteration in state
374
+ - [ ] Create iteration-{N} subdirectory
375
+ - [ ] Update TodoWrite with iteration status
376
+ - [ ] After Phase 3: check termination before Phase 4
377
+ - [ ] After Phase 4: write state, proceed to next iteration
378
+
379
+ ### Post-Workflow Actions
380
+ - [ ] Execute Phase 5 (Report)
381
+ - [ ] Display final summary to user
382
+ - [ ] Update all TodoWrite tasks to completed