maestro-flow 0.3.11 → 0.3.13

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 (339) hide show
  1. package/.claude/CLAUDE.md +7 -0
  2. package/.claude/agents/conceptual-planning-agent.md +1 -0
  3. package/.claude/agents/workflow-analyzer.md +113 -114
  4. package/.claude/agents/workflow-collab-planner.md +143 -144
  5. package/.claude/agents/workflow-debugger.md +101 -103
  6. package/.claude/agents/workflow-executor.md +127 -128
  7. package/.claude/agents/workflow-integration-checker.md +82 -82
  8. package/.claude/agents/workflow-nyquist-auditor.md +84 -84
  9. package/.claude/agents/workflow-phase-researcher.md +85 -85
  10. package/.claude/agents/workflow-plan-checker.md +90 -90
  11. package/.claude/agents/workflow-planner.md +177 -178
  12. package/.claude/agents/workflow-roadmapper.md +81 -83
  13. package/.claude/agents/workflow-verifier.md +118 -119
  14. package/.claude/commands/learn-retro.md +2 -2
  15. package/.claude/commands/learn-second-opinion.md +2 -2
  16. package/.claude/commands/maestro-analyze.md +10 -2
  17. package/.claude/commands/maestro-brainstorm.md +2 -1
  18. package/.claude/commands/maestro-execute.md +21 -4
  19. package/.claude/commands/maestro-fork.md +133 -111
  20. package/.claude/commands/maestro-merge.md +85 -77
  21. package/.claude/commands/maestro-milestone-complete.md +14 -0
  22. package/.claude/commands/maestro-plan.md +100 -8
  23. package/.claude/commands/maestro-roadmap.md +113 -2
  24. package/.claude/commands/maestro-ui-design.md +7 -7
  25. package/.claude/commands/maestro-update.md +176 -0
  26. package/.claude/commands/maestro-verify.md +18 -3
  27. package/.claude/commands/maestro.md +1 -0
  28. package/.claude/commands/manage-codebase-rebuild.md +0 -1
  29. package/.claude/commands/manage-harvest.md +1 -1
  30. package/.claude/commands/manage-learn.md +5 -5
  31. package/.claude/commands/manage-memory-capture.md +4 -4
  32. package/.claude/commands/manage-memory.md +1 -1
  33. package/.claude/commands/manage-wiki.md +62 -0
  34. package/.claude/commands/quality-business-test.md +5 -5
  35. package/.claude/commands/quality-debug.md +53 -6
  36. package/.claude/commands/quality-retrospective.md +9 -7
  37. package/.claude/commands/quality-review.md +39 -7
  38. package/.claude/commands/quality-sync.md +1 -1
  39. package/.claude/commands/quality-test-gen.md +5 -4
  40. package/.claude/commands/quality-test.md +45 -12
  41. package/.claude/commands/spec-remove.md +51 -0
  42. package/.claude/commands/spec-setup.md +1 -3
  43. package/.claude/commands/wiki-connect.md +9 -5
  44. package/.claude/commands/wiki-digest.md +6 -3
  45. package/.codex/skills/maestro/SKILL.md +2 -2
  46. package/.codex/skills/maestro-analyze/SKILL.md +4 -4
  47. package/.codex/skills/maestro-brainstorm/SKILL.md +4 -4
  48. package/.codex/skills/maestro-coordinate/SKILL.md +2 -2
  49. package/.codex/skills/maestro-execute/SKILL.md +15 -5
  50. package/.codex/skills/maestro-fork/SKILL.md +98 -68
  51. package/.codex/skills/maestro-init/SKILL.md +5 -4
  52. package/.codex/skills/maestro-merge/SKILL.md +69 -62
  53. package/.codex/skills/maestro-milestone-complete/SKILL.md +18 -1
  54. package/.codex/skills/maestro-plan/SKILL.md +6 -6
  55. package/.codex/skills/maestro-roadmap/SKILL.md +3 -4
  56. package/.codex/skills/maestro-spec-generate/SKILL.md +2 -2
  57. package/.codex/skills/maestro-ui-design/SKILL.md +6 -6
  58. package/.codex/skills/maestro-verify/SKILL.md +29 -20
  59. package/.codex/skills/manage-codebase-rebuild/SKILL.md +4 -4
  60. package/.codex/skills/manage-harvest/SKILL.md +10 -1
  61. package/.codex/skills/manage-issue-discover/SKILL.md +3 -3
  62. package/.codex/skills/manage-learn/SKILL.md +3 -2
  63. package/.codex/skills/manage-memory/SKILL.md +3 -3
  64. package/.codex/skills/manage-memory-capture/SKILL.md +8 -14
  65. package/.codex/skills/manage-status/SKILL.md +9 -4
  66. package/.codex/skills/manage-wiki/SKILL.md +55 -0
  67. package/.codex/skills/quality-business-test/SKILL.md +8 -6
  68. package/.codex/skills/quality-debug/SKILL.md +22 -9
  69. package/.codex/skills/quality-integration-test/SKILL.md +11 -7
  70. package/.codex/skills/quality-retrospective/SKILL.md +48 -29
  71. package/.codex/skills/quality-review/SKILL.md +10 -7
  72. package/.codex/skills/quality-test/SKILL.md +10 -5
  73. package/.codex/skills/quality-test-gen/SKILL.md +13 -9
  74. package/.codex/skills/spec-add/SKILL.md +11 -3
  75. package/.codex/skills/spec-load/SKILL.md +7 -0
  76. package/.codex/skills/spec-map/SKILL.md +2 -2
  77. package/.codex/skills/spec-remove/SKILL.md +101 -0
  78. package/.codex/skills/spec-setup/SKILL.md +4 -8
  79. package/.codex/skills/wiki-connect/SKILL.md +6 -5
  80. package/.codex/skills/wiki-digest/SKILL.md +2 -2
  81. package/README.md +2 -0
  82. package/README.zh-CN.md +2 -0
  83. package/dashboard/dist/assets/{ArtifactsPage-DZNCi6tn.js → ArtifactsPage-CUrrDGgN.js} +1 -1
  84. package/dashboard/dist/assets/ChatInput-pUOLJIKE.js +49 -0
  85. package/dashboard/dist/assets/ChatPage-B8Xqkt0v.js +27 -0
  86. package/dashboard/dist/assets/{CollabPage-B4NAHXS2.js → CollabPage-DIUXeazv.js} +1 -1
  87. package/dashboard/dist/assets/{ExecutionPanel-CFt4LJyq.js → ExecutionPanel-VmYeADFj.js} +1 -1
  88. package/dashboard/dist/assets/KanbanPage-DLq8v7hg.js +21 -0
  89. package/dashboard/dist/assets/{MarkdownRenderer-X4af_WNb.js → MarkdownRenderer-D7AehrnR.js} +1 -1
  90. package/dashboard/dist/assets/{McpPage-BKfCVIyU.js → McpPage-BY0SjTgw.js} +2 -2
  91. package/dashboard/dist/assets/{OutputPanel-BlBQFJSW.js → OutputPanel-B-Rjwgmv.js} +1 -1
  92. package/dashboard/dist/assets/{ProblemsPanel-De3DLvoI.js → ProblemsPanel-GEpF-oi4.js} +1 -1
  93. package/dashboard/dist/assets/RequirementBoardPage-xs8uDM7I.js +6 -0
  94. package/dashboard/dist/assets/{RequirementPage-Bllxe2XI.js → RequirementPage-BKDSFwjA.js} +5 -10
  95. package/dashboard/dist/assets/SpecsPage-DLFb9ZH0.js +36 -0
  96. package/dashboard/dist/assets/SupervisorPage-SOki_kgz.js +6 -0
  97. package/dashboard/dist/assets/TeamsPage-BO2kP70F.js +11 -0
  98. package/dashboard/dist/assets/{TreeBrowser-Q12qobZs.js → TreeBrowser-B9DHdULE.js} +1 -1
  99. package/dashboard/dist/assets/{WorkflowPage-D_Fzdy3_.js → WorkflowPage-C8hWbYim.js} +1 -1
  100. package/dashboard/dist/assets/{check-u6fGOwQO.js → check-DJDk3A2a.js} +1 -1
  101. package/dashboard/dist/assets/{chevron-right-Csu22t58.js → chevron-right-C7bVDreZ.js} +1 -1
  102. package/dashboard/dist/assets/{circle-CMrkbRNg.js → circle-Qfgy4LB_.js} +1 -1
  103. package/dashboard/dist/assets/{circle-alert-c3tH1P4z.js → circle-alert-Na1vf6qQ.js} +1 -1
  104. package/dashboard/dist/assets/{circle-check-gYxxSYuH.js → circle-check-CEGgy3NV.js} +1 -1
  105. package/dashboard/dist/assets/{circle-check-big-TDSeWstm.js → circle-check-big-3JB8zRYj.js} +1 -1
  106. package/dashboard/dist/assets/{code-CFN2uX9V.js → code-Ble63Idz.js} +1 -1
  107. package/dashboard/dist/assets/{columns-3-38xIDlzy.js → columns-3-BUcKlxve.js} +1 -1
  108. package/dashboard/dist/assets/{download-DC7KkKyP.js → download-CMqkfn8x.js} +1 -1
  109. package/dashboard/dist/assets/{folder-CWq_lAnf.js → folder-B9ewx9LL.js} +1 -1
  110. package/dashboard/dist/assets/index-C2Mcb4TJ.js +231 -0
  111. package/dashboard/dist/assets/index-DyBbPc18.css +1 -0
  112. package/dashboard/dist/assets/{index-Do71weNR.js → index-JTmGteaT.js} +1 -1
  113. package/dashboard/dist/assets/{list-CgIP_2A-.js → list-DI8Wn2aT.js} +1 -1
  114. package/dashboard/dist/assets/loader-B5F6PzFT.js +11 -0
  115. package/dashboard/dist/assets/{minus-DYoN5UGk.js → minus-Lp_BfctG.js} +1 -1
  116. package/dashboard/dist/assets/{pen-line-Bh_WKYHm.js → pen-line-Ch7sphzZ.js} +1 -1
  117. package/dashboard/dist/assets/pencil-_yRMHmGT.js +6 -0
  118. package/dashboard/dist/assets/{proxy-BKxDAKTj.js → proxy-D72Y8a4Y.js} +1 -1
  119. package/dashboard/dist/assets/{search-SieXnOgr.js → search-BS6fI6Bg.js} +1 -1
  120. package/dashboard/dist/assets/{shallow-Bme1JY57.js → shallow-BXasQBvr.js} +1 -1
  121. package/dashboard/dist/assets/table-CeGlFjlP.js +6 -0
  122. package/dashboard/dist/assets/{terminal-BB3Xfuv5.js → terminal-BJic2yW-.js} +1 -1
  123. package/dashboard/dist/assets/{trash-2-C8f4vFFM.js → trash-2-Czz4X8Fb.js} +1 -1
  124. package/dashboard/dist/assets/{zap-4uwlzVm0.js → zap-C3H0jVFA.js} +1 -1
  125. package/dashboard/dist/index.html +2 -2
  126. package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js +16 -1
  127. package/dashboard/dist-server/dashboard/src/server/agents/agent-manager.js.map +1 -1
  128. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.d.ts +9 -0
  129. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js +109 -9
  130. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js.map +1 -1
  131. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.test.js +49 -0
  132. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.test.js.map +1 -1
  133. package/dashboard/dist-server/dashboard/src/server/agents/delegate-broker-monitor.js +1 -2
  134. package/dashboard/dist-server/dashboard/src/server/agents/delegate-broker-monitor.js.map +1 -1
  135. package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.d.ts +1 -1
  136. package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.js +2 -1
  137. package/dashboard/dist-server/dashboard/src/server/commander/commander-prompts.js.map +1 -1
  138. package/dashboard/dist-server/dashboard/src/server/index.js +3 -0
  139. package/dashboard/dist-server/dashboard/src/server/index.js.map +1 -1
  140. package/dashboard/dist-server/dashboard/src/server/routes/collab.js +124 -0
  141. package/dashboard/dist-server/dashboard/src/server/routes/collab.js.map +1 -1
  142. package/dashboard/dist-server/dashboard/src/server/routes/index.js +5 -4
  143. package/dashboard/dist-server/dashboard/src/server/routes/index.js.map +1 -1
  144. package/dashboard/dist-server/dashboard/src/server/routes/specs.d.ts +5 -13
  145. package/dashboard/dist-server/dashboard/src/server/routes/specs.js +97 -155
  146. package/dashboard/dist-server/dashboard/src/server/routes/specs.js.map +1 -1
  147. package/dashboard/dist-server/dashboard/src/server/routes/wiki.d.ts +11 -1
  148. package/dashboard/dist-server/dashboard/src/server/routes/wiki.integration.test.js +27 -6
  149. package/dashboard/dist-server/dashboard/src/server/routes/wiki.integration.test.js.map +1 -1
  150. package/dashboard/dist-server/dashboard/src/server/routes/wiki.js +25 -7
  151. package/dashboard/dist-server/dashboard/src/server/routes/wiki.js.map +1 -1
  152. package/dashboard/dist-server/dashboard/src/server/wiki/graph-analysis.js +8 -0
  153. package/dashboard/dist-server/dashboard/src/server/wiki/graph-analysis.js.map +1 -1
  154. package/dashboard/dist-server/dashboard/src/server/wiki/search.js +1 -0
  155. package/dashboard/dist-server/dashboard/src/server/wiki/search.js.map +1 -1
  156. package/dashboard/dist-server/dashboard/src/server/wiki/spec-entry-parser.d.ts +29 -0
  157. package/dashboard/dist-server/dashboard/src/server/wiki/spec-entry-parser.js +148 -0
  158. package/dashboard/dist-server/dashboard/src/server/wiki/spec-entry-parser.js.map +1 -0
  159. package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js +4 -2
  160. package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js.map +1 -1
  161. package/dashboard/dist-server/dashboard/src/server/wiki/virtual-wiki-adapters.js +8 -2
  162. package/dashboard/dist-server/dashboard/src/server/wiki/virtual-wiki-adapters.js.map +1 -1
  163. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.d.ts +5 -0
  164. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js +80 -38
  165. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js.map +1 -1
  166. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.test.js +8 -6
  167. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.test.js.map +1 -1
  168. package/dashboard/dist-server/dashboard/src/server/wiki/wiki-types.d.ts +40 -5
  169. package/dashboard/dist-server/dashboard/src/server/wiki/writer-stress.test.js +21 -23
  170. package/dashboard/dist-server/dashboard/src/server/wiki/writer-stress.test.js.map +1 -1
  171. package/dashboard/dist-server/dashboard/src/server/wiki/writer.d.ts +33 -3
  172. package/dashboard/dist-server/dashboard/src/server/wiki/writer.js +184 -12
  173. package/dashboard/dist-server/dashboard/src/server/wiki/writer.js.map +1 -1
  174. package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.d.ts +10 -0
  175. package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.js +73 -0
  176. package/dashboard/dist-server/dashboard/src/server/ws/handlers/team-handler.js.map +1 -0
  177. package/dashboard/dist-server/dashboard/src/shared/collab-types.d.ts +31 -0
  178. package/dashboard/dist-server/dashboard/src/shared/collab-types.js +28 -0
  179. package/dashboard/dist-server/dashboard/src/shared/collab-types.js.map +1 -1
  180. package/dashboard/dist-server/dashboard/src/shared/constants.js +5 -0
  181. package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
  182. package/dashboard/dist-server/dashboard/src/shared/coordinate-types.d.ts +22 -0
  183. package/dashboard/dist-server/dashboard/src/shared/issue-types.d.ts +12 -0
  184. package/dashboard/dist-server/dashboard/src/shared/issue-types.js +12 -0
  185. package/dashboard/dist-server/dashboard/src/shared/issue-types.js.map +1 -1
  186. package/dashboard/dist-server/dashboard/src/shared/team-types.d.ts +1 -0
  187. package/dashboard/dist-server/dashboard/src/shared/team-types.js +7 -0
  188. package/dashboard/dist-server/dashboard/src/shared/team-types.js.map +1 -1
  189. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.d.ts +27 -1
  190. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.js.map +1 -1
  191. package/dashboard/dist-server/shared/agent-types.d.ts +4 -0
  192. package/dashboard/dist-server/src/commands/delegate.js +26 -0
  193. package/dashboard/dist-server/src/commands/delegate.js.map +1 -1
  194. package/dashboard/dist-server/src/coordinator/graph-types.d.ts +11 -1
  195. package/dashboard/dist-server/src/coordinator/graph-walker.js +29 -2
  196. package/dashboard/dist-server/src/coordinator/graph-walker.js.map +1 -1
  197. package/dashboard/dist-server/src/coordinator/prompt-assembler.js +3 -2
  198. package/dashboard/dist-server/src/coordinator/prompt-assembler.js.map +1 -1
  199. package/dashboard/dist-server/src/hooks/constants.d.ts +29 -60
  200. package/dashboard/dist-server/src/hooks/constants.js +105 -82
  201. package/dashboard/dist-server/src/hooks/constants.js.map +1 -1
  202. package/dashboard/dist-server/src/types/index.d.ts +2 -1
  203. package/dist/shared/agent-types.d.ts +4 -0
  204. package/dist/shared/agent-types.d.ts.map +1 -1
  205. package/dist/src/commands/delegate.d.ts.map +1 -1
  206. package/dist/src/commands/delegate.js +26 -0
  207. package/dist/src/commands/delegate.js.map +1 -1
  208. package/dist/src/commands/hooks.d.ts +2 -4
  209. package/dist/src/commands/hooks.d.ts.map +1 -1
  210. package/dist/src/commands/hooks.js +4 -7
  211. package/dist/src/commands/hooks.js.map +1 -1
  212. package/dist/src/commands/install-backend.d.ts.map +1 -1
  213. package/dist/src/commands/install-backend.js +29 -18
  214. package/dist/src/commands/install-backend.js.map +1 -1
  215. package/dist/src/commands/install-ui/InstallConfirm.d.ts +2 -3
  216. package/dist/src/commands/install-ui/InstallConfirm.d.ts.map +1 -1
  217. package/dist/src/commands/install-ui/InstallConfirm.js +1 -1
  218. package/dist/src/commands/install-ui/InstallConfirm.js.map +1 -1
  219. package/dist/src/commands/install-ui/InstallExecution.d.ts.map +1 -1
  220. package/dist/src/commands/install-ui/InstallExecution.js +1 -2
  221. package/dist/src/commands/install-ui/InstallExecution.js.map +1 -1
  222. package/dist/src/commands/install-ui/InstallFlow.d.ts.map +1 -1
  223. package/dist/src/commands/install-ui/InstallFlow.js +5 -7
  224. package/dist/src/commands/install-ui/InstallFlow.js.map +1 -1
  225. package/dist/src/commands/install-ui/StatuslineConfig.d.ts +3 -6
  226. package/dist/src/commands/install-ui/StatuslineConfig.d.ts.map +1 -1
  227. package/dist/src/commands/install-ui/StatuslineConfig.js +21 -17
  228. package/dist/src/commands/install-ui/StatuslineConfig.js.map +1 -1
  229. package/dist/src/commands/update.d.ts.map +1 -1
  230. package/dist/src/commands/update.js +95 -0
  231. package/dist/src/commands/update.js.map +1 -1
  232. package/dist/src/commands/wiki.d.ts.map +1 -1
  233. package/dist/src/commands/wiki.js +75 -11
  234. package/dist/src/commands/wiki.js.map +1 -1
  235. package/dist/src/coordinator/graph-types.d.ts +11 -1
  236. package/dist/src/coordinator/graph-types.d.ts.map +1 -1
  237. package/dist/src/coordinator/graph-walker.d.ts.map +1 -1
  238. package/dist/src/coordinator/graph-walker.js +29 -2
  239. package/dist/src/coordinator/graph-walker.js.map +1 -1
  240. package/dist/src/coordinator/prompt-assembler.d.ts.map +1 -1
  241. package/dist/src/coordinator/prompt-assembler.js +3 -2
  242. package/dist/src/coordinator/prompt-assembler.js.map +1 -1
  243. package/dist/src/hooks/__tests__/statusline-visual-test.d.ts +4 -1
  244. package/dist/src/hooks/__tests__/statusline-visual-test.d.ts.map +1 -1
  245. package/dist/src/hooks/__tests__/statusline-visual-test.js +55 -152
  246. package/dist/src/hooks/__tests__/statusline-visual-test.js.map +1 -1
  247. package/dist/src/hooks/constants.d.ts +29 -60
  248. package/dist/src/hooks/constants.d.ts.map +1 -1
  249. package/dist/src/hooks/constants.js +105 -82
  250. package/dist/src/hooks/constants.js.map +1 -1
  251. package/dist/src/hooks/skill-context.d.ts +3 -0
  252. package/dist/src/hooks/skill-context.d.ts.map +1 -1
  253. package/dist/src/hooks/skill-context.js +149 -15
  254. package/dist/src/hooks/skill-context.js.map +1 -1
  255. package/dist/src/hooks/statusline.d.ts +11 -8
  256. package/dist/src/hooks/statusline.d.ts.map +1 -1
  257. package/dist/src/hooks/statusline.js +284 -179
  258. package/dist/src/hooks/statusline.js.map +1 -1
  259. package/dist/src/hooks/workspace.d.ts.map +1 -1
  260. package/dist/src/hooks/workspace.js +2 -1
  261. package/dist/src/hooks/workspace.js.map +1 -1
  262. package/dist/src/migrations/_template.d.ts +12 -0
  263. package/dist/src/migrations/_template.d.ts.map +1 -0
  264. package/dist/src/migrations/_template.js +55 -0
  265. package/dist/src/migrations/_template.js.map +1 -0
  266. package/dist/src/migrations/index.d.ts +14 -0
  267. package/dist/src/migrations/index.d.ts.map +1 -0
  268. package/dist/src/migrations/index.js +20 -0
  269. package/dist/src/migrations/index.js.map +1 -0
  270. package/dist/src/migrations/run.d.ts +12 -0
  271. package/dist/src/migrations/run.d.ts.map +1 -0
  272. package/dist/src/migrations/run.js +119 -0
  273. package/dist/src/migrations/run.js.map +1 -0
  274. package/dist/src/migrations/v1-to-v2.d.ts +10 -0
  275. package/dist/src/migrations/v1-to-v2.d.ts.map +1 -0
  276. package/dist/src/migrations/v1-to-v2.js +71 -0
  277. package/dist/src/migrations/v1-to-v2.js.map +1 -0
  278. package/dist/src/tools/merge-validator.d.ts.map +1 -1
  279. package/dist/src/tools/merge-validator.js +114 -16
  280. package/dist/src/tools/merge-validator.js.map +1 -1
  281. package/dist/src/tools/team-activity.d.ts.map +1 -1
  282. package/dist/src/tools/team-activity.js +22 -0
  283. package/dist/src/tools/team-activity.js.map +1 -1
  284. package/dist/src/tools/transition-recorder.d.ts +2 -17
  285. package/dist/src/tools/transition-recorder.d.ts.map +1 -1
  286. package/dist/src/tools/transition-recorder.js +6 -3
  287. package/dist/src/tools/transition-recorder.js.map +1 -1
  288. package/dist/src/types/index.d.ts +2 -1
  289. package/dist/src/types/index.d.ts.map +1 -1
  290. package/dist/src/utils/migration-registry.d.ts +65 -0
  291. package/dist/src/utils/migration-registry.d.ts.map +1 -0
  292. package/dist/src/utils/migration-registry.js +117 -0
  293. package/dist/src/utils/migration-registry.js.map +1 -0
  294. package/dist/src/utils/state-schema.d.ts +153 -0
  295. package/dist/src/utils/state-schema.d.ts.map +1 -0
  296. package/dist/src/utils/state-schema.js +329 -0
  297. package/dist/src/utils/state-schema.js.map +1 -0
  298. package/package.json +1 -1
  299. package/shared/agent-types.ts +4 -0
  300. package/templates/state.json +17 -39
  301. package/templates/worktree-scope.json +9 -10
  302. package/templates/worktrees.json +26 -27
  303. package/workflows/brainstorm.md +10 -1
  304. package/workflows/codebase-rebuild.md +2 -12
  305. package/workflows/debug.md +17 -8
  306. package/workflows/execute.md +18 -4
  307. package/workflows/fork.md +52 -37
  308. package/workflows/init.md +1 -4
  309. package/workflows/integration-test.md +13 -2
  310. package/workflows/issue.md +8 -4
  311. package/workflows/learn.md +25 -10
  312. package/workflows/maestro.codex.md +8 -1
  313. package/workflows/maestro.md +13 -3
  314. package/workflows/memory.md +26 -71
  315. package/workflows/merge.md +48 -52
  316. package/workflows/milestone-complete.md +24 -7
  317. package/workflows/retrospective.md +87 -80
  318. package/workflows/review.md +11 -5
  319. package/workflows/specs-remove.md +115 -0
  320. package/workflows/specs-setup.md +10 -32
  321. package/workflows/status.md +291 -290
  322. package/workflows/sync.md +5 -5
  323. package/workflows/test.md +11 -2
  324. package/workflows/ui-style.md +8 -2
  325. package/workflows/verify.md +2 -2
  326. package/workflows/wiki-connect.md +188 -0
  327. package/workflows/wiki-digest.md +221 -0
  328. package/workflows/wiki-manage.md +204 -0
  329. package/dashboard/dist/assets/ChatInput-Bvr-FeEq.js +0 -49
  330. package/dashboard/dist/assets/ChatPage-D9zTkJZo.js +0 -22
  331. package/dashboard/dist/assets/KanbanPage-C8USth6H.js +0 -21
  332. package/dashboard/dist/assets/RequirementBoardPage-Bf1trzqs.js +0 -11
  333. package/dashboard/dist/assets/SpecsPage-9lwxKT27.js +0 -36
  334. package/dashboard/dist/assets/SupervisorPage-SusdfHFq.js +0 -6
  335. package/dashboard/dist/assets/TeamsPage-DsuM6OwC.js +0 -6
  336. package/dashboard/dist/assets/arrow-left-Bqtb2hle.js +0 -6
  337. package/dashboard/dist/assets/index-DWG-WrzT.js +0 -231
  338. package/dashboard/dist/assets/index-GUNJodSR.css +0 -1
  339. package/dashboard/dist/assets/table-llyEtj-7.js +0 -6
@@ -1,119 +1,118 @@
1
- ---
2
- name: workflow-verifier
3
- description: Goal-backward verification across three layers (existence, substance, connection)
4
- allowed-tools:
5
- - Read
6
- - Glob
7
- - Grep
8
- - Bash
9
- ---
10
-
11
- # Workflow Verifier
12
-
13
- ## Role
14
- You perform goal-backward verification of completed work using a three-layer checking approach. You verify that artifacts exist, contain real substance, and are properly connected to the rest of the system. You also validate each task's convergence criteria individually. You are read-only and never modify project files.
15
-
16
- ## Search Tools
17
- @~/.maestro/templates/search-tools.md — Follow search tool priority and selection patterns.
18
-
19
- ## Process
20
-
21
- 1. **Load goals** -- Read the phase/task goals, success criteria, must_haves, and `convergence.criteria` from each task JSON
22
- 2. **Layer 1 - Existence** -- Verify all expected artifacts exist:
23
- - Files created as specified in task `files[].path` where `files[].action` is "create"
24
- - Functions/classes/modules present at `files[].target`
25
- - Configuration entries added
26
- 3. **Layer 2 - Substance** -- Verify artifacts are non-trivial:
27
- - Files contain meaningful implementation (not stubs or TODOs)
28
- - Functions have real logic (not empty bodies or pass-through)
29
- - Tests actually test behavior (not empty test cases)
30
- 4. **Layer 3 - Connection** -- Verify artifacts are properly wired:
31
- - Imports resolve correctly
32
- - New modules are registered/exported
33
- - Routes are mounted, handlers are connected
34
- - Configuration is loaded and used
35
- 5. **Per-task convergence validation** -- For each completed task, verify every item in `convergence.criteria`:
36
- - Run `convergence.verification` command if defined
37
- - Check each criterion individually (pass/fail with evidence)
38
- - Cross-reference with task summaries in `.summaries/`
39
- 6. **Check must_haves** -- Verify each must_have category:
40
- - `truths`: Invariants that must hold
41
- - `artifacts`: Files/outputs that must exist
42
- - `key_links`: Connections that must be wired
43
- 7. **Write report** -- Output verification.json with results
44
-
45
- ## Input
46
- - Phase or task goals with must_haves definition
47
- - `.task/TASK-{NNN}.json` files with `convergence.criteria` to validate
48
- - Completed code/artifacts to verify
49
- - Task summaries from `.summaries/`
50
- - **Project specs** — `maestro spec load --category validation`: verification criteria, acceptance standards. Must verify code complies with loaded constraints.
51
-
52
- ## Output
53
- `verification.json`:
54
- ```json
55
- {
56
- "phase": "<phase-id>",
57
- "status": "pass|fail",
58
- "layers": {
59
- "existence": {"pass": true, "checks": [...]},
60
- "substance": {"pass": true, "checks": [...]},
61
- "connection": {"pass": false, "checks": [...]}
62
- },
63
- "convergence_check": {
64
- "TASK-001": {
65
- "status": "pass",
66
- "criteria": [
67
- {"criterion": "File src/tools/new-tool.ts exports NewTool class", "pass": true, "evidence": "grep confirms export at line 15"},
68
- {"criterion": "npm run build completes without errors", "pass": true, "evidence": "build exit code 0"}
69
- ]
70
- },
71
- "TASK-002": {
72
- "status": "fail",
73
- "criteria": [
74
- {"criterion": "GET /api/health returns 200", "pass": true, "evidence": "curl test passed"},
75
- {"criterion": "Response includes version field", "pass": false, "evidence": "Response body missing 'version' key"}
76
- ]
77
- }
78
- },
79
- "must_haves": {
80
- "truths": [{"claim": "...", "verified": true}],
81
- "artifacts": [{"path": "...", "exists": true, "substantial": true}],
82
- "key_links": [{"from": "...", "to": "...", "connected": false}]
83
- },
84
- "gaps": [
85
- {"layer": "connection", "description": "Router not mounted in app.ts", "severity": "high", "task": "TASK-002"}
86
- ]
87
- }
88
- ```
89
-
90
- ## Constraints
91
- - Read-only; never modify project files
92
- - Every check must have evidence (file:line reference or command output)
93
- - Layer 2 checks must go beyond file existence (actually read content)
94
- - Layer 3 checks must trace import/require chains
95
- - Verify each `convergence.criteria` item from task JSON individually
96
- - Report gaps with severity (high/medium/low), specific location, and originating task ID
97
- - Do not suggest fixes; only identify gaps
98
-
99
- ## Schema Reference
100
- - **Task schema**: `templates/task.json` -- Used to locate `convergence.criteria` and `files` for verification
101
- - Key fields consumed during verification:
102
- - `convergence.criteria` -- Array of testable conditions to check per task (replaces deprecated `done_when`)
103
- - `convergence.verification` -- Command or steps to run for automated checking
104
- - `files[].{path, action, target}` -- Expected file operations to verify
105
- - `status` -- Top-level task status (only verify tasks with status "completed")
106
- - **Verification template**: `templates/verification.json` -- Output format reference
107
-
108
- ## Output Location
109
- - **Phase-scoped verification**: `.workflow/phases/{NN}-{slug}/verification.json`
110
- - **Scratch verification**: `.workflow/scratch/{slug}/verification.json`
111
- - **Per-task verification**: Embedded in the `convergence_check` block within verification.json (not separate files)
112
-
113
- ## Error Behavior
114
- - **Task JSON missing or malformed**: Skip task, log as gap with severity "high" and description "Task definition missing or unreadable"
115
- - **convergence.verification command fails**: Log command error output as evidence, mark criterion as "fail"
116
- - **Cannot determine pass/fail for a criterion**: Mark as "inconclusive" with explanation; count as fail for overall status
117
- - **Build/test environment unavailable**: Log as gap with severity "medium", skip automated checks, perform static checks only
118
- - **All tasks pass all layers**: Set status to "pass" and report clean verification
119
- - **Any gap found**: Set status to "fail" regardless of gap severity; list all gaps for resolution
1
+ ---
2
+ name: workflow-verifier
3
+ description: Goal-backward verification across three layers (existence, substance, connection)
4
+ allowed-tools:
5
+ - Read
6
+ - Glob
7
+ - Grep
8
+ - Bash
9
+ ---
10
+
11
+ # Workflow Verifier
12
+
13
+ ## Role
14
+ You perform goal-backward verification of completed work using a three-layer checking approach. You verify that artifacts exist, contain real substance, and are properly connected to the rest of the system. You also validate each task's convergence criteria individually. You are read-only and never modify project files.
15
+
16
+ ## Search Tools
17
+ @~/.maestro/templates/search-tools.md — Follow search tool priority and selection patterns.
18
+
19
+ ## Process
20
+
21
+ 1. **Load goals** -- Read the phase/task goals, success criteria, must_haves, and `convergence.criteria` from each task JSON
22
+ 2. **Layer 1 - Existence** -- Verify all expected artifacts exist:
23
+ - Files created as specified in task `files[].path` where `files[].action` is "create"
24
+ - Functions/classes/modules present at `files[].target`
25
+ - Configuration entries added
26
+ 3. **Layer 2 - Substance** -- Verify artifacts are non-trivial:
27
+ - Files contain meaningful implementation (not stubs or TODOs)
28
+ - Functions have real logic (not empty bodies or pass-through)
29
+ - Tests actually test behavior (not empty test cases)
30
+ 4. **Layer 3 - Connection** -- Verify artifacts are properly wired:
31
+ - Imports resolve correctly
32
+ - New modules are registered/exported
33
+ - Routes are mounted, handlers are connected
34
+ - Configuration is loaded and used
35
+ 5. **Per-task convergence validation** -- For each completed task, verify every item in `convergence.criteria`:
36
+ - Run `convergence.verification` command if defined
37
+ - Check each criterion individually (pass/fail with evidence)
38
+ - Cross-reference with task summaries in `.summaries/`
39
+ 6. **Check must_haves** -- Verify each must_have category:
40
+ - `truths`: Invariants that must hold
41
+ - `artifacts`: Files/outputs that must exist
42
+ - `key_links`: Connections that must be wired
43
+ 7. **Write report** -- Output verification.json with results
44
+
45
+ ## Input
46
+ - Phase or task goals with must_haves definition
47
+ - `.task/TASK-{NNN}.json` files with `convergence.criteria` to validate
48
+ - Completed code/artifacts to verify
49
+ - Task summaries from `.summaries/`
50
+ - **Project specs** — `maestro spec load --category validation`: verification criteria, acceptance standards. Must verify code complies with loaded constraints.
51
+
52
+ ## Output
53
+ `verification.json`:
54
+ ```json
55
+ {
56
+ "phase": "<phase-id>",
57
+ "status": "pass|fail",
58
+ "layers": {
59
+ "existence": {"pass": true, "checks": [...]},
60
+ "substance": {"pass": true, "checks": [...]},
61
+ "connection": {"pass": false, "checks": [...]}
62
+ },
63
+ "convergence_check": {
64
+ "TASK-001": {
65
+ "status": "pass",
66
+ "criteria": [
67
+ {"criterion": "File src/tools/new-tool.ts exports NewTool class", "pass": true, "evidence": "grep confirms export at line 15"},
68
+ {"criterion": "npm run build completes without errors", "pass": true, "evidence": "build exit code 0"}
69
+ ]
70
+ },
71
+ "TASK-002": {
72
+ "status": "fail",
73
+ "criteria": [
74
+ {"criterion": "GET /api/health returns 200", "pass": true, "evidence": "curl test passed"},
75
+ {"criterion": "Response includes version field", "pass": false, "evidence": "Response body missing 'version' key"}
76
+ ]
77
+ }
78
+ },
79
+ "must_haves": {
80
+ "truths": [{"claim": "...", "verified": true}],
81
+ "artifacts": [{"path": "...", "exists": true, "substantial": true}],
82
+ "key_links": [{"from": "...", "to": "...", "connected": false}]
83
+ },
84
+ "gaps": [
85
+ {"layer": "connection", "description": "Router not mounted in app.ts", "severity": "high", "task": "TASK-002"}
86
+ ]
87
+ }
88
+ ```
89
+
90
+ ## Constraints
91
+ - Read-only; never modify project files
92
+ - Every check must have evidence (file:line reference or command output)
93
+ - Layer 2 checks must go beyond file existence (actually read content)
94
+ - Layer 3 checks must trace import/require chains
95
+ - Verify each `convergence.criteria` item from task JSON individually
96
+ - Report gaps with severity (high/medium/low), specific location, and originating task ID
97
+ - Do not suggest fixes; only identify gaps
98
+
99
+ ## Schema Reference
100
+ - **Task schema**: `templates/task.json` -- Used to locate `convergence.criteria` and `files` for verification
101
+ - Key fields consumed during verification:
102
+ - `convergence.criteria` -- Array of testable conditions to check per task (replaces deprecated `done_when`)
103
+ - `convergence.verification` -- Command or steps to run for automated checking
104
+ - `files[].{path, action, target}` -- Expected file operations to verify
105
+ - `status` -- Top-level task status (only verify tasks with status "completed")
106
+ - **Verification template**: `templates/verification.json` -- Output format reference
107
+
108
+ ## Output Location
109
+ - **Scratch verification**: `.workflow/scratch/{slug}/verification.json`
110
+ - **Per-task verification**: Embedded in the `convergence_check` block within verification.json (not separate files)
111
+
112
+ ## Error Behavior
113
+ - **Task JSON missing or malformed**: Skip task, log as gap with severity "high" and description "Task definition missing or unreadable"
114
+ - **convergence.verification command fails**: Log command error output as evidence, mark criterion as "fail"
115
+ - **Cannot determine pass/fail for a criterion**: Mark as "inconclusive" with explanation; count as fail for overall status
116
+ - **Build/test environment unavailable**: Log as gap with severity "medium", skip automated checks, perform static checks only
117
+ - **All tasks pass all layers**: Set status to "pass" and report clean verification
118
+ - **Any gap found**: Set status to "fail" regardless of gap severity; list all gaps for resolution
@@ -52,7 +52,7 @@ Arguments: $ARGUMENTS
52
52
  - `.workflow/learning/lessons.jsonl` — Existing insights for dedup
53
53
  - `maestro wiki list --type spec --json` — Spec entries (decision lens)
54
54
  - `.workflow/specs/architecture-constraints.md` — Documented architectural decisions (decision lens)
55
- - `.workflow/phases/*/context.md` — Phase context with Locked/Free/Deferred decisions (decision lens)
55
+ - Phase context with Locked/Free/Deferred decisions (decision lens) — resolve via `state.json.artifacts[]` scratch paths
56
56
  </context>
57
57
 
58
58
  <execution>
@@ -146,7 +146,7 @@ git log --oneline --all --grep="decision\|chose\|decided\|architecture" -20
146
146
 
147
147
  Also read:
148
148
  - `.workflow/specs/architecture-constraints.md` — grep for `<spec-entry category="arch"` blocks
149
- - `.workflow/phases/*/context.md` — scan for "Locked:", "Deferred:" sections
149
+ - Phase context files — resolve via `state.json.artifacts[]` scratch paths — scan for "Locked:", "Deferred:" sections
150
150
  - `.workflow/learning/lessons.jsonl` — filter `category == "decision"`
151
151
 
152
152
  Apply scope filter (--phase, --tag, --id).
@@ -28,7 +28,7 @@ Arguments: $ARGUMENTS
28
28
  - File path → analyze that file's content
29
29
  - Wiki ID (`<type>-<slug>`) → fetch via `maestro wiki get`
30
30
  - `HEAD` or `staged` → analyze current git diff (`git diff HEAD` or `git diff --staged`)
31
- - Phase number (e.g., `3`) → analyze phase plan from `.workflow/phases/{NN}-*/plan.json`
31
+ - Phase number (e.g., `3`) → resolve via `state.json.artifacts[]` to find plan in scratch dir
32
32
 
33
33
  **Flags:**
34
34
  - `--mode review` — 3-persona parallel review (default)
@@ -54,7 +54,7 @@ Arguments: $ARGUMENTS
54
54
  - Wiki ID: `maestro wiki get <id>`
55
55
  - `HEAD`: `git diff HEAD` (unstaged + staged changes)
56
56
  - `staged`: `git diff --staged`
57
- - Phase N: Read `.workflow/phases/{NN}-*/plan.json`
57
+ - Phase N: Resolve via `state.json.artifacts.find(a => a.type === 'plan' && a.phase === N)` → read `.workflow/{artifact.path}/plan.json`
58
58
  - If unresolvable, AskUserQuestion for clarification
59
59
 
60
60
  ### Stage 2: Load Context
@@ -53,7 +53,15 @@ $ARGUMENTS -- phase number for milestone-scoped, topic text for adhoc/standalone
53
53
 
54
54
  **Scope detection rule**: Text argument + `state.json.current_milestone` non-null → adhoc. Text argument + no milestone → standalone. No args + no roadmap → error (need topic or roadmap). `--gaps` → gaps scope (bypasses standard scope routing).
55
55
 
56
- **Output directory**: `scratch/analyze-{slug}-{date}/` (relative to `.workflow/`)
56
+ **Output directory** (relative to `.workflow/`):
57
+
58
+ | Scope | Directory format | Example |
59
+ |-------|-----------------|---------|
60
+ | Phase | `scratch/{YYYYMMDD}-analyze-P{N}-{slug}/` | `20260420-analyze-P1-auth` |
61
+ | Milestone | `scratch/{YYYYMMDD}-analyze-M{N}-{slug}/` | `20260420-analyze-M1-mvp` |
62
+ | Adhoc/Standalone | `scratch/{YYYYMMDD}-analyze-{slug}/` | `20260420-analyze-caching` |
63
+
64
+ Scope prefix (`P{N}` / `M{N}`) enables directory-level identification as fallback when state.json is unavailable.
57
65
 
58
66
  **Artifact registration**: On completion, register artifact in `state.json.artifacts[]`:
59
67
  ```jsonc
@@ -63,7 +71,7 @@ $ARGUMENTS -- phase number for milestone-scoped, topic text for adhoc/standalone
63
71
  "milestone": "{current_milestone or null}",
64
72
  "phase": "{phase_number or null}",
65
73
  "scope": "{milestone|phase|adhoc|standalone}",
66
- "path": "scratch/analyze-{slug}-{date}",
74
+ "path": "scratch/{YYYYMMDD}-analyze-P{N}-{slug}", // P{N} for phase, M{N} for milestone, omit for adhoc/standalone
67
75
  "status": "completed",
68
76
  "depends_on": null,
69
77
  "harvested": false,
@@ -30,8 +30,9 @@ $ARGUMENTS -- topic text for auto mode, or role name for single role mode.
30
30
 
31
31
  **Auto mode**: topic text (e.g., "Build real-time collaboration platform") triggers full pipeline.
32
32
  **Single role mode**: valid role name (e.g., "system-architect") runs one role analysis.
33
- **All output** goes to `.workflow/scratch/brainstorm-{slug}-{date}/`.
33
+ **All output** goes to `.workflow/scratch/{YYYYMMDD}-brainstorm-{slug}/`.
34
34
  **Artifact registration**: On completion, registers artifact (type=brainstorm) in state.json.
35
+ **Output boundary**: ALL file writes MUST target `{output_dir}/` or `.workflow/state.json` only. NEVER modify source code or files outside these paths.
35
36
 
36
37
  **Valid roles**: data-architect, product-manager, product-owner, scrum-master, subject-matter-expert, system-architect, test-strategist, ui-designer, ux-expert
37
38
 
@@ -34,7 +34,7 @@ $ARGUMENTS — phase number, or no args for milestone-wide execution, with optio
34
34
  - `--auto-commit` -- Automatically commit after each task completion
35
35
  - `--method agent|cli|auto` -- Override execution method (default: from config.json)
36
36
  - `--executor <tool>` -- Default CLI tool: gemini|codex|qwen|opencode|claude
37
- - `--dir <path>` -- Execute specific plan directory (e.g., `scratch/plan-auth-2026-04-20`)
37
+ - `--dir <path>` -- Execute specific plan directory (e.g., `scratch/20260420-plan-auth`)
38
38
 
39
39
  **Scope routing:**
40
40
 
@@ -55,7 +55,9 @@ $ARGUMENTS — phase number, or no args for milestone-wide execution, with optio
55
55
 
56
56
  **Output**: Task summaries written to plan's scratch dir:
57
57
  ```
58
- scratch/plan-{slug}-{date}/
58
+ {YYYYMMDD}-plan-P{N}-{slug}/ # phase-scoped
59
+ {YYYYMMDD}-plan-M{N}-{slug}/ # milestone-wide
60
+ {YYYYMMDD}-plan-{slug}/ # adhoc/standalone
59
61
  ├── plan.json
60
62
  ├── .task/
61
63
  │ ├── TASK-001.json # status updated to completed|blocked
@@ -65,7 +67,7 @@ scratch/plan-{slug}-{date}/
65
67
  └── TASK-002-summary.md
66
68
  ```
67
69
 
68
- **Incremental learning extraction**: After each plan completes, extract strategy adjustments / patterns / pitfalls from `.summaries/` and append to `specs/learnings.md`. Mark artifact `harvested: true`.
70
+ **Incremental learning extraction**: After each plan completes, extract strategy adjustments / patterns / pitfalls from `.summaries/` and append to `specs/learnings.md` using `<spec-entry>` closed-tag format (category=`learning`, auto-extract keywords, date=today, source=`execute`). Mark artifact `harvested: true`.
69
71
 
70
72
  **Artifact registration**: For each plan executed, register in `state.json.artifacts[]`:
71
73
  ```jsonc
@@ -75,7 +77,7 @@ scratch/plan-{slug}-{date}/
75
77
  "milestone": "{current_milestone or null}",
76
78
  "phase": "{phase or null}",
77
79
  "scope": "{inherited from plan}",
78
- "path": "{same as plan path}",
80
+ "path": "{same as plan path}", // inherits plan directory name with scope prefix
79
81
  "status": "completed",
80
82
  "depends_on": "PLN-{NNN}",
81
83
  "harvested": false,
@@ -96,6 +98,21 @@ If exit code is 1, present warnings and ask whether to proceed.
96
98
 
97
99
  Follow '~/.maestro/workflows/execute.md' completely.
98
100
 
101
+ ### Post-task Knowledge Inquiry
102
+
103
+ After each task completes, evaluate inquiry triggers:
104
+
105
+ 1. **Execution deviation**: If task summary mentions approach change, dependency swap, or plan deviation:
106
+ → Ask: "TASK-{NNN} deviated from the plan. Should this decision be recorded as an architecture constraint? (`/spec-add arch`)"
107
+
108
+ 2. **Retry success**: If task required ≥2 retries before completion:
109
+ → Ask: "TASK-{NNN} succeeded after {N} retries. Should this fix pattern be documented? (`/spec-add debug`)"
110
+
111
+ 3. **Implicit knowledge**: If task summary contains design rationale ("chose X because", "rejected Y due to"):
112
+ → Ask: "Design decision detected. Should it be recorded as a learning? (`/spec-add learning`)"
113
+
114
+ If user confirms, invoke `Skill({ skill: "spec-add", args: "<category> <content>" })` with extracted content.
115
+
99
116
  ### Issue Status Sync
100
117
 
101
118
  On each task completion, if `task.issue_id` exists, sync status back to the issue in `.workflow/issues/issues.jsonl`:
@@ -1,111 +1,133 @@
1
- ---
2
- name: maestro-fork
3
- description: Create a worktree for milestone-level parallel development, or sync existing worktree with main
4
- argument-hint: "-m <milestone-number> [--base <branch>] [--sync]"
5
- allowed-tools:
6
- - Read
7
- - Write
8
- - Edit
9
- - Bash
10
- - Glob
11
- - Grep
12
- - Agent
13
- - AskUserQuestion
14
- ---
15
- <purpose>
16
- Create a git worktree for an entire milestone, enabling inter-milestone parallel development. All phases within the milestone are owned by the worktree and executed sequentially inside it.
17
-
18
- Since `.workflow/` is gitignored, this command explicitly copies project context and all milestone phase directories into the worktree. Per-phase parallelism within a milestone is NOT supported.
19
-
20
- Also supports `--sync` mode to pull latest main branch changes and shared artifacts into an active worktree (prevents source and artifact drift for long-lived worktrees).
21
-
22
- Produces `.workflow/worktrees.json` registry in the main worktree and `.workflow/worktree-scope.json` marker in the worktree.
23
- </purpose>
24
-
25
- <required_reading>
26
- @~/.maestro/workflows/fork.md
27
- </required_reading>
28
-
29
- <deferred_reading>
30
- - [worktrees.json](~/.maestro/templates/worktrees.json) — read when updating registry
31
- - [worktree-scope.json](~/.maestro/templates/worktree-scope.json) — read when writing scope marker
32
- </deferred_reading>
33
-
34
- <context>
35
- $ARGUMENTS -- milestone name and optional flags.
36
-
37
- **Modes:**
38
-
39
- | Mode | Trigger | Behavior |
40
- |------|---------|----------|
41
- | Fork | `-m 2` or `2` | Create worktree for all phases in milestone 2 |
42
- | Sync | `-m 2 --sync` | Sync existing milestone 2 worktree with main branch |
43
-
44
- **Flags:**
45
- - `-m <N>` or bare `<N>`: Milestone number (1-based, maps to `state.json.milestones[]`)
46
- - `--base <branch>`: Override base branch for worktree creation (default: HEAD)
47
- - `--sync`: Sync mode — pull main into existing worktree, re-copy shared artifacts
48
-
49
- **Milestone resolution:** `state.json.milestones[N-1]` → `{name, title, phases: [...]}`
50
-
51
- **Worktree layout:**
52
- ```
53
- .worktrees/m{N}-{slug}/
54
- ├── .workflow/
55
- │ ├── worktree-scope.json (scope marker — lists all owned phases)
56
- │ ├── state.json (scoped to this milestone)
57
- │ ├── project.md (read-only copy)
58
- │ ├── roadmap.md (read-only copy)
59
- │ ├── config.json (read-only copy)
60
- │ ├── specs/ (read-only copy)
61
- │ └── phases/
62
- │ ├── {NN}-{slug}/ (owned — all phases in milestone)
63
- └── {dep}-{dep-slug}/ (read-only dependency reference from prior milestones)
64
- └── <source code> (git worktree checkout)
65
- ```
66
- </context>
67
-
68
- <execution>
69
- Follow '~/.maestro/workflows/fork.md' completely.
70
-
71
- **Next-step routing on completion:**
72
-
73
- Fork mode:
74
- - Enter worktree → `cd {wt.path} && /maestro-analyze {first_phase}`
75
- - Automated → `maestro delegate "run full lifecycle for milestone" --cd {wt.path} --mode write`
76
- - Status Skill({ skill: "manage-status" })
77
-
78
- Sync mode:
79
- - Sync complete resume work in worktree
80
- - Conflicts found resolve manually, then retry
81
- </execution>
82
-
83
- <error_codes>
84
- | Code | Severity | Condition | Recovery |
85
- |------|----------|-----------|----------|
86
- | E001 | error | Project not initialized | Run maestro-init first |
87
- | E002 | error | No roadmap found | Run maestro-roadmap first |
88
- | E003 | error | Running inside a worktree | Run from main worktree |
89
- | E004 | error | No milestone number provided | Provide `-m <N>` |
90
- | E005 | error | No milestones defined in state.json | Run maestro-roadmap first |
91
- | E006 | error | Milestone number out of range | Check available milestones |
92
- | E007 | error | No active worktree for milestone (--sync) | Check worktrees.json |
93
- | E008 | error | Milestone already has active worktree | Merge or cleanup first |
94
- </error_codes>
95
-
96
- <success_criteria>
97
- Fork mode:
98
- - [ ] Milestone phases identified from roadmap
99
- - [ ] Git worktree created with branch (`milestone/{slug}`)
100
- - [ ] `.workflow/` context copied into worktree (all milestone phases + dependency phases)
101
- - [ ] `worktree-scope.json` written with all owned phase numbers
102
- - [ ] Scoped `state.json` written (current_phase = first pending phase)
103
- - [ ] `worktrees.json` registry updated in main worktree
104
- - [ ] Milestone phase indexes marked as "forked" in main worktree
105
- - [ ] Summary displayed with next-step commands
106
-
107
- Sync mode:
108
- - [ ] Git merge main into worktree branch
109
- - [ ] Shared artifacts re-copied (project.md, roadmap.md, config.json, specs/)
110
- - [ ] Conflicts reported if any
111
- </success_criteria>
1
+ ---
2
+ name: maestro-fork
3
+ description: Create a worktree for milestone-level parallel development, or sync existing worktree with main
4
+ argument-hint: "-m <milestone-number> [--base <branch>] [--sync]"
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Edit
9
+ - Bash
10
+ - Glob
11
+ - Grep
12
+ - Agent
13
+ - AskUserQuestion
14
+ ---
15
+ <purpose>
16
+ Create a git worktree for an entire milestone, enabling inter-milestone parallel development. The worktree scope is milestone-level — all scratch artifacts for that milestone are owned by the worktree.
17
+
18
+ Since `.workflow/` is gitignored, this command explicitly copies project context and existing milestone scratch artifacts into the worktree. Per-phase parallelism within a milestone is NOT supported.
19
+
20
+ Also supports `--sync` mode to pull latest main branch changes and shared artifacts into an active worktree (prevents source and artifact drift for long-lived worktrees).
21
+
22
+ Produces `.workflow/worktrees.json` registry in the main worktree and `.workflow/worktree-scope.json` marker in the worktree.
23
+ </purpose>
24
+
25
+ <required_reading>
26
+ @~/.maestro/workflows/fork.md
27
+ </required_reading>
28
+
29
+ <deferred_reading>
30
+ - [worktrees.json](~/.maestro/templates/worktrees.json) — read when updating registry
31
+ - [worktree-scope.json](~/.maestro/templates/worktree-scope.json) — read when writing scope marker
32
+ </deferred_reading>
33
+
34
+ <context>
35
+ $ARGUMENTS -- milestone name and optional flags.
36
+
37
+ **Modes:**
38
+
39
+ | Mode | Trigger | Behavior |
40
+ |------|---------|----------|
41
+ | Fork | `-m 2` or `2` | Create worktree for milestone 2 |
42
+ | Sync | `-m 2 --sync` | Sync existing milestone 2 worktree with main branch |
43
+
44
+ **Flags:**
45
+ - `-m <N>` or bare `<N>`: Milestone number (1-based, maps to `state.json.milestones[]`)
46
+ - `--base <branch>`: Override base branch for worktree creation (default: HEAD)
47
+ - `--sync`: Sync mode — pull main into existing worktree, re-copy shared artifacts
48
+
49
+ **Milestone resolution:** `state.json.milestones[N-1]` → `{id, name, status}`
50
+
51
+ **Worktree layout:**
52
+ ```
53
+ .worktrees/m{N}-{slug}/
54
+ ├── .workflow/
55
+ │ ├── worktree-scope.json (milestone scope marker)
56
+ │ ├── state.json (scoped only this milestone's artifacts)
57
+ │ ├── project.md (read-only copy)
58
+ │ ├── roadmap.md (read-only copy)
59
+ │ ├── config.json (read-only copy)
60
+ │ ├── specs/ (read-only copy)
61
+ │ └── scratch/ (milestone's existing + new artifacts)
62
+ │ ├── analyze-auth-2026-04-20/
63
+ ├── plan-auth-2026-04-20/
64
+ └── ...
65
+ └── <source code> (git worktree checkout)
66
+ ```
67
+
68
+ **Artifact scoping:**
69
+ Fork copies scratch artifacts that belong to the target milestone (filtered from `state.json.artifacts[]` where `milestone == target`). New work in the worktree creates scratch artifacts normally; they are registered in the worktree's local `state.json`.
70
+ </context>
71
+
72
+ <execution>
73
+ Follow '~/.maestro/workflows/fork.md' completely.
74
+
75
+ **Fork flow:**
76
+ 1. Validate: project initialized, roadmap exists, not inside worktree, milestone not already forked
77
+ 2. Resolve milestone: `state.json.milestones[N-1]`
78
+ 3. Create git worktree: `git worktree add -b milestone/{slug} .worktrees/m{N}-{slug} HEAD`
79
+ 4. Copy `.workflow/` into worktree:
80
+ - Shared files (read-only): `project.md`, `roadmap.md`, `config.json`, `specs/`
81
+ - Milestone scratch artifacts: filter `state.json.artifacts[]` by `milestone == target`, copy each `scratch/{path}`
82
+ 5. Write scope marker: `worktree-scope.json` with milestone number and main path
83
+ 6. Write scoped `state.json`: only this milestone's artifacts, `current_milestone` set
84
+ 7. Update main: `worktrees.json` registry, mark milestone as `"forked"` in `state.json.milestones[]`
85
+
86
+ **Sync flow:**
87
+ 1. Find worktree from `worktrees.json`
88
+ 2. `cd worktree && git merge main`
89
+ 3. Re-copy shared files: `project.md`, `roadmap.md`, `config.json`, `specs/`
90
+ 4. Report conflicts if any
91
+
92
+ **Next-step routing on completion:**
93
+
94
+ Fork mode:
95
+ - Enter worktree → `cd {wt.path} && /maestro-analyze`
96
+ - Automated → `maestro delegate "run full lifecycle for milestone" --cd {wt.path} --mode write`
97
+ - Status → Skill({ skill: "manage-status" })
98
+
99
+ Sync mode:
100
+ - Sync complete resume work in worktree
101
+ - Conflicts found resolve manually, then retry
102
+ </execution>
103
+
104
+ <error_codes>
105
+ | Code | Severity | Condition | Recovery |
106
+ |------|----------|-----------|----------|
107
+ | E001 | error | Project not initialized | Run maestro-init first |
108
+ | E002 | error | No roadmap found | Run maestro-roadmap first |
109
+ | E003 | error | Running inside a worktree | Run from main worktree |
110
+ | E004 | error | No milestone number provided | Provide `-m <N>` |
111
+ | E005 | error | No milestones defined in state.json | Run maestro-roadmap first |
112
+ | E006 | error | Milestone number out of range | Check available milestones |
113
+ | E007 | error | No active worktree for milestone (--sync) | Check worktrees.json |
114
+ | E008 | error | Milestone already has active worktree | Merge or cleanup first |
115
+ </error_codes>
116
+
117
+ <success_criteria>
118
+ Fork mode:
119
+ - [ ] Milestone resolved from state.json.milestones[]
120
+ - [ ] Git worktree created with branch (`milestone/{slug}`)
121
+ - [ ] Shared `.workflow/` files copied (project.md, roadmap.md, config.json, specs/)
122
+ - [ ] Milestone scratch artifacts copied (filtered from artifact registry)
123
+ - [ ] `worktree-scope.json` written with milestone scope
124
+ - [ ] Scoped `state.json` written (only this milestone's artifacts)
125
+ - [ ] `worktrees.json` registry updated in main worktree
126
+ - [ ] Milestone marked as `"forked"` in main `state.json.milestones[]`
127
+ - [ ] Summary displayed with next-step commands
128
+
129
+ Sync mode:
130
+ - [ ] Git merge main into worktree branch
131
+ - [ ] Shared artifacts re-copied (project.md, roadmap.md, config.json, specs/)
132
+ - [ ] Conflicts reported if any
133
+ </success_criteria>