maestro-flow 0.3.8 → 0.3.10

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 (312) 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 +6 -6
  5. package/.claude/commands/learn-second-opinion.md +3 -3
  6. package/.claude/commands/maestro-analyze.md +166 -99
  7. package/.claude/commands/maestro-brainstorm.md +2 -2
  8. package/.claude/commands/maestro-execute.md +151 -97
  9. package/.claude/commands/maestro-fork.md +111 -0
  10. package/.claude/commands/maestro-init.md +6 -6
  11. package/.claude/commands/maestro-merge.md +77 -0
  12. package/.claude/commands/maestro-milestone-audit.md +72 -60
  13. package/.claude/commands/maestro-milestone-complete.md +67 -59
  14. package/.claude/commands/maestro-milestone-release.md +6 -6
  15. package/.claude/commands/maestro-plan.md +167 -130
  16. package/.claude/commands/maestro-quick.md +4 -4
  17. package/.claude/commands/maestro-roadmap.md +5 -5
  18. package/.claude/commands/maestro-spec-generate.md +5 -5
  19. package/.claude/commands/maestro-ui-design.md +3 -3
  20. package/.claude/commands/maestro-verify.md +106 -87
  21. package/.claude/commands/maestro.md +10 -4
  22. package/.claude/commands/manage-codebase-rebuild.md +4 -4
  23. package/.claude/commands/manage-codebase-refresh.md +1 -1
  24. package/.claude/commands/manage-harvest.md +6 -6
  25. package/.claude/commands/manage-issue-discover.md +2 -2
  26. package/.claude/commands/manage-issue.md +7 -7
  27. package/.claude/commands/manage-learn.md +2 -2
  28. package/.claude/commands/manage-memory-capture.md +4 -4
  29. package/.claude/commands/manage-memory.md +2 -2
  30. package/.claude/commands/manage-status.md +24 -24
  31. package/.claude/commands/quality-business-test.md +5 -5
  32. package/.claude/commands/quality-debug.md +4 -4
  33. package/.claude/commands/quality-integration-test.md +4 -4
  34. package/.claude/commands/quality-refactor.md +3 -3
  35. package/.claude/commands/quality-retrospective.md +2 -2
  36. package/.claude/commands/quality-review.md +4 -4
  37. package/.claude/commands/quality-sync.md +3 -3
  38. package/.claude/commands/quality-test-gen.md +4 -4
  39. package/.claude/commands/quality-test.md +9 -9
  40. package/.claude/commands/spec-add.md +2 -2
  41. package/.claude/commands/spec-load.md +1 -1
  42. package/.claude/commands/spec-setup.md +5 -5
  43. package/.claude/commands/wiki-connect.md +3 -3
  44. package/.claude/commands/wiki-digest.md +4 -4
  45. package/.codex/skills/maestro/SKILL.md +463 -0
  46. package/.codex/skills/maestro-analyze/SKILL.md +79 -20
  47. package/.codex/skills/maestro-chain/SKILL.md +248 -0
  48. package/.codex/skills/maestro-coordinate/SKILL.md +279 -224
  49. package/.codex/skills/maestro-execute/SKILL.md +35 -26
  50. package/.codex/skills/maestro-milestone-audit/SKILL.md +103 -209
  51. package/.codex/skills/maestro-milestone-complete/SKILL.md +149 -158
  52. package/.codex/skills/maestro-plan/SKILL.md +56 -18
  53. package/.codex/skills/maestro-roadmap/SKILL.md +3 -2
  54. package/.codex/skills/team-coordinate/roles/coordinator/commands/monitor.md +2 -2
  55. package/.codex/skills/team-executor/roles/executor/commands/monitor.md +1 -1
  56. package/.codex/skills/team-lifecycle-v4/roles/coordinator/commands/monitor.md +2 -2
  57. package/.codex/skills/team-lifecycle-v4/specs/knowledge-transfer.md +2 -2
  58. package/.codex/skills/team-quality-assurance/roles/coordinator/commands/monitor.md +1 -1
  59. package/.codex/skills/team-review/roles/coordinator/commands/monitor.md +1 -1
  60. package/.codex/skills/team-tech-debt/roles/coordinator/commands/monitor.md +1 -1
  61. package/.codex/skills/team-testing/roles/coordinator/commands/monitor.md +1 -1
  62. package/README.md +26 -21
  63. package/README.zh-CN.md +23 -19
  64. package/bin/maestro-mcp.js +1 -1
  65. package/chains/_intent-map.json +21 -9
  66. package/chains/_router.json +30 -77
  67. package/chains/brainstorm-driven.json +17 -6
  68. package/chains/full-lifecycle.json +22 -23
  69. package/chains/issue-lifecycle.json +13 -13
  70. package/chains/milestone-close.json +20 -7
  71. package/chains/milestone-fork-merge.json +50 -0
  72. package/chains/roadmap-driven.json +17 -6
  73. package/chains/singles/issue-analyze.json +3 -3
  74. package/chains/singles/issue-execute.json +3 -3
  75. package/chains/singles/issue-plan.json +3 -3
  76. package/chains/spec-driven.json +17 -6
  77. package/dashboard/dist/assets/{ArtifactsPage-BmPOu8sO.js → ArtifactsPage-DZNCi6tn.js} +12 -7
  78. package/dashboard/dist/assets/ChatInput-Bvr-FeEq.js +49 -0
  79. package/dashboard/dist/assets/ChatPage-D9zTkJZo.js +22 -0
  80. package/dashboard/dist/assets/CollabPage-B4NAHXS2.js +1 -0
  81. package/dashboard/dist/assets/ExecutionPanel-CFt4LJyq.js +1 -0
  82. package/dashboard/dist/assets/KanbanPage-C8USth6H.js +21 -0
  83. package/dashboard/dist/assets/{MarkdownRenderer-BjZ43aSa.js → MarkdownRenderer-X4af_WNb.js} +1 -1
  84. package/dashboard/dist/assets/McpPage-BKfCVIyU.js +21 -0
  85. package/dashboard/dist/assets/OutputPanel-BlBQFJSW.js +1 -0
  86. package/dashboard/dist/assets/ProblemsPanel-De3DLvoI.js +1 -0
  87. package/dashboard/dist/assets/{RequirementBoardPage-B7yRL0s_.js → RequirementBoardPage-Bf1trzqs.js} +2 -2
  88. package/dashboard/dist/assets/{RequirementPage-D8J_-b6O.js → RequirementPage-Bllxe2XI.js} +10 -5
  89. package/dashboard/dist/assets/{SpecsPage-6lO8v8_C.js → SpecsPage-9lwxKT27.js} +2 -2
  90. package/dashboard/dist/assets/{SupervisorPage-Ds5N378a.js → SupervisorPage-SusdfHFq.js} +1 -1
  91. package/dashboard/dist/assets/{TeamsPage-DrkKr17T.js → TeamsPage-DsuM6OwC.js} +2 -2
  92. package/dashboard/dist/assets/TreeBrowser-Q12qobZs.js +6 -0
  93. package/dashboard/dist/assets/WorkflowPage-D_Fzdy3_.js +6 -0
  94. package/dashboard/dist/assets/{arrow-left-CadP5YgU.js → arrow-left-Bqtb2hle.js} +1 -1
  95. package/dashboard/dist/assets/{check-5xufDzS8.js → check-u6fGOwQO.js} +1 -1
  96. package/dashboard/dist/assets/{chevron-right-CYbpR4ev.js → chevron-right-Csu22t58.js} +1 -1
  97. package/dashboard/dist/assets/{circle-Bm-5Q-Yh.js → circle-CMrkbRNg.js} +1 -1
  98. package/dashboard/dist/assets/{circle-alert-BqcYuT7x.js → circle-alert-c3tH1P4z.js} +1 -1
  99. package/dashboard/dist/assets/{circle-check-big-yyzAFysU.js → circle-check-big-TDSeWstm.js} +1 -1
  100. package/dashboard/dist/assets/{circle-check-DEVzW_lm.js → circle-check-gYxxSYuH.js} +1 -1
  101. package/dashboard/dist/assets/{code-BBdC8Wmw.js → code-CFN2uX9V.js} +1 -1
  102. package/dashboard/dist/assets/{columns-3-CQ9Trztr.js → columns-3-38xIDlzy.js} +1 -1
  103. package/dashboard/dist/assets/{download-DayuF-sn.js → download-DC7KkKyP.js} +1 -1
  104. package/dashboard/dist/assets/{folder-CqXeSKeC.js → folder-CWq_lAnf.js} +1 -1
  105. package/dashboard/dist/assets/index-DWG-WrzT.js +231 -0
  106. package/dashboard/dist/assets/{index-Dru5HYy0.js → index-Do71weNR.js} +1 -1
  107. package/dashboard/dist/assets/index-GUNJodSR.css +1 -0
  108. package/dashboard/dist/assets/{list-DBOD6IUt.js → list-CgIP_2A-.js} +1 -1
  109. package/dashboard/dist/assets/{minus-fQI1Syn2.js → minus-DYoN5UGk.js} +1 -1
  110. package/dashboard/dist/assets/{pen-line-Bkbbngl5.js → pen-line-Bh_WKYHm.js} +1 -1
  111. package/dashboard/dist/assets/{proxy-teW12DdZ.js → proxy-BKxDAKTj.js} +1 -1
  112. package/dashboard/dist/assets/{search-Bq3ygFUW.js → search-SieXnOgr.js} +1 -1
  113. package/dashboard/dist/assets/{shallow-22ZN8sFt.js → shallow-Bme1JY57.js} +1 -1
  114. package/dashboard/dist/assets/{table-BEYtdWc4.js → table-llyEtj-7.js} +1 -1
  115. package/dashboard/dist/assets/terminal-BB3Xfuv5.js +6 -0
  116. package/dashboard/dist/assets/{trash-2-DMqGBgcF.js → trash-2-C8f4vFFM.js} +1 -1
  117. package/dashboard/dist/assets/{zap-9DVkGVtt.js → zap-4uwlzVm0.js} +1 -1
  118. package/dashboard/dist/index.html +2 -2
  119. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js +8 -4
  120. package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js.map +1 -1
  121. package/dashboard/dist-server/dashboard/src/server/agents/entry-normalizer.d.ts +1 -0
  122. package/dashboard/dist-server/dashboard/src/server/agents/entry-normalizer.js +2 -1
  123. package/dashboard/dist-server/dashboard/src/server/agents/entry-normalizer.js.map +1 -1
  124. package/dashboard/dist-server/dashboard/src/server/agents/stream-json-adapter.js +20 -10
  125. package/dashboard/dist-server/dashboard/src/server/agents/stream-json-adapter.js.map +1 -1
  126. package/dashboard/dist-server/dashboard/src/server/commander/commander-agent.js +2 -2
  127. package/dashboard/dist-server/dashboard/src/server/commander/commander-agent.js.map +1 -1
  128. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js +3 -3
  129. package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js.map +1 -1
  130. package/dashboard/dist-server/dashboard/src/server/routes/git.d.ts +2 -0
  131. package/dashboard/dist-server/dashboard/src/server/routes/git.js +79 -0
  132. package/dashboard/dist-server/dashboard/src/server/routes/git.js.map +1 -0
  133. package/dashboard/dist-server/dashboard/src/server/routes/index.js +3 -0
  134. package/dashboard/dist-server/dashboard/src/server/routes/index.js.map +1 -1
  135. package/dashboard/dist-server/dashboard/src/server/routes/issues.js +34 -0
  136. package/dashboard/dist-server/dashboard/src/server/routes/issues.js.map +1 -1
  137. package/dashboard/dist-server/dashboard/src/server/routes/workspace.js +43 -0
  138. package/dashboard/dist-server/dashboard/src/server/routes/workspace.js.map +1 -1
  139. package/dashboard/dist-server/dashboard/src/server/state/state-manager.js +43 -3
  140. package/dashboard/dist-server/dashboard/src/server/state/state-manager.js.map +1 -1
  141. package/dashboard/dist-server/dashboard/src/server/ws/handlers/execution-handler.js +2 -3
  142. package/dashboard/dist-server/dashboard/src/server/ws/handlers/execution-handler.js.map +1 -1
  143. package/dashboard/dist-server/dashboard/src/shared/issue-types.d.ts +5 -0
  144. package/dashboard/dist-server/dashboard/src/shared/issue-types.js.map +1 -1
  145. package/dashboard/dist-server/dashboard/src/shared/normalize-task.d.ts +2 -0
  146. package/dashboard/dist-server/dashboard/src/shared/normalize-task.js +75 -0
  147. package/dashboard/dist-server/dashboard/src/shared/normalize-task.js.map +1 -0
  148. package/dashboard/dist-server/src/hooks/constants.d.ts +90 -12
  149. package/dashboard/dist-server/src/hooks/constants.js +149 -16
  150. package/dashboard/dist-server/src/hooks/constants.js.map +1 -1
  151. package/dashboard/dist-server/src/types/index.d.ts +5 -0
  152. package/dashboard/package.json +59 -59
  153. package/dist/src/cli.js +3 -1
  154. package/dist/src/cli.js.map +1 -1
  155. package/dist/src/commands/collab.d.ts +14 -0
  156. package/dist/src/commands/collab.d.ts.map +1 -0
  157. package/dist/src/commands/{team.js → collab.js} +395 -96
  158. package/dist/src/commands/collab.js.map +1 -0
  159. package/dist/src/commands/hooks.d.ts +5 -1
  160. package/dist/src/commands/hooks.d.ts.map +1 -1
  161. package/dist/src/commands/hooks.js +50 -10
  162. package/dist/src/commands/hooks.js.map +1 -1
  163. package/dist/src/commands/install-ui/InstallConfirm.d.ts +3 -1
  164. package/dist/src/commands/install-ui/InstallConfirm.d.ts.map +1 -1
  165. package/dist/src/commands/install-ui/InstallConfirm.js +3 -1
  166. package/dist/src/commands/install-ui/InstallConfirm.js.map +1 -1
  167. package/dist/src/commands/install-ui/InstallExecution.d.ts.map +1 -1
  168. package/dist/src/commands/install-ui/InstallExecution.js +5 -1
  169. package/dist/src/commands/install-ui/InstallExecution.js.map +1 -1
  170. package/dist/src/commands/install-ui/InstallFlow.d.ts.map +1 -1
  171. package/dist/src/commands/install-ui/InstallFlow.js +7 -3
  172. package/dist/src/commands/install-ui/InstallFlow.js.map +1 -1
  173. package/dist/src/commands/install-ui/StatuslineConfig.d.ts +6 -1
  174. package/dist/src/commands/install-ui/StatuslineConfig.d.ts.map +1 -1
  175. package/dist/src/commands/install-ui/StatuslineConfig.js +27 -5
  176. package/dist/src/commands/install-ui/StatuslineConfig.js.map +1 -1
  177. package/dist/src/commands/msg.d.ts.map +1 -1
  178. package/dist/src/commands/msg.js +4 -3
  179. package/dist/src/commands/msg.js.map +1 -1
  180. package/dist/src/hooks/__tests__/statusline-visual-test.d.ts +7 -0
  181. package/dist/src/hooks/__tests__/statusline-visual-test.d.ts.map +1 -0
  182. package/dist/src/hooks/__tests__/statusline-visual-test.js +236 -0
  183. package/dist/src/hooks/__tests__/statusline-visual-test.js.map +1 -0
  184. package/dist/src/hooks/constants.d.ts +90 -12
  185. package/dist/src/hooks/constants.d.ts.map +1 -1
  186. package/dist/src/hooks/constants.js +149 -16
  187. package/dist/src/hooks/constants.js.map +1 -1
  188. package/dist/src/hooks/guards/index.d.ts +1 -0
  189. package/dist/src/hooks/guards/index.d.ts.map +1 -1
  190. package/dist/src/hooks/guards/index.js +1 -0
  191. package/dist/src/hooks/guards/index.js.map +1 -1
  192. package/dist/src/hooks/guards/preflight-guard.d.ts +29 -0
  193. package/dist/src/hooks/guards/preflight-guard.d.ts.map +1 -0
  194. package/dist/src/hooks/guards/preflight-guard.js +95 -0
  195. package/dist/src/hooks/guards/preflight-guard.js.map +1 -0
  196. package/dist/src/hooks/index.d.ts +1 -0
  197. package/dist/src/hooks/index.d.ts.map +1 -1
  198. package/dist/src/hooks/index.js +1 -0
  199. package/dist/src/hooks/index.js.map +1 -1
  200. package/dist/src/{commands/team.d.ts → hooks/preflight-core.d.ts} +12 -22
  201. package/dist/src/hooks/preflight-core.d.ts.map +1 -0
  202. package/dist/src/hooks/preflight-core.js +86 -0
  203. package/dist/src/hooks/preflight-core.js.map +1 -0
  204. package/dist/src/hooks/statusline.d.ts +8 -17
  205. package/dist/src/hooks/statusline.d.ts.map +1 -1
  206. package/dist/src/hooks/statusline.js +269 -112
  207. package/dist/src/hooks/statusline.js.map +1 -1
  208. package/dist/src/hooks/team-monitor.d.ts.map +1 -1
  209. package/dist/src/hooks/team-monitor.js +16 -0
  210. package/dist/src/hooks/team-monitor.js.map +1 -1
  211. package/dist/src/i18n/locales/en.d.ts.map +1 -1
  212. package/dist/src/i18n/locales/en.js +5 -0
  213. package/dist/src/i18n/locales/en.js.map +1 -1
  214. package/dist/src/i18n/locales/zh.d.ts.map +1 -1
  215. package/dist/src/i18n/locales/zh.js +5 -0
  216. package/dist/src/i18n/locales/zh.js.map +1 -1
  217. package/dist/src/i18n/types.d.ts +5 -0
  218. package/dist/src/i18n/types.d.ts.map +1 -1
  219. package/dist/src/tools/collab-adapter.d.ts +102 -0
  220. package/dist/src/tools/collab-adapter.d.ts.map +1 -0
  221. package/dist/src/tools/collab-adapter.js +458 -0
  222. package/dist/src/tools/collab-adapter.js.map +1 -0
  223. package/dist/src/tools/merge-validator.d.ts +24 -0
  224. package/dist/src/tools/merge-validator.d.ts.map +1 -0
  225. package/dist/src/tools/merge-validator.js +220 -0
  226. package/dist/src/tools/merge-validator.js.map +1 -0
  227. package/dist/src/tools/namespace-guard.d.ts +2 -0
  228. package/dist/src/tools/namespace-guard.d.ts.map +1 -1
  229. package/dist/src/tools/namespace-guard.js +12 -0
  230. package/dist/src/tools/namespace-guard.js.map +1 -1
  231. package/dist/src/tools/phase-gate-evaluator.d.ts +45 -0
  232. package/dist/src/tools/phase-gate-evaluator.d.ts.map +1 -0
  233. package/dist/src/tools/phase-gate-evaluator.js +42 -0
  234. package/dist/src/tools/phase-gate-evaluator.js.map +1 -0
  235. package/dist/src/tools/team-members.d.ts +18 -0
  236. package/dist/src/tools/team-members.d.ts.map +1 -1
  237. package/dist/src/tools/team-members.js +50 -0
  238. package/dist/src/tools/team-members.js.map +1 -1
  239. package/dist/src/tools/team-tasks.d.ts +120 -0
  240. package/dist/src/tools/team-tasks.d.ts.map +1 -0
  241. package/dist/src/tools/team-tasks.js +365 -0
  242. package/dist/src/tools/team-tasks.js.map +1 -0
  243. package/dist/src/tools/transition-recorder.d.ts +3 -0
  244. package/dist/src/tools/transition-recorder.d.ts.map +1 -1
  245. package/dist/src/tools/transition-recorder.js +52 -1
  246. package/dist/src/tools/transition-recorder.js.map +1 -1
  247. package/dist/src/types/index.d.ts +5 -0
  248. package/dist/src/types/index.d.ts.map +1 -1
  249. package/dist/src/utils/get-version.d.ts.map +1 -1
  250. package/dist/src/utils/get-version.js +15 -4
  251. package/dist/src/utils/get-version.js.map +1 -1
  252. package/package.json +1 -1
  253. package/templates/cli/prompts/workflow-skill-conflict-patterns.txt +3 -3
  254. package/templates/cli/prompts/workflow-skill-lessons-learned.txt +3 -3
  255. package/templates/config.json +7 -0
  256. package/templates/search-tools.md +1 -1
  257. package/templates/worktree-scope.json +10 -0
  258. package/templates/worktrees.json +27 -0
  259. package/workflows/analyze.md +86 -36
  260. package/workflows/brainstorm.md +17 -37
  261. package/workflows/cli-tools-usage.md +44 -27
  262. package/workflows/delegate-usage.md +3 -3
  263. package/workflows/execute.md +94 -28
  264. package/workflows/fork.md +309 -0
  265. package/workflows/init.md +10 -1
  266. package/workflows/issue-analyze.md +6 -2
  267. package/workflows/issue-discover.md +4 -4
  268. package/workflows/issue-execute.md +6 -3
  269. package/workflows/issue-plan.md +5 -2
  270. package/workflows/issue.md +66 -7
  271. package/workflows/maestro-coordinate.codex.md +281 -470
  272. package/workflows/maestro-coordinate.md +37 -30
  273. package/workflows/maestro-link-coordinate.md +2 -2
  274. package/workflows/maestro.codex.md +710 -0
  275. package/workflows/maestro.md +62 -46
  276. package/workflows/merge.md +285 -0
  277. package/workflows/milestone-audit.md +89 -70
  278. package/workflows/milestone-complete.md +89 -156
  279. package/workflows/plan.md +122 -17
  280. package/workflows/retrospective.md +4 -4
  281. package/workflows/roadmap.md +11 -3
  282. package/workflows/spec-generate.md +9 -0
  283. package/workflows/status.md +76 -27
  284. package/workflows/ui-design.md +14 -12
  285. package/workflows/verify.md +44 -8
  286. package/.claude/commands/maestro-phase-add.md +0 -63
  287. package/.claude/commands/maestro-phase-transition.md +0 -75
  288. package/.claude/commands/manage-issue-analyze.md +0 -62
  289. package/.claude/commands/manage-issue-execute.md +0 -73
  290. package/.claude/commands/manage-issue-plan.md +0 -62
  291. package/.codex/skills/maestro-phase-add/SKILL.md +0 -154
  292. package/.codex/skills/maestro-phase-transition/SKILL.md +0 -173
  293. package/.codex/skills/manage-issue-analyze/SKILL.md +0 -207
  294. package/.codex/skills/manage-issue-execute/SKILL.md +0 -200
  295. package/.codex/skills/manage-issue-plan/SKILL.md +0 -186
  296. package/chains/singles/phase-add.json +0 -31
  297. package/chains/singles/phase-transition.json +0 -23
  298. package/dashboard/dist/assets/ChatInput-CL8YDfOU.js +0 -67
  299. package/dashboard/dist/assets/ChatPage-CT-ozBK2.js +0 -8
  300. package/dashboard/dist/assets/CollabPage-C0rWMden.js +0 -1
  301. package/dashboard/dist/assets/KanbanPage-C6WbAlwI.js +0 -16
  302. package/dashboard/dist/assets/McpPage-BPIXADQi.js +0 -16
  303. package/dashboard/dist/assets/TreeBrowser-g_QUKemL.js +0 -11
  304. package/dashboard/dist/assets/WorkflowPage-X8aNkDEr.js +0 -6
  305. package/dashboard/dist/assets/git-branch-SqFf4Ru5.js +0 -6
  306. package/dashboard/dist/assets/index-D2Mtyw7I.css +0 -1
  307. package/dashboard/dist/assets/index-nufWop4p.js +0 -231
  308. package/dashboard/dist/assets/wrench-B84-zdLI.js +0 -11
  309. package/dist/src/commands/team.d.ts.map +0 -1
  310. package/dist/src/commands/team.js.map +0 -1
  311. package/workflows/phase-add.md +0 -252
  312. package/workflows/phase-transition.md +0 -399
@@ -1,207 +0,0 @@
1
- ---
2
- name: manage-issue-analyze
3
- description: Root cause analysis for a specific issue via CLI exploration. Gathers codebase context (grep or semantic deep search), runs maestro delegate gemini analysis, and attaches a structured analysis record to the issue in issues.jsonl.
4
- argument-hint: "<ISS-ID> [--tool gemini|qwen] [--depth standard|deep]"
5
- allowed-tools: Read, Write, Bash, Glob, Grep
6
- ---
7
-
8
- # Issue Analyze
9
-
10
- ## Usage
11
-
12
- ```bash
13
- $manage-issue-analyze "ISS-20260401-001"
14
- $manage-issue-analyze "ISS-20260401-001 --depth deep"
15
- $manage-issue-analyze "ISS-20260401-001 --tool qwen --depth standard"
16
- ```
17
-
18
- **Flags**:
19
- - `<ISS-ID>` — Issue ID in `ISS-XXXXXXXX-NNN` format (required)
20
- - `--tool gemini|qwen` — CLI tool for analysis (default: gemini)
21
- - `--depth standard|deep` — `standard` uses keyword grep; `deep` spawns a semantic explore agent (default: standard)
22
-
23
- **State files**: `.workflow/issues/issues.jsonl` (read + write)
24
-
25
- ---
26
-
27
- ## Overview
28
-
29
- Sequential 4-step pipeline: load issue → gather codebase context → run CLI analysis → attach analysis record. The CLI analysis step invokes `maestro delegate --to gemini --mode analysis` to produce a structured root-cause record written back into issues.jsonl. This is the first step in the issue resolution workflow: **analyze → plan → execute**.
30
-
31
- ```
32
- Load Issue → Gather Context → CLI Analysis → Attach Record
33
- (validate) (grep / agent) (gemini/qwen) (apply_patch)
34
- ```
35
-
36
- ---
37
-
38
- ## Implementation
39
-
40
- ### Step 1: Load and Validate Issue
41
-
42
- ```javascript
43
- functions.update_plan({
44
- explanation: "Starting issue analysis",
45
- plan: [
46
- { step: "Load and validate issue", status: "in_progress" },
47
- { step: "Gather codebase context", status: "pending" },
48
- { step: "Run CLI analysis", status: "pending" },
49
- { step: "Attach analysis record", status: "pending" }
50
- ]
51
- })
52
- ```
53
-
54
- Read `.workflow/issues/issues.jsonl` line by line. Find the row where `id == <ISS-ID>`. Validate:
55
- - ISS-ID matches format `ISS-[0-9]{8}-[0-9]{3}`
56
- - Row found in file
57
- - Parse fields: `id`, `title`, `description`, `status`, `context`, `related_files`
58
-
59
- If `status` is not `open` or `registered`, emit W001 but continue.
60
-
61
- ### Step 2: Gather Codebase Context
62
-
63
- **Standard depth** (default):
64
- - Grep key terms from `issue.title` + `issue.description` across `src/**` (-C 3)
65
- - If `issue.related_files` is set, read those files directly
66
- - Collect file:line references into `contextSummary`
67
-
68
- **Deep depth**:
69
- ```javascript
70
- spawn_agent({
71
- task_name: "ctx-explore",
72
- fork_turns: "none",
73
- message: `## TASK ASSIGNMENT
74
-
75
- ### MANDATORY FIRST STEPS
76
- 1. Read: ~/.codex/agents/cli-explore-agent.md
77
-
78
- ---
79
-
80
- Goal: Gather codebase context for issue root-cause analysis.
81
- Issue: <issue.title>
82
- Description: <issue.description>
83
-
84
- TASK: Find all code paths, functions, and modules related to this issue.
85
- Identify: affected locations (file:line), caller/callee chains, data flow, existing error handling.
86
-
87
- EXPECTED: JSON with: affected_files [{file, line, snippet, relevance}], related_modules, error_handling_gaps, test_coverage_gaps.
88
- `
89
- })
90
- const ctxResult = wait_agent({ timeout_ms: 1800000 }) // initial spawn: 30 min
91
- close_agent({ target: "ctx-explore" })
92
- ```
93
-
94
- ```javascript
95
- functions.update_plan({
96
- explanation: "Context gathered",
97
- plan: [
98
- { step: "Load and validate issue", status: "completed" },
99
- { step: "Gather codebase context", status: "completed" },
100
- { step: "Run CLI analysis", status: "in_progress" },
101
- { step: "Attach analysis record", status: "pending" }
102
- ]
103
- })
104
- ```
105
-
106
- ### Step 3: Run CLI Analysis
107
-
108
- > **Prompt safety**: `issue.title` and `contextSummary` may contain quotes or shell-special characters. Write the full prompt to a temp file first and reference it via `$(cat ...)` to avoid shell injection.
109
-
110
- ```javascript
111
- // Build prompt, write to temp file to avoid shell injection
112
- const promptContent = `PURPOSE: Root cause analysis for issue; identify exact cause, impact scope, fix direction; success = actionable record with file:line evidence.
113
- Issue: ${issue.id} — ${issue.title}
114
- TASK: Trace failure path | Map affected components | Assess blast radius | Define fix direction
115
- MODE: analysis
116
- CONTEXT: @src/**/* | Memory: ${contextSummary}
117
- EXPECTED: JSON: root_cause (string), affected_files (string[]), impact_scope (low|medium|high|critical), fix_direction (string), confidence (low|medium|high)
118
- CONSTRAINTS: Evidence required — file:line for each claim`
119
-
120
- Write(`/tmp/iss-analyze-${issue.id}.txt`, promptContent)
121
- functions.exec_command({
122
- cmd: `maestro delegate "$(cat /tmp/iss-analyze-${issue.id}.txt)" --to ${tool} --mode analysis`,
123
- workdir: "."
124
- })
125
- ```
126
-
127
- Parse CLI output into `analysis` object:
128
- ```json
129
- {
130
- "root_cause": "...",
131
- "affected_files": ["src/foo.ts:42"],
132
- "impact_scope": "medium",
133
- "fix_direction": "...",
134
- "analyzed_at": "<ISO>",
135
- "tool": "<tool>",
136
- "depth": "<depth>",
137
- "confidence": "medium"
138
- }
139
- ```
140
-
141
- ### Step 4: Attach Analysis Record and Report
142
-
143
- ```javascript
144
- // Read issues.jsonl, update the matching line in-place
145
- const historyEntry = { action: "analyzed", at: new Date().toISOString(), by: "manage-issue-analyze", summary: `Root cause: ${analysis.root_cause}` }
146
- const raw = Read('.workflow/issues/issues.jsonl')
147
- const updated = raw.split('\n')
148
- .filter(l => l.trim())
149
- .map(l => {
150
- const row = JSON.parse(l)
151
- if (row.id !== issueId) return l
152
- row.analysis = analysis
153
- row.issue_history = [...(row.issue_history || []), historyEntry]
154
- return JSON.stringify(row)
155
- })
156
- .join('\n') + '\n'
157
- Write('.workflow/issues/issues.jsonl', updated)
158
- ```
159
-
160
- ```javascript
161
- functions.update_plan({
162
- explanation: "Analysis complete",
163
- plan: [
164
- { step: "Load and validate issue", status: "completed" },
165
- { step: "Gather codebase context", status: "completed" },
166
- { step: "Run CLI analysis", status: "completed" },
167
- { step: "Attach analysis record", status: "completed" }
168
- ]
169
- })
170
- ```
171
-
172
- Display:
173
- ```
174
- === ANALYSIS COMPLETE ===
175
- Issue: <ISS-ID>: <title>
176
- Root Cause: <root_cause>
177
- Impact: <impact_scope>
178
- Confidence: <confidence>
179
- Affected: <N> files
180
-
181
- Next: $manage-issue-plan "<ISS-ID>"
182
- ```
183
-
184
- ---
185
-
186
- ## Error Handling
187
-
188
- | Code | Severity | Condition | Recovery |
189
- |------|----------|-----------|----------|
190
- | E001 | error | No ISS-ID provided | Display usage hint with format example |
191
- | E002 | error | ISS-ID format invalid | Show correct format `ISS-XXXXXXXX-NNN` |
192
- | E003 | error | ISS-ID not found in issues.jsonl | Suggest `$manage-issue "list"` |
193
- | E004 | error | CLI analysis returned no parseable result | Retry with different `--tool`; report partial |
194
- | W001 | warning | Issue status is not open/registered | Warn, allow analysis to continue |
195
-
196
- ---
197
-
198
- ## Core Rules
199
-
200
- 1. **Start immediately**: First action is `update_plan` then issue load — no preamble
201
- 2. **Validate before analysis**: Never run CLI without a valid loaded issue
202
- 3. **Evidence required**: Analysis record must cite file:line — no speculative root causes
203
- 4. **Deep agent lifecycle**: If deep spawned an agent, always `close_agent` before Step 3
204
- 5. **Append-only history**: Append to `issue_history`, never overwrite existing entries
205
- - *Note*: `spawn_agent` / `wait_agent` / `close_agent` are Codex v4 built-in orchestration functions — they do not need to be listed in `allowed-tools`
206
- 6. **Preserve existing fields**: Patch only `analysis` + `issue_history` — all other fields unchanged
207
- 7. **Next-step routing**: Always display `$manage-issue-plan "<ISS-ID>"` at the end
@@ -1,200 +0,0 @@
1
- ---
2
- name: manage-issue-execute
3
- description: Execute a planned solution for an issue via dual-mode dispatch. Auto-detects server UP (POST to /api/execution/dispatch) or DOWN (direct maestro delegate). Updates issue status on completion with next-step routing to close, debug, or verify.
4
- argument-hint: "<ISS-ID> [--executor claude-code|codex|gemini] [--dry-run]"
5
- allowed-tools: Read, Write, Bash, Glob, Grep
6
- ---
7
-
8
- # Issue Execute
9
-
10
- ## Usage
11
-
12
- ```bash
13
- $manage-issue-execute "ISS-20260401-001"
14
- $manage-issue-execute "ISS-20260401-001 --dry-run"
15
- $manage-issue-execute "ISS-20260401-001 --executor codex"
16
- $manage-issue-execute "ISS-20260401-001 --executor gemini"
17
- ```
18
-
19
- **Flags**:
20
- - `<ISS-ID>` — Issue ID in `ISS-XXXXXXXX-NNN` format (required)
21
- - `--executor claude-code|codex|gemini` — Execution agent (default: claude-code)
22
- - `--dry-run` — Preview constructed prompt and steps without executing
23
-
24
- **State files**: `.workflow/issues/issues.jsonl` (read + write)
25
-
26
- ---
27
-
28
- ## Overview
29
-
30
- Sequential 4-step pipeline with conditional dispatch: load issue → dry-run check → detect mode → execute + update. Server-UP path posts to the orchestration API; Server-DOWN path invokes `maestro delegate` directly. This is the third step in the issue resolution workflow: **analyze → plan → execute**.
31
-
32
- ```
33
- Load Issue → [dry-run?] → Detect Mode → Dispatch → Update Status
34
- (+ solution (display server UP POST (apply_patch)
35
- required) + stop) / DOWN / cli
36
- ```
37
-
38
- ---
39
-
40
- ## Implementation
41
-
42
- ### Step 1: Load Issue and Validate Solution
43
-
44
- ```javascript
45
- functions.update_plan({
46
- explanation: "Starting issue execution",
47
- plan: [
48
- { step: "Load issue and validate solution", status: "in_progress" },
49
- { step: "Detect dispatch mode", status: "pending" },
50
- { step: "Execute solution", status: "pending" },
51
- { step: "Update issue status", status: "pending" }
52
- ]
53
- })
54
- ```
55
-
56
- Read `.workflow/issues/issues.jsonl`, find row where `id == <ISS-ID>`. Validate:
57
- - ISS-ID format `ISS-[0-9]{8}-[0-9]{3}`
58
- - Row exists in file
59
- - `issue.solution` is non-null (E002 if missing — run `manage-issue-plan` first)
60
-
61
- If `--dry-run`: display the full constructed prompt and each step from `issue.solution.steps`, then stop.
62
-
63
- ### Step 2: Detect Dispatch Mode
64
-
65
- ```javascript
66
- // Read port from config (falls back to MAESTRO_PORT env var, then 3000)
67
- const configPort = (() => {
68
- try { return JSON.parse(Read('.workflow/config.json'))?.server?.port } catch { return null }
69
- })()
70
- const port = configPort || functions.exec_command({ cmd: "echo ${MAESTRO_PORT:-3000}", workdir: "." }).stdout.trim()
71
-
72
- const healthCheck = functions.exec_command({
73
- cmd: `curl -s -o /dev/null -w '%{http_code}' http://localhost:${port}/health`,
74
- workdir: "."
75
- })
76
- const serverUp = healthCheck.stdout.trim() === "200"
77
- ```
78
-
79
- | Mode | Condition | Action |
80
- |------|-----------|--------|
81
- | Server UP | HTTP 200 from /health | POST to `/api/execution/dispatch` |
82
- | Server DOWN | Any other result | Direct `maestro delegate` execution |
83
-
84
- ```javascript
85
- functions.update_plan({
86
- explanation: `Dispatch mode: ${serverUp ? "server" : "cli"}`,
87
- plan: [
88
- { step: "Load issue and validate solution", status: "completed" },
89
- { step: "Detect dispatch mode", status: "completed" },
90
- { step: "Execute solution", status: "in_progress" },
91
- { step: "Update issue status", status: "pending" }
92
- ]
93
- })
94
- ```
95
-
96
- ### Step 3: Execute Solution
97
-
98
- Build the execution prompt from `issue.solution`:
99
- ```
100
- PURPOSE: Implement solution for '${issue.title}'.
101
- TASK: ${solution.steps.map(s => `${s.order}. ${s.description} in ${s.file}`).join(' | ')}
102
- MODE: write
103
- CONTEXT: @src/**/* | Memory: Approach: ${solution.approach}
104
- ${issue.analysis ? `Root cause: ${issue.analysis.root_cause}` : ''}
105
- EXPECTED: All steps implemented, all verification criteria met: ${solution.verification.join('; ')}
106
- CONSTRAINTS: Only modify files listed in steps | No scope creep
107
- ```
108
-
109
- **Server UP**:
110
- ```javascript
111
- // Write payload to temp file to avoid shell injection from prompt content
112
- const payload = JSON.stringify({ issue_id: issue.id, executor, prompt: execPrompt })
113
- Write(`/tmp/iss-exec-${issue.id}.json`, payload)
114
- functions.exec_command({
115
- cmd: `curl -X POST http://localhost:${port}/api/execution/dispatch \
116
- -H 'Content-Type: application/json' \
117
- -d @/tmp/iss-exec-${issue.id}.json`,
118
- workdir: "."
119
- })
120
- ```
121
-
122
- **Server DOWN**:
123
- ```javascript
124
- // Write prompt to temp file to avoid shell injection
125
- Write(`/tmp/iss-exec-${issue.id}.txt`, execPrompt)
126
- functions.exec_command({
127
- cmd: `maestro delegate "$(cat /tmp/iss-exec-${issue.id}.txt)" --to ${executor === 'codex' ? 'codex' : 'claude'} --mode write`,
128
- workdir: "."
129
- })
130
- ```
131
-
132
- Set issue status to `in_progress` before dispatching via apply_patch.
133
-
134
- ### Step 4: Update Issue Status and Report
135
-
136
- On success:
137
- ```javascript
138
- // Read issues.jsonl, update the matching line in-place
139
- const historyEntry = { action: "executed", at: new Date().toISOString(), by: "manage-issue-execute", executor, summary: `Solution executed via ${serverUp ? "server" : "cli"}` }
140
- const raw = Read('.workflow/issues/issues.jsonl')
141
- const updated = raw.split('\n')
142
- .filter(l => l.trim())
143
- .map(l => {
144
- const row = JSON.parse(l)
145
- if (row.id !== issueId) return l
146
- row.status = "resolved"
147
- row.issue_history = [...(row.issue_history || []), historyEntry]
148
- return JSON.stringify(row)
149
- })
150
- .join('\n') + '\n'
151
- Write('.workflow/issues/issues.jsonl', updated)
152
- ```
153
-
154
- ```javascript
155
- functions.update_plan({
156
- explanation: "Execution complete",
157
- plan: [
158
- { step: "Load issue and validate solution", status: "completed" },
159
- { step: "Detect dispatch mode", status: "completed" },
160
- { step: "Execute solution", status: "completed" },
161
- { step: "Update issue status", status: "completed" }
162
- ]
163
- })
164
- ```
165
-
166
- Display next-step routing:
167
- ```
168
- === EXECUTION COMPLETE ===
169
- Issue: <ISS-ID>: <title>
170
- Executor: <executor>
171
- Mode: <server|cli>
172
- Status: resolved
173
-
174
- Next steps:
175
- Close: $manage-issue "close <ISS-ID> --resolution fixed"
176
- Verify: $maestro-verify "<phase>"
177
- Debug: $quality-debug "<failure description>" (if issues found)
178
- ```
179
-
180
- ---
181
-
182
- ## Error Handling
183
-
184
- | Code | Severity | Condition | Recovery |
185
- |------|----------|-----------|----------|
186
- | E001 | error | No ISS-ID provided | Display usage hint |
187
- | E002 | error | No solution record on issue | Run `$manage-issue-plan "<ISS-ID>"` first |
188
- | E003 | error | ISS-ID not found in issues.jsonl | Suggest `$manage-issue "list"` |
189
- | E004 | error | Server dispatch or CLI execution failed | Log error, revert status to `open`, display failure details |
190
-
191
- ---
192
-
193
- ## Core Rules
194
-
195
- 1. **Solution required**: Never dispatch without a valid `issue.solution` record
196
- 2. **Dry-run first**: `--dry-run` always stops after displaying prompt — no execution
197
- 3. **Status before dispatch**: Set status to `in_progress` before dispatching, `resolved` on success, `open` on failure
198
- 4. **Revert on failure**: If dispatch fails, revert issue status to `open` via apply_patch
199
- 5. **Preserve history**: Append to `issue_history`, never overwrite existing entries
200
- 6. **Next-step routing**: Always display all three options (close / verify / debug) at the end
@@ -1,186 +0,0 @@
1
- ---
2
- name: manage-issue-plan
3
- description: Solution planning for a specific issue. Auto-detects analysis context, runs maestro delegate planning, and attaches a structured solution record with ordered steps and verification criteria to the issue in issues.jsonl.
4
- argument-hint: "<ISS-ID> [--tool gemini|qwen] [--from-analysis]"
5
- allowed-tools: Read, Write, Bash, Glob, Grep
6
- ---
7
-
8
- # Issue Plan
9
-
10
- ## Usage
11
-
12
- ```bash
13
- $manage-issue-plan "ISS-20260401-001"
14
- $manage-issue-plan "ISS-20260401-001 --from-analysis"
15
- $manage-issue-plan "ISS-20260401-001 --tool qwen"
16
- ```
17
-
18
- **Flags**:
19
- - `<ISS-ID>` — Issue ID in `ISS-XXXXXXXX-NNN` format (required)
20
- - `--tool gemini|qwen` — CLI tool for planning (default: gemini)
21
- - `--from-analysis` — Explicitly include analysis context. Auto-detected when `issue.analysis` exists.
22
-
23
- **State files**: `.workflow/issues/issues.jsonl` (read + write)
24
-
25
- ---
26
-
27
- ## Overview
28
-
29
- Sequential 4-step pipeline: load issue → build planning prompt → run CLI planning → attach solution record. When an analysis record exists (from `manage-issue-analyze`), it is automatically included in the planning prompt to ground the solution in known root cause and affected files. This is the second step in the issue resolution workflow: **analyze → plan → execute**.
30
-
31
- ```
32
- Load Issue → Build Prompt → CLI Planning → Attach Solution
33
- (+ analysis (auto-detect (gemini/qwen) (apply_patch)
34
- context) analysis)
35
- ```
36
-
37
- ---
38
-
39
- ## Implementation
40
-
41
- ### Step 1: Load Issue and Detect Analysis Context
42
-
43
- ```javascript
44
- functions.update_plan({
45
- explanation: "Starting issue planning",
46
- plan: [
47
- { step: "Load issue and detect analysis", status: "in_progress" },
48
- { step: "Build planning prompt", status: "pending" },
49
- { step: "Run CLI planning", status: "pending" },
50
- { step: "Attach solution record", status: "pending" }
51
- ]
52
- })
53
- ```
54
-
55
- Read `.workflow/issues/issues.jsonl`, find the row where `id == <ISS-ID>`. Validate format and existence.
56
-
57
- Check analysis context:
58
- - `issue.analysis` non-null → `hasAnalysis = true` (auto-detect, no flag needed)
59
- - `--from-analysis` present AND `issue.analysis` is null → emit W001, proceed without context
60
-
61
- ### Step 2: Build Planning Prompt
62
-
63
- ```
64
- PURPOSE: Create a concrete, codebase-aware solution plan for '${issue.title}';
65
- success = ordered steps with exact file paths, function names, and verification criteria.
66
- TASK: Define solution approach | Break into ordered steps | Identify files to change | Define verification
67
- MODE: analysis
68
- CONTEXT: @src/**/* | Memory: Issue: ${issue.description}
69
- ${hasAnalysis ? `Root cause: ${analysis.root_cause}
70
- Affected files: ${analysis.affected_files.join(', ')}
71
- Fix direction: ${analysis.fix_direction}` : ''}
72
- EXPECTED: JSON: approach (string), steps [{order, description, file, action}],
73
- verification (string[]), estimated_risk (low|medium|high)
74
- CONSTRAINTS: Concrete steps only | File:line references required | No speculative changes
75
- ```
76
-
77
- ### Step 3: Run CLI Planning
78
-
79
- > **Prompt safety**: `issue.title`, `issue.description`, and analysis fields may contain quotes or shell-special characters. Write the assembled prompt to a temp file before passing to exec_command.
80
-
81
- ```javascript
82
- // Write prompt to temp file to avoid shell injection
83
- Write(`/tmp/iss-plan-${issueId}.txt`, prompt)
84
- functions.exec_command({
85
- cmd: `maestro delegate "$(cat /tmp/iss-plan-${issueId}.txt)" --to ${tool} --mode analysis`,
86
- workdir: "."
87
- })
88
- ```
89
-
90
- Parse CLI output into `solution` object:
91
- ```json
92
- {
93
- "approach": "...",
94
- "steps": [
95
- { "order": 1, "description": "...", "file": "src/foo.ts", "action": "modify" },
96
- { "order": 2, "description": "...", "file": "src/bar.ts", "action": "add" }
97
- ],
98
- "verification": ["Run unit tests for X", "Verify Y behavior"],
99
- "estimated_risk": "medium",
100
- "planned_at": "<ISO>",
101
- "tool": "<tool>"
102
- }
103
- ```
104
-
105
- ```javascript
106
- functions.update_plan({
107
- explanation: "Planning complete",
108
- plan: [
109
- { step: "Load issue and detect analysis", status: "completed" },
110
- { step: "Build planning prompt", status: "completed" },
111
- { step: "Run CLI planning", status: "completed" },
112
- { step: "Attach solution record", status: "in_progress" }
113
- ]
114
- })
115
- ```
116
-
117
- ### Step 4: Attach Solution Record and Report
118
-
119
- ```javascript
120
- // Read issues.jsonl, update the matching line in-place
121
- const historyEntry = { action: "planned", at: new Date().toISOString(), by: "manage-issue-plan", summary: `Approach: ${solution.approach} — ${solution.steps.length} steps` }
122
- const raw = Read('.workflow/issues/issues.jsonl')
123
- const updated = raw.split('\n')
124
- .filter(l => l.trim())
125
- .map(l => {
126
- const row = JSON.parse(l)
127
- if (row.id !== issueId) return l
128
- row.solution = solution
129
- row.issue_history = [...(row.issue_history || []), historyEntry]
130
- return JSON.stringify(row)
131
- })
132
- .join('\n') + '\n'
133
- Write('.workflow/issues/issues.jsonl', updated)
134
- ```
135
-
136
- ```javascript
137
- functions.update_plan({
138
- explanation: "Solution attached",
139
- plan: [
140
- { step: "Load issue and detect analysis", status: "completed" },
141
- { step: "Build planning prompt", status: "completed" },
142
- { step: "Run CLI planning", status: "completed" },
143
- { step: "Attach solution record", status: "completed" }
144
- ]
145
- })
146
- ```
147
-
148
- Display:
149
- ```
150
- === SOLUTION PLAN ===
151
- Issue: <ISS-ID>: <title>
152
- Approach: <approach>
153
- Risk: <estimated_risk>
154
- Steps: <N>
155
-
156
- Steps:
157
- 1. <description> → <file> (<action>)
158
- 2. <description> → <file> (<action>)
159
-
160
- Verification:
161
- - <verification 1>
162
-
163
- Next: $manage-issue-execute "<ISS-ID>"
164
- ```
165
-
166
- ---
167
-
168
- ## Error Handling
169
-
170
- | Code | Severity | Condition | Recovery |
171
- |------|----------|-----------|----------|
172
- | E001 | error | No ISS-ID provided | Display usage hint |
173
- | E002 | error | ISS-ID not found in issues.jsonl | Suggest `$manage-issue "list"` |
174
- | E003 | error | CLI planning returned no parseable result | Retry with different `--tool` |
175
- | W001 | warning | `--from-analysis` but no analysis record exists | Proceed without context; suggest `$manage-issue-analyze` |
176
-
177
- ---
178
-
179
- ## Core Rules
180
-
181
- 1. **Load before plan**: Validate issue existence before any CLI call
182
- 2. **Auto-detect analysis**: Check `issue.analysis` — never require explicit `--from-analysis` if data is present
183
- 3. **Concrete steps only**: Each step must have a file reference — no "investigate further" placeholders
184
- 4. **Preserve existing fields**: Patch only `solution` + `issue_history` — all other issue fields unchanged
185
- 5. **Append-only history**: Append to `issue_history`, never overwrite existing entries
186
- 6. **Next-step routing**: Always display `$manage-issue-execute "<ISS-ID>"` at the end
@@ -1,31 +0,0 @@
1
- {
2
- "$schema": "../chain-graph.schema.json",
3
- "id": "singles/phase-add",
4
- "name": "Phase Add",
5
- "description": "Add or insert a new phase into the project roadmap with automatic renumbering",
6
- "version": "1.0.0",
7
- "tags": [
8
- "maestro",
9
- "phase"
10
- ],
11
- "entry": "phase_add",
12
- "inputs": {
13
- "description": {
14
- "type": "string"
15
- }
16
- },
17
- "nodes": {
18
- "phase_add": {
19
- "type": "command",
20
- "cmd": "maestro-phase-add",
21
- "next": "done",
22
- "analyze": false,
23
- "args": "\"{description}\"",
24
- "description": "Add or insert a new phase into the project roadmap with automatic renumbering"
25
- },
26
- "done": {
27
- "type": "terminal",
28
- "status": "success"
29
- }
30
- }
31
- }
@@ -1,23 +0,0 @@
1
- {
2
- "$schema": "../chain-graph.schema.json",
3
- "id": "singles/phase-transition",
4
- "name": "Phase Transition",
5
- "description": "Mark current phase as complete, extract learnings, advance to next phase",
6
- "version": "1.0.0",
7
- "tags": ["lifecycle", "transition"],
8
- "entry": "phase_transition",
9
- "inputs": {},
10
- "nodes": {
11
- "phase_transition": {
12
- "type": "command",
13
- "cmd": "maestro-phase-transition",
14
- "description": "Complete current phase, archive artifacts, extract learnings, advance state",
15
- "next": "done",
16
- "analyze": false
17
- },
18
- "done": {
19
- "type": "terminal",
20
- "status": "success"
21
- }
22
- }
23
- }