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
|
@@ -12,10 +12,21 @@ let cached = null;
|
|
|
12
12
|
export function getPackageVersion() {
|
|
13
13
|
if (cached)
|
|
14
14
|
return cached;
|
|
15
|
-
//
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
// Walk up from this file until we find a package.json with "maestro" in it
|
|
16
|
+
let dir = resolve(fileURLToPath(import.meta.url), '..');
|
|
17
|
+
for (let i = 0; i < 8; i++) {
|
|
18
|
+
const pkgPath = resolve(dir, 'package.json');
|
|
19
|
+
try {
|
|
20
|
+
const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
|
21
|
+
if (pkg.name === 'maestro-flow' || pkg.name === 'maestro') {
|
|
22
|
+
cached = pkg.version ?? '0.0.0';
|
|
23
|
+
return cached;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
catch { /* not found, keep going up */ }
|
|
27
|
+
dir = resolve(dir, '..');
|
|
28
|
+
}
|
|
29
|
+
cached = '0.0.0';
|
|
19
30
|
return cached;
|
|
20
31
|
}
|
|
21
32
|
//# sourceMappingURL=get-version.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-version.js","sourceRoot":"","sources":["../../../src/utils/get-version.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,0EAA0E;AAC1E,8EAA8E;AAE9E,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,IAAI,MAAM,GAAkB,IAAI,CAAC;AAEjC;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,
|
|
1
|
+
{"version":3,"file":"get-version.js","sourceRoot":"","sources":["../../../src/utils/get-version.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,0EAA0E;AAC1E,8EAA8E;AAE9E,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,IAAI,MAAM,GAAkB,IAAI,CAAC;AAEjC;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,2EAA2E;IAC3E,IAAI,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;IACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YACvD,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC1D,MAAM,GAAI,GAAG,CAAC,OAAkB,IAAI,OAAO,CAAC;gBAC5C,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,8BAA8B,CAAC,CAAC;QAC1C,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IACD,MAAM,GAAG,OAAO,CAAC;IACjB,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/package.json
CHANGED
|
@@ -66,18 +66,18 @@ Document recurring conflict patterns across workflow sessions with resolutions.
|
|
|
66
66
|
- Context packages: `.workflow/.archives/{session_id}/.process/context-package.json` (reference only)
|
|
67
67
|
- Session lessons: `manifest.json` -> `archives[].lessons.challenges`
|
|
68
68
|
|
|
69
|
-
## Conflict Identification (Use maestro
|
|
69
|
+
## Conflict Identification (Use maestro delegate)
|
|
70
70
|
|
|
71
71
|
**Command Pattern**:
|
|
72
72
|
```bash
|
|
73
|
-
maestro
|
|
73
|
+
maestro delegate "
|
|
74
74
|
PURPOSE: Identify conflict patterns from workflow sessions
|
|
75
75
|
TASK: • Extract conflicts from IMPL_PLAN and lessons • Group by type (architecture/dependencies/testing/performance) • Identify recurring patterns (same conflict in different sessions) • Link resolutions to specific sessions
|
|
76
76
|
MODE: analysis
|
|
77
77
|
CONTEXT: @.workflow/.archives/*/IMPL_PLAN.md @.workflow/.archives/manifest.json
|
|
78
78
|
EXPECTED: Conflict patterns with frequency and resolution
|
|
79
79
|
CONSTRAINTS: analysis=READ-ONLY
|
|
80
|
-
" --
|
|
80
|
+
" --to gemini --mode analysis --rule workflow-skill-aggregation --cd .workflow/.archives
|
|
81
81
|
```
|
|
82
82
|
|
|
83
83
|
**Pattern Grouping**:
|
|
@@ -62,18 +62,18 @@ Aggregate lessons learned from workflow sessions, categorized by functional doma
|
|
|
62
62
|
- Lessons: `manifest.json` -> `archives[].lessons.{successes|challenges|watch_patterns}`
|
|
63
63
|
- Session metadata: `.workflow/.archives/{session_id}/workflow-session.json`
|
|
64
64
|
|
|
65
|
-
## Aggregation Rules (Use maestro
|
|
65
|
+
## Aggregation Rules (Use maestro delegate)
|
|
66
66
|
|
|
67
67
|
**Command Pattern**:
|
|
68
68
|
```bash
|
|
69
|
-
maestro
|
|
69
|
+
maestro delegate "
|
|
70
70
|
PURPOSE: Aggregate workflow lessons from session data
|
|
71
71
|
TASK: • Group successes by functional domain • Categorize challenges by severity (HIGH/MEDIUM/LOW) • Identify watch patterns with frequency >= 2 • Mark CRITICAL patterns (3+ sessions)
|
|
72
72
|
MODE: analysis
|
|
73
73
|
CONTEXT: @.workflow/.archives/manifest.json
|
|
74
74
|
EXPECTED: Aggregated lessons with frequency counts
|
|
75
75
|
CONSTRAINTS: analysis=READ-ONLY
|
|
76
|
-
" --
|
|
76
|
+
" --to gemini --mode analysis --rule workflow-skill-aggregation --cd .workflow/.archives
|
|
77
77
|
```
|
|
78
78
|
|
|
79
79
|
**Severity Classification**:
|
package/templates/config.json
CHANGED
|
@@ -17,7 +17,7 @@ Semantic Search → Grep (pattern) → Glob (files) → CLI (deep analysis)
|
|
|
17
17
|
| Find by intent/behavior | Semantic search tool (see above) |
|
|
18
18
|
| Known identifier/regex | `Grep` |
|
|
19
19
|
| Find files by name/ext | `Glob` |
|
|
20
|
-
| Complex cross-file reasoning | `maestro
|
|
20
|
+
| Complex cross-file reasoning | `maestro delegate --to gemini --mode analysis` |
|
|
21
21
|
| Read identified file | `Read` |
|
|
22
22
|
|
|
23
23
|
## Fallback
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"worktree": true,
|
|
3
|
+
"milestone_num": "{{MILESTONE_NUMBER}}",
|
|
4
|
+
"milestone": "{{MILESTONE_NAME}}",
|
|
5
|
+
"owned_phases": [],
|
|
6
|
+
"main_worktree": "{{MAIN_WORKTREE_PATH}}",
|
|
7
|
+
"branch": "milestone/{{MILESTONE_SLUG}}",
|
|
8
|
+
"base_commit": "{{BASE_COMMIT}}",
|
|
9
|
+
"created_at": "{{TIMESTAMP}}"
|
|
10
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "1.0",
|
|
3
|
+
"worktrees": [
|
|
4
|
+
{
|
|
5
|
+
"milestone_num": "{{MILESTONE_NUMBER}}",
|
|
6
|
+
"milestone": "{{MILESTONE_NAME}}",
|
|
7
|
+
"slug": "{{MILESTONE_SLUG}}",
|
|
8
|
+
"branch": "milestone/{{MILESTONE_SLUG}}",
|
|
9
|
+
"path": "{{WORKTREE_ROOT}}/m{{MILESTONE_NUMBER}}-{{MILESTONE_SLUG}}",
|
|
10
|
+
"base_commit": "{{BASE_COMMIT}}",
|
|
11
|
+
"status": "active",
|
|
12
|
+
"created_at": "{{TIMESTAMP}}",
|
|
13
|
+
"owned_phases": [],
|
|
14
|
+
"fork_session": "{{FORK_SESSION_ID}}"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"fork_sessions": [
|
|
18
|
+
{
|
|
19
|
+
"session_id": "fork-{{TIMESTAMP_SHORT}}",
|
|
20
|
+
"created_at": "{{TIMESTAMP}}",
|
|
21
|
+
"milestone_num": "{{MILESTONE_NUMBER}}",
|
|
22
|
+
"milestone": "{{MILESTONE_NAME}}",
|
|
23
|
+
"base_branch": "{{BASE_BRANCH}}",
|
|
24
|
+
"base_commit": "{{BASE_COMMIT}}"
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
}
|
package/workflows/analyze.md
CHANGED
|
@@ -41,29 +41,60 @@ Quick mode (-q):
|
|
|
41
41
|
## Arguments
|
|
42
42
|
|
|
43
43
|
```
|
|
44
|
-
$ARGUMENTS: "
|
|
44
|
+
$ARGUMENTS: "[phase|topic] [-y] [-c] [-q]"
|
|
45
45
|
|
|
46
|
-
|
|
47
|
-
<
|
|
46
|
+
(no args) -- Milestone-wide analysis (requires init + roadmap)
|
|
47
|
+
<phase> -- Phase number (phase-scoped, requires init + roadmap)
|
|
48
|
+
<topic> -- Topic text (adhoc if milestone exists, standalone if not)
|
|
48
49
|
-y / --yes -- Auto mode, skip interactive scoping, auto-deepen
|
|
49
50
|
-c / --continue -- Resume from existing session
|
|
50
51
|
-q / --quick -- Quick mode, skip exploration + scoring, go straight to decision extraction
|
|
51
52
|
```
|
|
52
53
|
|
|
53
|
-
##
|
|
54
|
-
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
54
|
+
## Scope Routing
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
// Worktree scope check
|
|
58
|
+
IF file_exists(".workflow/worktree-scope.json"):
|
|
59
|
+
scope = read(".workflow/worktree-scope.json")
|
|
60
|
+
IF $ARGUMENTS matches /^\d+$/ AND parseInt($ARGUMENTS) NOT IN scope.owned_phases:
|
|
61
|
+
ERROR "Phase {$ARGUMENTS} not owned by this worktree. Owned: {scope.owned_phases}"
|
|
62
|
+
EXIT
|
|
63
|
+
|
|
64
|
+
// Auto-bootstrap state.json if missing
|
|
65
|
+
IF NOT file_exists(".workflow/state.json"):
|
|
66
|
+
mkdir -p .workflow/scratch/
|
|
67
|
+
Write minimal state.json: { project: null, status: "active", current_milestone: null,
|
|
68
|
+
current_task_id: null, milestones: [], artifacts: [], last_updated: now() }
|
|
69
|
+
|
|
70
|
+
// Scope determination
|
|
71
|
+
IF $ARGUMENTS is empty:
|
|
72
|
+
IF state.json.current_milestone is non-null AND roadmap.md exists:
|
|
73
|
+
→ scope = "milestone"
|
|
74
|
+
→ milestone_slug = slugify(current_milestone name)
|
|
75
|
+
→ Set OUTPUT_DIR = .workflow/scratch/analyze-{milestone_slug}-{date}/
|
|
76
|
+
ELSE:
|
|
77
|
+
→ ERROR E001 "No args and no roadmap — provide topic text or create roadmap first"
|
|
78
|
+
|
|
79
|
+
ELSE IF $ARGUMENTS matches /^\d+$/:
|
|
80
|
+
IF state.json.current_milestone is non-null AND roadmap.md exists:
|
|
81
|
+
→ scope = "phase"
|
|
82
|
+
→ phase_num = parsed number
|
|
83
|
+
→ phase_slug = resolve from roadmap.md
|
|
84
|
+
→ Set OUTPUT_DIR = .workflow/scratch/analyze-{phase_slug}-{date}/
|
|
85
|
+
ELSE:
|
|
86
|
+
→ ERROR "Phase number requires init + roadmap"
|
|
87
|
+
|
|
88
|
+
ELSE (text argument):
|
|
89
|
+
→ topic_slug = slugify(text, max 40 chars)
|
|
90
|
+
IF state.json.current_milestone is non-null:
|
|
91
|
+
→ scope = "adhoc"
|
|
92
|
+
ELSE:
|
|
93
|
+
→ scope = "standalone"
|
|
94
|
+
→ Set OUTPUT_DIR = .workflow/scratch/analyze-{topic_slug}-{date}/
|
|
95
|
+
|
|
96
|
+
// Create output directory
|
|
97
|
+
mkdir -p {OUTPUT_DIR}
|
|
67
98
|
```
|
|
68
99
|
|
|
69
100
|
## Output Structure
|
|
@@ -89,31 +120,23 @@ Parse $ARGUMENTS to determine mode and flags:
|
|
|
89
120
|
- `-c` present: locate existing session folder (discussion.md exists), resume from last round
|
|
90
121
|
- `-y` present: set AUTO_MODE=true
|
|
91
122
|
- `-q` present: set QUICK_MODE=true (skip Steps 2-7, jump to Step 8: Decision Extraction)
|
|
92
|
-
- Number (e.g., "3") = phase
|
|
93
|
-
- Text (e.g., "microservices vs monolith") =
|
|
94
|
-
- Missing/empty = error E001
|
|
123
|
+
- Number (e.g., "3") = phase scope: resolve phase slug from roadmap, output to scratch/analyze-{phase-slug}-{date}/
|
|
124
|
+
- Text (e.g., "microservices vs monolith") = adhoc/standalone scope: output to scratch/analyze-{slug}-{date}/
|
|
125
|
+
- Missing/empty = milestone scope (if roadmap exists) or error E001
|
|
95
126
|
|
|
96
127
|
**Session initialization:**
|
|
97
128
|
- Session ID: `ANL-{slug}-{YYYY-MM-DD}`
|
|
98
|
-
-
|
|
99
|
-
- Scratch mode output: `.workflow/scratch/analyze-{slug}-{date}/`
|
|
129
|
+
- Output: `OUTPUT_DIR` (always under `.workflow/scratch/`)
|
|
100
130
|
|
|
101
|
-
**Load prior context** (phase
|
|
131
|
+
**Load prior context** (milestone/phase scope):
|
|
102
132
|
1. Read `.workflow/project.md` — project vision, constraints, Validated requirements (already shipped), Active requirements (current scope)
|
|
103
133
|
2. Read `.workflow/roadmap.md` — phase structure and dependencies
|
|
104
|
-
3. Read
|
|
105
|
-
4.
|
|
106
|
-
5.
|
|
107
|
-
6.
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
9. Read prior phases' `context.md` files — skip already-decided areas
|
|
111
|
-
10. Read existing `context.md` in this phase (if exists, for continuation)
|
|
112
|
-
11. Load project specs: `specs_content = maestro spec load --category planning`
|
|
113
|
-
Ensures analysis decisions don't conflict with existing architecture constraints.
|
|
114
|
-
12. Read `.workflow/state.json` → `accumulated_context` (key_decisions, deferred items, blockers)
|
|
115
|
-
|
|
116
|
-
**Load prior context** (scratch mode):
|
|
134
|
+
3. Read `.workflow/state.json` → `current_milestone`, `artifacts[]`, `accumulated_context` (key_decisions, deferred items, blockers)
|
|
135
|
+
4. Find prior analyze artifacts from `state.json.artifacts[]` where type=analyze and same milestone → load their `context.md` to skip already-decided areas
|
|
136
|
+
5. Find brainstorm artifacts from `state.json.artifacts[]` where type=brainstorm and same milestone → load `guidance-specification.md` if exists
|
|
137
|
+
6. Load project specs: `specs_content = maestro spec load --category planning`
|
|
138
|
+
|
|
139
|
+
**Load prior context** (adhoc/standalone scope):
|
|
117
140
|
1. Read `.workflow/project.md` (if exists) — project vision, Validated requirements, Active requirements, Key Decisions
|
|
118
141
|
2. Read `.workflow/state.json` (if exists) → `accumulated_context` (key_decisions, deferred, blockers)
|
|
119
142
|
3. Load project specs: `specs_content = maestro spec load --category planning`
|
|
@@ -571,6 +594,33 @@ IF deferred_items.length > 0:
|
|
|
571
594
|
Print: "Created {deferred_items.length} deferred issues for tracking"
|
|
572
595
|
```
|
|
573
596
|
|
|
597
|
+
### Step 8.8: Register Artifact
|
|
598
|
+
|
|
599
|
+
```
|
|
600
|
+
// Register in state.json artifact registry
|
|
601
|
+
Read .workflow/state.json
|
|
602
|
+
next_id = max(artifacts.filter(a => a.type == "analyze").map(a => parseInt(a.id.replace("ANL-","")))) + 1
|
|
603
|
+
// If no analyze artifacts exist: next_id = 1
|
|
604
|
+
|
|
605
|
+
artifact = {
|
|
606
|
+
id: "ANL-{next_id padded to 3}",
|
|
607
|
+
type: "analyze",
|
|
608
|
+
milestone: state.json.current_milestone, // null if standalone
|
|
609
|
+
phase: phase_num, // null if milestone/adhoc/standalone
|
|
610
|
+
scope: scope, // "milestone"|"phase"|"adhoc"|"standalone"
|
|
611
|
+
path: OUTPUT_DIR relative to .workflow/, // e.g. "scratch/analyze-auth-2026-04-20"
|
|
612
|
+
status: "completed",
|
|
613
|
+
depends_on: null,
|
|
614
|
+
harvested: false,
|
|
615
|
+
created_at: session_start_time,
|
|
616
|
+
completed_at: now()
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
state.json.artifacts.push(artifact)
|
|
620
|
+
state.json.last_updated = now()
|
|
621
|
+
Write state.json (atomic: write tmp + rename)
|
|
622
|
+
```
|
|
623
|
+
|
|
574
624
|
### Step 9: Report & Next Step
|
|
575
625
|
|
|
576
626
|
Display summary:
|
package/workflows/brainstorm.md
CHANGED
|
@@ -47,8 +47,8 @@ Phase 3: Single Role Analysis → Detection → Context → Agent → Validation
|
|
|
47
47
|
## Input
|
|
48
48
|
|
|
49
49
|
- `$ARGUMENTS`: topic text (auto mode) or role name (single role mode)
|
|
50
|
-
-
|
|
51
|
-
-
|
|
50
|
+
- All output goes to `.workflow/scratch/brainstorm-{slug}-{date}/`
|
|
51
|
+
- Registers artifact (type=brainstorm) in state.json on completion
|
|
52
52
|
|
|
53
53
|
### Parameters
|
|
54
54
|
|
|
@@ -80,32 +80,21 @@ Phase 3: Single Role Analysis → Detection → Context → Agent → Validation
|
|
|
80
80
|
|
|
81
81
|
### Directory Structure
|
|
82
82
|
|
|
83
|
-
|
|
84
|
-
```
|
|
85
|
-
.workflow/phases/{NN}-{slug}/
|
|
86
|
-
├── brainstorm.md # Legacy simple output (if no session)
|
|
87
|
-
├── index.json # Updated timestamps
|
|
88
|
-
└── .brainstorming/ # Full brainstorm session
|
|
89
|
-
├── guidance-specification.md # Phase 2 output
|
|
90
|
-
├── feature-index.json # Phase 4 output
|
|
91
|
-
├── synthesis-changelog.md # Phase 4 audit trail
|
|
92
|
-
├── feature-specs/ # Phase 4 feature specs
|
|
93
|
-
│ ├── F-001-{slug}.md
|
|
94
|
-
│ └── F-00N-{slug}.md
|
|
95
|
-
├── {role}/ # Phase 3 role analyses (immutable)
|
|
96
|
-
│ ├── {role}-context.md
|
|
97
|
-
│ ├── analysis.md
|
|
98
|
-
│ ├── analysis-cross-cutting.md
|
|
99
|
-
│ └── analysis-F-{id}-{slug}.md
|
|
100
|
-
└── synthesis-specification.md # Non-feature mode fallback
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
**Scratch mode**:
|
|
83
|
+
All brainstorm output goes to scratch:
|
|
104
84
|
```
|
|
105
85
|
.workflow/scratch/brainstorm-{slug}-{date}/
|
|
106
|
-
├──
|
|
107
|
-
|
|
108
|
-
|
|
86
|
+
├── guidance-specification.md # Phase 2 output
|
|
87
|
+
├── feature-index.json # Phase 4 output
|
|
88
|
+
├── synthesis-changelog.md # Phase 4 audit trail
|
|
89
|
+
├── feature-specs/ # Phase 4 feature specs
|
|
90
|
+
│ ├── F-001-{slug}.md
|
|
91
|
+
│ └── F-00N-{slug}.md
|
|
92
|
+
├── {role}/ # Phase 3 role analyses (immutable)
|
|
93
|
+
│ ├── {role}-context.md
|
|
94
|
+
│ ├── analysis.md
|
|
95
|
+
│ ├── analysis-cross-cutting.md
|
|
96
|
+
│ └── analysis-F-{id}-{slug}.md
|
|
97
|
+
└── synthesis-specification.md # Non-feature mode fallback
|
|
109
98
|
```
|
|
110
99
|
|
|
111
100
|
---
|
|
@@ -138,17 +127,8 @@ Parse $ARGUMENTS to determine execution mode:
|
|
|
138
127
|
|
|
139
128
|
**Output Directory Resolution**:
|
|
140
129
|
- Phase mode (number): `.workflow/phases/{NN}-{slug}/.brainstorming/`
|
|
141
|
-
-
|
|
142
|
-
- Existing session: use session
|
|
143
|
-
|
|
144
|
-
**Archive previous brainstorming session** (Phase mode only, skip if `--session` or `--update`):
|
|
145
|
-
```
|
|
146
|
-
PARENT_DIR = parent of output directory (e.g., .workflow/phases/{NN}-{slug}/)
|
|
147
|
-
IF directory exists "${PARENT_DIR}/.brainstorming" AND NOT --session AND NOT --update:
|
|
148
|
-
mkdir -p "${PARENT_DIR}/.history"
|
|
149
|
-
TIMESTAMP = current timestamp formatted as "YYYY-MM-DDTHH-mm-ss"
|
|
150
|
-
mv "${PARENT_DIR}/.brainstorming" "${PARENT_DIR}/.history/.brainstorming-${TIMESTAMP}"
|
|
151
|
-
```
|
|
130
|
+
- All output: `.workflow/scratch/brainstorm-{slug}-{date}/`
|
|
131
|
+
- Existing session: use existing session directory
|
|
152
132
|
|
|
153
133
|
---
|
|
154
134
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Delegate Execution Specification
|
|
2
2
|
|
|
3
3
|
<purpose>
|
|
4
|
-
Unified reference for `maestro
|
|
4
|
+
Unified reference for `maestro delegate` — synchronous task delegation with broker-managed lifecycle, message injection, and MCP notifications.
|
|
5
5
|
</purpose>
|
|
6
6
|
|
|
7
7
|
**References**: `~/.maestro/cli-tools.json` (tool config), `~/.maestro/templates/cli/` (protocol + prompt templates)
|
|
@@ -15,15 +15,14 @@ Unified reference for `maestro cli` — runs agent tools (gemini, qwen, codex, c
|
|
|
15
15
|
### Command Syntax
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
maestro
|
|
18
|
+
maestro delegate "<PROMPT>" [options]
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
### Options
|
|
22
22
|
|
|
23
23
|
| Option | Description | Default |
|
|
24
24
|
|--------|-------------|---------|
|
|
25
|
-
|
|
|
26
|
-
| `--tool <name>` | Tool: gemini, qwen, codex, claude, opencode | First enabled in config |
|
|
25
|
+
| `--to <name>` | Tool: gemini, qwen, codex, claude, opencode | First enabled in config |
|
|
27
26
|
| `--mode <mode>` | `analysis` (read-only) or `write` (create/modify/delete) | `analysis` |
|
|
28
27
|
| `--model <model>` | Model override | Tool's `primaryModel` |
|
|
29
28
|
| `--cd <dir>` | Working directory | Current directory |
|
|
@@ -31,6 +30,7 @@ maestro cli -p "<PROMPT>" [options]
|
|
|
31
30
|
| `--rule <template>` | Load protocol + prompt template | — (optional) |
|
|
32
31
|
| `--id <id>` | Execution ID | Auto: `{prefix}-{HHmmss}-{rand4}` |
|
|
33
32
|
| `--resume [id]` | Resume session (last if no id, comma-separated for merge) | — |
|
|
33
|
+
| `--backend <type>` | Adapter backend: `direct` or `terminal` (tmux/wezterm) | `direct` |
|
|
34
34
|
|
|
35
35
|
### Mode Definition (Authoritative)
|
|
36
36
|
|
|
@@ -39,7 +39,7 @@ maestro cli -p "<PROMPT>" [options]
|
|
|
39
39
|
| `analysis` | Read-only | Yes | Review, exploration, diagnosis, architecture analysis |
|
|
40
40
|
| `write` | Create/Modify/Delete | No — requires explicit intent | Implementation, bug fixes, refactoring |
|
|
41
41
|
|
|
42
|
-
> `--mode` is the **authoritative** permission control
|
|
42
|
+
> `--mode` is the **authoritative** permission control. The `MODE:` field inside prompt text is a hint for the agent — both should be consistent, but `--mode` governs actual behavior.
|
|
43
43
|
</context>
|
|
44
44
|
|
|
45
45
|
---
|
|
@@ -72,8 +72,8 @@ maestro cli -p "<PROMPT>" [options]
|
|
|
72
72
|
|
|
73
73
|
### Tool Selection
|
|
74
74
|
|
|
75
|
-
1. Explicit `--
|
|
76
|
-
2. No `--
|
|
75
|
+
1. Explicit `--to` specified → use it (validate enabled)
|
|
76
|
+
2. No `--to` → first enabled tool in config order
|
|
77
77
|
|
|
78
78
|
### Fallback Chain
|
|
79
79
|
|
|
@@ -88,10 +88,10 @@ Primary model fails → `secondaryModel` → next enabled tool → first enabled
|
|
|
88
88
|
|
|
89
89
|
### Assembly Order
|
|
90
90
|
|
|
91
|
-
`maestro
|
|
91
|
+
`maestro delegate` builds the final prompt as:
|
|
92
92
|
|
|
93
93
|
1. **Mode protocol** — `~/.maestro/templates/cli/protocols/{mode}-protocol.md`
|
|
94
|
-
2. **User prompt** — the
|
|
94
|
+
2. **User prompt** — the positional `"<PROMPT>"` value
|
|
95
95
|
3. **Rule template** — `~/.maestro/templates/cli/prompts/{rule}.txt` (if `--rule` specified)
|
|
96
96
|
|
|
97
97
|
### Prompt Template (6 Fields)
|
|
@@ -122,7 +122,7 @@ CONSTRAINTS: [scope limits] | [special requirements]
|
|
|
122
122
|
|
|
123
123
|
```bash
|
|
124
124
|
# Cross-directory example
|
|
125
|
-
maestro
|
|
125
|
+
maestro delegate "CONTEXT: @**/* @../shared/**/*" --to gemini --mode analysis \
|
|
126
126
|
--cd "src/auth" --includeDirs "../shared"
|
|
127
127
|
```
|
|
128
128
|
|
|
@@ -148,13 +148,13 @@ Memory: Integration with auth module, using shared error patterns
|
|
|
148
148
|
### Complete Example
|
|
149
149
|
|
|
150
150
|
```bash
|
|
151
|
-
maestro
|
|
151
|
+
maestro delegate "PURPOSE: Identify OWASP Top 10 vulnerabilities in auth module; success = all critical/high documented with remediation
|
|
152
152
|
TASK: Scan for injection flaws | Check auth bypass vectors | Evaluate session management | Assess data exposure
|
|
153
153
|
MODE: analysis
|
|
154
154
|
CONTEXT: @src/auth/**/* @src/middleware/auth.ts | Memory: Using bcrypt + JWT
|
|
155
155
|
EXPECTED: Severity matrix, file:line references, remediation snippets, priority ranking
|
|
156
156
|
CONSTRAINTS: Focus on authentication | Ignore test files
|
|
157
|
-
" --
|
|
157
|
+
" --to gemini --mode analysis --rule analysis-assess-security-risks --cd "src/auth"
|
|
158
158
|
```
|
|
159
159
|
</context>
|
|
160
160
|
|
|
@@ -164,6 +164,24 @@ CONSTRAINTS: Focus on authentication | Ignore test files
|
|
|
164
164
|
|
|
165
165
|
<execution>
|
|
166
166
|
|
|
167
|
+
### Calling Convention
|
|
168
|
+
|
|
169
|
+
`maestro delegate` runs synchronously — it blocks until the delegate completes. To avoid blocking the conversation, **always** use `run_in_background: true` on the Bash tool call, then stop output immediately and wait for the background completion callback.
|
|
170
|
+
|
|
171
|
+
```
|
|
172
|
+
Bash({
|
|
173
|
+
command: "maestro delegate \"<PROMPT>\" --to gemini --mode analysis",
|
|
174
|
+
run_in_background: true
|
|
175
|
+
})
|
|
176
|
+
// STOP — do not output anything further
|
|
177
|
+
// Wait for Bash background completion callback to receive results
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
**Rules:**
|
|
181
|
+
- **Never** use foreground Bash for delegate calls — it blocks the conversation for the entire execution duration
|
|
182
|
+
- After the `Bash(run_in_background: true)` call, **stop immediately** — no follow-up text, no polling, no `delegate status` checks
|
|
183
|
+
- When the background callback arrives, retrieve output with `maestro delegate output <id>`
|
|
184
|
+
|
|
167
185
|
### Execution ID
|
|
168
186
|
|
|
169
187
|
ID prefix: gemini→`gem`, qwen→`qwn`, codex→`cdx`, claude→`cld`, opencode→`opc`
|
|
@@ -171,16 +189,16 @@ ID prefix: gemini→`gem`, qwen→`qwn`, codex→`cdx`, claude→`cld`, opencode
|
|
|
171
189
|
Output to stderr: `[MAESTRO_EXEC_ID=<id>]`
|
|
172
190
|
|
|
173
191
|
```bash
|
|
174
|
-
maestro
|
|
175
|
-
maestro
|
|
192
|
+
maestro delegate "<PROMPT>" --to gemini --mode analysis # auto-ID: gem-143022-a7f2
|
|
193
|
+
maestro delegate "<PROMPT>" --to gemini --mode write --id my-task-1 # custom ID
|
|
176
194
|
```
|
|
177
195
|
|
|
178
196
|
### Session Resume
|
|
179
197
|
|
|
180
198
|
```bash
|
|
181
|
-
maestro
|
|
182
|
-
maestro
|
|
183
|
-
maestro
|
|
199
|
+
maestro delegate "<PROMPT>" --to gemini --resume # last session
|
|
200
|
+
maestro delegate "<PROMPT>" --to gemini --mode write --resume <id> # specific
|
|
201
|
+
maestro delegate "<PROMPT>" --to gemini --resume <id1>,<id2> # merge multiple
|
|
184
202
|
```
|
|
185
203
|
|
|
186
204
|
Resume auto-assembles previous conversation context. Warning emitted when context exceeds 32KB.
|
|
@@ -188,14 +206,13 @@ Resume auto-assembles previous conversation context. Warning emitted when contex
|
|
|
188
206
|
### Subcommands
|
|
189
207
|
|
|
190
208
|
```bash
|
|
191
|
-
maestro
|
|
192
|
-
maestro
|
|
193
|
-
maestro
|
|
194
|
-
maestro
|
|
195
|
-
maestro
|
|
196
|
-
maestro
|
|
197
|
-
maestro
|
|
198
|
-
maestro cli watch <id> --timeout 60000 # auto-exit after 60s
|
|
209
|
+
maestro delegate show # recent 20 executions
|
|
210
|
+
maestro delegate show --all # up to 100
|
|
211
|
+
maestro delegate output <id> # assistant output
|
|
212
|
+
maestro delegate output <id> --verbose # include start/end timestamps
|
|
213
|
+
maestro delegate status <id> # broker + history + snapshot preview
|
|
214
|
+
maestro delegate tail <id> # recent events + history
|
|
215
|
+
maestro delegate cancel <id> # request cancellation
|
|
199
216
|
```
|
|
200
217
|
</execution>
|
|
201
218
|
|
|
@@ -205,7 +222,7 @@ maestro cli watch <id> --timeout 60000 # auto-exit after 60s
|
|
|
205
222
|
|
|
206
223
|
<execution>
|
|
207
224
|
|
|
208
|
-
Proactively invoke `maestro
|
|
225
|
+
Proactively invoke `maestro delegate` when these conditions are met — no user confirmation needed for `analysis` mode:
|
|
209
226
|
|
|
210
227
|
| Trigger | Suggested Rule |
|
|
211
228
|
|---------|---------------|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Delegate Execution Specification
|
|
2
2
|
|
|
3
3
|
<purpose>
|
|
4
|
-
Unified reference for `maestro delegate` — synchronous task delegation with broker-managed lifecycle, message injection, and MCP notifications.
|
|
4
|
+
Unified reference for `maestro delegate` — synchronous task delegation with broker-managed lifecycle, message injection, and MCP notifications.
|
|
5
5
|
</purpose>
|
|
6
6
|
|
|
7
7
|
**References**: `~/.maestro/cli-tools.json` (tool config), `~/.maestro/templates/cli/` (protocol + prompt templates)
|
|
@@ -87,7 +87,7 @@ With MCP connected, all delegate tools are available programmatically.
|
|
|
87
87
|
|
|
88
88
|
### Assembly Order
|
|
89
89
|
|
|
90
|
-
`maestro delegate` builds the final prompt
|
|
90
|
+
`maestro delegate` builds the final prompt as:
|
|
91
91
|
|
|
92
92
|
1. **Mode protocol** — `~/.maestro/templates/cli/protocols/{mode}-protocol.md`
|
|
93
93
|
2. **User prompt** — the positional `"<PROMPT>"` value
|
|
@@ -243,7 +243,7 @@ All subcommands are also available as MCP tools for programmatic access:
|
|
|
243
243
|
|
|
244
244
|
### Snapshot & Preview
|
|
245
245
|
|
|
246
|
-
`delegate status` includes a `Preview:` field showing the agent's latest output — built from `assistant_message`, `tool_use` completions, and `file_change` events.
|
|
246
|
+
`delegate status` includes a `Preview:` field showing the agent's latest output — built from `assistant_message`, `tool_use` completions, and `file_change` events.
|
|
247
247
|
|
|
248
248
|
### Job Lifecycle
|
|
249
249
|
|