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.
- package/.claude/commands/learn-decompose.md +3 -3
- package/.claude/commands/learn-follow.md +5 -5
- package/.claude/commands/learn-investigate.md +3 -3
- package/.claude/commands/learn-retro.md +6 -6
- package/.claude/commands/learn-second-opinion.md +3 -3
- package/.claude/commands/maestro-analyze.md +166 -99
- package/.claude/commands/maestro-brainstorm.md +2 -2
- package/.claude/commands/maestro-execute.md +151 -97
- package/.claude/commands/maestro-fork.md +111 -0
- package/.claude/commands/maestro-init.md +6 -6
- package/.claude/commands/maestro-merge.md +77 -0
- package/.claude/commands/maestro-milestone-audit.md +72 -60
- package/.claude/commands/maestro-milestone-complete.md +67 -59
- package/.claude/commands/maestro-milestone-release.md +6 -6
- package/.claude/commands/maestro-plan.md +167 -130
- package/.claude/commands/maestro-quick.md +4 -4
- package/.claude/commands/maestro-roadmap.md +5 -5
- package/.claude/commands/maestro-spec-generate.md +5 -5
- package/.claude/commands/maestro-ui-design.md +3 -3
- package/.claude/commands/maestro-verify.md +106 -87
- package/.claude/commands/maestro.md +10 -4
- package/.claude/commands/manage-codebase-rebuild.md +4 -4
- package/.claude/commands/manage-codebase-refresh.md +1 -1
- package/.claude/commands/manage-harvest.md +6 -6
- package/.claude/commands/manage-issue-discover.md +2 -2
- package/.claude/commands/manage-issue.md +7 -7
- package/.claude/commands/manage-learn.md +2 -2
- package/.claude/commands/manage-memory-capture.md +4 -4
- package/.claude/commands/manage-memory.md +2 -2
- package/.claude/commands/manage-status.md +24 -24
- package/.claude/commands/quality-business-test.md +5 -5
- package/.claude/commands/quality-debug.md +4 -4
- package/.claude/commands/quality-integration-test.md +4 -4
- package/.claude/commands/quality-refactor.md +3 -3
- package/.claude/commands/quality-retrospective.md +2 -2
- package/.claude/commands/quality-review.md +4 -4
- package/.claude/commands/quality-sync.md +3 -3
- package/.claude/commands/quality-test-gen.md +4 -4
- package/.claude/commands/quality-test.md +9 -9
- package/.claude/commands/spec-add.md +2 -2
- package/.claude/commands/spec-load.md +1 -1
- package/.claude/commands/spec-setup.md +5 -5
- package/.claude/commands/wiki-connect.md +3 -3
- package/.claude/commands/wiki-digest.md +4 -4
- package/.codex/skills/maestro/SKILL.md +463 -0
- package/.codex/skills/maestro-analyze/SKILL.md +79 -20
- package/.codex/skills/maestro-chain/SKILL.md +248 -0
- package/.codex/skills/maestro-coordinate/SKILL.md +279 -224
- package/.codex/skills/maestro-execute/SKILL.md +35 -26
- package/.codex/skills/maestro-milestone-audit/SKILL.md +103 -209
- package/.codex/skills/maestro-milestone-complete/SKILL.md +149 -158
- package/.codex/skills/maestro-plan/SKILL.md +56 -18
- package/.codex/skills/maestro-roadmap/SKILL.md +3 -2
- package/.codex/skills/team-coordinate/roles/coordinator/commands/monitor.md +2 -2
- package/.codex/skills/team-executor/roles/executor/commands/monitor.md +1 -1
- package/.codex/skills/team-lifecycle-v4/roles/coordinator/commands/monitor.md +2 -2
- package/.codex/skills/team-lifecycle-v4/specs/knowledge-transfer.md +2 -2
- package/.codex/skills/team-quality-assurance/roles/coordinator/commands/monitor.md +1 -1
- package/.codex/skills/team-review/roles/coordinator/commands/monitor.md +1 -1
- package/.codex/skills/team-tech-debt/roles/coordinator/commands/monitor.md +1 -1
- package/.codex/skills/team-testing/roles/coordinator/commands/monitor.md +1 -1
- package/README.md +26 -21
- package/README.zh-CN.md +23 -19
- package/bin/maestro-mcp.js +1 -1
- package/chains/_intent-map.json +21 -9
- package/chains/_router.json +30 -77
- package/chains/brainstorm-driven.json +17 -6
- package/chains/full-lifecycle.json +22 -23
- package/chains/issue-lifecycle.json +13 -13
- package/chains/milestone-close.json +20 -7
- package/chains/milestone-fork-merge.json +50 -0
- package/chains/roadmap-driven.json +17 -6
- package/chains/singles/issue-analyze.json +3 -3
- package/chains/singles/issue-execute.json +3 -3
- package/chains/singles/issue-plan.json +3 -3
- package/chains/spec-driven.json +17 -6
- package/dashboard/dist/assets/{ArtifactsPage-BmPOu8sO.js → ArtifactsPage-DZNCi6tn.js} +12 -7
- package/dashboard/dist/assets/ChatInput-Bvr-FeEq.js +49 -0
- package/dashboard/dist/assets/ChatPage-D9zTkJZo.js +22 -0
- package/dashboard/dist/assets/CollabPage-B4NAHXS2.js +1 -0
- package/dashboard/dist/assets/ExecutionPanel-CFt4LJyq.js +1 -0
- package/dashboard/dist/assets/KanbanPage-C8USth6H.js +21 -0
- package/dashboard/dist/assets/{MarkdownRenderer-BjZ43aSa.js → MarkdownRenderer-X4af_WNb.js} +1 -1
- package/dashboard/dist/assets/McpPage-BKfCVIyU.js +21 -0
- package/dashboard/dist/assets/OutputPanel-BlBQFJSW.js +1 -0
- package/dashboard/dist/assets/ProblemsPanel-De3DLvoI.js +1 -0
- package/dashboard/dist/assets/{RequirementBoardPage-B7yRL0s_.js → RequirementBoardPage-Bf1trzqs.js} +2 -2
- package/dashboard/dist/assets/{RequirementPage-D8J_-b6O.js → RequirementPage-Bllxe2XI.js} +10 -5
- package/dashboard/dist/assets/{SpecsPage-6lO8v8_C.js → SpecsPage-9lwxKT27.js} +2 -2
- package/dashboard/dist/assets/{SupervisorPage-Ds5N378a.js → SupervisorPage-SusdfHFq.js} +1 -1
- package/dashboard/dist/assets/{TeamsPage-DrkKr17T.js → TeamsPage-DsuM6OwC.js} +2 -2
- package/dashboard/dist/assets/TreeBrowser-Q12qobZs.js +6 -0
- package/dashboard/dist/assets/WorkflowPage-D_Fzdy3_.js +6 -0
- package/dashboard/dist/assets/{arrow-left-CadP5YgU.js → arrow-left-Bqtb2hle.js} +1 -1
- package/dashboard/dist/assets/{check-5xufDzS8.js → check-u6fGOwQO.js} +1 -1
- package/dashboard/dist/assets/{chevron-right-CYbpR4ev.js → chevron-right-Csu22t58.js} +1 -1
- package/dashboard/dist/assets/{circle-Bm-5Q-Yh.js → circle-CMrkbRNg.js} +1 -1
- package/dashboard/dist/assets/{circle-alert-BqcYuT7x.js → circle-alert-c3tH1P4z.js} +1 -1
- package/dashboard/dist/assets/{circle-check-big-yyzAFysU.js → circle-check-big-TDSeWstm.js} +1 -1
- package/dashboard/dist/assets/{circle-check-DEVzW_lm.js → circle-check-gYxxSYuH.js} +1 -1
- package/dashboard/dist/assets/{code-BBdC8Wmw.js → code-CFN2uX9V.js} +1 -1
- package/dashboard/dist/assets/{columns-3-CQ9Trztr.js → columns-3-38xIDlzy.js} +1 -1
- package/dashboard/dist/assets/{download-DayuF-sn.js → download-DC7KkKyP.js} +1 -1
- package/dashboard/dist/assets/{folder-CqXeSKeC.js → folder-CWq_lAnf.js} +1 -1
- package/dashboard/dist/assets/index-DWG-WrzT.js +231 -0
- package/dashboard/dist/assets/{index-Dru5HYy0.js → index-Do71weNR.js} +1 -1
- package/dashboard/dist/assets/index-GUNJodSR.css +1 -0
- package/dashboard/dist/assets/{list-DBOD6IUt.js → list-CgIP_2A-.js} +1 -1
- package/dashboard/dist/assets/{minus-fQI1Syn2.js → minus-DYoN5UGk.js} +1 -1
- package/dashboard/dist/assets/{pen-line-Bkbbngl5.js → pen-line-Bh_WKYHm.js} +1 -1
- package/dashboard/dist/assets/{proxy-teW12DdZ.js → proxy-BKxDAKTj.js} +1 -1
- package/dashboard/dist/assets/{search-Bq3ygFUW.js → search-SieXnOgr.js} +1 -1
- package/dashboard/dist/assets/{shallow-22ZN8sFt.js → shallow-Bme1JY57.js} +1 -1
- package/dashboard/dist/assets/{table-BEYtdWc4.js → table-llyEtj-7.js} +1 -1
- package/dashboard/dist/assets/terminal-BB3Xfuv5.js +6 -0
- package/dashboard/dist/assets/{trash-2-DMqGBgcF.js → trash-2-C8f4vFFM.js} +1 -1
- package/dashboard/dist/assets/{zap-9DVkGVtt.js → zap-4uwlzVm0.js} +1 -1
- package/dashboard/dist/index.html +2 -2
- package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js +8 -4
- package/dashboard/dist-server/dashboard/src/server/agents/claude-code-adapter.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/entry-normalizer.d.ts +1 -0
- package/dashboard/dist-server/dashboard/src/server/agents/entry-normalizer.js +2 -1
- package/dashboard/dist-server/dashboard/src/server/agents/entry-normalizer.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/agents/stream-json-adapter.js +20 -10
- package/dashboard/dist-server/dashboard/src/server/agents/stream-json-adapter.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/commander/commander-agent.js +2 -2
- package/dashboard/dist-server/dashboard/src/server/commander/commander-agent.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js +3 -3
- package/dashboard/dist-server/dashboard/src/server/coordinator/chain-map.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/git.d.ts +2 -0
- package/dashboard/dist-server/dashboard/src/server/routes/git.js +79 -0
- package/dashboard/dist-server/dashboard/src/server/routes/git.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/server/routes/index.js +3 -0
- package/dashboard/dist-server/dashboard/src/server/routes/index.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/issues.js +34 -0
- package/dashboard/dist-server/dashboard/src/server/routes/issues.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/workspace.js +43 -0
- package/dashboard/dist-server/dashboard/src/server/routes/workspace.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/state/state-manager.js +43 -3
- package/dashboard/dist-server/dashboard/src/server/state/state-manager.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/execution-handler.js +2 -3
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/execution-handler.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/issue-types.d.ts +5 -0
- package/dashboard/dist-server/dashboard/src/shared/issue-types.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/normalize-task.d.ts +2 -0
- package/dashboard/dist-server/dashboard/src/shared/normalize-task.js +75 -0
- package/dashboard/dist-server/dashboard/src/shared/normalize-task.js.map +1 -0
- package/dashboard/dist-server/src/hooks/constants.d.ts +90 -12
- package/dashboard/dist-server/src/hooks/constants.js +149 -16
- package/dashboard/dist-server/src/hooks/constants.js.map +1 -1
- package/dashboard/dist-server/src/types/index.d.ts +5 -0
- package/dashboard/package.json +59 -59
- package/dist/src/cli.js +3 -1
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/collab.d.ts +14 -0
- package/dist/src/commands/collab.d.ts.map +1 -0
- package/dist/src/commands/{team.js → collab.js} +395 -96
- package/dist/src/commands/collab.js.map +1 -0
- package/dist/src/commands/hooks.d.ts +5 -1
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +50 -10
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/install-ui/InstallConfirm.d.ts +3 -1
- package/dist/src/commands/install-ui/InstallConfirm.d.ts.map +1 -1
- package/dist/src/commands/install-ui/InstallConfirm.js +3 -1
- package/dist/src/commands/install-ui/InstallConfirm.js.map +1 -1
- package/dist/src/commands/install-ui/InstallExecution.d.ts.map +1 -1
- package/dist/src/commands/install-ui/InstallExecution.js +5 -1
- package/dist/src/commands/install-ui/InstallExecution.js.map +1 -1
- package/dist/src/commands/install-ui/InstallFlow.d.ts.map +1 -1
- package/dist/src/commands/install-ui/InstallFlow.js +7 -3
- package/dist/src/commands/install-ui/InstallFlow.js.map +1 -1
- package/dist/src/commands/install-ui/StatuslineConfig.d.ts +6 -1
- package/dist/src/commands/install-ui/StatuslineConfig.d.ts.map +1 -1
- package/dist/src/commands/install-ui/StatuslineConfig.js +27 -5
- package/dist/src/commands/install-ui/StatuslineConfig.js.map +1 -1
- package/dist/src/commands/msg.d.ts.map +1 -1
- package/dist/src/commands/msg.js +4 -3
- package/dist/src/commands/msg.js.map +1 -1
- package/dist/src/hooks/__tests__/statusline-visual-test.d.ts +7 -0
- package/dist/src/hooks/__tests__/statusline-visual-test.d.ts.map +1 -0
- package/dist/src/hooks/__tests__/statusline-visual-test.js +236 -0
- package/dist/src/hooks/__tests__/statusline-visual-test.js.map +1 -0
- package/dist/src/hooks/constants.d.ts +90 -12
- package/dist/src/hooks/constants.d.ts.map +1 -1
- package/dist/src/hooks/constants.js +149 -16
- package/dist/src/hooks/constants.js.map +1 -1
- package/dist/src/hooks/guards/index.d.ts +1 -0
- package/dist/src/hooks/guards/index.d.ts.map +1 -1
- package/dist/src/hooks/guards/index.js +1 -0
- package/dist/src/hooks/guards/index.js.map +1 -1
- package/dist/src/hooks/guards/preflight-guard.d.ts +29 -0
- package/dist/src/hooks/guards/preflight-guard.d.ts.map +1 -0
- package/dist/src/hooks/guards/preflight-guard.js +95 -0
- package/dist/src/hooks/guards/preflight-guard.js.map +1 -0
- package/dist/src/hooks/index.d.ts +1 -0
- package/dist/src/hooks/index.d.ts.map +1 -1
- package/dist/src/hooks/index.js +1 -0
- package/dist/src/hooks/index.js.map +1 -1
- package/dist/src/{commands/team.d.ts → hooks/preflight-core.d.ts} +12 -22
- package/dist/src/hooks/preflight-core.d.ts.map +1 -0
- package/dist/src/hooks/preflight-core.js +86 -0
- package/dist/src/hooks/preflight-core.js.map +1 -0
- package/dist/src/hooks/statusline.d.ts +8 -17
- package/dist/src/hooks/statusline.d.ts.map +1 -1
- package/dist/src/hooks/statusline.js +269 -112
- package/dist/src/hooks/statusline.js.map +1 -1
- package/dist/src/hooks/team-monitor.d.ts.map +1 -1
- package/dist/src/hooks/team-monitor.js +16 -0
- package/dist/src/hooks/team-monitor.js.map +1 -1
- package/dist/src/i18n/locales/en.d.ts.map +1 -1
- package/dist/src/i18n/locales/en.js +5 -0
- package/dist/src/i18n/locales/en.js.map +1 -1
- package/dist/src/i18n/locales/zh.d.ts.map +1 -1
- package/dist/src/i18n/locales/zh.js +5 -0
- package/dist/src/i18n/locales/zh.js.map +1 -1
- package/dist/src/i18n/types.d.ts +5 -0
- package/dist/src/i18n/types.d.ts.map +1 -1
- package/dist/src/tools/collab-adapter.d.ts +102 -0
- package/dist/src/tools/collab-adapter.d.ts.map +1 -0
- package/dist/src/tools/collab-adapter.js +458 -0
- package/dist/src/tools/collab-adapter.js.map +1 -0
- package/dist/src/tools/merge-validator.d.ts +24 -0
- package/dist/src/tools/merge-validator.d.ts.map +1 -0
- package/dist/src/tools/merge-validator.js +220 -0
- package/dist/src/tools/merge-validator.js.map +1 -0
- package/dist/src/tools/namespace-guard.d.ts +2 -0
- package/dist/src/tools/namespace-guard.d.ts.map +1 -1
- package/dist/src/tools/namespace-guard.js +12 -0
- package/dist/src/tools/namespace-guard.js.map +1 -1
- package/dist/src/tools/phase-gate-evaluator.d.ts +45 -0
- package/dist/src/tools/phase-gate-evaluator.d.ts.map +1 -0
- package/dist/src/tools/phase-gate-evaluator.js +42 -0
- package/dist/src/tools/phase-gate-evaluator.js.map +1 -0
- package/dist/src/tools/team-members.d.ts +18 -0
- package/dist/src/tools/team-members.d.ts.map +1 -1
- package/dist/src/tools/team-members.js +50 -0
- package/dist/src/tools/team-members.js.map +1 -1
- package/dist/src/tools/team-tasks.d.ts +120 -0
- package/dist/src/tools/team-tasks.d.ts.map +1 -0
- package/dist/src/tools/team-tasks.js +365 -0
- package/dist/src/tools/team-tasks.js.map +1 -0
- package/dist/src/tools/transition-recorder.d.ts +3 -0
- package/dist/src/tools/transition-recorder.d.ts.map +1 -1
- package/dist/src/tools/transition-recorder.js +52 -1
- package/dist/src/tools/transition-recorder.js.map +1 -1
- package/dist/src/types/index.d.ts +5 -0
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/utils/get-version.d.ts.map +1 -1
- package/dist/src/utils/get-version.js +15 -4
- package/dist/src/utils/get-version.js.map +1 -1
- package/package.json +1 -1
- package/templates/cli/prompts/workflow-skill-conflict-patterns.txt +3 -3
- package/templates/cli/prompts/workflow-skill-lessons-learned.txt +3 -3
- package/templates/config.json +7 -0
- package/templates/search-tools.md +1 -1
- package/templates/worktree-scope.json +10 -0
- package/templates/worktrees.json +27 -0
- package/workflows/analyze.md +86 -36
- package/workflows/brainstorm.md +17 -37
- package/workflows/cli-tools-usage.md +44 -27
- package/workflows/delegate-usage.md +3 -3
- package/workflows/execute.md +94 -28
- package/workflows/fork.md +309 -0
- package/workflows/init.md +10 -1
- package/workflows/issue-analyze.md +6 -2
- package/workflows/issue-discover.md +4 -4
- package/workflows/issue-execute.md +6 -3
- package/workflows/issue-plan.md +5 -2
- package/workflows/issue.md +66 -7
- package/workflows/maestro-coordinate.codex.md +281 -470
- package/workflows/maestro-coordinate.md +37 -30
- package/workflows/maestro-link-coordinate.md +2 -2
- package/workflows/maestro.codex.md +710 -0
- package/workflows/maestro.md +62 -46
- package/workflows/merge.md +285 -0
- package/workflows/milestone-audit.md +89 -70
- package/workflows/milestone-complete.md +89 -156
- package/workflows/plan.md +122 -17
- package/workflows/retrospective.md +4 -4
- package/workflows/roadmap.md +11 -3
- package/workflows/spec-generate.md +9 -0
- package/workflows/status.md +76 -27
- package/workflows/ui-design.md +14 -12
- package/workflows/verify.md +44 -8
- package/.claude/commands/maestro-phase-add.md +0 -63
- package/.claude/commands/maestro-phase-transition.md +0 -75
- package/.claude/commands/manage-issue-analyze.md +0 -62
- package/.claude/commands/manage-issue-execute.md +0 -73
- package/.claude/commands/manage-issue-plan.md +0 -62
- package/.codex/skills/maestro-phase-add/SKILL.md +0 -154
- package/.codex/skills/maestro-phase-transition/SKILL.md +0 -173
- package/.codex/skills/manage-issue-analyze/SKILL.md +0 -207
- package/.codex/skills/manage-issue-execute/SKILL.md +0 -200
- package/.codex/skills/manage-issue-plan/SKILL.md +0 -186
- package/chains/singles/phase-add.json +0 -31
- package/chains/singles/phase-transition.json +0 -23
- package/dashboard/dist/assets/ChatInput-CL8YDfOU.js +0 -67
- package/dashboard/dist/assets/ChatPage-CT-ozBK2.js +0 -8
- package/dashboard/dist/assets/CollabPage-C0rWMden.js +0 -1
- package/dashboard/dist/assets/KanbanPage-C6WbAlwI.js +0 -16
- package/dashboard/dist/assets/McpPage-BPIXADQi.js +0 -16
- package/dashboard/dist/assets/TreeBrowser-g_QUKemL.js +0 -11
- package/dashboard/dist/assets/WorkflowPage-X8aNkDEr.js +0 -6
- package/dashboard/dist/assets/git-branch-SqFf4Ru5.js +0 -6
- package/dashboard/dist/assets/index-D2Mtyw7I.css +0 -1
- package/dashboard/dist/assets/index-nufWop4p.js +0 -231
- package/dashboard/dist/assets/wrench-B84-zdLI.js +0 -11
- package/dist/src/commands/team.d.ts.map +0 -1
- package/dist/src/commands/team.js.map +0 -1
- package/workflows/phase-add.md +0 -252
- package/workflows/phase-transition.md +0 -399
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: manage-issue-analyze
|
|
3
|
-
description: Root cause analysis for a specific issue using CLI exploration
|
|
4
|
-
argument-hint: "<ISS-ID> [--tool gemini|qwen] [--depth standard|deep]"
|
|
5
|
-
allowed-tools:
|
|
6
|
-
- Read
|
|
7
|
-
- Write
|
|
8
|
-
- Bash
|
|
9
|
-
- Glob
|
|
10
|
-
- Grep
|
|
11
|
-
- Agent
|
|
12
|
-
- AskUserQuestion
|
|
13
|
-
---
|
|
14
|
-
<purpose>
|
|
15
|
-
Root cause analysis for a specific issue. Uses CLI exploration to analyze codebase context, identify root cause, assess impact, and produce a structured analysis record attached to the issue in `.workflow/issues/issues.jsonl`.
|
|
16
|
-
|
|
17
|
-
- **--tool**: CLI tool for analysis (default: gemini)
|
|
18
|
-
- **--depth**: `standard` (keyword grep) or `deep` (semantic search via Agent)
|
|
19
|
-
|
|
20
|
-
For issue CRUD, use `/manage-issue`. For solution planning, use `/manage-issue-plan`.
|
|
21
|
-
</purpose>
|
|
22
|
-
|
|
23
|
-
<required_reading>
|
|
24
|
-
@~/.maestro/workflows/issue-analyze.md
|
|
25
|
-
</required_reading>
|
|
26
|
-
|
|
27
|
-
<deferred_reading>
|
|
28
|
-
- [issue.json template](~/.maestro/templates/issue.json) -- read when building the analysis record structure
|
|
29
|
-
</deferred_reading>
|
|
30
|
-
|
|
31
|
-
<context>
|
|
32
|
-
$ARGUMENTS -- ISS-ID (required) + optional flags.
|
|
33
|
-
|
|
34
|
-
**Options:**
|
|
35
|
-
- `<ISS-ID>` -- issue ID in ISS-XXXXXXXX-NNN format (required)
|
|
36
|
-
- `--tool gemini|qwen` -- CLI tool for analysis (default: gemini)
|
|
37
|
-
- `--depth standard|deep` -- analysis depth (default: standard)
|
|
38
|
-
|
|
39
|
-
**State files:**
|
|
40
|
-
- `.workflow/issues/issues.jsonl` -- issue records (read + write)
|
|
41
|
-
</context>
|
|
42
|
-
|
|
43
|
-
<execution>
|
|
44
|
-
Follow '~/.maestro/workflows/issue-analyze.md' completely.
|
|
45
|
-
</execution>
|
|
46
|
-
|
|
47
|
-
<error_codes>
|
|
48
|
-
| Code | Severity | Condition | Recovery |
|
|
49
|
-
|------|----------|-----------|----------|
|
|
50
|
-
| E_NO_ISSUE_ID | error | No ISS-ID provided in $ARGUMENTS | Display usage hint with example |
|
|
51
|
-
| E_ISSUE_NOT_FOUND | error | ISS-ID not found in issues.jsonl | Suggest `/manage-issue list` to find valid IDs |
|
|
52
|
-
| E_INVALID_STATUS | warning | Issue status is not 'open' or 'registered' | Warn but allow analysis to proceed |
|
|
53
|
-
| E_ANALYSIS_FAILED | error | CLI analysis returned no usable results | Retry with different --tool or report partial context |
|
|
54
|
-
</error_codes>
|
|
55
|
-
|
|
56
|
-
<success_criteria>
|
|
57
|
-
- [ ] Issue loaded and validated from issues.jsonl
|
|
58
|
-
- [ ] Codebase context gathered (grep or semantic search)
|
|
59
|
-
- [ ] CLI analysis executed and JSON result parsed
|
|
60
|
-
- [ ] Analysis record attached to issue in issues.jsonl
|
|
61
|
-
- [ ] Summary displayed with next-step routing to manage-issue-plan
|
|
62
|
-
</success_criteria>
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: manage-issue-execute
|
|
3
|
-
description: Execute planned solution for an issue via dual-mode agent dispatch
|
|
4
|
-
argument-hint: "<ISS-ID> [--executor claude-code|codex|gemini] [--dry-run]"
|
|
5
|
-
allowed-tools:
|
|
6
|
-
- Read
|
|
7
|
-
- Write
|
|
8
|
-
- Bash
|
|
9
|
-
- Glob
|
|
10
|
-
- Grep
|
|
11
|
-
- Agent
|
|
12
|
-
- AskUserQuestion
|
|
13
|
-
---
|
|
14
|
-
<purpose>
|
|
15
|
-
Execute a planned solution for a specific issue. Supports dual-mode dispatch:
|
|
16
|
-
|
|
17
|
-
- **Server UP**: POST to `/api/execution/dispatch` for orchestrated execution
|
|
18
|
-
- **Server DOWN**: Direct execution via `maestro delegate` with the solution prompt
|
|
19
|
-
|
|
20
|
-
Options:
|
|
21
|
-
- **--executor**: Agent to execute the solution (default: claude-code)
|
|
22
|
-
- **--dry-run**: Display the constructed prompt and steps without executing
|
|
23
|
-
|
|
24
|
-
For issue CRUD, use `/manage-issue`. For analysis, use `/manage-issue-analyze`. For planning, use `/manage-issue-plan`.
|
|
25
|
-
</purpose>
|
|
26
|
-
|
|
27
|
-
<required_reading>
|
|
28
|
-
@~/.maestro/workflows/issue-execute.md
|
|
29
|
-
</required_reading>
|
|
30
|
-
|
|
31
|
-
<deferred_reading>
|
|
32
|
-
- [issue.json template](~/.maestro/templates/issue.json) -- read when updating issue status after execution
|
|
33
|
-
</deferred_reading>
|
|
34
|
-
|
|
35
|
-
<context>
|
|
36
|
-
$ARGUMENTS -- ISS-ID (required) + optional flags.
|
|
37
|
-
|
|
38
|
-
**Options:**
|
|
39
|
-
- `<ISS-ID>` -- issue ID in ISS-XXXXXXXX-NNN format (required)
|
|
40
|
-
- `--executor claude-code|codex|gemini` -- execution agent (default: claude-code)
|
|
41
|
-
- `--dry-run` -- preview prompt and steps without executing
|
|
42
|
-
|
|
43
|
-
**State files:**
|
|
44
|
-
- `.workflow/issues/issues.jsonl` -- issue records (read + write)
|
|
45
|
-
</context>
|
|
46
|
-
|
|
47
|
-
<execution>
|
|
48
|
-
Follow '~/.maestro/workflows/issue-execute.md' completely.
|
|
49
|
-
|
|
50
|
-
**Next-step routing on completion:**
|
|
51
|
-
- Execution succeeded → Skill({ skill: "manage-issue", args: "close <ISS-ID> --resolution fixed" })
|
|
52
|
-
- Execution failed → Skill({ skill: "quality-debug", args: "<failure description>" }) then retry
|
|
53
|
-
- Want verification → Skill({ skill: "maestro-verify", args: "{phase}" })
|
|
54
|
-
</execution>
|
|
55
|
-
|
|
56
|
-
<error_codes>
|
|
57
|
-
| Code | Severity | Condition | Recovery |
|
|
58
|
-
|------|----------|-----------|----------|
|
|
59
|
-
| E_NO_ISSUE_ID | error | No ISS-ID provided in $ARGUMENTS | Display usage hint with example |
|
|
60
|
-
| E_NO_SOLUTION | error | Issue has no solution record (issue.solution is null) | Suggest `/manage-issue-plan` first |
|
|
61
|
-
| E_DISPATCH_FAILED | error | Server dispatch or CLI execution failed | Log error, revert status to open, display failure details |
|
|
62
|
-
</error_codes>
|
|
63
|
-
|
|
64
|
-
<success_criteria>
|
|
65
|
-
- [ ] Issue loaded with valid solution record
|
|
66
|
-
- [ ] Execution mode detected (server UP or DOWN)
|
|
67
|
-
- [ ] Solution executed (or dry-run displayed)
|
|
68
|
-
- [ ] Issue status updated in issues.jsonl (in_progress -> resolved or open on failure)
|
|
69
|
-
- [ ] Result summary displayed with next-step routing:
|
|
70
|
-
- Execution succeeded → Skill({ skill: "manage-issue", args: "close <ISS-ID> --resolution fixed" })
|
|
71
|
-
- Execution failed → Skill({ skill: "quality-debug", args: "<failure description>" }) then retry
|
|
72
|
-
- Want verification → Skill({ skill: "maestro-verify", args: "{phase}" })
|
|
73
|
-
</success_criteria>
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: manage-issue-plan
|
|
3
|
-
description: Solution planning for a specific issue with codebase-aware step generation
|
|
4
|
-
argument-hint: "<ISS-ID> [--tool gemini|qwen] [--from-analysis]"
|
|
5
|
-
allowed-tools:
|
|
6
|
-
- Read
|
|
7
|
-
- Write
|
|
8
|
-
- Bash
|
|
9
|
-
- Glob
|
|
10
|
-
- Grep
|
|
11
|
-
- Agent
|
|
12
|
-
- AskUserQuestion
|
|
13
|
-
---
|
|
14
|
-
<purpose>
|
|
15
|
-
Solution planning for a specific issue. Generates a structured, codebase-aware solution with ordered steps, context, and a prompt template for execution. Attaches the solution record to the issue in `.workflow/issues/issues.jsonl`.
|
|
16
|
-
|
|
17
|
-
- **--tool**: CLI tool for planning (default: gemini)
|
|
18
|
-
- **--from-analysis**: Auto-detected; includes analysis context (root_cause, related_files) in the planning prompt if issue.analysis exists
|
|
19
|
-
|
|
20
|
-
For issue CRUD, use `/manage-issue`. For execution, use `/manage-issue-execute`.
|
|
21
|
-
</purpose>
|
|
22
|
-
|
|
23
|
-
<required_reading>
|
|
24
|
-
@~/.maestro/workflows/issue-plan.md
|
|
25
|
-
</required_reading>
|
|
26
|
-
|
|
27
|
-
<deferred_reading>
|
|
28
|
-
- [issue.json template](~/.maestro/templates/issue.json) -- read when building the solution record structure
|
|
29
|
-
</deferred_reading>
|
|
30
|
-
|
|
31
|
-
<context>
|
|
32
|
-
$ARGUMENTS -- ISS-ID (required) + optional flags.
|
|
33
|
-
|
|
34
|
-
**Options:**
|
|
35
|
-
- `<ISS-ID>` -- issue ID in ISS-XXXXXXXX-NNN format (required)
|
|
36
|
-
- `--tool gemini|qwen` -- CLI tool for planning (default: gemini)
|
|
37
|
-
- `--from-analysis` -- explicitly include analysis context (auto-detected if issue.analysis exists)
|
|
38
|
-
|
|
39
|
-
**State files:**
|
|
40
|
-
- `.workflow/issues/issues.jsonl` -- issue records (read + write)
|
|
41
|
-
</context>
|
|
42
|
-
|
|
43
|
-
<execution>
|
|
44
|
-
Follow '~/.maestro/workflows/issue-plan.md' completely.
|
|
45
|
-
</execution>
|
|
46
|
-
|
|
47
|
-
<error_codes>
|
|
48
|
-
| Code | Severity | Condition | Recovery |
|
|
49
|
-
|------|----------|-----------|----------|
|
|
50
|
-
| E_NO_ISSUE_ID | error | No ISS-ID provided in $ARGUMENTS | Display usage hint with example |
|
|
51
|
-
| E_ISSUE_NOT_FOUND | error | ISS-ID not found in issues.jsonl | Suggest `/manage-issue list` to find valid IDs |
|
|
52
|
-
| E_NO_ANALYSIS | warning | No analysis record on issue and --from-analysis specified | Proceed without analysis context, suggest `/manage-issue-analyze` first |
|
|
53
|
-
| E_PLANNING_FAILED | error | CLI planning returned no usable results | Retry with different --tool or report partial output |
|
|
54
|
-
</error_codes>
|
|
55
|
-
|
|
56
|
-
<success_criteria>
|
|
57
|
-
- [ ] Issue loaded and validated from issues.jsonl
|
|
58
|
-
- [ ] Analysis context included in prompt (if available)
|
|
59
|
-
- [ ] CLI planning executed and solution JSON parsed
|
|
60
|
-
- [ ] Solution record attached to issue in issues.jsonl
|
|
61
|
-
- [ ] Solution steps displayed with next-step routing to manage-issue-execute
|
|
62
|
-
</success_criteria>
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: maestro-phase-add
|
|
3
|
-
description: Add or insert a new phase into the project roadmap with automatic renumbering
|
|
4
|
-
argument-hint: "\"phase name\" [--after N] [--before N]"
|
|
5
|
-
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Maestro Phase Add (Single Agent)
|
|
9
|
-
|
|
10
|
-
## Usage
|
|
11
|
-
|
|
12
|
-
```bash
|
|
13
|
-
$maestro-phase-add "authentication"
|
|
14
|
-
$maestro-phase-add "caching-layer" --after 2
|
|
15
|
-
$maestro-phase-add "security-hardening" --before 5
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
**Flags**:
|
|
19
|
-
- `"phase name"`: Required. Used as both slug and title (slug = lowercase, hyphens)
|
|
20
|
-
- `--after N`: Insert after phase N (renumbers subsequent phases)
|
|
21
|
-
- `--before N`: Insert before phase N (renumbers from N onward)
|
|
22
|
-
- If neither: append at end
|
|
23
|
-
|
|
24
|
-
**Output**: New phase directory, updated roadmap.md, updated state.json
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
## Overview
|
|
29
|
-
|
|
30
|
-
Single mutation operation on the project roadmap. Creates a new phase directory with initialized index.json, inserts the phase entry into roadmap.md at the correct position, and handles automatic renumbering of all affected phase directories and references.
|
|
31
|
-
|
|
32
|
-
---
|
|
33
|
-
|
|
34
|
-
## Implementation
|
|
35
|
-
|
|
36
|
-
### Step 1: Parse Arguments
|
|
37
|
-
|
|
38
|
-
Extract:
|
|
39
|
-
- Phase name/slug (required — E001 if missing)
|
|
40
|
-
- `--after N` or `--before N` flag (mutually exclusive)
|
|
41
|
-
- Generate slug: lowercase, replace spaces with hyphens, strip special chars
|
|
42
|
-
|
|
43
|
-
### Step 2: Load Roadmap State
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
cat .workflow/roadmap.md
|
|
47
|
-
cat .workflow/state.json
|
|
48
|
-
ls -d .workflow/phases/*/
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
- Parse existing phases from roadmap.md
|
|
52
|
-
- List existing phase directories
|
|
53
|
-
- Check for duplicate slug (E003 if exists)
|
|
54
|
-
- Verify roadmap.md exists (E002 if not)
|
|
55
|
-
|
|
56
|
-
### Step 3: Calculate Position
|
|
57
|
-
|
|
58
|
-
- If `--after N`: new phase number = N + 1
|
|
59
|
-
- If `--before N`: new phase number = N
|
|
60
|
-
- If neither: new phase number = max_existing + 1
|
|
61
|
-
|
|
62
|
-
### Step 4: Renumber Existing Phases (if inserting)
|
|
63
|
-
|
|
64
|
-
**Only when `--after N` or `--before N` is used.**
|
|
65
|
-
|
|
66
|
-
For each phase with number >= new phase number (process in reverse order to avoid collisions):
|
|
67
|
-
|
|
68
|
-
1. Rename directory: `.workflow/phases/{NN}-{slug}` → `.workflow/phases/{NN+1}-{slug}`
|
|
69
|
-
2. Update index.json inside renamed directory: `"phase": N+1`
|
|
70
|
-
|
|
71
|
-
```bash
|
|
72
|
-
# Rename in reverse order to prevent collisions
|
|
73
|
-
for dir in $(ls -rd .workflow/phases/*/); do
|
|
74
|
-
# Extract number, if >= insertion point, rename to number+1
|
|
75
|
-
done
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
### Step 5: Create Phase Directory
|
|
79
|
-
|
|
80
|
-
```bash
|
|
81
|
-
mkdir -p .workflow/phases/{NN}-{slug}
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
Format NN as zero-padded 2-digit number (e.g., 03).
|
|
85
|
-
|
|
86
|
-
### Step 6: Initialize Phase index.json
|
|
87
|
-
|
|
88
|
-
Read template from `~/.maestro/templates/index.json` if available, otherwise create:
|
|
89
|
-
|
|
90
|
-
```json
|
|
91
|
-
{
|
|
92
|
-
"phase": <N>,
|
|
93
|
-
"slug": "<slug>",
|
|
94
|
-
"title": "<phase name>",
|
|
95
|
-
"status": "pending",
|
|
96
|
-
"created_at": "<ISO timestamp>",
|
|
97
|
-
"tasks": []
|
|
98
|
-
}
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
Write to `.workflow/phases/{NN}-{slug}/index.json`.
|
|
102
|
-
|
|
103
|
-
### Step 7: Update roadmap.md
|
|
104
|
-
|
|
105
|
-
Insert new phase entry at the correct position in roadmap.md:
|
|
106
|
-
- Match the existing phase entry format
|
|
107
|
-
- If inserting, update all subsequent phase numbers in the document
|
|
108
|
-
|
|
109
|
-
### Step 8: Update state.json
|
|
110
|
-
|
|
111
|
-
If renumbering affected `current_phase` or `phases_completed`:
|
|
112
|
-
- Adjust `current_phase` number if it was shifted
|
|
113
|
-
- Adjust all entries in `phases_completed` that were shifted
|
|
114
|
-
|
|
115
|
-
### Step 9: Completion Report
|
|
116
|
-
|
|
117
|
-
```
|
|
118
|
-
=== PHASE ADDED ===
|
|
119
|
-
Phase: {NN} - {phase name}
|
|
120
|
-
Location: .workflow/phases/{NN}-{slug}/
|
|
121
|
-
|
|
122
|
-
{if renumbered}
|
|
123
|
-
Renumbered: Phases {start}-{end} shifted by +1
|
|
124
|
-
{endif}
|
|
125
|
-
|
|
126
|
-
Updated:
|
|
127
|
-
.workflow/roadmap.md
|
|
128
|
-
.workflow/phases/{NN}-{slug}/index.json
|
|
129
|
-
{if renumbered}.workflow/state.json{endif}
|
|
130
|
-
|
|
131
|
-
Next steps:
|
|
132
|
-
$maestro-plan "" -- Plan tasks for the new phase
|
|
133
|
-
$manage-status -- View updated roadmap
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
---
|
|
137
|
-
|
|
138
|
-
## Error Handling
|
|
139
|
-
|
|
140
|
-
| Code | Severity | Description | Recovery |
|
|
141
|
-
|------|----------|-------------|----------|
|
|
142
|
-
| E001 | error | Phase name/slug required | Provide phase name as argument |
|
|
143
|
-
| E002 | error | roadmap.md not found | Run maestro-init first |
|
|
144
|
-
| E003 | error | Duplicate phase name/slug exists | Choose a different name |
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
## Core Rules
|
|
149
|
-
|
|
150
|
-
1. **Reverse-order renumbering** — always rename directories from highest to lowest to prevent collisions
|
|
151
|
-
2. **State consistency** — state.json phase references must be adjusted after renumbering
|
|
152
|
-
3. **Match existing format** — new roadmap.md entries must match the style of existing entries
|
|
153
|
-
4. **Zero-padded numbers** — always use 2-digit format (01, 02, ... 99)
|
|
154
|
-
5. **Slug normalization** — lowercase, hyphens only, no special characters
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: maestro-phase-transition
|
|
3
|
-
description: Mark current or specified phase as complete, extract learnings, advance to next phase
|
|
4
|
-
argument-hint: "[phase-number] [--force]"
|
|
5
|
-
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Maestro Phase Transition (Single Agent)
|
|
9
|
-
|
|
10
|
-
## Usage
|
|
11
|
-
|
|
12
|
-
```bash
|
|
13
|
-
$maestro-phase-transition ""
|
|
14
|
-
$maestro-phase-transition "2"
|
|
15
|
-
$maestro-phase-transition "3 --force"
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
**Flags**:
|
|
19
|
-
- `[phase-number]`: Phase to transition from (defaults to current_phase from state.json)
|
|
20
|
-
- `--force`: Skip gap checks and force transition even with warnings
|
|
21
|
-
|
|
22
|
-
**Output**: Updated state.json, completed phase index.json, initialized next phase, learnings extracted
|
|
23
|
-
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
## Overview
|
|
27
|
-
|
|
28
|
-
State-machine transition skill. Validates that the current phase meets completion criteria (tasks done, verification passed, no unresolved gaps), marks it complete, extracts learnings, and advances to the next phase. Creates next phase directory if needed.
|
|
29
|
-
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
## Implementation
|
|
33
|
-
|
|
34
|
-
### Step 1: Parse Arguments
|
|
35
|
-
|
|
36
|
-
Extract:
|
|
37
|
-
- Phase number (optional, integer)
|
|
38
|
-
- `--force` flag
|
|
39
|
-
|
|
40
|
-
### Step 2: Load State
|
|
41
|
-
|
|
42
|
-
```bash
|
|
43
|
-
cat .workflow/state.json
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
Determine phase number:
|
|
47
|
-
- If provided: use specified phase
|
|
48
|
-
- If omitted: use `current_phase` from state.json
|
|
49
|
-
- If neither: error E001
|
|
50
|
-
|
|
51
|
-
### Step 3: Resolve Phase Directory
|
|
52
|
-
|
|
53
|
-
```bash
|
|
54
|
-
ls -d .workflow/phases/*/ | grep "^.workflow/phases/0*{N}-"
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
Read phase files:
|
|
58
|
-
- `.workflow/phases/{NN}-{slug}/index.json` — phase metadata, task statuses
|
|
59
|
-
- `.workflow/phases/{NN}-{slug}/verification.json` — verification results (if exists)
|
|
60
|
-
- `.workflow/phases/{NN}-{slug}/review.json` — code review results (if exists)
|
|
61
|
-
|
|
62
|
-
### Step 4: Validate Completion
|
|
63
|
-
|
|
64
|
-
Check the following (skip all if `--force`):
|
|
65
|
-
|
|
66
|
-
1. **Task completion**: All tasks in index.json have status "completed" or "skipped"
|
|
67
|
-
2. **Verification passed**: verification.json exists and verdict is not "FAIL" (E002 if failed)
|
|
68
|
-
3. **No critical gaps**: No unresolved critical gaps in verification results (E003)
|
|
69
|
-
4. **Review status**: Check review.json if exists
|
|
70
|
-
- BLOCK verdict → W003 (warning, suggest quality-review fix)
|
|
71
|
-
- No review.json → W004 (warning, suggest running quality-review)
|
|
72
|
-
5. **UAT status**: Check for test failures → W002
|
|
73
|
-
|
|
74
|
-
If warnings only (no errors) and not `--force`: display warnings and ask user to confirm.
|
|
75
|
-
|
|
76
|
-
### Step 5: Mark Phase Complete
|
|
77
|
-
|
|
78
|
-
Update `.workflow/phases/{NN}-{slug}/index.json`:
|
|
79
|
-
```json
|
|
80
|
-
{
|
|
81
|
-
"status": "complete",
|
|
82
|
-
"completed_at": "<ISO timestamp>"
|
|
83
|
-
}
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
### Step 6: Extract Learnings
|
|
87
|
-
|
|
88
|
-
Analyze phase artifacts for learnings:
|
|
89
|
-
1. Read verification.json gaps and resolutions
|
|
90
|
-
2. Read review.json feedback patterns
|
|
91
|
-
3. Read task summaries for recurring themes
|
|
92
|
-
4. Identify patterns: what worked, what didn't, what to carry forward
|
|
93
|
-
|
|
94
|
-
Append to `.workflow/specs/learnings.md`:
|
|
95
|
-
```markdown
|
|
96
|
-
## Phase {N}: {slug}
|
|
97
|
-
**Completed**: {date}
|
|
98
|
-
|
|
99
|
-
### What Worked
|
|
100
|
-
- {items}
|
|
101
|
-
|
|
102
|
-
### Challenges
|
|
103
|
-
- {items}
|
|
104
|
-
|
|
105
|
-
### Carry Forward
|
|
106
|
-
- {items}
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
### Step 7: Initialize Next Phase
|
|
110
|
-
|
|
111
|
-
Determine next phase number = N + 1.
|
|
112
|
-
|
|
113
|
-
Check if next phase directory exists:
|
|
114
|
-
- If exists: verify index.json has status "pending", update to "active"
|
|
115
|
-
- If not exists: create directory and initialize
|
|
116
|
-
|
|
117
|
-
```bash
|
|
118
|
-
mkdir -p .workflow/phases/{NN+1}-{next_slug}
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
Write `index.json` for next phase (read template from `~/.maestro/templates/index.json` if available):
|
|
122
|
-
```json
|
|
123
|
-
{
|
|
124
|
-
"phase": <N+1>,
|
|
125
|
-
"status": "active",
|
|
126
|
-
"created_at": "<ISO timestamp>"
|
|
127
|
-
}
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
### Step 8: Update Project State
|
|
131
|
-
|
|
132
|
-
Update `.workflow/state.json`:
|
|
133
|
-
- `current_phase`: N + 1
|
|
134
|
-
- `phases_completed`: append phase N
|
|
135
|
-
|
|
136
|
-
### Step 9: Completion Report
|
|
137
|
-
|
|
138
|
-
```
|
|
139
|
-
=== PHASE TRANSITION ===
|
|
140
|
-
From: Phase {N} ({slug}) → COMPLETE
|
|
141
|
-
To: Phase {N+1} ({next_slug}) → ACTIVE
|
|
142
|
-
|
|
143
|
-
Learnings extracted: .workflow/specs/learnings.md
|
|
144
|
-
State updated: .workflow/state.json
|
|
145
|
-
|
|
146
|
-
Next steps:
|
|
147
|
-
$maestro-plan "" -- Plan tasks for Phase {N+1}
|
|
148
|
-
$manage-status -- View project dashboard
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
---
|
|
152
|
-
|
|
153
|
-
## Error Handling
|
|
154
|
-
|
|
155
|
-
| Code | Severity | Description | Recovery |
|
|
156
|
-
|------|----------|-------------|----------|
|
|
157
|
-
| E001 | error | Phase number required and could not determine | Specify phase number explicitly |
|
|
158
|
-
| E002 | error | Phase has not passed verification | Run maestro-verify first |
|
|
159
|
-
| E003 | error | Phase has unresolved critical gaps | Fix gaps, re-verify |
|
|
160
|
-
| W001 | warning | Phase has warnings but no blockers | Proceed with confirmation |
|
|
161
|
-
| W002 | warning | UAT test failures exist | Review recommended |
|
|
162
|
-
| W003 | warning | Code review verdict is BLOCK | Fix review findings first |
|
|
163
|
-
| W004 | warning | Code review not yet run | Run quality-review first |
|
|
164
|
-
|
|
165
|
-
---
|
|
166
|
-
|
|
167
|
-
## Core Rules
|
|
168
|
-
|
|
169
|
-
1. **Verify before transition** — refuse to transition without verification (unless --force)
|
|
170
|
-
2. **Learnings are mandatory** — always extract and persist learnings, even if minimal
|
|
171
|
-
3. **Next phase must be ready** — create directory and index.json before reporting success
|
|
172
|
-
4. **State consistency** — state.json and index.json must agree at all times
|
|
173
|
-
5. **Warnings need acknowledgment** — display warnings and require user confirmation (unless --force)
|