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,158 +1,149 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: maestro-milestone-complete
|
|
3
|
-
description: Archive completed milestone
|
|
4
|
-
argument-hint: "[milestone] [--force]"
|
|
5
|
-
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Milestone Complete
|
|
9
|
-
|
|
10
|
-
## Usage
|
|
11
|
-
|
|
12
|
-
```bash
|
|
13
|
-
$maestro-milestone-complete "
|
|
14
|
-
$maestro-milestone-complete # uses current_milestone from state.json
|
|
15
|
-
$maestro-milestone-complete --force "
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
**
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
### Step
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
---
|
|
151
|
-
|
|
152
|
-
## Core Rules
|
|
153
|
-
|
|
154
|
-
- **Never delete** phase directories before archiving -- always copy first
|
|
155
|
-
- **Preserve** `accumulated_context` across milestone boundaries
|
|
156
|
-
- **Learnings dedup** -- check existing entries before appending
|
|
157
|
-
- **Git commit** if in a git repo: `chore: complete milestone {milestone}`
|
|
158
|
-
- **--force** bypasses audit check only, not phase completion check
|
|
1
|
+
---
|
|
2
|
+
name: maestro-milestone-complete
|
|
3
|
+
description: Archive completed milestone scratch artifacts to milestones/ dir, move artifact entries to milestone_history, extract learnings, advance state.
|
|
4
|
+
argument-hint: "[milestone] [--force]"
|
|
5
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Milestone Complete
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
$maestro-milestone-complete "M1"
|
|
14
|
+
$maestro-milestone-complete # uses current_milestone from state.json
|
|
15
|
+
$maestro-milestone-complete --force "M1" # skip audit check
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
**Output**: `.workflow/milestones/{milestone}/` archive directory
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Overview
|
|
23
|
+
|
|
24
|
+
Sequential milestone archival: validate audit → archive scratch dirs → extract learnings → move artifact entries to milestone_history → advance state → clean scratch.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Implementation
|
|
29
|
+
|
|
30
|
+
### Step 1: Parse & Validate
|
|
31
|
+
|
|
32
|
+
1. Read `.workflow/state.json` to get `current_milestone`, `artifacts[]`, `milestones[]`
|
|
33
|
+
2. Determine target milestone (from args or current_milestone)
|
|
34
|
+
3. Check `--force` flag
|
|
35
|
+
4. If no milestone: **E001**
|
|
36
|
+
5. Check audit report exists at `.workflow/milestones/{milestone}/audit-report.md`
|
|
37
|
+
- Missing + not --force: **E002**
|
|
38
|
+
- Verdict FAIL + not --force: **E002**
|
|
39
|
+
6. Check all milestone artifacts completed:
|
|
40
|
+
- `state.json.artifacts.filter(a => a.milestone == target && a.status != "completed")`
|
|
41
|
+
- If any incomplete + not --force: **E003**
|
|
42
|
+
|
|
43
|
+
### Step 2: Archive Scratch Dirs
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
mkdir -p .workflow/milestones/{milestone}/artifacts/
|
|
47
|
+
|
|
48
|
+
# For each artifact path, copy to archive
|
|
49
|
+
for artifact in milestone_artifacts:
|
|
50
|
+
if dir exists .workflow/{artifact.path}:
|
|
51
|
+
cp -r .workflow/{artifact.path} .workflow/milestones/{milestone}/artifacts/$(basename {artifact.path})/
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Snapshot roadmap:
|
|
55
|
+
```bash
|
|
56
|
+
cp .workflow/roadmap.md .workflow/milestones/{milestone}/roadmap-snapshot.md
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Step 3: Extract Learnings
|
|
60
|
+
|
|
61
|
+
- Read `.summaries/` from each execute artifact's plan dir
|
|
62
|
+
- Read `reflection-log.md` if exists
|
|
63
|
+
- Extract patterns, pitfalls, strategy adjustments
|
|
64
|
+
- Append to `.workflow/specs/learnings.md`
|
|
65
|
+
- Avoid duplicates (check existing entries)
|
|
66
|
+
|
|
67
|
+
### Step 4: Archive Artifact Entries
|
|
68
|
+
|
|
69
|
+
Move artifact entries from `state.json.artifacts[]` to `milestone_history`:
|
|
70
|
+
|
|
71
|
+
```json
|
|
72
|
+
{
|
|
73
|
+
"milestone_history": [
|
|
74
|
+
...existing,
|
|
75
|
+
{
|
|
76
|
+
"id": "{milestone}",
|
|
77
|
+
"name": "{milestone_name}",
|
|
78
|
+
"status": "completed",
|
|
79
|
+
"completed_at": "{now}",
|
|
80
|
+
"archive_path": "milestones/{milestone}/",
|
|
81
|
+
"archived_artifacts": [ ...all milestone artifact entries... ]
|
|
82
|
+
}
|
|
83
|
+
]
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Remove from `artifacts[]`:
|
|
88
|
+
```
|
|
89
|
+
state.json.artifacts = state.json.artifacts.filter(a => a.milestone != target)
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Step 5: Advance State
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
next = state.json.milestones.find(m => m.status == "pending")
|
|
96
|
+
if next:
|
|
97
|
+
state.json.current_milestone = next.id
|
|
98
|
+
next.status = "active"
|
|
99
|
+
else:
|
|
100
|
+
state.json.current_milestone = null
|
|
101
|
+
state.json.status = "completed"
|
|
102
|
+
|
|
103
|
+
state.json.last_updated = now()
|
|
104
|
+
Write state.json (atomic)
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Step 6: Clean Scratch
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
for artifact in archived_artifacts:
|
|
111
|
+
rm -rf .workflow/{artifact.path}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Step 7: Generate Summary & Report
|
|
115
|
+
|
|
116
|
+
Write `.workflow/milestones/{milestone}/summary.md` with outcomes and learnings.
|
|
117
|
+
Update `.workflow/project.md` Context section.
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
=== MILESTONE COMPLETE ===
|
|
121
|
+
Milestone: {milestone} ({name})
|
|
122
|
+
Artifacts: {count} archived
|
|
123
|
+
Next: {next_milestone or "Project complete"}
|
|
124
|
+
|
|
125
|
+
Next steps:
|
|
126
|
+
$maestro-milestone-release -- Cut release
|
|
127
|
+
$maestro-analyze -- Start next milestone
|
|
128
|
+
$manage-status -- View state
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Error Handling
|
|
134
|
+
|
|
135
|
+
| Code | Severity | Description | Recovery |
|
|
136
|
+
|------|----------|-------------|----------|
|
|
137
|
+
| E001 | error | Milestone identifier required | Specify milestone |
|
|
138
|
+
| E002 | error | Audit not passed | Run milestone-audit first |
|
|
139
|
+
| E003 | error | Incomplete artifacts remain | Complete work first |
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Core Rules
|
|
144
|
+
|
|
145
|
+
1. **Audit before archive** — refuse without passing audit (unless --force)
|
|
146
|
+
2. **Atomic state update** — write state.json via tmp+rename
|
|
147
|
+
3. **Learnings are mandatory** — always extract before archiving
|
|
148
|
+
4. **Clean after archive** — remove scratch dirs only after successful copy
|
|
149
|
+
5. **Advance state** — always set next milestone or mark project complete
|
|
@@ -163,13 +163,48 @@ const phaseArg = $ARGUMENTS
|
|
|
163
163
|
.replace(/--yes|-y|--continue|--concurrency\s+\d+|-c\s+\d+|--auto|--gaps|--parallel|--collab|--dir\s+\S+|--spec\s+\S+/g, '')
|
|
164
164
|
.trim()
|
|
165
165
|
|
|
166
|
+
// Auto-bootstrap state.json if missing
|
|
167
|
+
if (!fileExists('.workflow/state.json')) {
|
|
168
|
+
Bash('mkdir -p .workflow/scratch/')
|
|
169
|
+
writeMinimalStateJson()
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// Scope determination (per scratch-milestone-architecture)
|
|
173
|
+
const state = JSON.parse(Read('.workflow/state.json'))
|
|
174
|
+
let scope, phaseNum = null, phaseSlug, contextDir
|
|
175
|
+
|
|
176
|
+
if (dirMatch) {
|
|
177
|
+
contextDir = dirMatch[1]
|
|
178
|
+
phaseSlug = contextDir.split('/').pop()
|
|
179
|
+
// Inherit scope from parent artifact if registered
|
|
180
|
+
const parentArtifact = state.artifacts.find(a => a.path === contextDir)
|
|
181
|
+
scope = parentArtifact?.scope || 'standalone'
|
|
182
|
+
} else if (phaseArg === '') {
|
|
183
|
+
if (state.current_milestone && fileExists('.workflow/roadmap.md')) {
|
|
184
|
+
scope = 'milestone'
|
|
185
|
+
phaseSlug = slugify(state.milestones.find(m => m.id === state.current_milestone)?.name || state.current_milestone)
|
|
186
|
+
// Find latest analyze artifact for this milestone
|
|
187
|
+
contextDir = state.artifacts.filter(a => a.type === 'analyze' && a.milestone === state.current_milestone && a.status === 'completed').pop()?.path
|
|
188
|
+
} else {
|
|
189
|
+
ERROR('E001: No args and no roadmap')
|
|
190
|
+
}
|
|
191
|
+
} else if (/^\d+$/.test(phaseArg)) {
|
|
192
|
+
scope = 'phase'
|
|
193
|
+
phaseNum = parseInt(phaseArg)
|
|
194
|
+
phaseSlug = resolvePhaseSlugFromRoadmap(phaseNum)
|
|
195
|
+
contextDir = state.artifacts.filter(a => a.type === 'analyze' && a.milestone === state.current_milestone && a.phase === phaseNum && a.status === 'completed').pop()?.path
|
|
196
|
+
} else {
|
|
197
|
+
scope = state.current_milestone ? 'adhoc' : 'standalone'
|
|
198
|
+
phaseSlug = phaseArg.toLowerCase().replace(/[^a-z0-9]+/g, '-').substring(0, 40)
|
|
199
|
+
}
|
|
200
|
+
|
|
166
201
|
const dateStr = getUtc8ISOString().substring(0, 10).replace(/-/g, '')
|
|
167
|
-
const sessionId =
|
|
168
|
-
? `plan-${dirMatch[1].split('/').pop()}-${dateStr}`
|
|
169
|
-
: `plan-phase${phaseArg}-${dateStr}`
|
|
202
|
+
const sessionId = `plan-${phaseSlug}-${dateStr}`
|
|
170
203
|
const sessionFolder = `.workflow/.csv-wave/${sessionId}`
|
|
204
|
+
const scratchDir = `.workflow/scratch/plan-${phaseSlug}-${dateStr}`
|
|
171
205
|
|
|
172
206
|
Bash(`mkdir -p ${sessionFolder}`)
|
|
207
|
+
Bash(`mkdir -p ${scratchDir}/.task/`)
|
|
173
208
|
```
|
|
174
209
|
|
|
175
210
|
---
|
|
@@ -180,25 +215,20 @@ Bash(`mkdir -p ${sessionFolder}`)
|
|
|
180
215
|
|
|
181
216
|
**Decomposition Rules**:
|
|
182
217
|
|
|
183
|
-
1. **
|
|
184
|
-
|
|
185
|
-
| Condition | Action |
|
|
186
|
-
|-----------|--------|
|
|
187
|
-
| `--dir <path>` provided | Use path directly, set SCRATCH_MODE = true |
|
|
188
|
-
| Number argument | Resolve `.workflow/phases/{NN}-*/` |
|
|
189
|
-
| Slug argument | Resolve `.workflow/phases/*-{slug}/` |
|
|
218
|
+
1. **Scope resolution**: Already determined in Session Initialization (milestone/phase/adhoc/standalone)
|
|
190
219
|
|
|
191
|
-
2. **Context loading
|
|
192
|
-
- Read `{
|
|
193
|
-
- Read
|
|
194
|
-
- Read
|
|
220
|
+
2. **Context loading** (from upstream analyze artifact or --dir):
|
|
221
|
+
- Read `{contextDir}/context.md` (user decisions from analyze) — if contextDir resolved
|
|
222
|
+
- Read `.workflow/project.md` — project vision and constraints
|
|
223
|
+
- Read `.workflow/roadmap.md` — phase structure and dependencies
|
|
224
|
+
- Read spec-ref if `--spec` flag
|
|
195
225
|
- Read `.workflow/codebase/doc-index.json` if exists
|
|
196
|
-
-
|
|
226
|
+
- Find design artifacts from `state.json.artifacts[]` (type=brainstorm with ui-designer) for MASTER.md
|
|
197
227
|
- Load project specs via `maestro spec load --category planning`
|
|
198
228
|
|
|
199
229
|
3. **Upstream analysis check**:
|
|
200
|
-
- If `{
|
|
201
|
-
- If `{
|
|
230
|
+
- If `{contextDir}/conclusions.json` exists and has content: reuse as exploration context, skip wave 1
|
|
231
|
+
- If `{contextDir}/explorations.json` exists: load as additional context
|
|
202
232
|
|
|
203
233
|
4. **Gap mode** (if `--gaps`):
|
|
204
234
|
- Load gaps from `.workflow/issues/issues.jsonl` (primary), `verification.json` (fallback), `uat.md` (additional)
|
|
@@ -374,7 +404,15 @@ spawn_agents_on_csv({
|
|
|
374
404
|
}
|
|
375
405
|
```
|
|
376
406
|
|
|
377
|
-
5. **Issue linking** (if --gaps):
|
|
407
|
+
5. **Issue linking** (if --gaps):
|
|
408
|
+
For each created TASK-{NNN}.json that has `issue_id`:
|
|
409
|
+
- Update corresponding issue in `.workflow/issues/issues.jsonl`:
|
|
410
|
+
- `task_refs`: append TASK-{NNN} to array
|
|
411
|
+
- `task_plan_dir`: relative path to `.task/` directory
|
|
412
|
+
- `status`: "planned"
|
|
413
|
+
- `updated_at`: now()
|
|
414
|
+
- Append history entry: `{ action: "planned", at: <ISO>, by: "maestro-plan", summary: "Linked to TASK-{NNN}" }`
|
|
415
|
+
This ensures bidirectional issue ↔ TASK traceability for dashboard display.
|
|
378
416
|
|
|
379
417
|
6. **Display summary + options** (skip options if AUTO_YES):
|
|
380
418
|
```
|
|
@@ -73,7 +73,7 @@ $maestro-roadmap --from-brainstorm WFS-001 "Enhance auth system"
|
|
|
73
73
|
| +-- Interactive refinement (max 3 rounds, skip if -y) |
|
|
74
74
|
| +-- Generate context.md with roadmap summary |
|
|
75
75
|
| +-- Write .workflow/roadmap.md |
|
|
76
|
-
| +--
|
|
76
|
+
| +-- Ensure .workflow/scratch/ directory exists |
|
|
77
77
|
| +-- Display summary with next steps |
|
|
78
78
|
| |
|
|
79
79
|
+---------------------------------------------------------------------------+
|
|
@@ -303,7 +303,8 @@ spawn_agents_on_csv({
|
|
|
303
303
|
|
|
304
304
|
5. **Write outputs**:
|
|
305
305
|
- Write `.workflow/roadmap.md` using standard roadmap template structure
|
|
306
|
-
-
|
|
306
|
+
- Ensure `.workflow/scratch/` directory exists (phases are labels, not directories)
|
|
307
|
+
- Update `state.json` milestones array and set `current_milestone`
|
|
307
308
|
- Update `.workflow/state.json` (if exists): set `current_phase: 1`
|
|
308
309
|
|
|
309
310
|
6. Display summary:
|
|
@@ -126,8 +126,8 @@ Read-only status report with progress milestones. No pipeline advancement.
|
|
|
126
126
|
|
|
127
127
|
**CLI equivalent for human monitoring** (works while coordinator is blocked):
|
|
128
128
|
```bash
|
|
129
|
-
maestro msg list -s "<session_id>" --type progress --last 10
|
|
130
|
-
maestro msg list -s "<session_id>" --type blocker
|
|
129
|
+
maestro agent-msg list -s "<session_id>" --type progress --last 10
|
|
130
|
+
maestro agent-msg list -s "<session_id>" --type blocker
|
|
131
131
|
```
|
|
132
132
|
|
|
133
133
|
Then STOP.
|
|
@@ -97,7 +97,7 @@ const blockerMsgs = mcp__maestro-tools__team_msg({
|
|
|
97
97
|
[executor] Commands: 'resume' to advance | 'check' to refresh
|
|
98
98
|
|
|
99
99
|
**CLI monitoring** (works while executor is blocked):
|
|
100
|
-
maestro msg list -s "<session_id>" --type progress --last 10
|
|
100
|
+
maestro agent-msg list -s "<session_id>" --type progress --last 10
|
|
101
101
|
```
|
|
102
102
|
|
|
103
103
|
Then STOP.
|
|
@@ -67,8 +67,8 @@ Read-only status report from tasks.json + team_msg progress, then STOP.
|
|
|
67
67
|
|
|
68
68
|
**CLI equivalent for human monitoring** (no coordinator needed):
|
|
69
69
|
```bash
|
|
70
|
-
maestro msg list -s "<session_id>" --type progress --last 10
|
|
71
|
-
maestro msg list -s "<session_id>" --type blocker
|
|
70
|
+
maestro agent-msg list -s "<session_id>" --type progress --last 10
|
|
71
|
+
maestro agent-msg list -s "<session_id>" --type blocker
|
|
72
72
|
```
|
|
73
73
|
|
|
74
74
|
## handleResume
|
|
@@ -131,7 +131,7 @@ Prevents redundant research across tasks.
|
|
|
131
131
|
## 6. Progress Milestone Protocol
|
|
132
132
|
|
|
133
133
|
Workers report progress during execution via `team_msg`. This provides:
|
|
134
|
-
- **Human CLI monitoring**: `maestro msg list -s <session-id> --type progress` works while coordinator is blocked in `wait_agent`
|
|
134
|
+
- **Human CLI monitoring**: `maestro agent-msg list -s <session-id> --type progress` works while coordinator is blocked in `wait_agent`
|
|
135
135
|
- **Coordinator post-wait trace**: Full execution history for forensics and status display
|
|
136
136
|
- **Blocker awareness**: Coordinator knows where worker got stuck on timeout
|
|
137
137
|
|
|
@@ -169,7 +169,7 @@ mcp__maestro-tools__team_msg({
|
|
|
169
169
|
`wait_agent` is **blocking** — coordinator cannot read team_msg during wait. Progress is only consumed:
|
|
170
170
|
1. On `handleCheck` (user types "check" while coordinator is idle)
|
|
171
171
|
2. On `handleResume` after `wait_agent` returns (drain bus before collecting discoveries)
|
|
172
|
-
3. By human via `maestro msg list` CLI (works anytime, independent of coordinator)
|
|
172
|
+
3. By human via `maestro agent-msg list` CLI (works anytime, independent of coordinator)
|
|
173
173
|
|
|
174
174
|
### Relationship to Discoveries
|
|
175
175
|
|
|
@@ -107,7 +107,7 @@ Output:
|
|
|
107
107
|
[coordinator] Commands: 'resume' to advance | 'check' to refresh
|
|
108
108
|
|
|
109
109
|
**CLI monitoring** (works while coordinator is blocked):
|
|
110
|
-
maestro msg list -s "<session_id>" --type progress --last 10
|
|
110
|
+
maestro agent-msg list -s "<session_id>" --type progress --last 10
|
|
111
111
|
```
|
|
112
112
|
|
|
113
113
|
Then STOP.
|
|
@@ -66,7 +66,7 @@ Output:
|
|
|
66
66
|
[coordinator] Commands: 'resume' to advance | 'check' to refresh
|
|
67
67
|
|
|
68
68
|
**CLI monitoring** (works while coordinator is blocked):
|
|
69
|
-
maestro msg list -s "<session_id>" --type progress --last 10
|
|
69
|
+
maestro agent-msg list -s "<session_id>" --type progress --last 10
|
|
70
70
|
```
|
|
71
71
|
|
|
72
72
|
Then STOP.
|
|
@@ -56,7 +56,7 @@ Session: <session-id>
|
|
|
56
56
|
Commands: 'resume' to advance | 'check' to refresh
|
|
57
57
|
|
|
58
58
|
**CLI monitoring** (works while coordinator is blocked):
|
|
59
|
-
maestro msg list -s "<session_id>" --type progress --last 10
|
|
59
|
+
maestro agent-msg list -s "<session_id>" --type progress --last 10
|
|
60
60
|
```
|
|
61
61
|
|
|
62
62
|
Output status -- do NOT advance pipeline.
|
|
@@ -71,7 +71,7 @@ Output:
|
|
|
71
71
|
[coordinator] Commands: 'resume' to advance | 'check' to refresh
|
|
72
72
|
|
|
73
73
|
**CLI monitoring** (works while coordinator is blocked):
|
|
74
|
-
maestro msg list -s "<session_id>" --type progress --last 10
|
|
74
|
+
maestro agent-msg list -s "<session_id>" --type progress --last 10
|
|
75
75
|
```
|
|
76
76
|
|
|
77
77
|
Then STOP.
|
package/README.md
CHANGED
|
@@ -32,9 +32,10 @@ You describe what you want. Maestro-Flow figures out which agents to use, in wha
|
|
|
32
32
|
# Or step by step
|
|
33
33
|
/maestro-init # Set up project workspace
|
|
34
34
|
/maestro-roadmap # Create phased roadmap interactively
|
|
35
|
-
/maestro-
|
|
36
|
-
/maestro-
|
|
37
|
-
/maestro-
|
|
35
|
+
/maestro-analyze # Multi-dimensional analysis
|
|
36
|
+
/maestro-plan # Generate execution plan
|
|
37
|
+
/maestro-execute # Wave-based parallel agent execution
|
|
38
|
+
/maestro-verify # Goal-backward verification
|
|
38
39
|
```
|
|
39
40
|
|
|
40
41
|
### The Pipeline
|
|
@@ -48,11 +49,13 @@ graph LR
|
|
|
48
49
|
E --> F[execute]
|
|
49
50
|
F --> G[verify]
|
|
50
51
|
G --> H[review]
|
|
51
|
-
H --> I[
|
|
52
|
-
I --> J[
|
|
53
|
-
J -->|next
|
|
52
|
+
H --> I[milestone-audit]
|
|
53
|
+
I --> J[milestone-complete]
|
|
54
|
+
J -->|next milestone| D
|
|
54
55
|
```
|
|
55
56
|
|
|
57
|
+
All work artifacts live in `.workflow/scratch/`, tracked by `state.json` artifact registry. Phases are labels in the roadmap, not directories.
|
|
58
|
+
|
|
56
59
|
### Quick Channels
|
|
57
60
|
|
|
58
61
|
| Channel | Flow | When |
|
|
@@ -67,9 +70,9 @@ graph LR
|
|
|
67
70
|
|
|
68
71
|
### 1. Structured Pipeline
|
|
69
72
|
|
|
70
|
-
|
|
73
|
+
Scratch-based milestone workflow with artifact registry tracking. Each milestone moves through analyze > plan > execute > verify > review > milestone-audit > milestone-complete. All artifacts live in `.workflow/scratch/`, registered in `state.json`. The dashboard shows what's happening and what to do next.
|
|
71
74
|
|
|
72
|
-
|
|
75
|
+
49 slash commands across 6 categories power every stage — from project initialization to quality retrospective.
|
|
73
76
|
|
|
74
77
|
### 2. Autonomous Autopilot
|
|
75
78
|
|
|
@@ -94,10 +97,10 @@ graph LR
|
|
|
94
97
|
| Stage | Command | What Happens |
|
|
95
98
|
|-------|---------|-------------|
|
|
96
99
|
| **Discover** | `/manage-issue-discover` | 8-perspective scan: bugs, UX, tech debt, security, performance, testing gaps, code quality, documentation |
|
|
97
|
-
| **Analyze** | `/
|
|
98
|
-
| **Plan** | `/
|
|
99
|
-
| **Execute** | `/
|
|
100
|
-
| **Close** | Automatic |
|
|
100
|
+
| **Analyze** | `/maestro-analyze --gaps` | Root cause analysis via CLI exploration, writes `issue.analysis` |
|
|
101
|
+
| **Plan** | `/maestro-plan --gaps` | Generate TASK files linked to issues via `task_refs` |
|
|
102
|
+
| **Execute** | `/maestro-execute` | Wave-based parallel execution with automatic issue status sync |
|
|
103
|
+
| **Close** | Automatic | All linked tasks completed > resolved > closed |
|
|
101
104
|
|
|
102
105
|
Quality commands (`review`, `test`, `verify`) automatically create issues for problems they find. Issue fixes flow back into the phase pipeline. The loop closes itself.
|
|
103
106
|
|
|
@@ -168,7 +171,7 @@ Maestro-Flow coordinates multiple AI agents in parallel:
|
|
|
168
171
|
| `context-monitor` | Monitors context usage, injects warnings when running low |
|
|
169
172
|
| `spec-injector` | Auto-injects project specs into subagent prompts by agent type |
|
|
170
173
|
| `delegate-monitor` | Tracks async delegate task completion |
|
|
171
|
-
| `team-monitor` |
|
|
174
|
+
| `team-monitor` | Collab heartbeat — reports activity to `.workflow/collab/activity.jsonl` for teammate awareness |
|
|
172
175
|
| `telemetry` | Execution telemetry collection |
|
|
173
176
|
| `session-context` | Injects workflow state at session start |
|
|
174
177
|
| `skill-context` | Injects workflow state when invoking workflow skills |
|
|
@@ -195,13 +198,13 @@ maestro overlay bundle -o team.json # Pack for sharing
|
|
|
195
198
|
|
|
196
199
|
---
|
|
197
200
|
|
|
198
|
-
##
|
|
201
|
+
## 49 Commands, 21 Agents
|
|
199
202
|
|
|
200
203
|
### Commands
|
|
201
204
|
|
|
202
205
|
| Category | Count | Prefix | Purpose |
|
|
203
206
|
|----------|-------|--------|---------|
|
|
204
|
-
| **Core Workflow** |
|
|
207
|
+
| **Core Workflow** | 18 | `maestro-*` | Full lifecycle — init, brainstorm, roadmap, analyze, plan, execute, verify, coordinate, milestones, overlays, UI design |
|
|
205
208
|
| **Management** | 12 | `manage-*` | Issue lifecycle, codebase docs, knowledge capture, memory, harvest, status |
|
|
206
209
|
| **Quality** | 9 | `quality-*` | Review, test, debug, test-gen, integration-test, business-test, refactor, retrospective, sync |
|
|
207
210
|
| **Learning** | 5 | `learn-*` | Unified retro, follow-along, pattern decompose, investigate, second opinion |
|
|
@@ -236,8 +239,9 @@ maestro install
|
|
|
236
239
|
```bash
|
|
237
240
|
/maestro-init # Initialize project
|
|
238
241
|
/maestro-roadmap # Create roadmap
|
|
239
|
-
/maestro-
|
|
240
|
-
/maestro-
|
|
242
|
+
/maestro-analyze # Analyze current milestone
|
|
243
|
+
/maestro-plan # Plan (outputs to scratch/)
|
|
244
|
+
/maestro-execute # Execute all pending plans
|
|
241
245
|
|
|
242
246
|
# Or just:
|
|
243
247
|
/maestro "build a REST API for user management"
|
|
@@ -287,9 +291,9 @@ maestro/
|
|
|
287
291
|
│ │ └── execution/ # ExecutionScheduler + WaveExecutor
|
|
288
292
|
│ └── shared/ # Shared types
|
|
289
293
|
├── .claude/
|
|
290
|
-
│ ├── commands/ #
|
|
294
|
+
│ ├── commands/ # 49 slash commands (.md)
|
|
291
295
|
│ └── agents/ # 21 agent definitions (.md)
|
|
292
|
-
├── workflows/ #
|
|
296
|
+
├── workflows/ # 45 workflow implementations (.md)
|
|
293
297
|
├── templates/ # JSON templates (task, plan, issue, ...)
|
|
294
298
|
└── extensions/ # Plugin system
|
|
295
299
|
```
|
|
@@ -313,8 +317,9 @@ maestro/
|
|
|
313
317
|
- **[Delegate Async Guide](guide/delegate-async-guide.md)** — Async task delegation: CLI & MCP usage, message injection, chaining, broker lifecycle
|
|
314
318
|
- **[Overlay Guide](guide/overlay-guide.md)** — Non-invasive command extensions: overlay format, section injection, bundle/import, interactive TUI management
|
|
315
319
|
- **[Hooks Guide](guide/hooks-guide.md)** — Hook system architecture, 9 hooks, spec injection, context budget, configuration
|
|
316
|
-
- **[
|
|
317
|
-
- **[
|
|
320
|
+
- **[Worktree Parallel Dev Guide](guide/worktree-guide.md)** — Milestone-level worktree parallelism: fork, sync, merge, scope enforcement, dashboard integration
|
|
321
|
+
- **[Collab — User Guide](guide/team-lite-guide.md)** — Multi-person collaboration for 2-8 person teams: join, sync, activity awareness, conflict preflight, task management, namespace isolation
|
|
322
|
+
- **[Collab — Design](guide/team-lite-design.md)** — Architecture, data model, namespace boundary between human-collab (`.workflow/collab/`) and agent-pipeline (`.workflow/.team/`) domains
|
|
318
323
|
|
|
319
324
|
---
|
|
320
325
|
|