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
@@ -17,31 +17,14 @@ Status dashboard with intelligent routing.
17
17
  3. Read `.workflow/roadmap.md`:
18
18
  - Extract phase list with titles
19
19
 
20
- 4. Load Issue State:
21
- - If `.workflow/issues/issues.jsonl` exists:
22
- - Read all lines, parse each as JSON
23
- - Compute statistics:
24
- ```
25
- by_status: {
26
- registered: count(status == "registered"),
27
- diagnosed: count(status == "diagnosed"),
28
- planning: count(status == "planning"),
29
- planned: count(status == "planned"),
30
- executing: count(status == "executing")
31
- }
32
- by_severity: {
33
- critical: count(severity == "critical"),
34
- high: count(severity == "high"),
35
- medium: count(severity == "medium"),
36
- low: count(severity == "low")
37
- }
38
- total_open: count where status NOT in [completed, failed, deferred]
39
- critical_open: count where severity == "critical" AND status NOT in [completed, failed, deferred]
40
- critical_issues: list of {id, title, status} where severity == "critical" AND status NOT in [completed, failed, deferred]
41
- ```
42
- - Store as issue_state
43
- - Else:
44
- - issue_state = null (no issues tracked)
20
+ 4. Load Issue State from `.workflow/issues/issues.jsonl` (if exists):
21
+ ```
22
+ Compute: by_status (registered/diagnosed/planning/planned/executing counts),
23
+ by_severity (critical/high/medium/low counts),
24
+ total_open (exclude completed/failed/deferred),
25
+ critical_open + critical_issues list {id, title, status}
26
+ ```
27
+ If file missing → issue_state = null
45
28
 
46
29
  ---
47
30
 
@@ -50,37 +33,15 @@ Status dashboard with intelligent routing.
50
33
  Derive phase progress from `state.json.artifacts[]`:
51
34
 
52
35
  ```
53
- // Group artifacts by phase for current milestone
54
- milestone_artifacts = state.json.artifacts.filter(a => a.milestone == current_milestone)
55
-
56
- // Build phase view from roadmap + artifact registry
57
- phases_from_roadmap = parse roadmap.md list of { number, slug, title }
58
-
59
- FOR each phase IN phases_from_roadmap:
60
- phase_artifacts = milestone_artifacts.filter(a => a.phase == phase.number)
61
- has_analyze = phase_artifacts.some(a => a.type == "analyze" && a.status == "completed")
62
- has_plan = phase_artifacts.some(a => a.type == "plan" && a.status == "completed")
63
- has_execute = phase_artifacts.some(a => a.type == "execute" && a.status == "completed")
64
- has_verify = phase_artifacts.some(a => a.type == "verify" && a.status == "completed")
65
-
66
- // Derive status from artifact chain
67
- status = has_verify ? "verified" :
68
- has_execute ? "executed" :
69
- has_plan ? "planned" :
70
- has_analyze ? "analyzed" :
71
- "pending"
72
-
73
- // Get task counts from plan artifacts
74
- plan_artifact = phase_artifacts.find(a => a.type == "plan" && a.status == "completed")
75
- IF plan_artifact:
76
- plan_json = read .workflow/{plan_artifact.path}/plan.json
77
- tasks_total = plan_json.task_ids.length
78
- tasks_completed = count .task/TASK-*.json where status == "completed"
79
-
80
- phases[] = { number, slug, title, status, tasks_total, tasks_completed, has_verify }
81
-
82
- // Also show adhoc artifacts
83
- adhoc_artifacts = milestone_artifacts.filter(a => a.scope == "adhoc")
36
+ milestone_artifacts = artifacts filtered by current_milestone
37
+ phases_from_roadmap = parse roadmap.md { number, slug, title }
38
+
39
+ Per phase: check completed artifact types (analyze/plan/execute/verify)
40
+ derive status: verified > executed > planned > analyzed > pending
41
+ → get task counts from plan artifact's plan.json if available
42
+
43
+ Output: phases[] = { number, slug, title, status, tasks_total, tasks_completed, has_verify }
44
+ Also collect: adhoc_artifacts (scope == "adhoc")
84
45
  ```
85
46
 
86
47
  ---
@@ -88,100 +49,35 @@ adhoc_artifacts = milestone_artifacts.filter(a => a.scope == "adhoc")
88
49
  ## Step 2.5: Artifact Registry Consistency Check
89
50
 
90
51
  ```
91
- IF .workflow/roadmap.md exists:
92
- roadmap_phases = parse phase headings from roadmap.md (count "### Phase N:" entries)
93
- artifact_phases = unique phase numbers from milestone_artifacts
94
-
95
- // Check for unregistered work (artifacts without matching roadmap phases)
96
- orphan_artifacts = milestone_artifacts.filter(a => a.phase && !roadmap_phases.includes(a.phase))
97
- IF orphan_artifacts.length > 0:
98
- Display WARNING: "Artifacts reference phases not in roadmap"
99
-
100
- ELSE IF NOT .workflow/roadmap.md exists AND milestone_artifacts.length > 0:
101
- Display WARNING:
102
- ⚠️ Roadmap missing but artifact registry has {milestone_artifacts.length} entries.
103
- This may indicate a completed milestone. Run /maestro continue to plan next milestone.
52
+ If roadmap exists → warn if any artifacts reference phases not in roadmap (orphan check)
53
+ If roadmap missing but artifacts exist warn: may indicate completed milestone, suggest /maestro continue
104
54
  ```
105
55
 
106
56
  ---
107
57
 
108
58
  ## Step 3: Compute Progress
109
59
 
110
- 1. Count by status:
111
- ```
112
- total = phases.length
113
- completed = phases.filter(status == "completed").length
114
- executing = phases.filter(status == "executing").length
115
- planning = phases.filter(status == "planning").length
116
- exploring = phases.filter(status == "exploring").length
117
- pending = phases.filter(status == "pending").length
118
- blocked = phases.filter(status == "blocked").length
119
- ```
120
-
121
- 2. Calculate overall progress:
122
- ```
123
- progress_pct = (completed / total) * 100
124
- ```
60
+ ```
61
+ Count phases by status: completed, executing, planning, exploring, pending, blocked
62
+ progress_pct = (completed / total) * 100
63
+ ```
125
64
 
126
65
  ---
127
66
 
128
67
  ## Step 4: Display Dashboard
129
68
 
130
69
  ```
131
- ====================================================
132
- PROJECT: {project_name}
133
- MILESTONE: {current_milestone}
134
- STATUS: {status}
135
- PROGRESS: [{progress_bar}] {completed}/{total} phases ({progress_pct}%)
136
- ====================================================
137
-
138
- PHASES:
139
- {for each phase}
140
- [{status_icon}] Phase {number}: {title}
141
- Status: {status}
142
- Tasks: {tasks_completed}/{tasks_total}
143
- Verification: {verification_status}
144
- {/for}
145
-
146
- CONTEXT:
147
- Key Decisions: {key_decisions, comma-separated}
148
- Blockers: {blockers or "none"}
149
- Deferred: {deferred or "none"}
150
-
151
- ====================================================
70
+ PROJECT / MILESTONE / STATUS / PROGRESS bar ({completed}/{total} phases)
71
+ Per phase: [{status_icon}] Phase {N}: {title} — status, task counts, verification
72
+ CONTEXT: key_decisions, blockers, deferred
152
73
  ```
153
74
 
154
75
  ### Step 4.1: Render Issue Summary
155
76
 
156
- If issue_state is not null:
77
+ If issue_state exists: display ISSUES panel (open count, critical count, by-status breakdown, critical issues list).
78
+ - Omit critical sub-section if none. Note blockers→issues migration if applicable. Note deferred items.
157
79
 
158
- ```
159
- ┌─────────────────────────────────────────┐
160
- │ ISSUES │
161
- ├─────────────────────────────────────────┤
162
- │ Open: {total_open} │
163
- │ Critical: {critical_open} │
164
- │ By Status: │
165
- │ registered: {N} | diagnosed: {N} │
166
- │ planning: {N} | planned: {N} │
167
- │ executing: {N} │
168
- │ │
169
- │ Critical Issues: │
170
- │ {id} | {title (truncated 40ch)} | {status} │
171
- │ ... │
172
- └─────────────────────────────────────────┘
173
- ```
174
-
175
- If critical_issues is empty, omit the "Critical Issues:" sub-section.
176
-
177
- If accumulated_context.blockers is non-empty AND issue_state has critical issues:
178
- - Print: "Note: Blockers are now tracked as critical issues in .workflow/issues/issues.jsonl"
179
-
180
- If accumulated_context.deferred is non-empty:
181
- - Print: "Note: Deferred items are tracked as deferred issues. Use /manage-issue list --status deferred"
182
-
183
- Else (issue_state is null):
184
- - Print: "ISSUES: No issues tracked. Use /manage-issue create or /maestro-verify to discover issues."
80
+ If issue_state is null: "No issues tracked. Use /manage-issue create or /maestro-verify to discover issues."
185
81
 
186
82
  Status icons:
187
83
  - `[x]` completed
@@ -193,36 +89,9 @@ Status icons:
193
89
  ### Step 4.2: Render Worktree Status
194
90
 
195
91
  ```
196
- IF file_exists(".workflow/worktree-scope.json"):
197
- // Running inside a worktree
198
- Read .workflow/worktree-scope.json scope
199
- Display:
200
- ┌─────────────────────────────────────────┐
201
- │ WORKTREE MODE │
202
- ├─────────────────────────────────────────┤
203
- │ Milestone: {scope.milestone} │
204
- │ Branch: {scope.branch} │
205
- │ Phases: {scope.owned_phases} │
206
- │ Main: {scope.main_worktree} │
207
- └─────────────────────────────────────────┘
208
-
209
- ELSE IF file_exists(".workflow/worktrees.json"):
210
- // Running in main worktree with active worktrees
211
- Read .workflow/worktrees.json → registry
212
- activeWorktrees = registry.worktrees.filter(w => w.status === "active")
213
-
214
- IF activeWorktrees.length > 0:
215
- Display:
216
- ┌─────────────────────────────────────────┐
217
- │ ACTIVE WORKTREES │
218
- ├─────────────────────────────────────────┤
219
- {for each wt in activeWorktrees}
220
- │ {wt.milestone} | {wt.branch} | {wt.path} │
221
- {/for}
222
- │ │
223
- │ Sync: /maestro-fork <milestone> --sync │
224
- │ Merge: /maestro-merge <milestone> │
225
- └─────────────────────────────────────────┘
92
+ If .workflow/worktree-scope.json exists → WORKTREE MODE panel: milestone, branch, owned_phases, main_worktree
93
+ Else if .workflow/worktrees.json has active entries → ACTIVE WORKTREES panel: milestone/branch/path per worktree,
94
+ with sync (/maestro-fork --sync) and merge (/maestro-merge) hints
226
95
  ```
227
96
 
228
97
  ---
@@ -231,49 +100,38 @@ ELSE IF file_exists(".workflow/worktrees.json"):
231
100
 
232
101
  ### Step 5.0: Issue-Aware Routing
233
102
 
234
- If issue_state is not null, evaluate issue-based recommendations BEFORE status routing:
235
-
236
- If critical_open > 0:
237
- - Recommend: "{critical_open} critical issues require attention"
238
- - Suggest: Skill({ skill: "manage-issue", args: "list --severity critical" })
239
- - Suggest: Skill({ skill: "quality-debug", args: "--from-uat" })
240
-
241
- If by_status.diagnosed > 0:
242
- - Recommend: "{diagnosed} issues diagnosed and ready for planning"
243
- - Suggest: Skill({ skill: "maestro-plan", args: "--gaps" })
244
-
245
- If by_status.registered > 0:
246
- - Recommend: "{registered} new issues need investigation"
247
- - Suggest: Skill({ skill: "quality-debug" })
103
+ If issue_state exists, evaluate BEFORE status routing:
104
+ - critical_open > 0 → suggest manage-issue list --severity critical, quality-debug --from-uat
105
+ - diagnosed > 0 → suggest maestro-plan --gaps
106
+ - registered > 0 suggest quality-debug
248
107
 
249
108
  ### Step 5.1: Status-Based Routing
250
109
 
251
- Based on current project status, suggest the next command:
252
-
253
- ```
254
- STATUS ROUTING TABLE:
255
- -------------------------------------------------------------
256
- Current Status | Suggested Command | Reason
257
- -------------------------------------------------------------
258
- idle | /workflow:init | Project needs initialization
259
- exploring | /maestro-analyze -q | Continue exploration, lock decisions
260
- | /workflow:plan {phase} | Ready to plan
261
- planning | /workflow:plan {phase} | Resume planning
262
- executing | /workflow:execute {phase} | Resume execution
263
- verifying | /workflow:verify {phase} | Complete verification
264
- | /workflow:review {phase} | Code quality review
265
- | /workflow:test {phase} | Run tests
266
- reviewing | /workflow:review {phase} | Complete review
267
- testing | /workflow:test {phase} | Complete testing
268
- completed (phase) | /workflow:phase-transition | Move to next phase
269
- completed (all) | /workflow:milestone-audit | Audit milestone
270
- blocked | /workflow:debug | Resolve blockers
271
- -------------------------------------------------------------
272
- ```
110
+ Based on current project state, suggest the next command:
111
+
112
+ | Current State | Suggested Command |
113
+ |---|---|
114
+ | No phases planned | /maestro-brainstorm 1 or /maestro-plan 1 |
115
+ | Phase pending, needs analysis | /maestro-analyze \<N\> |
116
+ | Phase pending, needs decisions | /maestro-analyze \<N\> -q |
117
+ | Phase planned, not executed | /maestro-execute \<N\> |
118
+ | Phase executing, tasks blocked | /quality-debug \<N\> |
119
+ | Phase executed, not verified | /maestro-verify \<N\> |
120
+ | Phase verified with gaps | /maestro-plan \<N\> --gaps |
121
+ | Phase verified, not reviewed | /quality-review \<N\> |
122
+ | Phase reviewed, BLOCK verdict | /maestro-plan \<N\> --gaps |
123
+ | Phase reviewed, PASS/WARN | /quality-test \<N\> |
124
+ | Low test coverage | /quality-test-gen \<N\> |
125
+ | UAT passed, all phases done | /maestro-milestone-audit |
126
+ | UAT has failures | /quality-debug --from-uat \<N\> |
127
+ | Need integration tests | /quality-integration-test \<N\> |
128
+ | All milestone phases complete | /maestro-milestone-audit |
129
+ | Milestone audit passed | /maestro-milestone-complete |
130
+ | Ad-hoc small task | /maestro-quick \<task\> |
273
131
 
274
132
  Display:
275
133
  ```
276
- NEXT STEP: /workflow:{suggested_command}
134
+ NEXT STEP: {suggested_command}
277
135
  {reason}
278
136
  ```
279
137
 
package/workflows/sync.md CHANGED
@@ -27,42 +27,24 @@ Change detection, impact chain traversal, and codebase documentation synchroniza
27
27
  ### Step 1: Parse Input and Validate
28
28
 
29
29
  ```
30
- Parse $ARGUMENTS for flags:
31
- --full = complete resync mode (process all tracked files)
32
- --since <ref> = diff since specific commit or ref
33
- --dry-run = preview mode, no writes
34
- No flags = incremental sync since last tracked sync point
35
-
36
- Verify .workflow/ directory exists.
37
- If not initialized: abort with E001.
30
+ Parse flags: --full (resync all), --since <ref> (diff baseline), --dry-run (preview)
31
+ Default: incremental sync since last tracked sync point
32
+ Require .workflow/ exists else abort E001
38
33
  ```
39
34
 
40
35
  ### Step 2: Detect Changed Files
41
36
 
42
37
  ```
43
- If --full flag:
44
- Collect all files tracked in doc-index.json code_locations as changed_files[]
45
-
46
- Else:
47
- Run: git diff --name-only <since-ref>
48
- If --since not provided: git diff --name-only HEAD~1
49
- If no prior commit: git diff --name-only --cached
50
-
51
- Output: changed_files[] — list of file paths that changed
52
-
53
- If no files changed: emit W001 ("No changes detected") and exit.
38
+ --full → collect all files from doc-index.json code_locations
39
+ else git diff --name-only <since-ref|HEAD~1|--cached>
40
+ No files changed → emit W001, exit
54
41
  ```
55
42
 
56
43
  ### Step 3: Load Doc Index
57
44
 
58
45
  ```
59
- Read: .workflow/codebase/doc-index.json
60
-
61
- Extract:
62
- - components[] (with code_locations, feature_ids, symbols)
63
- - features[] (with component_ids, requirement_ids)
64
- - requirements[]
65
- - architecture_decisions[]
46
+ Read .workflow/codebase/doc-index.json
47
+ Extract: components[], features[], requirements[], architecture_decisions[]
66
48
  ```
67
49
 
68
50
  ### Step 4: Impact Chain Traversal
@@ -70,150 +52,55 @@ Extract:
70
52
  For each `changed_file` in `changed_files[]`:
71
53
 
72
54
  ```
73
- a. Find matching components:
74
- Filter components where code_locations[] contains changed_file
75
- (use path matching file may be relative or absolute)
76
-
77
- b. From components -> find features:
78
- For each matched component:
79
- Collect feature_ids from the component entry
80
- OR: Find features where component_ids[] contains the component.id
81
-
82
- c. From features -> find requirements:
83
- For each matched feature:
84
- Collect requirement_ids from the feature entry
85
- OR: Find requirements where feature_id matches
86
-
87
- d. Aggregate all affected:
88
- affected = {
89
- files: [changed_file],
90
- components: [unique component entries],
91
- features: [unique feature entries],
92
- requirements: [unique requirement entries]
93
- }
55
+ Traverse impact chain: file → components (via code_locations match)
56
+ features (via component.feature_ids) requirements (via feature.requirement_ids)
57
+ Aggregate deduplicated: { files, components, features, requirements }
94
58
  ```
95
59
 
96
- Deduplicate across all changed files to build the total impact set.
97
-
98
60
  ### Step 5: Update Doc Index (skip if --dry-run)
99
61
 
100
62
  ```
101
- For each affected component in doc-index.json:
102
- Update last_updated timestamp
103
- Re-scan code_locations to refresh symbols[] if the component's files changed
104
- - Read each code_location file
105
- - Extract exported symbols (classes, functions, interfaces, types, constants)
106
- - Update symbols[] array
107
-
108
- For each affected feature in doc-index.json:
109
- Update last_updated timestamp
110
- Update status if needed (based on component changes)
111
-
63
+ Affected components refresh last_updated, re-scan code_locations for exported symbols[]
64
+ Affected features → refresh last_updated, update status from component changes
112
65
  Write updated doc-index.json
113
66
  ```
114
67
 
115
68
  ### Step 6: Regenerate Affected Docs (skip if --dry-run)
116
69
 
117
70
  ```
118
- For each affected component:
119
- Regenerate .workflow/codebase/tech-registry/{component-slug}.md
120
- Content template:
121
- # {component.name}
122
- - **ID**: {component.id}
123
- - **Type**: {component.type}
124
- - **Code Locations**: {code_locations joined}
125
- - **Features**: {feature_ids joined}
126
- ## Symbols
127
- {symbols as bullet list}
128
- ## Last Updated
129
- {timestamp}
130
-
131
- For each affected feature:
132
- Regenerate .workflow/codebase/feature-maps/{feature-slug}.md
133
- Content template:
134
- # {feature.name}
135
- - **ID**: {feature.id}
136
- - **Status**: {feature.status}
137
- - **Phase**: {feature.phase}
138
- - **Components**: {component_ids joined}
139
- - **Requirements**: {requirement_ids joined}
140
- ## Component Details
141
- {for each component: name, type, key symbols}
142
- ## Last Updated
143
- {timestamp}
71
+ Affected components regenerate .workflow/codebase/tech-registry/{component-slug}.md
72
+ Template: name, id, type, code_locations, feature_ids, symbols list, timestamp
73
+
74
+ Affected features → regenerate .workflow/codebase/feature-maps/{feature-slug}.md
75
+ Template: name, id, status, phase, component_ids, requirement_ids, component details, timestamp
144
76
  ```
145
77
 
146
78
  ### Step 7: Update State and Specs (skip if --dry-run)
147
79
 
148
80
  ```
149
- Update state.json:
150
- - Set last_sync timestamp to current time
151
- - Record change summary (files changed, components/features affected)
152
- - Update last_updated timestamp
153
-
154
- Update index.json:
155
- - For each affected phase (if phase-scoped files changed), update the phase index
81
+ state.json → set last_sync timestamp, record change summary, update last_updated
82
+ index.json update affected phase indexes
156
83
 
157
- Check if changes warrant spec updates:
158
- - If patterns or conventions changed: append learnings to relevant spec files
159
- - If new architectural patterns emerged: note in appropriate spec
160
- - Skip if no spec-relevant changes detected
84
+ Spec updates: if patterns/conventions changed → append learnings to relevant spec files
161
85
 
162
- Check if dependency manifests changed (project.md Tech Stack refresh):
163
- dependency_files = ["package.json", "go.mod", "pyproject.toml", "Cargo.toml",
164
- "requirements.txt", "pom.xml", "build.gradle", "Gemfile"]
165
- changed_deps = changed_files.filter(f => dependency_files.includes(basename(f)))
166
- If changed_deps.length > 0 AND .workflow/project.md exists:
167
- Re-scan dependency manifests for current tech stack
168
- Update .workflow/project.md Tech Stack section with detected changes
169
- Display: "project.md: Tech Stack refreshed from {changed_deps.join(', ')}"
86
+ Dependency manifest check (package.json, go.mod, pyproject.toml, Cargo.toml,
87
+ requirements.txt, pom.xml, build.gradle, Gemfile):
88
+ If any changed AND .workflow/project.md exists → refresh Tech Stack section
170
89
  ```
171
90
 
172
91
  ### Step 8: Create Action Log
173
92
 
174
93
  ```
175
- Determine action hash:
176
- git rev-parse --short HEAD (or use the since-ref hash)
177
-
94
+ hash = git rev-parse --short HEAD (or since-ref)
178
95
  Write .workflow/codebase/action-logs/{hash}.md:
179
-
180
- # Changes in {hash}
181
-
182
- **Date**: {ISO timestamp}
183
- **Sync Baseline**: {since-ref}
184
-
185
- ## Files Changed
186
- {bullet list of changed_files}
187
-
188
- ## Components Affected
189
- {bullet list: component.id - component.name (component.type)}
190
-
191
- ## Features Affected
192
- {bullet list: feature.id - feature.name}
193
-
194
- ## Requirements Affected
195
- {bullet list: requirement.id - requirement.title}
196
-
197
- ## Impact Summary
198
- - Files changed: {count}
199
- - Components affected: {count}
200
- - Features affected: {count}
201
- - Requirements affected: {count}
96
+ Sections: date, baseline, files changed, components/features/requirements affected, impact counts
202
97
  ```
203
98
 
204
99
  ### Step 9: Report
205
100
 
206
- Display summary to user:
207
-
208
101
  ```
209
- Sync complete:
210
- Changed files: N
211
- Components affected: N (list IDs)
212
- Features affected: N (list IDs)
213
- Requirements affected: N (list IDs)
214
- Specs updated: {list or "none"}
215
- Action log: .workflow/codebase/action-logs/{hash}.md
216
- If --dry-run: note that no changes were written
102
+ Display: changed files count, affected components/features/requirements (with IDs),
103
+ specs updated, action log path. Note if --dry-run (no writes).
217
104
  ```
218
105
 
219
106
  ---