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,6 +1,6 @@
|
|
|
1
1
|
# Workflow: maestro-coordinate
|
|
2
2
|
|
|
3
|
-
Autonomous CLI coordinator. Classifies intent, selects command chain, executes each step via `maestro
|
|
3
|
+
Autonomous CLI coordinator. Classifies intent, selects command chain, executes each step via `maestro delegate` with template-driven prompts and async state machine.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -37,9 +37,9 @@ test -f .workflow/state.json && echo "exists" || echo "missing"
|
|
|
37
37
|
```javascript
|
|
38
38
|
const projectState = {
|
|
39
39
|
initialized: true,
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
current_milestone: /* from state.json */,
|
|
41
|
+
latest_artifact: /* last artifact in artifacts[] */,
|
|
42
|
+
milestone_progress: '...', // derived from artifact registry
|
|
43
43
|
phase_artifacts: { brainstorm: false, analysis: false, context: false, plan: false, verification: false, uat: false },
|
|
44
44
|
execution: { tasks_completed: 0, tasks_total: 0 },
|
|
45
45
|
verification_status: 'pending',
|
|
@@ -75,6 +75,10 @@ if (exactMatch[normalized]) {
|
|
|
75
75
|
|
|
76
76
|
#### 3a-2: Structured intent extraction (LLM-native)
|
|
77
77
|
|
|
78
|
+
> **Implementation note**: The runtime (`src/coordinator/intent-router.ts`) currently
|
|
79
|
+
> uses pattern-based regex matching via `chains/_intent-map.json`. The structured
|
|
80
|
+
> extraction below is a design target, not the current implementation.
|
|
81
|
+
|
|
78
82
|
Instead of regex, extract a structured intent tuple using LLM semantic understanding:
|
|
79
83
|
|
|
80
84
|
```json
|
|
@@ -105,7 +109,7 @@ function routeIntent(intent, projectState) {
|
|
|
105
109
|
// Action × Object matrix
|
|
106
110
|
const matrix = {
|
|
107
111
|
'fix': { 'bug': 'debug', 'issue': 'issue', 'code': 'debug', 'performance': 'debug', 'security': 'debug', '_default': 'debug' },
|
|
108
|
-
'create': { 'feature': 'quick', 'issue': 'issue', 'test': 'test_gen', 'spec': 'spec_generate', 'ui': 'ui_design', 'config': 'init', 'phase': '
|
|
112
|
+
'create': { 'feature': 'quick', 'issue': 'issue', 'test': 'test_gen', 'spec': 'spec_generate', 'ui': 'ui_design', 'config': 'init', 'phase': 'roadmap', '_default': 'quick' },
|
|
109
113
|
'analyze': { 'bug': 'analyze', 'issue': 'issue_analyze', 'code': 'analyze', 'codebase': 'spec_map', '_default': 'analyze' },
|
|
110
114
|
'explore': { 'issue': 'issue_discover', 'feature': 'brainstorm', 'ui': 'ui_design', '_default': 'brainstorm' },
|
|
111
115
|
'plan': { 'issue': 'issue_plan', 'spec': 'spec_generate', '_default': 'plan' },
|
|
@@ -115,8 +119,8 @@ function routeIntent(intent, projectState) {
|
|
|
115
119
|
'test': { '_default': 'test' },
|
|
116
120
|
'debug': { '_default': 'debug' },
|
|
117
121
|
'refactor': { '_default': 'refactor' },
|
|
118
|
-
'manage': { 'issue': 'issue', 'milestone': 'milestone_audit', 'phase': '
|
|
119
|
-
'transition':{ 'phase': '
|
|
122
|
+
'manage': { 'issue': 'issue', 'milestone': 'milestone_audit', 'phase': 'milestone_close', 'memory': 'memory', 'doc': 'sync', 'codebase': 'codebase_refresh', 'team': 'team_coordinate', '_default': 'status' },
|
|
123
|
+
'transition':{ 'phase': 'milestone_close', 'milestone': 'milestone_complete', '_default': 'milestone_close' },
|
|
120
124
|
'continue': { '_default': 'state_continue' },
|
|
121
125
|
'sync': { '_default': 'sync' },
|
|
122
126
|
'learn': { '_default': 'learn' },
|
|
@@ -166,18 +170,18 @@ function detectNextAction(s) {
|
|
|
166
170
|
if (s.verification_status === 'passed') {
|
|
167
171
|
if (!s.review_verdict) return { chain: 'review', steps: [{ cmd: 'quality-review', args: '{phase}' }] };
|
|
168
172
|
if (s.uat_status === 'pending') return { chain: 'test', steps: [{ cmd: 'quality-test', args: '{phase}' }] };
|
|
169
|
-
if (s.uat_status === 'passed') return { chain: '
|
|
173
|
+
if (s.uat_status === 'passed') return { chain: 'milestone-close', steps: [{ cmd: 'maestro-milestone-audit' }, { cmd: 'maestro-milestone-complete' }] };
|
|
170
174
|
return { chain: 'debug', steps: [{ cmd: 'quality-debug', args: '--from-uat {phase}' }] };
|
|
171
175
|
}
|
|
172
176
|
return { chain: 'quality-loop-partial', steps: [{ cmd: 'maestro-plan', args: '{phase} --gaps' }, { cmd: 'maestro-execute', args: '{phase}' }, { cmd: 'maestro-verify', args: '{phase}' }] };
|
|
173
177
|
}
|
|
174
178
|
if (ps === 'testing') {
|
|
175
|
-
if (s.uat_status === 'passed') return { chain: '
|
|
179
|
+
if (s.uat_status === 'passed') return { chain: 'milestone-close', steps: [{ cmd: 'maestro-milestone-audit' }, { cmd: 'maestro-milestone-complete' }] };
|
|
176
180
|
return { chain: 'debug', steps: [{ cmd: 'quality-debug', args: '--from-uat {phase}' }] };
|
|
177
181
|
}
|
|
178
182
|
if (ps === 'completed') {
|
|
179
183
|
if (s.phases_completed >= s.phases_total) return { chain: 'milestone-close', steps: [{ cmd: 'maestro-milestone-audit' }, { cmd: 'maestro-milestone-complete' }] };
|
|
180
|
-
return { chain: '
|
|
184
|
+
return { chain: 'milestone-close', steps: [{ cmd: 'maestro-milestone-audit' }, { cmd: 'maestro-milestone-complete' }] };
|
|
181
185
|
}
|
|
182
186
|
if (ps === 'blocked') return { chain: 'debug', steps: [{ cmd: 'quality-debug' }] };
|
|
183
187
|
return { chain: 'status', steps: [{ cmd: 'manage-status' }] };
|
|
@@ -205,8 +209,8 @@ const chainMap = {
|
|
|
205
209
|
'retrospective': [{ cmd: 'quality-retrospective', args: '{phase}' }],
|
|
206
210
|
'learn': [{ cmd: 'manage-learn', args: '"{description}"' }],
|
|
207
211
|
'sync': [{ cmd: 'quality-sync', args: '{phase}' }],
|
|
208
|
-
'
|
|
209
|
-
'
|
|
212
|
+
'milestone_close': [{ cmd: 'maestro-milestone-audit' }, { cmd: 'maestro-milestone-complete' }],
|
|
213
|
+
'roadmap': [{ cmd: 'maestro-roadmap', args: '"{description}"' }],
|
|
210
214
|
'milestone_audit': [{ cmd: 'maestro-milestone-audit' }],
|
|
211
215
|
'milestone_complete': [{ cmd: 'maestro-milestone-complete' }],
|
|
212
216
|
'codebase_rebuild': [{ cmd: 'manage-codebase-rebuild' }],
|
|
@@ -219,10 +223,12 @@ const chainMap = {
|
|
|
219
223
|
'memory': [{ cmd: 'manage-memory', args: '"{description}"' }],
|
|
220
224
|
'issue': [{ cmd: 'manage-issue', args: '"{description}"' }],
|
|
221
225
|
'issue_discover': [{ cmd: 'manage-issue-discover', args: '"{description}"' }],
|
|
222
|
-
'issue_analyze': [{ cmd: '
|
|
223
|
-
'issue_plan': [{ cmd: '
|
|
224
|
-
'issue_execute': [{ cmd: '
|
|
226
|
+
'issue_analyze': [{ cmd: 'maestro-analyze', args: '--gaps "{description}"' }],
|
|
227
|
+
'issue_plan': [{ cmd: 'maestro-plan', args: '--gaps' }],
|
|
228
|
+
'issue_execute': [{ cmd: 'maestro-execute', args: '' }],
|
|
225
229
|
'quick': [{ cmd: 'maestro-quick', args: '"{description}"' }],
|
|
230
|
+
'fork': [{ cmd: 'maestro-fork', args: '-m {milestone_num}' }],
|
|
231
|
+
'merge': [{ cmd: 'maestro-merge', args: '-m {milestone_num}' }],
|
|
226
232
|
'team_lifecycle': [{ cmd: 'team-lifecycle-v4', args: '"{description}"' }],
|
|
227
233
|
'team_coordinate': [{ cmd: 'team-coordinate', args: '"{description}"' }],
|
|
228
234
|
'team_qa': [{ cmd: 'team-quality-assurance', args: '"{description}"' }],
|
|
@@ -234,7 +240,7 @@ const chainMap = {
|
|
|
234
240
|
'spec-driven': [{ cmd: 'maestro-init' }, { cmd: 'maestro-spec-generate', args: '"{description}"' }, { cmd: 'maestro-plan', args: '{phase}' }, { cmd: 'maestro-execute', args: '{phase}' }, { cmd: 'maestro-verify', args: '{phase}' }],
|
|
235
241
|
'brainstorm-driven': [{ cmd: 'maestro-brainstorm', args: '"{description}"' }, { cmd: 'maestro-plan', args: '{phase}' }, { cmd: 'maestro-execute', args: '{phase}' }, { cmd: 'maestro-verify', args: '{phase}' }],
|
|
236
242
|
'ui-design-driven': [{ cmd: 'maestro-ui-design', args: '{phase}' }, { cmd: 'maestro-plan', args: '{phase}' }, { cmd: 'maestro-execute', args: '{phase}' }, { cmd: 'maestro-verify', args: '{phase}' }],
|
|
237
|
-
'full-lifecycle': [{ cmd: 'maestro-plan', args: '{phase}' }, { cmd: 'maestro-execute', args: '{phase}' }, { cmd: 'maestro-verify', args: '{phase}' }, { cmd: 'quality-review', args: '{phase}' }, { cmd: 'quality-test', args: '{phase}' }, { cmd: 'maestro-
|
|
243
|
+
'full-lifecycle': [{ cmd: 'maestro-plan', args: '{phase}' }, { cmd: 'maestro-execute', args: '{phase}' }, { cmd: 'maestro-verify', args: '{phase}' }, { cmd: 'quality-review', args: '{phase}' }, { cmd: 'quality-test', args: '{phase}' }, { cmd: 'maestro-milestone-audit' }, { cmd: 'maestro-milestone-complete' }],
|
|
238
244
|
'execute-verify': [{ cmd: 'maestro-execute', args: '{phase}' }, { cmd: 'maestro-verify', args: '{phase}' }],
|
|
239
245
|
'quality-loop': [{ cmd: 'maestro-verify', args: '{phase}' }, { cmd: 'quality-review', args: '{phase}' }, { cmd: 'quality-test', args: '{phase}' }, { cmd: 'quality-debug', args: '--from-uat {phase}' }, { cmd: 'maestro-plan', args: '{phase} --gaps' }, { cmd: 'maestro-execute', args: '{phase}' }],
|
|
240
246
|
'milestone-close': [{ cmd: 'maestro-milestone-audit' }, { cmd: 'maestro-milestone-complete' }],
|
|
@@ -242,8 +248,8 @@ const chainMap = {
|
|
|
242
248
|
'next-milestone': [{ cmd: 'maestro-roadmap', args: '"{description}"' }, { cmd: 'maestro-plan', args: '{phase}' }, { cmd: 'maestro-execute', args: '{phase}' }, { cmd: 'maestro-verify', args: '{phase}' }],
|
|
243
249
|
'analyze-plan-execute': [{ cmd: 'maestro-analyze', args: '"{description}" -q' }, { cmd: 'maestro-plan', args: '--dir {scratch_dir}' }, { cmd: 'maestro-execute', args: '--dir {scratch_dir}' }],
|
|
244
250
|
// Issue lifecycle chains (with quality gates)
|
|
245
|
-
'issue-full': [{ cmd: '
|
|
246
|
-
'issue-quick': [{ cmd: '
|
|
251
|
+
'issue-full': [{ cmd: 'maestro-analyze', args: '--gaps {issue_id}' }, { cmd: 'maestro-plan', args: '--gaps' }, { cmd: 'maestro-execute', args: '' }, { cmd: 'quality-review', args: '--scope {affected_files}' }, { cmd: 'manage-issue', args: 'close {issue_id} --resolution fixed' }],
|
|
252
|
+
'issue-quick': [{ cmd: 'maestro-plan', args: '--gaps' }, { cmd: 'maestro-execute', args: '' }, { cmd: 'manage-issue', args: 'close {issue_id} --resolution fixed' }],
|
|
247
253
|
};
|
|
248
254
|
|
|
249
255
|
// Aliases: task type → named multi-step chain
|
|
@@ -269,7 +275,8 @@ function resolvePhase() {
|
|
|
269
275
|
// Fallback regex
|
|
270
276
|
const m = intent.match(/phase\s*(\d+)|^(\d+)$/);
|
|
271
277
|
if (m) return m[1] || m[2];
|
|
272
|
-
|
|
278
|
+
// With scratch-based architecture, commands default to milestone-wide when no phase specified
|
|
279
|
+
// Return null to let commands use their default scope routing
|
|
273
280
|
return null;
|
|
274
281
|
}
|
|
275
282
|
|
|
@@ -320,12 +327,12 @@ const state = {
|
|
|
320
327
|
};
|
|
321
328
|
Write(`${sessionDir}/state.json`, JSON.stringify(state, null, 2));
|
|
322
329
|
|
|
323
|
-
const context = {
|
|
330
|
+
const context = { resolved_phase: resolvedPhase, user_intent: intent, issue_id: resolvedIssueId, spec_session_id: null };
|
|
324
331
|
```
|
|
325
332
|
|
|
326
333
|
---
|
|
327
334
|
|
|
328
|
-
### Step 6: Execute Step via maestro
|
|
335
|
+
### Step 6: Execute Step via maestro delegate
|
|
329
336
|
|
|
330
337
|
#### 6a: Assemble args
|
|
331
338
|
|
|
@@ -338,7 +345,7 @@ const AUTO_FLAG_MAP = {
|
|
|
338
345
|
|
|
339
346
|
function assembleArgs(step) {
|
|
340
347
|
let a = (step.args || '')
|
|
341
|
-
.replace(/\{phase\}/g, context.
|
|
348
|
+
.replace(/\{phase\}/g, context.resolved_phase || '') // empty = milestone-wide default
|
|
342
349
|
.replace(/\{description\}/g, context.user_intent || '')
|
|
343
350
|
.replace(/\{issue_id\}/g, context.issue_id || '')
|
|
344
351
|
.replace(/\{spec_session_id\}/g, context.spec_session_id || '')
|
|
@@ -397,7 +404,7 @@ state.steps[state.current_step].started_at = new Date().toISOString();
|
|
|
397
404
|
Write(`${sessionDir}/state.json`, JSON.stringify(state, null, 2));
|
|
398
405
|
|
|
399
406
|
Bash({
|
|
400
|
-
command: `maestro
|
|
407
|
+
command: `maestro delegate ${escapeForShell(prompt)} --to ${state.tool} --mode write`,
|
|
401
408
|
run_in_background: true, timeout: 600000
|
|
402
409
|
});
|
|
403
410
|
// ■ STOP — wait for hook callback
|
|
@@ -418,7 +425,7 @@ step.completed_at = new Date().toISOString();
|
|
|
418
425
|
|
|
419
426
|
// Context propagation
|
|
420
427
|
const phaseMatch = output.match(/PHASE:\s*(\d+)/m);
|
|
421
|
-
if (phaseMatch) context.
|
|
428
|
+
if (phaseMatch) context.resolved_phase = phaseMatch[1];
|
|
422
429
|
const specMatch = output.match(/SPEC-[\w-]+/);
|
|
423
430
|
if (specMatch) context.spec_session_id = specMatch[0];
|
|
424
431
|
const scratchMatch = output.match(/scratch_dir:\s*(.+)/m);
|
|
@@ -489,9 +496,9 @@ EXPECTED OUTPUT (strict JSON):
|
|
|
489
496
|
"step_summary": ""
|
|
490
497
|
}`;
|
|
491
498
|
|
|
492
|
-
let
|
|
493
|
-
if (state.gemini_session_id)
|
|
494
|
-
Bash({ command:
|
|
499
|
+
let delegateCmd = `maestro delegate ${escapeForShell(analysisPrompt)} --to gemini --mode analysis --rule analysis-review-code-quality`;
|
|
500
|
+
if (state.gemini_session_id) delegateCmd += ` --resume ${state.gemini_session_id}`;
|
|
501
|
+
Bash({ command: delegateCmd, run_in_background: true, timeout: 300000 });
|
|
495
502
|
// ■ STOP — wait for hook callback
|
|
496
503
|
```
|
|
497
504
|
|
|
@@ -562,14 +569,14 @@ Write(`${sessionDir}/state.json`, JSON.stringify(state, null, 2));
|
|
|
562
569
|
## Core Rules
|
|
563
570
|
|
|
564
571
|
1. **Semantic routing** — LLM-native structured extraction (`action × object`) replaces regex; disambiguates "问题" by context
|
|
565
|
-
2. **STOP after each `maestro
|
|
572
|
+
2. **STOP after each `maestro delegate` call** — background execution, wait for hook callback
|
|
566
573
|
3. **State machine** — advance via `current_step`, no sync loops for async operations
|
|
567
574
|
4. **Template-driven** — all steps use `coordinate-step.txt`, no per-command prompt assembly
|
|
568
575
|
5. **Context propagation** — parse PHASE / spec session ID / scratch_dir / issue_id from each step output, feed to next step
|
|
569
576
|
6. **Quality gates** — issue chains auto-include review; `issue-full` is default for issue execution
|
|
570
|
-
7. **Tool fallback** — if `maestro
|
|
577
|
+
7. **Tool fallback** — if `maestro delegate` fails: retry with same tool once, then try `gemini` → `qwen`
|
|
571
578
|
8. **Auto-confirm injection** — `{{AUTO_DIRECTIVE}}` in template prevents blocking during background execution
|
|
572
579
|
9. **Resumable** — `-c` reads `state.json`, jumps to first pending step
|
|
573
|
-
10. **Gemini analysis after each step** — evaluate output quality via `maestro
|
|
580
|
+
10. **Gemini analysis after each step** — evaluate output quality via `maestro delegate --to gemini --mode analysis`, chained via `--resume`. Analysis generates `next_step_hints` injected into next step's prompt as `{{ANALYSIS_HINTS}}`
|
|
574
581
|
11. **Session capture** — after each gemini callback, capture exec_id → `gemini_session_id` for resume chain
|
|
575
582
|
12. **Analysis skip conditions** — skip gemini analysis for: failed/skipped steps, single-step chains
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Workflow: maestro-link-coordinate
|
|
2
2
|
|
|
3
|
-
Chain-graph coordinator via `maestro coordinate` CLI endpoint. Loads a chain graph, walks node by node via step-mode subcommands. Each command node executed through `maestro
|
|
3
|
+
Chain-graph coordinator via `maestro coordinate` CLI endpoint. Loads a chain graph, walks node by node via step-mode subcommands. Each command node executed through `maestro delegate` internally.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -93,7 +93,7 @@ After each call:
|
|
|
93
93
|
|
|
94
94
|
The walker handles internally:
|
|
95
95
|
- Prompt assembly from `coordinate-step` template (command nodes) and inline `buildDecisionPrompt` (decision nodes) — **the walker owns all prompt construction**
|
|
96
|
-
- CLI execution via `maestro
|
|
96
|
+
- CLI execution via `maestro delegate --to {tool} --mode {write|analysis}`
|
|
97
97
|
- Decision/gate/eval node auto-resolution:
|
|
98
98
|
- `strategy: 'expr'` — static expression, instant
|
|
99
99
|
- `strategy: 'llm'` — spawns the configured CLI tool via a thin `DefaultLLMDecider`, expects a `DECISION: <target>\nREASONING: <text>` response
|