maestro-flow 0.3.7 → 0.3.9

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 (254) hide show
  1. package/.claude/commands/learn-decompose.md +3 -3
  2. package/.claude/commands/learn-follow.md +5 -5
  3. package/.claude/commands/learn-investigate.md +3 -3
  4. package/.claude/commands/learn-retro.md +303 -0
  5. package/.claude/commands/learn-second-opinion.md +3 -3
  6. package/.claude/commands/maestro-analyze.md +123 -99
  7. package/.claude/commands/maestro-brainstorm.md +2 -2
  8. package/.claude/commands/maestro-execute.md +137 -96
  9. package/.claude/commands/maestro-fork.md +111 -0
  10. package/.claude/commands/maestro-init.md +6 -6
  11. package/.claude/commands/maestro-learn.md +74 -298
  12. package/.claude/commands/maestro-merge.md +77 -0
  13. package/.claude/commands/maestro-milestone-audit.md +72 -60
  14. package/.claude/commands/maestro-milestone-complete.md +67 -59
  15. package/.claude/commands/maestro-milestone-release.md +6 -6
  16. package/.claude/commands/maestro-plan.md +151 -130
  17. package/.claude/commands/maestro-quick.md +4 -4
  18. package/.claude/commands/maestro-roadmap.md +5 -5
  19. package/.claude/commands/maestro-spec-generate.md +5 -5
  20. package/.claude/commands/maestro-ui-design.md +3 -3
  21. package/.claude/commands/maestro-verify.md +106 -87
  22. package/.claude/commands/maestro.md +10 -4
  23. package/.claude/commands/manage-codebase-rebuild.md +4 -4
  24. package/.claude/commands/manage-codebase-refresh.md +1 -1
  25. package/.claude/commands/manage-harvest.md +5 -5
  26. package/.claude/commands/manage-issue-discover.md +1 -1
  27. package/.claude/commands/manage-issue-execute.md +6 -6
  28. package/.claude/commands/manage-issue.md +6 -6
  29. package/.claude/commands/manage-learn.md +23 -17
  30. package/.claude/commands/manage-memory-capture.md +15 -17
  31. package/.claude/commands/manage-memory.md +3 -3
  32. package/.claude/commands/manage-status.md +24 -24
  33. package/.claude/commands/quality-business-test.md +5 -5
  34. package/.claude/commands/quality-debug.md +4 -4
  35. package/.claude/commands/quality-integration-test.md +4 -4
  36. package/.claude/commands/quality-refactor.md +3 -3
  37. package/.claude/commands/quality-retrospective.md +7 -7
  38. package/.claude/commands/quality-review.md +4 -4
  39. package/.claude/commands/quality-sync.md +3 -3
  40. package/.claude/commands/quality-test-gen.md +4 -4
  41. package/.claude/commands/quality-test.md +9 -9
  42. package/.claude/commands/spec-add.md +2 -2
  43. package/.claude/commands/spec-load.md +8 -3
  44. package/.claude/commands/spec-setup.md +5 -5
  45. package/.claude/commands/wiki-connect.md +3 -3
  46. package/.claude/commands/wiki-digest.md +30 -5
  47. package/.codex/skills/maestro-analyze/SKILL.md +52 -14
  48. package/.codex/skills/maestro-execute/SKILL.md +27 -26
  49. package/.codex/skills/maestro-milestone-audit/SKILL.md +103 -209
  50. package/.codex/skills/maestro-milestone-complete/SKILL.md +149 -158
  51. package/.codex/skills/maestro-plan/SKILL.md +47 -17
  52. package/.codex/skills/maestro-roadmap/SKILL.md +3 -2
  53. package/.codex/skills/team-coordinate/roles/coordinator/commands/monitor.md +2 -2
  54. package/.codex/skills/team-executor/roles/executor/commands/monitor.md +1 -1
  55. package/.codex/skills/team-lifecycle-v4/roles/coordinator/commands/monitor.md +2 -2
  56. package/.codex/skills/team-lifecycle-v4/specs/knowledge-transfer.md +2 -2
  57. package/.codex/skills/team-quality-assurance/roles/coordinator/commands/monitor.md +1 -1
  58. package/.codex/skills/team-review/roles/coordinator/commands/monitor.md +1 -1
  59. package/.codex/skills/team-tech-debt/roles/coordinator/commands/monitor.md +1 -1
  60. package/.codex/skills/team-testing/roles/coordinator/commands/monitor.md +1 -1
  61. package/README.md +115 -227
  62. package/README.zh-CN.md +169 -187
  63. package/bin/maestro-mcp.js +1 -1
  64. package/chains/_intent-map.json +21 -9
  65. package/chains/_router.json +30 -77
  66. package/chains/brainstorm-driven.json +17 -6
  67. package/chains/full-lifecycle.json +22 -23
  68. package/chains/milestone-close.json +20 -7
  69. package/chains/milestone-fork-merge.json +50 -0
  70. package/chains/roadmap-driven.json +17 -6
  71. package/chains/spec-driven.json +17 -6
  72. package/dashboard/dist/assets/{ArtifactsPage-A9yzYtpj.js → ArtifactsPage-DZNCi6tn.js} +12 -7
  73. package/dashboard/dist/assets/ChatInput-Bvr-FeEq.js +49 -0
  74. package/dashboard/dist/assets/ChatPage-D9zTkJZo.js +22 -0
  75. package/dashboard/dist/assets/CollabPage-B4NAHXS2.js +1 -0
  76. package/dashboard/dist/assets/ExecutionPanel-CFt4LJyq.js +1 -0
  77. package/dashboard/dist/assets/KanbanPage-C8USth6H.js +21 -0
  78. package/dashboard/dist/assets/{MarkdownRenderer-CCXHaut3.js → MarkdownRenderer-X4af_WNb.js} +1 -1
  79. package/dashboard/dist/assets/McpPage-BKfCVIyU.js +21 -0
  80. package/dashboard/dist/assets/OutputPanel-BlBQFJSW.js +1 -0
  81. package/dashboard/dist/assets/ProblemsPanel-De3DLvoI.js +1 -0
  82. package/dashboard/dist/assets/{RequirementBoardPage-CEOvppGn.js → RequirementBoardPage-Bf1trzqs.js} +2 -2
  83. package/dashboard/dist/assets/{RequirementPage-DpnbTEqY.js → RequirementPage-Bllxe2XI.js} +10 -5
  84. package/dashboard/dist/assets/{SpecsPage-CYqOfFkB.js → SpecsPage-9lwxKT27.js} +2 -2
  85. package/dashboard/dist/assets/{SupervisorPage-B2sZwkq8.js → SupervisorPage-SusdfHFq.js} +1 -1
  86. package/dashboard/dist/assets/{TeamsPage-CkZdCAVZ.js → TeamsPage-DsuM6OwC.js} +2 -2
  87. package/dashboard/dist/assets/TreeBrowser-Q12qobZs.js +6 -0
  88. package/dashboard/dist/assets/WorkflowPage-D_Fzdy3_.js +6 -0
  89. package/dashboard/dist/assets/{arrow-left-6fktHyjN.js → arrow-left-Bqtb2hle.js} +1 -1
  90. package/dashboard/dist/assets/{check-Cbxq2l1-.js → check-u6fGOwQO.js} +1 -1
  91. package/dashboard/dist/assets/{chevron-right-Yts3bi8p.js → chevron-right-Csu22t58.js} +1 -1
  92. package/dashboard/dist/assets/{circle-4Ci4Xolf.js → circle-CMrkbRNg.js} +1 -1
  93. package/dashboard/dist/assets/{circle-alert-B25g9BTL.js → circle-alert-c3tH1P4z.js} +1 -1
  94. package/dashboard/dist/assets/{circle-check-big-DzO2BlL7.js → circle-check-big-TDSeWstm.js} +1 -1
  95. package/dashboard/dist/assets/{circle-check-BA5_XqeV.js → circle-check-gYxxSYuH.js} +1 -1
  96. package/dashboard/dist/assets/{code-zxwuybO8.js → code-CFN2uX9V.js} +1 -1
  97. package/dashboard/dist/assets/{columns-3-DV4oeCfU.js → columns-3-38xIDlzy.js} +1 -1
  98. package/dashboard/dist/assets/{download-CXCyQw8M.js → download-DC7KkKyP.js} +1 -1
  99. package/dashboard/dist/assets/{folder-Bvjj8Vn9.js → folder-CWq_lAnf.js} +1 -1
  100. package/dashboard/dist/assets/index-DWG-WrzT.js +231 -0
  101. package/dashboard/dist/assets/{index-BvScJmJM.js → index-Do71weNR.js} +1 -1
  102. package/dashboard/dist/assets/index-GUNJodSR.css +1 -0
  103. package/dashboard/dist/assets/{list-Dj4i9N75.js → list-CgIP_2A-.js} +1 -1
  104. package/dashboard/dist/assets/{minus-DwlFabsT.js → minus-DYoN5UGk.js} +1 -1
  105. package/dashboard/dist/assets/{pen-line-D7UzECt6.js → pen-line-Bh_WKYHm.js} +1 -1
  106. package/dashboard/dist/assets/{proxy-B9XRqHD9.js → proxy-BKxDAKTj.js} +1 -1
  107. package/dashboard/dist/assets/{search-BQbBTIYl.js → search-SieXnOgr.js} +1 -1
  108. package/dashboard/dist/assets/{shallow-Clb1Lyd_.js → shallow-Bme1JY57.js} +1 -1
  109. package/dashboard/dist/assets/{table-BqxCXid2.js → table-llyEtj-7.js} +1 -1
  110. package/dashboard/dist/assets/terminal-BB3Xfuv5.js +6 -0
  111. package/dashboard/dist/assets/{trash-2-6rN9B-EQ.js → trash-2-C8f4vFFM.js} +1 -1
  112. package/dashboard/dist/assets/{zap-DxUhG-gk.js → zap-4uwlzVm0.js} +1 -1
  113. package/dashboard/dist/index.html +2 -2
  114. package/dashboard/dist-server/dashboard/src/server/agents/agent-sdk-adapter.d.ts +1 -1
  115. package/dashboard/dist-server/dashboard/src/server/agents/agent-sdk-adapter.js +5 -4
  116. package/dashboard/dist-server/dashboard/src/server/agents/agent-sdk-adapter.js.map +1 -1
  117. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js +8 -4
  118. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js.map +1 -1
  119. package/dashboard/dist-server/dashboard/src/server/agents/entry-normalizer.d.ts +1 -0
  120. package/dashboard/dist-server/dashboard/src/server/agents/entry-normalizer.js +2 -1
  121. package/dashboard/dist-server/dashboard/src/server/agents/entry-normalizer.js.map +1 -1
  122. package/dashboard/dist-server/dashboard/src/server/agents/stream-json-adapter.js +20 -10
  123. package/dashboard/dist-server/dashboard/src/server/agents/stream-json-adapter.js.map +1 -1
  124. package/dashboard/dist-server/dashboard/src/server/agents/tools/issue-mcp-server.d.ts +1 -1
  125. package/dashboard/dist-server/dashboard/src/server/agents/tools/issue-mcp-server.js +3 -4
  126. package/dashboard/dist-server/dashboard/src/server/agents/tools/issue-mcp-server.js.map +1 -1
  127. package/dashboard/dist-server/dashboard/src/server/agents/tools/issue-mcp-server.test.js +4 -4
  128. package/dashboard/dist-server/dashboard/src/server/agents/tools/issue-mcp-server.test.js.map +1 -1
  129. package/dashboard/dist-server/dashboard/src/server/commander/commander-agent.js +4 -3
  130. package/dashboard/dist-server/dashboard/src/server/commander/commander-agent.js.map +1 -1
  131. package/dashboard/dist-server/dashboard/src/server/commander/commander-agent.test.js +20 -7
  132. package/dashboard/dist-server/dashboard/src/server/commander/commander-agent.test.js.map +1 -1
  133. package/dashboard/dist-server/dashboard/src/server/execution/wave-executor.d.ts +1 -1
  134. package/dashboard/dist-server/dashboard/src/server/execution/wave-executor.js +4 -4
  135. package/dashboard/dist-server/dashboard/src/server/execution/wave-executor.js.map +1 -1
  136. package/dashboard/dist-server/dashboard/src/server/index.js +2 -1
  137. package/dashboard/dist-server/dashboard/src/server/index.js.map +1 -1
  138. package/dashboard/dist-server/dashboard/src/server/routes/git.d.ts +2 -0
  139. package/dashboard/dist-server/dashboard/src/server/routes/git.js +79 -0
  140. package/dashboard/dist-server/dashboard/src/server/routes/git.js.map +1 -0
  141. package/dashboard/dist-server/dashboard/src/server/routes/index.js +3 -0
  142. package/dashboard/dist-server/dashboard/src/server/routes/index.js.map +1 -1
  143. package/dashboard/dist-server/dashboard/src/server/routes/issues.js +14 -14
  144. package/dashboard/dist-server/dashboard/src/server/routes/issues.js.map +1 -1
  145. package/dashboard/dist-server/dashboard/src/server/routes/linear.js +7 -5
  146. package/dashboard/dist-server/dashboard/src/server/routes/linear.js.map +1 -1
  147. package/dashboard/dist-server/dashboard/src/server/routes/workspace.js +43 -0
  148. package/dashboard/dist-server/dashboard/src/server/routes/workspace.js.map +1 -1
  149. package/dashboard/dist-server/dashboard/src/server/state/state-manager.js +186 -25
  150. package/dashboard/dist-server/dashboard/src/server/state/state-manager.js.map +1 -1
  151. package/dashboard/dist-server/dashboard/src/server/utils/issue-store.d.ts +6 -0
  152. package/dashboard/dist-server/dashboard/src/server/utils/issue-store.js +24 -2
  153. package/dashboard/dist-server/dashboard/src/server/utils/issue-store.js.map +1 -1
  154. package/dashboard/dist-server/dashboard/src/server/ws/handlers/execution-handler.js +4 -7
  155. package/dashboard/dist-server/dashboard/src/server/ws/handlers/execution-handler.js.map +1 -1
  156. package/dashboard/dist-server/dashboard/src/shared/constants.js +2 -1
  157. package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
  158. package/dashboard/dist-server/dashboard/src/shared/constants.test.js +5 -5
  159. package/dashboard/dist-server/dashboard/src/shared/constants.test.js.map +1 -1
  160. package/dashboard/dist-server/dashboard/src/shared/issue-types.test.js +4 -4
  161. package/dashboard/dist-server/dashboard/src/shared/issue-types.test.js.map +1 -1
  162. package/dashboard/dist-server/src/commands/delegate.js +7 -1
  163. package/dashboard/dist-server/src/commands/delegate.js.map +1 -1
  164. package/dashboard/package.json +59 -59
  165. package/dist/src/cli.js +3 -1
  166. package/dist/src/cli.js.map +1 -1
  167. package/dist/src/commands/{team.d.ts → collab.d.ts} +2 -2
  168. package/dist/src/commands/collab.d.ts.map +1 -0
  169. package/dist/src/commands/{team.js → collab.js} +391 -24
  170. package/dist/src/commands/collab.js.map +1 -0
  171. package/dist/src/commands/delegate.d.ts.map +1 -1
  172. package/dist/src/commands/delegate.js +7 -1
  173. package/dist/src/commands/delegate.js.map +1 -1
  174. package/dist/src/commands/msg.d.ts.map +1 -1
  175. package/dist/src/commands/msg.js +4 -3
  176. package/dist/src/commands/msg.js.map +1 -1
  177. package/dist/src/hooks/team-monitor.d.ts.map +1 -1
  178. package/dist/src/hooks/team-monitor.js +16 -0
  179. package/dist/src/hooks/team-monitor.js.map +1 -1
  180. package/dist/src/tools/collab-adapter.d.ts +85 -0
  181. package/dist/src/tools/collab-adapter.d.ts.map +1 -0
  182. package/dist/src/tools/collab-adapter.js +320 -0
  183. package/dist/src/tools/collab-adapter.js.map +1 -0
  184. package/dist/src/tools/namespace-guard.d.ts +2 -0
  185. package/dist/src/tools/namespace-guard.d.ts.map +1 -1
  186. package/dist/src/tools/namespace-guard.js +12 -0
  187. package/dist/src/tools/namespace-guard.js.map +1 -1
  188. package/dist/src/tools/phase-gate-evaluator.d.ts +45 -0
  189. package/dist/src/tools/phase-gate-evaluator.d.ts.map +1 -0
  190. package/dist/src/tools/phase-gate-evaluator.js +42 -0
  191. package/dist/src/tools/phase-gate-evaluator.js.map +1 -0
  192. package/dist/src/tools/team-members.d.ts +18 -0
  193. package/dist/src/tools/team-members.d.ts.map +1 -1
  194. package/dist/src/tools/team-members.js +50 -0
  195. package/dist/src/tools/team-members.js.map +1 -1
  196. package/dist/src/tools/team-tasks.d.ts +120 -0
  197. package/dist/src/tools/team-tasks.d.ts.map +1 -0
  198. package/dist/src/tools/team-tasks.js +365 -0
  199. package/dist/src/tools/team-tasks.js.map +1 -0
  200. package/dist/src/tools/transition-recorder.d.ts +3 -0
  201. package/dist/src/tools/transition-recorder.d.ts.map +1 -1
  202. package/dist/src/tools/transition-recorder.js +52 -1
  203. package/dist/src/tools/transition-recorder.js.map +1 -1
  204. package/dist/src/utils/get-version.d.ts.map +1 -1
  205. package/dist/src/utils/get-version.js +15 -4
  206. package/dist/src/utils/get-version.js.map +1 -1
  207. package/package.json +1 -1
  208. package/templates/config.json +7 -0
  209. package/templates/worktree-scope.json +10 -0
  210. package/templates/worktrees.json +27 -0
  211. package/workflows/analyze.md +86 -36
  212. package/workflows/brainstorm.md +17 -37
  213. package/workflows/delegate-usage.md +39 -41
  214. package/workflows/execute.md +247 -61
  215. package/workflows/fork.md +309 -0
  216. package/workflows/init.md +11 -2
  217. package/workflows/issue.md +66 -7
  218. package/workflows/maestro-coordinate.codex.md +1 -1
  219. package/workflows/maestro-coordinate.md +24 -17
  220. package/workflows/maestro.md +54 -37
  221. package/workflows/memory.md +2 -1
  222. package/workflows/merge.md +285 -0
  223. package/workflows/milestone-audit.md +89 -70
  224. package/workflows/milestone-complete.md +89 -156
  225. package/workflows/plan.md +131 -19
  226. package/workflows/retrospective.md +5 -5
  227. package/workflows/roadmap.md +12 -4
  228. package/workflows/spec-generate.md +9 -0
  229. package/workflows/status.md +76 -27
  230. package/workflows/ui-design.md +14 -12
  231. package/workflows/verify.md +44 -8
  232. package/.claude/commands/learn-retro-decision.md +0 -198
  233. package/.claude/commands/learn-retro-git.md +0 -160
  234. package/.claude/commands/maestro-phase-add.md +0 -63
  235. package/.claude/commands/maestro-phase-transition.md +0 -75
  236. package/.codex/skills/maestro-phase-add/SKILL.md +0 -154
  237. package/.codex/skills/maestro-phase-transition/SKILL.md +0 -173
  238. package/chains/singles/phase-add.json +0 -31
  239. package/chains/singles/phase-transition.json +0 -23
  240. package/dashboard/dist/assets/ChatInput-PuCvZZ3y.js +0 -67
  241. package/dashboard/dist/assets/ChatPage-v19GURYH.js +0 -8
  242. package/dashboard/dist/assets/CollabPage-I5k_mCbG.js +0 -1
  243. package/dashboard/dist/assets/KanbanPage-PDDBv5-9.js +0 -16
  244. package/dashboard/dist/assets/McpPage-CiqXpCHg.js +0 -16
  245. package/dashboard/dist/assets/TreeBrowser-0VIMWclo.js +0 -11
  246. package/dashboard/dist/assets/WorkflowPage-Csm23wUS.js +0 -6
  247. package/dashboard/dist/assets/git-branch-DL8p9kVC.js +0 -6
  248. package/dashboard/dist/assets/index-11DuhKhc.js +0 -231
  249. package/dashboard/dist/assets/index-D2Mtyw7I.css +0 -1
  250. package/dashboard/dist/assets/wrench-BScEJFqC.js +0 -11
  251. package/dist/src/commands/team.d.ts.map +0 -1
  252. package/dist/src/commands/team.js.map +0 -1
  253. package/workflows/phase-add.md +0 -252
  254. package/workflows/phase-transition.md +0 -399
@@ -2,8 +2,8 @@
2
2
  "$schema": "./chain-graph.schema.json",
3
3
  "id": "_router",
4
4
  "name": "State Router",
5
- "description": "Route to appropriate graph based on project state",
6
- "version": "1.0.0",
5
+ "description": "Route to appropriate graph based on project state and artifact registry",
6
+ "version": "2.0.0",
7
7
  "tags": ["internal", "router"],
8
8
  "entry": "check_init",
9
9
  "inputs": {
@@ -21,10 +21,10 @@
21
21
  },
22
22
  "check_has_roadmap": {
23
23
  "type": "decision",
24
- "eval": "ctx.project.phases_total",
24
+ "eval": "ctx.project.milestones_total",
25
25
  "edges": [
26
- { "match": "ctx.project.phases_total == 0", "target": "check_accumulated_context" },
27
- { "default": true, "target": "check_phase_status" }
26
+ { "match": "ctx.project.milestones_total == 0", "target": "check_accumulated_context" },
27
+ { "default": true, "target": "check_artifact_state" }
28
28
  ]
29
29
  },
30
30
  "check_accumulated_context": {
@@ -35,98 +35,61 @@
35
35
  { "default": true, "target": "to_brainstorm_driven" }
36
36
  ]
37
37
  },
38
- "check_phase_status": {
38
+ "check_artifact_state": {
39
39
  "type": "decision",
40
- "eval": "ctx.project.phase_status",
40
+ "description": "Determine next step from artifact registry — what's the latest completed artifact type for current milestone?",
41
+ "eval": "ctx.project.latest_artifact_type",
41
42
  "edges": [
42
- { "value": "pending", "target": "check_pending_artifacts" },
43
- { "value": "exploring", "target": "check_has_plan" },
44
- { "value": "planning", "target": "check_has_plan" },
45
- { "value": "executing", "target": "check_tasks_done" },
46
- { "value": "verifying", "target": "check_verification" },
47
- { "value": "testing", "target": "check_uat" },
48
- { "value": "completed", "target": "check_all_phases" },
49
- { "value": "blocked", "target": "to_debug" }
50
- ]
51
- },
52
- "check_pending_artifacts": {
53
- "type": "decision",
54
- "eval": "ctx.project.artifacts.context",
55
- "edges": [
56
- { "value": true, "target": "to_plan" },
43
+ { "value": null, "target": "to_analyze" },
44
+ { "value": "analyze", "target": "check_has_plan" },
45
+ { "value": "brainstorm", "target": "to_analyze" },
46
+ { "value": "plan", "target": "to_execute" },
47
+ { "value": "execute", "target": "to_verify" },
48
+ { "value": "verify", "target": "check_verify_result" },
57
49
  { "default": true, "target": "to_analyze" }
58
50
  ]
59
51
  },
60
52
  "check_has_plan": {
61
53
  "type": "decision",
62
- "eval": "ctx.project.artifacts.plan",
54
+ "eval": "ctx.project.has_pending_plans",
63
55
  "edges": [
64
56
  { "value": true, "target": "to_execute_verify" },
65
57
  { "default": true, "target": "to_plan" }
66
58
  ]
67
59
  },
68
- "check_tasks_done": {
69
- "type": "decision",
70
- "eval": "ctx.project.execution.tasks_completed",
71
- "edges": [
72
- {
73
- "match": "ctx.project.execution.tasks_completed >= ctx.project.execution.tasks_total && ctx.project.execution.tasks_total > 0",
74
- "target": "to_verify"
75
- },
76
- { "default": true, "target": "to_execute" }
77
- ]
78
- },
79
- "check_verification": {
60
+ "check_verify_result": {
80
61
  "type": "decision",
81
62
  "eval": "ctx.project.verification_status",
82
63
  "edges": [
83
- { "value": "passed", "target": "check_business_test" },
64
+ { "value": "passed", "target": "check_review" },
84
65
  { "default": true, "target": "to_quality_loop_partial" }
85
66
  ]
86
67
  },
87
- "check_business_test": {
88
- "type": "decision",
89
- "eval": "ctx.project.business_test_status",
90
- "edges": [
91
- { "value": null, "target": "to_business_test" },
92
- { "value": "passed", "target": "check_review_after_verify" },
93
- { "default": true, "target": "to_quality_loop_partial" }
94
- ]
95
- },
96
- "check_review_after_verify": {
68
+ "check_review": {
97
69
  "type": "decision",
98
70
  "eval": "ctx.project.review_verdict",
99
71
  "edges": [
100
72
  { "value": null, "target": "to_review" },
101
- { "default": true, "target": "check_uat_after_review" }
102
- ]
103
- },
104
- "check_uat_after_review": {
105
- "type": "decision",
106
- "eval": "ctx.project.uat_status",
107
- "edges": [
108
- { "value": "pending", "target": "to_test" },
109
- { "value": "passed", "target": "to_phase_transition" },
110
- { "default": true, "target": "to_debug_from_uat" }
73
+ { "value": "BLOCK", "target": "to_quality_loop_partial" },
74
+ { "default": true, "target": "check_uat" }
111
75
  ]
112
76
  },
113
77
  "check_uat": {
114
78
  "type": "decision",
115
79
  "eval": "ctx.project.uat_status",
116
80
  "edges": [
117
- { "value": "passed", "target": "to_phase_transition" },
81
+ { "value": null, "target": "to_test" },
82
+ { "value": "passed", "target": "check_all_phases" },
118
83
  { "default": true, "target": "to_debug_from_uat" }
119
84
  ]
120
85
  },
121
86
  "check_all_phases": {
122
87
  "type": "decision",
123
- "eval": "ctx.project.phases_completed",
88
+ "description": "Check if all phases in milestone have completed execute artifacts",
89
+ "eval": "ctx.project.all_phases_executed",
124
90
  "edges": [
125
- {
126
- "match": "ctx.project.phases_completed >= ctx.project.phases_total",
127
- "target": "to_milestone_close"
128
- },
129
- { "default": true, "target": "to_phase_transition" }
91
+ { "value": true, "target": "to_milestone_close" },
92
+ { "default": true, "target": "to_analyze" }
130
93
  ]
131
94
  },
132
95
  "to_init": {
@@ -154,25 +117,20 @@
154
117
  "status": "delegate",
155
118
  "delegate_graph": "singles/verify"
156
119
  },
157
- "to_business_test": {
158
- "type": "terminal",
159
- "status": "delegate",
160
- "delegate_graph": "singles/business-test"
161
- },
162
120
  "to_review": {
163
121
  "type": "terminal",
164
122
  "status": "delegate",
165
123
  "delegate_graph": "singles/review"
166
124
  },
167
- "to_test": {
125
+ "to_debug": {
168
126
  "type": "terminal",
169
127
  "status": "delegate",
170
- "delegate_graph": "singles/test"
128
+ "delegate_graph": "singles/debug"
171
129
  },
172
- "to_debug": {
130
+ "to_test": {
173
131
  "type": "terminal",
174
132
  "status": "delegate",
175
- "delegate_graph": "singles/debug"
133
+ "delegate_graph": "singles/test"
176
134
  },
177
135
  "to_debug_from_uat": {
178
136
  "type": "terminal",
@@ -185,11 +143,6 @@
185
143
  "status": "delegate",
186
144
  "delegate_graph": "execute-verify"
187
145
  },
188
- "to_phase_transition": {
189
- "type": "terminal",
190
- "status": "delegate",
191
- "delegate_graph": "singles/phase-transition"
192
- },
193
146
  "to_milestone_close": {
194
147
  "type": "terminal",
195
148
  "status": "delegate",
@@ -62,18 +62,29 @@
62
62
  "eval": "ctx.result.verification_status",
63
63
  "edges": [
64
64
  { "value": "passed", "target": "done" },
65
- { "default": true, "target": "done_with_issues" }
65
+ { "default": true, "target": "fix_plan" }
66
66
  ]
67
67
  },
68
+ "fix_plan": {
69
+ "type": "command",
70
+ "cmd": "maestro-plan",
71
+ "description": "Re-plan to address verification gaps",
72
+ "args": "{phase} --gaps",
73
+ "auto_flag": "--auto",
74
+ "next": "fix_execute"
75
+ },
76
+ "fix_execute": {
77
+ "type": "command",
78
+ "cmd": "maestro-execute",
79
+ "description": "Re-execute from gap-fix plan",
80
+ "args": "{phase}",
81
+ "next": "verify",
82
+ "max_visits": 2
83
+ },
68
84
  "done": {
69
85
  "type": "terminal",
70
86
  "status": "success",
71
87
  "summary": "Brainstorm-driven pipeline completed successfully"
72
- },
73
- "done_with_issues": {
74
- "type": "terminal",
75
- "status": "paused",
76
- "summary": "Brainstorm-driven pipeline completed with verification issues"
77
88
  }
78
89
  }
79
90
  }
@@ -2,12 +2,12 @@
2
2
  "$schema": "./chain-graph.schema.json",
3
3
  "id": "full-lifecycle",
4
4
  "name": "Full Lifecycle",
5
- "description": "Plan -> Execute -> Verify -> Review -> Test -> Transition with decision points",
6
- "version": "1.0.0",
7
- "tags": ["lifecycle", "phase"],
5
+ "description": "Plan -> Execute -> Verify -> Review -> Test -> Milestone Audit/Complete with decision points",
6
+ "version": "2.0.0",
7
+ "tags": ["lifecycle", "milestone"],
8
8
  "entry": "plan",
9
9
  "inputs": {
10
- "phase": { "type": "string", "required": true },
10
+ "phase": { "type": "string", "required": false },
11
11
  "description": { "type": "string" }
12
12
  },
13
13
  "defaults": { "analyze": true },
@@ -38,21 +38,6 @@
38
38
  "check_verify": {
39
39
  "type": "decision",
40
40
  "eval": "ctx.result.verification_status",
41
- "edges": [
42
- { "value": "passed", "target": "business_test" },
43
- { "default": true, "target": "fix_plan" }
44
- ]
45
- },
46
- "business_test": {
47
- "type": "command",
48
- "cmd": "quality-business-test",
49
- "description": "PRD-forward business testing with requirement traceability",
50
- "args": "{phase} --auto",
51
- "next": "check_business_test"
52
- },
53
- "check_business_test": {
54
- "type": "decision",
55
- "eval": "ctx.result.business_test_status",
56
41
  "edges": [
57
42
  { "value": "passed", "target": "review" },
58
43
  { "default": true, "target": "fix_plan" }
@@ -101,7 +86,7 @@
101
86
  "type": "decision",
102
87
  "eval": "ctx.result.uat_status",
103
88
  "edges": [
104
- { "value": "passed", "target": "transition" },
89
+ { "value": "passed", "target": "milestone_audit" },
105
90
  { "default": true, "target": "debug" }
106
91
  ]
107
92
  },
@@ -113,10 +98,24 @@
113
98
  "next": "fix_execute",
114
99
  "max_visits": 2
115
100
  },
116
- "transition": {
101
+ "milestone_audit": {
102
+ "type": "command",
103
+ "cmd": "maestro-milestone-audit",
104
+ "description": "Audit milestone for cross-phase integration gaps using artifact registry",
105
+ "next": "check_audit"
106
+ },
107
+ "check_audit": {
108
+ "type": "decision",
109
+ "eval": "ctx.result.audit_verdict",
110
+ "edges": [
111
+ { "value": "PASS", "target": "milestone_complete" },
112
+ { "default": true, "target": "fix_plan" }
113
+ ]
114
+ },
115
+ "milestone_complete": {
117
116
  "type": "command",
118
- "cmd": "maestro-phase-transition",
119
- "description": "Complete phase, extract learnings, advance to next",
117
+ "cmd": "maestro-milestone-complete",
118
+ "description": "Archive scratch artifacts, move to milestone_history, advance to next milestone",
120
119
  "next": "done"
121
120
  },
122
121
  "done": {
@@ -2,8 +2,8 @@
2
2
  "$schema": "./chain-graph.schema.json",
3
3
  "id": "milestone-close",
4
4
  "name": "Milestone Close",
5
- "description": "Milestone Audit -> Phase Transition -> Done",
6
- "version": "1.0.0",
5
+ "description": "Milestone Audit -> Milestone Complete",
6
+ "version": "2.0.0",
7
7
  "tags": ["milestone"],
8
8
  "entry": "audit",
9
9
  "inputs": {},
@@ -11,19 +11,32 @@
11
11
  "audit": {
12
12
  "type": "command",
13
13
  "cmd": "maestro-milestone-audit",
14
- "description": "Audit current milestone for cross-phase integration gaps",
15
- "next": "transition"
14
+ "description": "Audit current milestone using artifact registry for cross-phase integration gaps",
15
+ "next": "check_audit"
16
16
  },
17
- "transition": {
17
+ "check_audit": {
18
+ "type": "decision",
19
+ "eval": "ctx.result.audit_verdict",
20
+ "edges": [
21
+ { "value": "PASS", "target": "complete" },
22
+ { "default": true, "target": "failed" }
23
+ ]
24
+ },
25
+ "complete": {
18
26
  "type": "command",
19
- "cmd": "maestro-phase-transition",
20
- "description": "Complete phase, extract learnings, advance to next",
27
+ "cmd": "maestro-milestone-complete",
28
+ "description": "Archive scratch artifacts to milestones/, move artifact entries to history, advance state",
21
29
  "next": "done"
22
30
  },
23
31
  "done": {
24
32
  "type": "terminal",
25
33
  "status": "success",
26
34
  "summary": "Milestone closed successfully"
35
+ },
36
+ "failed": {
37
+ "type": "terminal",
38
+ "status": "failed",
39
+ "summary": "Audit failed — fix integration gaps before completing milestone"
27
40
  }
28
41
  }
29
42
  }
@@ -0,0 +1,50 @@
1
+ {
2
+ "$schema": "./chain-graph.schema.json",
3
+ "id": "milestone-fork-merge",
4
+ "name": "Milestone Fork & Merge",
5
+ "description": "Fork a milestone into a worktree, run full lifecycle, then merge back",
6
+ "version": "1.0.0",
7
+ "tags": ["worktree", "milestone", "parallel"],
8
+ "entry": "fork",
9
+ "inputs": {
10
+ "milestone_num": { "type": "number", "required": true }
11
+ },
12
+ "nodes": {
13
+ "fork": {
14
+ "type": "command",
15
+ "cmd": "maestro-fork",
16
+ "description": "Create worktree for milestone with all phases",
17
+ "args": "-m {milestone_num}",
18
+ "next": "lifecycle_in_worktree"
19
+ },
20
+ "lifecycle_in_worktree": {
21
+ "type": "command",
22
+ "cmd": "maestro",
23
+ "description": "Run sequential lifecycle for all phases in worktree (analyze, plan, execute, verify, transition per phase)",
24
+ "args": "continue",
25
+ "cwd": ".worktrees/m{milestone_num}-{milestone_slug}",
26
+ "next": "merge_decision"
27
+ },
28
+ "merge_decision": {
29
+ "type": "decision",
30
+ "description": "Check if all milestone phases are completed",
31
+ "condition": "all_phases_completed",
32
+ "branches": {
33
+ "true": "merge",
34
+ "false": "lifecycle_in_worktree"
35
+ }
36
+ },
37
+ "merge": {
38
+ "type": "command",
39
+ "cmd": "maestro-merge",
40
+ "description": "Merge milestone worktree back into main",
41
+ "args": "-m {milestone_num}",
42
+ "next": "done"
43
+ },
44
+ "done": {
45
+ "type": "terminal",
46
+ "status": "success",
47
+ "summary": "Milestone {milestone_num} forked, developed, and merged successfully"
48
+ }
49
+ }
50
+ }
@@ -53,18 +53,29 @@
53
53
  "eval": "ctx.result.verification_status",
54
54
  "edges": [
55
55
  { "value": "passed", "target": "done" },
56
- { "default": true, "target": "done_with_issues" }
56
+ { "default": true, "target": "fix_plan" }
57
57
  ]
58
58
  },
59
+ "fix_plan": {
60
+ "type": "command",
61
+ "cmd": "maestro-plan",
62
+ "description": "Re-plan to address verification gaps",
63
+ "args": "{phase} --gaps",
64
+ "auto_flag": "--auto",
65
+ "next": "fix_execute"
66
+ },
67
+ "fix_execute": {
68
+ "type": "command",
69
+ "cmd": "maestro-execute",
70
+ "description": "Re-execute from gap-fix plan",
71
+ "args": "{phase}",
72
+ "next": "verify",
73
+ "max_visits": 2
74
+ },
59
75
  "done": {
60
76
  "type": "terminal",
61
77
  "status": "success",
62
78
  "summary": "Roadmap-driven pipeline completed successfully"
63
- },
64
- "done_with_issues": {
65
- "type": "terminal",
66
- "status": "paused",
67
- "summary": "Roadmap-driven pipeline completed with verification issues"
68
79
  }
69
80
  }
70
81
  }
@@ -54,18 +54,29 @@
54
54
  "eval": "ctx.result.verification_status",
55
55
  "edges": [
56
56
  { "value": "passed", "target": "done", "description": "Verification passed" },
57
- { "default": true, "target": "done_with_issues", "description": "Verification failed" }
57
+ { "default": true, "target": "fix_plan", "description": "Verification failed" }
58
58
  ]
59
59
  },
60
+ "fix_plan": {
61
+ "type": "command",
62
+ "cmd": "maestro-plan",
63
+ "description": "Re-plan to address verification gaps",
64
+ "args": "{phase} --gaps",
65
+ "auto_flag": "--auto",
66
+ "next": "fix_execute"
67
+ },
68
+ "fix_execute": {
69
+ "type": "command",
70
+ "cmd": "maestro-execute",
71
+ "description": "Re-execute from gap-fix plan",
72
+ "args": "{phase}",
73
+ "next": "verify",
74
+ "max_visits": 2
75
+ },
60
76
  "done": {
61
77
  "type": "terminal",
62
78
  "status": "success",
63
79
  "summary": "Spec-driven pipeline completed successfully"
64
- },
65
- "done_with_issues": {
66
- "type": "terminal",
67
- "status": "paused",
68
- "summary": "Spec-driven pipeline completed with verification issues"
69
80
  }
70
81
  }
71
82
  }