maestro-flow 0.3.46 → 0.3.47
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/agents/ui-design-agent.md +1 -0
- package/.claude/agents/workflow-executor.md +3 -0
- package/.claude/commands/learn-decompose.md +91 -146
- package/.claude/commands/learn-follow.md +102 -137
- package/.claude/commands/learn-investigate.md +102 -167
- package/.claude/commands/learn-retro.md +100 -243
- package/.claude/commands/learn-second-opinion.md +95 -135
- package/.claude/commands/maestro-amend.md +95 -232
- package/.claude/commands/maestro-analyze.md +1 -6
- package/.claude/commands/maestro-collab.md +104 -265
- package/.claude/commands/maestro-composer.md +113 -293
- package/.claude/commands/maestro-execute.md +10 -17
- package/.claude/commands/maestro-impeccable.md +89 -0
- package/.claude/commands/maestro-plan.md +1 -6
- package/.claude/commands/maestro-player.md +111 -340
- package/.claude/commands/maestro-quick.md +9 -0
- package/.claude/commands/maestro-ralph-execute.md +167 -210
- package/.claude/commands/maestro-ralph.md +245 -426
- package/.claude/commands/maestro-ui-codify.md +13 -0
- package/.claude/commands/maestro-ui-craft.md +364 -0
- package/.claude/commands/maestro-ui-design.md +12 -1
- package/.claude/commands/maestro-verify.md +12 -13
- package/.claude/commands/maestro.md +142 -72
- package/.claude/commands/manage-knowhow-capture.md +45 -170
- package/.claude/commands/quality-auto-test.md +9 -0
- package/.claude/commands/quality-debug.md +11 -25
- package/.claude/commands/quality-refactor.md +9 -0
- package/.claude/commands/quality-review.md +5 -14
- package/.claude/commands/spec-add.md +1 -1
- package/.claude/commands/spec-load.md +3 -2
- package/.claude/skills/maestro-impeccable/SKILL.md +169 -0
- package/.codex/skills/learn-decompose/SKILL.md +1 -1
- package/.codex/skills/learn-investigate/SKILL.md +2 -1
- package/.codex/skills/maestro/SKILL.md +278 -313
- package/.codex/skills/maestro-analyze/SKILL.md +126 -417
- package/.codex/skills/maestro-brainstorm/SKILL.md +129 -451
- package/.codex/skills/maestro-collab/SKILL.md +134 -547
- package/.codex/skills/maestro-execute/SKILL.md +3 -1
- package/.codex/skills/maestro-impeccable/SKILL.md +112 -0
- package/.codex/skills/maestro-plan/SKILL.md +88 -437
- package/.codex/skills/maestro-player/SKILL.md +191 -333
- package/.codex/skills/maestro-quick/SKILL.md +2 -0
- package/.codex/skills/maestro-ralph/SKILL.md +307 -710
- package/.codex/skills/maestro-roadmap/SKILL.md +201 -518
- package/.codex/skills/maestro-ui-codify/SKILL.md +1 -0
- package/.codex/skills/maestro-ui-craft/SKILL.md +341 -0
- package/.codex/skills/maestro-ui-design/SKILL.md +10 -0
- package/.codex/skills/maestro-verify/SKILL.md +116 -409
- package/.codex/skills/quality-auto-test/SKILL.md +145 -443
- package/.codex/skills/quality-refactor/SKILL.md +1 -1
- package/.codex/skills/quality-test/SKILL.md +229 -517
- package/.codex/skills/spec-add/SKILL.md +1 -1
- package/README.md +4 -1
- package/README.zh-CN.md +3 -1
- package/dashboard/dist-server/dashboard/src/server/agents/codex-cli-adapter.js +3 -0
- package/dashboard/dist-server/dashboard/src/server/agents/codex-cli-adapter.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/install.js +110 -1
- package/dashboard/dist-server/dashboard/src/server/routes/install.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/settings.js +56 -0
- package/dashboard/dist-server/dashboard/src/server/routes/settings.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/wiki.js +2 -0
- package/dashboard/dist-server/dashboard/src/server/routes/wiki.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/spec-entry-parser.js +2 -2
- package/dashboard/dist-server/dashboard/src/server/wiki/spec-entry-parser.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js +2 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-types.d.ts +3 -1
- package/dashboard/dist-server/dashboard/src/shared/constants.d.ts +2 -0
- package/dashboard/dist-server/dashboard/src/shared/constants.js +2 -0
- package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
- package/dist/src/agents/cli-agent-runner.d.ts.map +1 -1
- package/dist/src/agents/cli-agent-runner.js +1 -3
- package/dist/src/agents/cli-agent-runner.js.map +1 -1
- package/dist/src/agents/cli-history-store.d.ts +5 -0
- package/dist/src/agents/cli-history-store.d.ts.map +1 -1
- package/dist/src/agents/cli-history-store.js +65 -13
- package/dist/src/agents/cli-history-store.js.map +1 -1
- package/dist/src/cli.js +13 -0
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/command-help.d.ts +3 -0
- package/dist/src/commands/command-help.d.ts.map +1 -0
- package/dist/src/commands/command-help.js +60 -0
- package/dist/src/commands/command-help.js.map +1 -0
- package/dist/src/commands/config.d.ts.map +1 -1
- package/dist/src/commands/config.js +17 -0
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/delegate.d.ts.map +1 -1
- package/dist/src/commands/delegate.js +12 -2
- package/dist/src/commands/delegate.js.map +1 -1
- package/dist/src/commands/impeccable.d.ts +10 -0
- package/dist/src/commands/impeccable.d.ts.map +1 -0
- package/dist/src/commands/impeccable.js +181 -0
- package/dist/src/commands/impeccable.js.map +1 -0
- package/dist/src/commands/spec.js +1 -1
- package/dist/src/commands/spec.js.map +1 -1
- package/dist/src/commands/wiki.d.ts.map +1 -1
- package/dist/src/commands/wiki.js +5 -1
- package/dist/src/commands/wiki.js.map +1 -1
- package/dist/src/config/cli-tools-config.d.ts.map +1 -1
- package/dist/src/config/cli-tools-config.js +10 -7
- package/dist/src/config/cli-tools-config.js.map +1 -1
- package/dist/src/core/addon-registry.d.ts +31 -0
- package/dist/src/core/addon-registry.d.ts.map +1 -0
- package/dist/src/core/addon-registry.js +28 -0
- package/dist/src/core/addon-registry.js.map +1 -0
- package/dist/src/hooks/plugins/spec-injection-plugin.js +2 -0
- package/dist/src/hooks/plugins/spec-injection-plugin.js.map +1 -1
- package/dist/src/hooks/spec-injector.js +2 -2
- package/dist/src/hooks/spec-injector.js.map +1 -1
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/tools/impeccable/critique-storage.d.ts +28 -0
- package/dist/src/tools/impeccable/critique-storage.d.ts.map +1 -0
- package/dist/src/tools/impeccable/critique-storage.js +120 -0
- package/dist/src/tools/impeccable/critique-storage.js.map +1 -0
- package/dist/src/tools/impeccable/design-parser.d.ts +90 -0
- package/dist/src/tools/impeccable/design-parser.d.ts.map +1 -0
- package/dist/src/tools/impeccable/design-parser.js +696 -0
- package/dist/src/tools/impeccable/design-parser.js.map +1 -0
- package/dist/src/tools/impeccable/detect-csp.d.ts +6 -0
- package/dist/src/tools/impeccable/detect-csp.d.ts.map +1 -0
- package/dist/src/tools/impeccable/detect-csp.js +130 -0
- package/dist/src/tools/impeccable/detect-csp.js.map +1 -0
- package/dist/src/tools/impeccable/is-generated.d.ts +4 -0
- package/dist/src/tools/impeccable/is-generated.d.ts.map +1 -0
- package/dist/src/tools/impeccable/is-generated.js +56 -0
- package/dist/src/tools/impeccable/is-generated.js.map +1 -0
- package/dist/src/tools/impeccable/live/accept.d.ts +50 -0
- package/dist/src/tools/impeccable/live/accept.d.ts.map +1 -0
- package/dist/src/tools/impeccable/live/accept.js +556 -0
- package/dist/src/tools/impeccable/live/accept.js.map +1 -0
- package/dist/src/tools/impeccable/live/bootstrap.d.ts +2 -0
- package/dist/src/tools/impeccable/live/bootstrap.d.ts.map +1 -0
- package/dist/src/tools/impeccable/live/bootstrap.js +244 -0
- package/dist/src/tools/impeccable/live/bootstrap.js.map +1 -0
- package/dist/src/tools/impeccable/live/complete.d.ts +7 -0
- package/dist/src/tools/impeccable/live/complete.d.ts.map +1 -0
- package/dist/src/tools/impeccable/live/complete.js +67 -0
- package/dist/src/tools/impeccable/live/complete.js.map +1 -0
- package/dist/src/tools/impeccable/live/completion.d.ts +24 -0
- package/dist/src/tools/impeccable/live/completion.d.ts.map +1 -0
- package/dist/src/tools/impeccable/live/completion.js +26 -0
- package/dist/src/tools/impeccable/live/completion.js.map +1 -0
- package/dist/src/tools/impeccable/live/inject.d.ts +41 -0
- package/dist/src/tools/impeccable/live/inject.d.ts.map +1 -0
- package/dist/src/tools/impeccable/live/inject.js +394 -0
- package/dist/src/tools/impeccable/live/inject.js.map +1 -0
- package/dist/src/tools/impeccable/live/poll.d.ts +24 -0
- package/dist/src/tools/impeccable/live/poll.d.ts.map +1 -0
- package/dist/src/tools/impeccable/live/poll.js +180 -0
- package/dist/src/tools/impeccable/live/poll.js.map +1 -0
- package/dist/src/tools/impeccable/live/resume.d.ts +5 -0
- package/dist/src/tools/impeccable/live/resume.d.ts.map +1 -0
- package/dist/src/tools/impeccable/live/resume.js +30 -0
- package/dist/src/tools/impeccable/live/resume.js.map +1 -0
- package/dist/src/tools/impeccable/live/server.d.ts +6 -0
- package/dist/src/tools/impeccable/live/server.d.ts.map +1 -0
- package/dist/src/tools/impeccable/live/server.js +867 -0
- package/dist/src/tools/impeccable/live/server.js.map +1 -0
- package/dist/src/tools/impeccable/live/session-store.d.ts +72 -0
- package/dist/src/tools/impeccable/live/session-store.d.ts.map +1 -0
- package/dist/src/tools/impeccable/live/session-store.js +281 -0
- package/dist/src/tools/impeccable/live/session-store.js.map +1 -0
- package/dist/src/tools/impeccable/live/static/live-browser-session.js +123 -0
- package/dist/src/tools/impeccable/live/static/live-browser.js +4860 -0
- package/dist/src/tools/impeccable/live/static/modern-screenshot.umd.js +14 -0
- package/dist/src/tools/impeccable/live/status.d.ts +2 -0
- package/dist/src/tools/impeccable/live/status.d.ts.map +1 -0
- package/dist/src/tools/impeccable/live/status.js +52 -0
- package/dist/src/tools/impeccable/live/status.js.map +1 -0
- package/dist/src/tools/impeccable/live/wrap.d.ts +33 -0
- package/dist/src/tools/impeccable/live/wrap.d.ts.map +1 -0
- package/dist/src/tools/impeccable/live/wrap.js +572 -0
- package/dist/src/tools/impeccable/live/wrap.js.map +1 -0
- package/dist/src/tools/impeccable/load-context.d.ts +13 -0
- package/dist/src/tools/impeccable/load-context.d.ts.map +1 -0
- package/dist/src/tools/impeccable/load-context.js +79 -0
- package/dist/src/tools/impeccable/load-context.js.map +1 -0
- package/dist/src/tools/impeccable/paths.d.ts +34 -0
- package/dist/src/tools/impeccable/paths.d.ts.map +1 -0
- package/dist/src/tools/impeccable/paths.js +102 -0
- package/dist/src/tools/impeccable/paths.js.map +1 -0
- package/dist/src/tools/spec-entry-parser.d.ts +1 -1
- package/dist/src/tools/spec-entry-parser.d.ts.map +1 -1
- package/dist/src/tools/spec-entry-parser.js +1 -1
- package/dist/src/tools/spec-entry-parser.js.map +1 -1
- package/dist/src/tools/spec-init.d.ts.map +1 -1
- package/dist/src/tools/spec-init.js +26 -1
- package/dist/src/tools/spec-init.js.map +1 -1
- package/dist/src/tools/spec-loader.d.ts +1 -1
- package/dist/src/tools/spec-loader.d.ts.map +1 -1
- package/dist/src/tools/spec-loader.js +2 -0
- package/dist/src/tools/spec-loader.js.map +1 -1
- package/package.json +2 -2
- package/workflows/claude-instructions.md +17 -5
- package/workflows/cli-tools-usage.md +10 -3
- package/workflows/delegate-usage.md +3 -2
- package/workflows/impeccable/adapt.md +190 -0
- package/workflows/impeccable/animate.md +175 -0
- package/workflows/impeccable/audit.md +133 -0
- package/workflows/impeccable/bolder.md +113 -0
- package/workflows/impeccable/brand.md +118 -0
- package/workflows/impeccable/clarify.md +174 -0
- package/workflows/impeccable/codex.md +105 -0
- package/workflows/impeccable/cognitive-load.md +106 -0
- package/workflows/impeccable/color-and-contrast.md +105 -0
- package/workflows/impeccable/colorize.md +154 -0
- package/workflows/impeccable/craft.md +123 -0
- package/workflows/impeccable/critique.md +261 -0
- package/workflows/impeccable/delight.md +302 -0
- package/workflows/impeccable/distill.md +111 -0
- package/workflows/impeccable/document.md +439 -0
- package/workflows/impeccable/extract.md +69 -0
- package/workflows/impeccable/harden.md +347 -0
- package/workflows/impeccable/heuristics-scoring.md +234 -0
- package/workflows/impeccable/interaction-design.md +195 -0
- package/workflows/impeccable/layout.md +141 -0
- package/workflows/impeccable/live.md +622 -0
- package/workflows/impeccable/motion-design.md +109 -0
- package/workflows/impeccable/onboard.md +234 -0
- package/workflows/impeccable/optimize.md +258 -0
- package/workflows/impeccable/overdrive.md +130 -0
- package/workflows/impeccable/personas.md +179 -0
- package/workflows/impeccable/polish.md +242 -0
- package/workflows/impeccable/product.md +62 -0
- package/workflows/impeccable/quieter.md +99 -0
- package/workflows/impeccable/responsive-design.md +114 -0
- package/workflows/impeccable/shape.md +165 -0
- package/workflows/impeccable/spatial-design.md +100 -0
- package/workflows/impeccable/teach.md +168 -0
- package/workflows/impeccable/typeset.md +124 -0
- package/workflows/impeccable/typography.md +159 -0
- package/workflows/impeccable/ux-writing.md +107 -0
- package/workflows/impeccable.md +164 -0
- package/workflows/maestro.md +7 -3
- package/workflows/skill-authoring.md +265 -0
- package/workflows/specs-add.md +3 -2
- package/workflows/specs-load.md +2 -1
- package/workflows/specs-setup.md +21 -1
|
@@ -13,321 +13,160 @@ allowed-tools:
|
|
|
13
13
|
---
|
|
14
14
|
|
|
15
15
|
<purpose>
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
Each CLI tool independently analyzes the requirement. Results are compared and merged via evidence-weighted synthesis.
|
|
16
|
+
Fan-out requirement to multiple CLI tools in parallel → cross-verify for consensus/conflicts → synthesize into unified report with downstream artifacts (context.md + conclusions.json).
|
|
19
17
|
</purpose>
|
|
20
18
|
|
|
21
19
|
<context>
|
|
22
20
|
$ARGUMENTS — requirement text and optional flags.
|
|
23
21
|
|
|
24
|
-
```bash
|
|
25
|
-
/maestro-collab "analyze the auth module for security vulnerabilities"
|
|
26
|
-
/maestro-collab "design a caching strategy" --tools gemini,qwen,claude
|
|
27
|
-
/maestro-collab -y "review error handling patterns"
|
|
28
|
-
/maestro-collab "refactor user service" --mode write --tools gemini,claude
|
|
29
|
-
```
|
|
30
|
-
|
|
31
22
|
**Flags**:
|
|
32
|
-
- `--tools <list>`: Comma-separated CLI tools (default:
|
|
23
|
+
- `--tools <list>`: Comma-separated CLI tools (default: first 3 enabled)
|
|
33
24
|
- `--mode analysis|write`: Delegate mode (default: analysis)
|
|
34
25
|
- `--rule <template>`: Shared rule template for all delegates
|
|
35
|
-
- `-y
|
|
26
|
+
- `-y`: Skip plan confirmation
|
|
27
|
+
|
|
28
|
+
**Pre-load** (optional): `maestro spec load --category arch` + `maestro wiki list --category arch` → include in delegate prompts.
|
|
36
29
|
|
|
37
30
|
**Output**: `.workflow/scratch/{YYYYMMDD}-collab-{slug}/`
|
|
38
|
-
- `collab-report.md` —
|
|
39
|
-
- `context.md` —
|
|
40
|
-
- `conclusions.json` — structured
|
|
41
|
-
- `per-tool/{tool}-output.md` — raw
|
|
31
|
+
- `collab-report.md` — merged findings with consensus/conflict/unique tags
|
|
32
|
+
- `context.md` — Locked/Free/Deferred decisions (plan compatible)
|
|
33
|
+
- `conclusions.json` — structured: session_id, tools[], consensus_level, recommendation, confidence, dimensions[], decisions[]
|
|
34
|
+
- `per-tool/{tool}-output.md` — raw outputs
|
|
42
35
|
</context>
|
|
43
36
|
|
|
44
|
-
<
|
|
45
|
-
|
|
46
|
-
### Step 1: Parse Arguments
|
|
47
|
-
|
|
48
|
-
Extract from `$ARGUMENTS`:
|
|
49
|
-
- `requirement` — remaining text after flag removal (error if empty)
|
|
50
|
-
- `--tools` → `selectedTools` (comma-split)
|
|
51
|
-
- `--mode` → `delegateMode` (default: `analysis`)
|
|
52
|
-
- `--rule` → `ruleTemplate`
|
|
53
|
-
- `-y` / `--yes` → `autoYes`
|
|
37
|
+
<state_machine>
|
|
54
38
|
|
|
55
|
-
|
|
39
|
+
<states>
|
|
40
|
+
S_PARSE — 解析参数、提取 flags PERSIST: —
|
|
41
|
+
S_DISCOVER — 发现可用 CLI 工具 PERSIST: —
|
|
42
|
+
S_CONFIRM — 展示计划、用户确认(-y 跳过) PERSIST: —
|
|
43
|
+
S_FANOUT — 构建 prompt、并行启动 delegate、STOP PERSIST: —
|
|
44
|
+
S_COLLECT — 回调到达、收集结果 PERSIST: per-tool outputs
|
|
45
|
+
S_CROSS_VERIFY — 分类发现(共识/冲突/独有) PERSIST: —
|
|
46
|
+
S_SYNTHESIZE — 解决冲突、生成 3 个输出文件 PERSIST: outputs
|
|
47
|
+
S_REGISTER — 注册 CLB artifact PERSIST: state.json
|
|
48
|
+
S_REPORT — 显示摘要 + next-step routing PERSIST: —
|
|
49
|
+
</states>
|
|
56
50
|
|
|
57
|
-
|
|
58
|
-
Bash("maestro tools list --json 2>/dev/null || cat ~/.maestro/cli-tools.json")
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
Parse tool entries. Build eligible list:
|
|
62
|
-
- `enabled == true`
|
|
63
|
-
- If `--mode write`: exclude `type == "api-endpoint"`
|
|
51
|
+
<transitions>
|
|
64
52
|
|
|
65
|
-
|
|
66
|
-
|
|
53
|
+
S_PARSE:
|
|
54
|
+
→ S_DISCOVER WHEN: requirement non-empty DO: extract requirement, tools, mode, rule, autoYes
|
|
55
|
+
→ S_PARSE WHEN: requirement empty DO: AskUserQuestion for requirement
|
|
67
56
|
|
|
68
|
-
|
|
57
|
+
S_DISCOVER:
|
|
58
|
+
→ S_CONFIRM WHEN: eligible tools >= 2 DO: A_DISCOVER_TOOLS
|
|
59
|
+
→ ERROR(E002) WHEN: eligible tools < 2
|
|
69
60
|
|
|
70
|
-
|
|
61
|
+
S_CONFIRM:
|
|
62
|
+
→ S_FANOUT WHEN: autoYes DO: A_SETUP_SESSION
|
|
63
|
+
→ S_FANOUT WHEN: user confirms "执行" DO: A_SETUP_SESSION
|
|
64
|
+
→ S_DISCOVER WHEN: user selects "修改工具选择" DO: re-select tools, validate >= 2
|
|
65
|
+
→ END WHEN: user cancels
|
|
71
66
|
|
|
72
|
-
|
|
67
|
+
S_FANOUT:
|
|
68
|
+
→ S_COLLECT DO: A_PARALLEL_DELEGATE then STOP — wait for callbacks
|
|
73
69
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
Requirement: {requirement}
|
|
79
|
-
Mode: {delegateMode}
|
|
80
|
-
Rule: {ruleTemplate || "none"}
|
|
81
|
-
|
|
82
|
-
Available CLI Tools (from cli-tools.json):
|
|
83
|
-
[✓] gemini — gemini-3.1-pro-preview [fullstack, frontend]
|
|
84
|
-
[✓] claude — claude-sonnet-4-6 [fullstack]
|
|
85
|
-
[✓] codex — gpt-5.5 [fullstack, backend]
|
|
86
|
-
[ ] opencode — (no model) [fullstack]
|
|
87
|
-
|
|
88
|
-
Selected: gemini, claude, codex (3 tools)
|
|
89
|
-
|
|
90
|
-
Pipeline:
|
|
91
|
-
1. Fan-out → parallel delegate to each tool
|
|
92
|
-
2. Cross-verification → consensus/conflict analysis
|
|
93
|
-
3. Synthesis → context.md + conclusions.json
|
|
94
|
-
============================================================
|
|
95
|
-
```
|
|
70
|
+
S_COLLECT:
|
|
71
|
+
→ S_CROSS_VERIFY WHEN: all callbacks arrived DO: A_COLLECT_OUTPUTS
|
|
72
|
+
→ ERROR(E004) WHEN: all delegates failed
|
|
73
|
+
GUARD: 1+ succeeded → continue with partial results (W001)
|
|
96
74
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
- **修改工具选择** — let user specify different tool combination
|
|
100
|
-
- **取消** — abort
|
|
75
|
+
S_CROSS_VERIFY:
|
|
76
|
+
→ S_SYNTHESIZE DO: A_CLASSIFY_FINDINGS
|
|
101
77
|
|
|
102
|
-
|
|
78
|
+
S_SYNTHESIZE:
|
|
79
|
+
→ S_REGISTER DO: A_GENERATE_OUTPUTS
|
|
103
80
|
|
|
104
|
-
|
|
81
|
+
S_REGISTER:
|
|
82
|
+
→ S_REPORT DO: append CLB artifact to state.json (type: collab, scope: adhoc)
|
|
105
83
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
outputDir = .workflow/scratch/{YYYYMMDD}-collab-{slug}/
|
|
109
|
-
```
|
|
84
|
+
S_REPORT:
|
|
85
|
+
→ END DO: display summary (requirement, tools, consensus_level, per-tool status, artifact id, output dir)
|
|
110
86
|
|
|
111
|
-
|
|
87
|
+
</transitions>
|
|
112
88
|
|
|
113
|
-
|
|
89
|
+
<actions>
|
|
114
90
|
|
|
115
|
-
|
|
91
|
+
### A_DISCOVER_TOOLS
|
|
116
92
|
|
|
117
93
|
```
|
|
118
|
-
|
|
119
|
-
TASK: {auto-decomposed into 3-5 specific verbs}
|
|
120
|
-
MODE: {delegateMode}
|
|
121
|
-
CONTEXT: @**/*
|
|
122
|
-
EXPECTED: Structured findings with file:line references, confidence score (0-100), prioritized recommendations. Sections: ## Findings, ## Recommendations, ## Confidence
|
|
123
|
-
CONSTRAINTS: {extracted from requirement}
|
|
94
|
+
Bash("maestro tools list --json 2>/dev/null || cat ~/.maestro/cli-tools.json")
|
|
124
95
|
```
|
|
96
|
+
Filter: enabled == true. If --mode write: exclude type == "api-endpoint".
|
|
97
|
+
Auto-select (no --tools): first 3 eligible in config order.
|
|
125
98
|
|
|
126
|
-
###
|
|
127
|
-
|
|
128
|
-
Launch ALL delegate calls simultaneously using multiple `Bash(run_in_background: true)` in a **single message**:
|
|
99
|
+
### A_SETUP_SESSION
|
|
129
100
|
|
|
130
|
-
|
|
131
|
-
// Launch all in ONE message — do NOT wait between calls
|
|
132
|
-
Bash({
|
|
133
|
-
command: `maestro delegate "${prompt}" --to gemini --mode ${mode} ${rule}`,
|
|
134
|
-
run_in_background: true
|
|
135
|
-
})
|
|
136
|
-
Bash({
|
|
137
|
-
command: `maestro delegate "${prompt}" --to claude --mode ${mode} ${rule}`,
|
|
138
|
-
run_in_background: true
|
|
139
|
-
})
|
|
140
|
-
Bash({
|
|
141
|
-
command: `maestro delegate "${prompt}" --to codex --mode ${mode} ${rule}`,
|
|
142
|
-
run_in_background: true
|
|
143
|
-
})
|
|
144
|
-
```
|
|
101
|
+
Create: `.workflow/scratch/{YYYYMMDD}-collab-{slug}/` + `per-tool/`.
|
|
145
102
|
|
|
146
|
-
|
|
103
|
+
### A_PARALLEL_DELEGATE
|
|
147
104
|
|
|
148
|
-
|
|
105
|
+
1. Build shared prompt:
|
|
106
|
+
```
|
|
107
|
+
PURPOSE: {requirement}; success = actionable findings with evidence
|
|
108
|
+
TASK: {auto-decomposed into 3-5 specific verbs}
|
|
109
|
+
MODE: {delegateMode}
|
|
110
|
+
CONTEXT: @**/*
|
|
111
|
+
EXPECTED: Structured findings with file:line refs, confidence (0-100), prioritized recommendations
|
|
112
|
+
CONSTRAINTS: {from requirement}
|
|
113
|
+
```
|
|
114
|
+
2. Launch ALL delegates in ONE message — multiple `Bash(run_in_background: true)`:
|
|
115
|
+
```
|
|
116
|
+
maestro delegate "${prompt}" --to {tool} --mode ${mode} [--rule ${rule}]
|
|
117
|
+
```
|
|
118
|
+
3. **STOP immediately after launch. Wait for background callbacks.**
|
|
149
119
|
|
|
150
|
-
|
|
151
|
-
1. Extract exec ID from output (`[MAESTRO_EXEC_ID=...]`)
|
|
152
|
-
2. Run `maestro delegate output <id>` to get full result
|
|
153
|
-
3. Write raw output to `per-tool/{tool}-output.md`
|
|
120
|
+
### A_COLLECT_OUTPUTS
|
|
154
121
|
|
|
155
|
-
|
|
122
|
+
On each callback: `maestro delegate output <id>` → write `per-tool/{tool}-output.md`.
|
|
156
123
|
|
|
157
|
-
###
|
|
124
|
+
### A_CLASSIFY_FINDINGS
|
|
158
125
|
|
|
159
|
-
Read all
|
|
126
|
+
Read all per-tool outputs. For each finding:
|
|
160
127
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
128
|
+
| Condition | Tag |
|
|
129
|
+
|-----------|-----|
|
|
130
|
+
| 2+ tools agree | CONSENSUS |
|
|
131
|
+
| Tools disagree | CONFLICT |
|
|
132
|
+
| 1 tool only | UNIQUE |
|
|
165
133
|
|
|
166
|
-
|
|
134
|
+
consensus_level = consensus_count / total_findings * 100.
|
|
135
|
+
If consensus_level < 40%: W003.
|
|
167
136
|
|
|
168
|
-
###
|
|
137
|
+
### A_GENERATE_OUTPUTS
|
|
169
138
|
|
|
170
139
|
Resolve conflicts via evidence-weighted voting:
|
|
171
|
-
- Higher confidence
|
|
172
|
-
- More specific evidence (file:line refs) wins over general statements
|
|
173
|
-
- If tied: mark as `[SUGGESTED]`
|
|
174
|
-
|
|
175
|
-
Generate three output files:
|
|
176
|
-
|
|
177
|
-
#### collab-report.md
|
|
178
|
-
|
|
179
|
-
```markdown
|
|
180
|
-
# Multi-CLI Collaboration Report — {requirement}
|
|
181
|
-
|
|
182
|
-
## Summary
|
|
183
|
-
- Tools: {tool_list}
|
|
184
|
-
- Consensus level: {N}%
|
|
185
|
-
- Key finding: {top finding}
|
|
186
|
-
|
|
187
|
-
## Consensus Findings
|
|
188
|
-
{findings agreed by 2+ tools}
|
|
189
|
-
|
|
190
|
-
## Resolved Conflicts
|
|
191
|
-
{conflicts resolved with rationale and winning tool}
|
|
192
|
-
|
|
193
|
-
## Unresolved Items
|
|
194
|
-
{items requiring human judgment}
|
|
140
|
+
- Higher confidence wins; more specific evidence (file:line) wins over general; tied → SUGGESTED
|
|
195
141
|
|
|
196
|
-
|
|
197
|
-
|
|
142
|
+
Write 3 files:
|
|
143
|
+
1. **collab-report.md**: Summary, Consensus Findings, Resolved Conflicts, Unresolved Items, Unique Insights, Recommendations, Per-Tool Confidence table
|
|
144
|
+
2. **context.md**: Locked (CONSENSUS items), Free (UNIQUE with strong evidence), Deferred (UNRESOLVED conflicts). Standard Locked/Free/Deferred format for plan compatibility.
|
|
145
|
+
3. **conclusions.json**: session_id, subject, mode, tools[], consensus_level, recommendation (Go/No-Go/Conditional), confidence, dimensions[{name, score, findings}], decisions[{title, classification, source_tools, rationale}]
|
|
198
146
|
|
|
199
|
-
|
|
200
|
-
{prioritized, merged recommendations}
|
|
147
|
+
</actions>
|
|
201
148
|
|
|
202
|
-
|
|
203
|
-
| Tool | Confidence | Key Strength |
|
|
204
|
-
|------|-----------|--------------|
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
#### context.md (standard downstream format)
|
|
208
|
-
|
|
209
|
-
```markdown
|
|
210
|
-
# Context: {requirement}
|
|
211
|
-
|
|
212
|
-
**Date**: {date}
|
|
213
|
-
**Mode**: collab ({tool_list})
|
|
214
|
-
**Consensus Level**: {N}%
|
|
215
|
-
|
|
216
|
-
## Decisions
|
|
217
|
-
|
|
218
|
-
### Decision N: {TITLE}
|
|
219
|
-
- **Context**: {what and why}
|
|
220
|
-
- **Options**: 1. {opt1} 2. {opt2}
|
|
221
|
-
- **Chosen**: {selected}
|
|
222
|
-
- **Reason**: {rationale — which tools agreed/disagreed}
|
|
223
|
-
|
|
224
|
-
## Constraints
|
|
225
|
-
|
|
226
|
-
### Locked
|
|
227
|
-
{[CONSENSUS] items — treat as confirmed decisions}
|
|
228
|
-
|
|
229
|
-
### Free
|
|
230
|
-
{[UNIQUE] items with strong evidence — implementer discretion}
|
|
231
|
-
|
|
232
|
-
### Deferred
|
|
233
|
-
{[UNRESOLVED] conflicts — require human judgment}
|
|
234
|
-
|
|
235
|
-
## Code Context
|
|
236
|
-
{file:line references from per-tool findings}
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
#### conclusions.json
|
|
240
|
-
|
|
241
|
-
```json
|
|
242
|
-
{
|
|
243
|
-
"session_id": "{sessionId}",
|
|
244
|
-
"subject": "{requirement}",
|
|
245
|
-
"mode": "collab",
|
|
246
|
-
"tools": ["gemini", "claude", "codex"],
|
|
247
|
-
"consensus_level": 85,
|
|
248
|
-
"recommendation": "Go|No-Go|Conditional",
|
|
249
|
-
"confidence": "high|medium|low",
|
|
250
|
-
"dimensions": [
|
|
251
|
-
{ "name": "gemini", "score": 80, "findings": "...", "recommendations": "..." }
|
|
252
|
-
],
|
|
253
|
-
"decisions": [
|
|
254
|
-
{ "title": "...", "classification": "locked|free|deferred", "source_tools": [], "rationale": "..." }
|
|
255
|
-
],
|
|
256
|
-
"timestamp": "<ISO>"
|
|
257
|
-
}
|
|
258
|
-
```
|
|
259
|
-
|
|
260
|
-
### Step 10: Register Artifact
|
|
261
|
-
|
|
262
|
-
Append to `.workflow/state.json`:
|
|
263
|
-
|
|
264
|
-
```json
|
|
265
|
-
{
|
|
266
|
-
"id": "CLB-{next_id}",
|
|
267
|
-
"type": "collab",
|
|
268
|
-
"milestone": "{current_milestone}",
|
|
269
|
-
"phase": null,
|
|
270
|
-
"scope": "adhoc",
|
|
271
|
-
"path": "scratch/{YYYYMMDD}-collab-{slug}",
|
|
272
|
-
"status": "completed",
|
|
273
|
-
"depends_on": null,
|
|
274
|
-
"harvested": false,
|
|
275
|
-
"created_at": "<ISO>",
|
|
276
|
-
"completed_at": "<ISO>"
|
|
277
|
-
}
|
|
278
|
-
```
|
|
279
|
-
|
|
280
|
-
### Step 11: Display Summary
|
|
281
|
-
|
|
282
|
-
```
|
|
283
|
-
============================================================
|
|
284
|
-
MULTI-CLI COLLABORATION COMPLETE
|
|
285
|
-
============================================================
|
|
286
|
-
Requirement: {requirement}
|
|
287
|
-
Tools: {tool_list}
|
|
288
|
-
Consensus Level: {N}%
|
|
289
|
-
|
|
290
|
-
Per-Tool:
|
|
291
|
-
gemini: completed (confidence: {N}%)
|
|
292
|
-
claude: completed (confidence: {N}%)
|
|
293
|
-
codex: completed (confidence: {N}%)
|
|
294
|
-
|
|
295
|
-
Artifact: CLB-{id}
|
|
296
|
-
Output: {outputDir}/
|
|
297
|
-
|
|
298
|
-
Next steps:
|
|
299
|
-
/maestro-analyze "{topic}" — Deep feasibility analysis
|
|
300
|
-
/maestro-plan "{phase} --dir {dir}" — Plan from collab conclusions
|
|
301
|
-
/maestro-brainstorm "{topic}" — Expand with multi-role brainstorm
|
|
302
|
-
============================================================
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
</execution>
|
|
149
|
+
</state_machine>
|
|
306
150
|
|
|
307
151
|
<error_codes>
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
|
312
|
-
|
|
|
313
|
-
|
|
|
314
|
-
| E004 | error | All delegates failed | Abort with per-tool error details |
|
|
315
|
-
| W001 | warning | One tool failed | Continue with remaining tools |
|
|
316
|
-
| W002 | warning | >50% conflicts in cross-verify | Highlight in report, recommend manual review |
|
|
317
|
-
| W003 | warning | Low consensus level (<40%) | Flag in summary |
|
|
318
|
-
|
|
152
|
+
| Code | Condition | Recovery |
|
|
153
|
+
|------|-----------|----------|
|
|
154
|
+
| E002 | Fewer than 2 eligible tools | Check cli-tools.json, enable more tools |
|
|
155
|
+
| E004 | All delegates failed | Abort with per-tool error details |
|
|
156
|
+
| W001 | One tool failed | Continue with remaining (partial degradation) |
|
|
157
|
+
| W003 | consensus_level < 40% | Flag in summary, recommend manual review |
|
|
319
158
|
</error_codes>
|
|
320
159
|
|
|
321
160
|
<success_criteria>
|
|
322
|
-
- [ ]
|
|
323
|
-
- [ ]
|
|
324
|
-
- [ ]
|
|
325
|
-
- [ ] Execution stopped after launch — waited for all callbacks
|
|
326
|
-
- [ ] Per-tool outputs written to per-tool/{tool}-output.md
|
|
327
|
-
- [ ] Cross-verification: consensus/conflict/unique classification complete
|
|
328
|
-
- [ ] collab-report.md produced with merged findings
|
|
329
|
-
- [ ] context.md produced in Locked/Free/Deferred format (downstream compatible)
|
|
330
|
-
- [ ] conclusions.json produced (plan fast-track compatible)
|
|
161
|
+
- [ ] All delegates launched in parallel via Bash(run_in_background: true), STOP after launch
|
|
162
|
+
- [ ] Cross-verification: consensus/conflict/unique classification with consensus_level
|
|
163
|
+
- [ ] 3 output files produced (collab-report.md, context.md, conclusions.json)
|
|
331
164
|
- [ ] CLB artifact registered in state.json
|
|
332
165
|
- [ ] Partial degradation: continued if 1+ tools succeeded
|
|
333
166
|
</success_criteria>
|
|
167
|
+
|
|
168
|
+
<next_step_routing>
|
|
169
|
+
- Deep feasibility → `/maestro-analyze "{topic}"`
|
|
170
|
+
- Plan from conclusions → `/maestro-plan --dir {dir}`
|
|
171
|
+
- Expand → `/maestro-brainstorm "{topic}"`
|
|
172
|
+
</next_step_routing>
|