maestro-flow 0.3.45 → 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 +11 -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-tools-register.md +28 -7
- 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 -161
- package/.claude/commands/quality-auto-test.md +9 -0
- package/.claude/commands/quality-debug.md +11 -24
- package/.claude/commands/quality-refactor.md +9 -0
- package/.claude/commands/quality-review.md +5 -13
- package/.claude/commands/quality-test.md +5 -0
- package/.claude/commands/spec-add.md +1 -1
- package/.claude/commands/spec-load.md +3 -2
- package/.claude/skills/maestro-help/SKILL.md +264 -0
- package/.claude/skills/maestro-help/index/catalog.json +182 -0
- package/.claude/skills/maestro-help/phases/01-parse-intent.md +122 -0
- package/.claude/skills/maestro-help/phases/02-search-present.md +181 -0
- package/.claude/skills/maestro-help/phases/03-workflow-guide.md +186 -0
- package/.claude/skills/maestro-impeccable/SKILL.md +169 -0
- package/.codex/agents/team-supervisor.toml +40 -0
- package/.codex/agents/team-worker.toml +63 -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 +4 -2
- package/.codex/skills/maestro-help/SKILL.md +213 -0
- package/.codex/skills/maestro-help/catalog.json +182 -0
- 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-tools-register/SKILL.md +29 -7
- 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/manage-knowhow-capture/SKILL.md +18 -3
- package/.codex/skills/quality-auto-test/SKILL.md +145 -443
- package/.codex/skills/quality-debug/SKILL.md +2 -1
- package/.codex/skills/quality-refactor/SKILL.md +1 -1
- package/.codex/skills/quality-review/SKILL.md +1 -1
- package/.codex/skills/quality-test/SKILL.md +229 -507
- 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/index.js +5 -3
- package/dashboard/dist-server/dashboard/src/server/index.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/board-state.integration.test.js +3 -3
- package/dashboard/dist-server/dashboard/src/server/routes/board-state.integration.test.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/index.js +14 -5
- package/dashboard/dist-server/dashboard/src/server/routes/index.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/maestro-coordinate.d.ts +2 -0
- package/dashboard/dist-server/dashboard/src/server/routes/maestro-coordinate.js +181 -0
- package/dashboard/dist-server/dashboard/src/server/routes/maestro-coordinate.js.map +1 -0
- 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/state/event-bus.d.ts +2 -0
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.js +2 -0
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/state/fs-watcher.d.ts +2 -0
- package/dashboard/dist-server/dashboard/src/server/state/fs-watcher.js +58 -0
- package/dashboard/dist-server/dashboard/src/server/state/fs-watcher.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/server/ws/handlers/agent-handler.d.ts +7 -2
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/agent-handler.js +7 -1
- package/dashboard/dist-server/dashboard/src/server/ws/handlers/agent-handler.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/constants.d.ts +2 -0
- package/dashboard/dist-server/dashboard/src/shared/constants.js +9 -9
- package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/maestro-session-types.d.ts +113 -0
- package/dashboard/dist-server/dashboard/src/shared/maestro-session-types.js +6 -0
- package/dashboard/dist-server/dashboard/src/shared/maestro-session-types.js.map +1 -0
- package/dashboard/dist-server/dashboard/src/shared/types.d.ts +4 -3
- package/dashboard/dist-server/dashboard/src/shared/ws-protocol.d.ts +1 -1
- package/dashboard/dist-server/dashboard/src/shared/ws-protocol.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/knowhow.d.ts.map +1 -1
- package/dist/src/commands/knowhow.js +7 -4
- package/dist/src/commands/knowhow.js.map +1 -1
- 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 +9 -4
- 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/dist/src/tools/store-knowhow.d.ts.map +1 -1
- package/dist/src/tools/store-knowhow.js +15 -6
- package/dist/src/tools/store-knowhow.js.map +1 -1
- package/package.json +5 -3
- 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
- package/workflows/tools-spec.md +20 -13
- package/.claude/commands/maestro-link-coordinate.md +0 -71
- package/.codex/skills/maestro-link-coordinate/SKILL.md +0 -257
|
@@ -1,313 +1,278 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: maestro
|
|
3
|
-
description: Auto-route intent to optimal command chain
|
|
4
|
-
argument-hint: "\"intent text\" [-y] [-c|--continue] [--dry-run] [--super]"
|
|
5
|
-
allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
<purpose>
|
|
9
|
-
Wave-based pipeline coordinator.
|
|
10
|
-
via `spawn_agents_on_csv` —
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
-
|
|
32
|
-
- `--
|
|
33
|
-
- `--
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
**
|
|
37
|
-
</context>
|
|
38
|
-
|
|
39
|
-
<invariants>
|
|
40
|
-
1. **ALL skills via spawn_agents_on_csv
|
|
41
|
-
2. **Coordinator = prompt assembler
|
|
42
|
-
3. **Barrier
|
|
43
|
-
4. **
|
|
44
|
-
5. **
|
|
45
|
-
6. **
|
|
46
|
-
7. **
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
###
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
Session
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
| `topic` | Brief description for the agent |
|
|
280
|
-
|
|
281
|
-
### tasks.csv (Master State)
|
|
282
|
-
|
|
283
|
-
```csv
|
|
284
|
-
id,skill,args,wave_n,status,findings,artifacts,error
|
|
285
|
-
```
|
|
286
|
-
|
|
287
|
-
Accumulated across all waves. Updated after each wave completes.
|
|
288
|
-
</csv_schema>
|
|
289
|
-
|
|
290
|
-
<error_codes>
|
|
291
|
-
| Code | Severity | Condition | Recovery |
|
|
292
|
-
|------|----------|-----------|----------|
|
|
293
|
-
| E001 | error | Intent unclassifiable after clarification | Default to `feature` chain |
|
|
294
|
-
| E002 | error | Intent unresolvable after retry | List available chains, abort |
|
|
295
|
-
| E003 | error | Wave timeout (max_runtime_seconds) | Mark step `failed`, abort chain |
|
|
296
|
-
| E004 | error | Barrier artifact not found | Retry wave once, then abort |
|
|
297
|
-
| E005 | error | `--continue`: no session found | List sessions, prompt |
|
|
298
|
-
| W001 | warning | Barrier artifact partial | Continue with available context |
|
|
299
|
-
</error_codes>
|
|
300
|
-
|
|
301
|
-
<success_criteria>
|
|
302
|
-
- [ ] Intent classified and chain resolved (keyword heuristics or `--chain`)
|
|
303
|
-
- [ ] Session dir initialized with `status.json` before first wave
|
|
304
|
-
- [ ] Every skill invocation goes through `spawn_agents_on_csv` — none executed in coordinator
|
|
305
|
-
- [ ] Barrier skills execute solo in their wave; coordinator only reads artifacts afterward
|
|
306
|
-
- [ ] Non-barrier skills grouped into parallel waves where possible
|
|
307
|
-
- [ ] Each wave: CSV built → spawned → results read → state updated
|
|
308
|
-
- [ ] Barrier artifacts read and context updated before assembling next wave's skill_call args
|
|
309
|
-
- [ ] Failed step → remaining marked skipped → abort reported
|
|
310
|
-
- [ ] Completion report with per-wave status written to `context.md`
|
|
311
|
-
- [ ] `--dry-run` shows chain with [BARRIER] markers, no execution
|
|
312
|
-
- [ ] `--continue` resumes from last incomplete wave
|
|
313
|
-
</success_criteria>
|
|
1
|
+
---
|
|
2
|
+
name: maestro
|
|
3
|
+
description: Auto-route intent to optimal command chain
|
|
4
|
+
argument-hint: "\"intent text\" [-y] [-c|--continue] [--dry-run] [--super]"
|
|
5
|
+
allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<purpose>
|
|
9
|
+
Wave-based pipeline coordinator. Classify intent → resolve chain → wave-by-wave spawn → report.
|
|
10
|
+
All skill execution via `spawn_agents_on_csv` — coordinator never executes skills directly.
|
|
11
|
+
|
|
12
|
+
Entry points:
|
|
13
|
+
- **`$maestro "intent"`** — Classify → chain → execute
|
|
14
|
+
- **`$maestro --continue`** — Resume from last incomplete wave
|
|
15
|
+
- **`$maestro --dry-run "intent"`** — Show chain, no execution
|
|
16
|
+
- **`$maestro --super "intent"`** — Production-ready mode (read maestro-super.md)
|
|
17
|
+
</purpose>
|
|
18
|
+
|
|
19
|
+
<required_reading>
|
|
20
|
+
@~/.maestro/workflows/maestro.codex.md — authoritative `detectTaskType`, `detectNextAction`, `chainMap` (35+ intent patterns, 40+ chain types). Read before executing any step.
|
|
21
|
+
</required_reading>
|
|
22
|
+
|
|
23
|
+
<deferred_reading>
|
|
24
|
+
- [maestro-super.md](~/.maestro/workflows/maestro-super.md) — read when `--super` flag is active
|
|
25
|
+
</deferred_reading>
|
|
26
|
+
|
|
27
|
+
<context>
|
|
28
|
+
$ARGUMENTS — user intent text, or special flags.
|
|
29
|
+
|
|
30
|
+
**Flags:**
|
|
31
|
+
- `-y, --yes` — Auto mode: skip all prompts; propagate `-y` to each skill
|
|
32
|
+
- `--continue` — Resume latest paused session from last incomplete wave
|
|
33
|
+
- `--dry-run` — Display planned chain without executing
|
|
34
|
+
- `--super` — Read and follow `maestro-super.md` completely
|
|
35
|
+
|
|
36
|
+
**Session state**: `.workflow/.maestro/{session-id}/`
|
|
37
|
+
</context>
|
|
38
|
+
|
|
39
|
+
<invariants>
|
|
40
|
+
1. **ALL skills via spawn_agents_on_csv** — coordinator NEVER directly executes any skill logic
|
|
41
|
+
2. **Coordinator = prompt assembler** — classify → build CSV → spawn → read results → assemble next
|
|
42
|
+
3. **Barrier = solo wave** — barrier skills always execute alone (wave size = 1)
|
|
43
|
+
4. **Non-barriers can parallel** — consecutive non-barrier skills grouped into one wave
|
|
44
|
+
5. **Wave-by-wave** — never start wave N+1 before wave N results are read
|
|
45
|
+
6. **Coordinator owns context** — sub-agents never read prior results; coordinator assembles full `skill_call`
|
|
46
|
+
7. **Abort on failure** — failed step → mark remaining skipped → report
|
|
47
|
+
</invariants>
|
|
48
|
+
|
|
49
|
+
<state_machine>
|
|
50
|
+
|
|
51
|
+
<states>
|
|
52
|
+
S_PARSE — 解析参数、检测 flags PERSIST: —
|
|
53
|
+
S_CONTINUE — 加载已有 session,定位 resume 点 PERSIST: session (loaded)
|
|
54
|
+
S_CLASSIFY — 意图分类、解析 chain PERSIST: —
|
|
55
|
+
S_CREATE — 创建 session + status.json PERSIST: session.status, session.steps[]
|
|
56
|
+
S_DRY_RUN — 显示 chain 后结束 PERSIST: —
|
|
57
|
+
S_CONFIRM — 用户确认(auto_mode 跳过) PERSIST: —
|
|
58
|
+
S_WAVE_LOOP — 构建 wave → spawn → 读结果 → 循环 PERSIST: session.waves[], session.current_step, session.context
|
|
59
|
+
S_COMPLETE — 标记完成、释放目标 PERSIST: session.status = "completed"
|
|
60
|
+
S_ABORTED — 失败中止、标记剩余 skipped PERSIST: session.status = "aborted"
|
|
61
|
+
S_FALLBACK — 意图无法分类,请求输入 PERSIST: —
|
|
62
|
+
</states>
|
|
63
|
+
|
|
64
|
+
<transitions>
|
|
65
|
+
|
|
66
|
+
S_PARSE:
|
|
67
|
+
→ S_CONTINUE WHEN: --continue flag
|
|
68
|
+
→ S_CLASSIFY WHEN: intent text present
|
|
69
|
+
→ S_FALLBACK WHEN: no intent AND no flags
|
|
70
|
+
|
|
71
|
+
S_CONTINUE:
|
|
72
|
+
→ S_WAVE_LOOP WHEN: session found, has pending steps DO: A_RESUME_SESSION
|
|
73
|
+
→ S_FALLBACK WHEN: no session found
|
|
74
|
+
|
|
75
|
+
S_CLASSIFY:
|
|
76
|
+
→ S_CREATE WHEN: chain resolved (keyword match or maestro.codex.md lookup)
|
|
77
|
+
→ S_FALLBACK WHEN: no match AND auto_mode
|
|
78
|
+
→ S_CLASSIFY WHEN: no match AND not auto_mode DO: A_CLARIFY_INTENT
|
|
79
|
+
GUARD: max 1 clarification attempt → S_FALLBACK
|
|
80
|
+
|
|
81
|
+
S_CREATE:
|
|
82
|
+
→ S_DRY_RUN WHEN: --dry-run flag DO: A_CREATE_SESSION
|
|
83
|
+
→ S_CONFIRM WHEN: not auto_mode DO: A_CREATE_SESSION
|
|
84
|
+
→ S_WAVE_LOOP WHEN: auto_mode DO: A_CREATE_SESSION
|
|
85
|
+
|
|
86
|
+
S_DRY_RUN:
|
|
87
|
+
→ END DO: display chain with [BARRIER] markers
|
|
88
|
+
|
|
89
|
+
S_CONFIRM:
|
|
90
|
+
→ S_WAVE_LOOP WHEN: user confirms
|
|
91
|
+
→ S_ABORTED WHEN: user cancels
|
|
92
|
+
|
|
93
|
+
S_WAVE_LOOP:
|
|
94
|
+
→ S_WAVE_LOOP WHEN: pending steps remain DO: A_BUILD_AND_SPAWN_WAVE
|
|
95
|
+
→ S_COMPLETE WHEN: no pending steps
|
|
96
|
+
→ S_ABORTED WHEN: step failed
|
|
97
|
+
GUARD: wave order is sacred — never skip ahead
|
|
98
|
+
|
|
99
|
+
S_COMPLETE:
|
|
100
|
+
→ END DO: A_FINALIZE
|
|
101
|
+
|
|
102
|
+
S_ABORTED:
|
|
103
|
+
→ END DO: A_ABORT_REPORT
|
|
104
|
+
|
|
105
|
+
S_FALLBACK:
|
|
106
|
+
→ S_CLASSIFY WHEN: user provides new intent DO: AskUserQuestion
|
|
107
|
+
→ END WHEN: user cancels
|
|
108
|
+
|
|
109
|
+
</transitions>
|
|
110
|
+
|
|
111
|
+
<actions>
|
|
112
|
+
|
|
113
|
+
### A_CREATE_SESSION
|
|
114
|
+
|
|
115
|
+
1. Read `.workflow/state.json` for project context (current phase, milestone, workflow_name)
|
|
116
|
+
2. Resolve chain's skill list from chain_map or maestro.codex.md
|
|
117
|
+
3. Create `.workflow/.maestro/maestro-{YYYYMMDD-HHMMSS}/status.json`:
|
|
118
|
+
```json
|
|
119
|
+
{ "session_id", "source": "maestro", "intent", "task_type", "chain_name",
|
|
120
|
+
"phase", "milestone", "auto_mode", "context": { "issue_id", "scratch_dir",
|
|
121
|
+
"plan_dir", "analysis_dir", "brainstorm_dir" },
|
|
122
|
+
"steps": [{ "index", "skill", "args", "status": "pending", "wave_n": null }],
|
|
123
|
+
"waves": [], "current_step": 0, "status": "running" }
|
|
124
|
+
```
|
|
125
|
+
4. Initialize tracking:
|
|
126
|
+
- `create_goal({ objective: "Maestro {chain}: {N} steps [{skill list}]" })`
|
|
127
|
+
- `update_plan({ plan: steps.map(step => { step, status: "pending" }) })`
|
|
128
|
+
|
|
129
|
+
### A_RESUME_SESSION
|
|
130
|
+
|
|
131
|
+
1. Glob `.workflow/.maestro/maestro-*/status.json` sorted desc, load most recent
|
|
132
|
+
2. Find first pending step → set as resume point
|
|
133
|
+
3. Rebuild `update_plan` from status.json (completed→"completed", current→"in_progress", rest→"open")
|
|
134
|
+
|
|
135
|
+
### A_CLARIFY_INTENT
|
|
136
|
+
|
|
137
|
+
1. `AskUserQuestion` with available chain types
|
|
138
|
+
2. Re-classify with user response
|
|
139
|
+
|
|
140
|
+
### A_BUILD_AND_SPAWN_WAVE
|
|
141
|
+
|
|
142
|
+
1. **buildNextWave**: first pending step; barrier → solo wave; non-barrier → collect consecutive non-barriers
|
|
143
|
+
2. **buildSkillCall** per step:
|
|
144
|
+
- Replace placeholders: `{phase}`, `{plan_dir}`, `{analysis_dir}`, `{brainstorm_dir}`, `{spec_session_id}`
|
|
145
|
+
- Append auto-yes flag if `auto_mode` (see Appendix: Auto-Yes Flag Map)
|
|
146
|
+
3. Write `{sessionDir}/wave-{N}.csv` (columns: id, skill_call, topic)
|
|
147
|
+
4. `spawn_agents_on_csv({ csv_path, id_column: "id", instruction: WAVE_INSTRUCTION, max_workers, max_runtime_seconds: 3600, output_csv_path, output_schema: RESULT_SCHEMA })`
|
|
148
|
+
5. Read results → update step statuses in status.json
|
|
149
|
+
6. **Barrier analysis** (if barrier skill): read artifacts, update `session.context`
|
|
150
|
+
| Barrier Skill | Read | Context Updates |
|
|
151
|
+
|---------------|------|-----------------|
|
|
152
|
+
| maestro-analyze | context.md, state.json | analysis_dir, gaps, phase |
|
|
153
|
+
| maestro-plan | plan.json, .task/TASK-*.json | plan_dir, task_count, wave_count |
|
|
154
|
+
| maestro-brainstorm | .brainstorming/ | brainstorm_dir, features |
|
|
155
|
+
| maestro-roadmap | specs/ | spec_session_id |
|
|
156
|
+
| maestro-execute | results.csv | exec_completed, exec_failed |
|
|
157
|
+
7. Persist: write status.json + sync update_plan
|
|
158
|
+
|
|
159
|
+
### A_FINALIZE
|
|
160
|
+
|
|
161
|
+
1. Set `session.status = "completed"`, write status.json
|
|
162
|
+
2. Sync update_plan: all steps → "completed"
|
|
163
|
+
3. `update_goal({ status: "complete" })` — release goal constraint
|
|
164
|
+
4. Generate completion report (see Appendix: Report Format)
|
|
165
|
+
|
|
166
|
+
### A_ABORT_REPORT
|
|
167
|
+
|
|
168
|
+
1. Mark remaining steps as `skipped` in status.json
|
|
169
|
+
2. Set `session.status = "aborted"`, write status.json
|
|
170
|
+
3. Sync update_plan (skipped steps marked)
|
|
171
|
+
4. Do NOT call update_goal — goal stays for `--continue` resume
|
|
172
|
+
5. Display abort report with failure details
|
|
173
|
+
|
|
174
|
+
</actions>
|
|
175
|
+
|
|
176
|
+
</state_machine>
|
|
177
|
+
|
|
178
|
+
<appendix>
|
|
179
|
+
|
|
180
|
+
### Chain Map (Quick Reference)
|
|
181
|
+
|
|
182
|
+
| Intent keywords | Chain | Steps |
|
|
183
|
+
|----------------|-------|-------|
|
|
184
|
+
| fix, bug, error, broken | `quality-fix` | analyze --gaps → plan --gaps → execute → verify |
|
|
185
|
+
| test, spec, coverage | `quality-test` | quality-test |
|
|
186
|
+
| refactor, cleanup, debt | `quality-refactor` | quality-refactor |
|
|
187
|
+
| feature, implement, add | `feature` | plan → execute → verify |
|
|
188
|
+
| review, check, audit | `quality-review` | quality-review |
|
|
189
|
+
| deploy, release, ship | `deploy` | verify → milestone-release |
|
|
190
|
+
| brainstorm, explore, ideate | `brainstorm-driven` | brainstorm → plan → execute → verify |
|
|
191
|
+
| plan, design, architect | `plan` | plan |
|
|
192
|
+
| debug, diagnose | `debug` | quality-debug |
|
|
193
|
+
| continue, next | `state_continue` | (from project state) |
|
|
194
|
+
| status, dashboard | `status` | manage-status |
|
|
195
|
+
|
|
196
|
+
Full chain map (40+ chains): `@~/.maestro/workflows/maestro.codex.md` §3c
|
|
197
|
+
|
|
198
|
+
### Auto-Yes Flag Map
|
|
199
|
+
|
|
200
|
+
| Skill | Flag |
|
|
201
|
+
|-------|------|
|
|
202
|
+
| maestro-init, maestro-analyze, maestro-brainstorm, maestro-ui-design, maestro-roadmap | `-y` |
|
|
203
|
+
| maestro-plan, maestro-execute, maestro-milestone-complete | `-y` |
|
|
204
|
+
| quality-auto-test, quality-retrospective | `-y` |
|
|
205
|
+
| quality-test | `-y --auto-fix` |
|
|
206
|
+
|
|
207
|
+
### Barrier Skills
|
|
208
|
+
|
|
209
|
+
`maestro-analyze`, `maestro-plan`, `maestro-brainstorm`, `maestro-roadmap`, `maestro-execute`
|
|
210
|
+
|
|
211
|
+
Non-barrier (groupable): `maestro-verify`, `quality-review`, `quality-test`, `quality-debug`, `quality-refactor`, `quality-sync`, `manage-*`
|
|
212
|
+
|
|
213
|
+
### Worker Contract
|
|
214
|
+
|
|
215
|
+
**Instruction template:**
|
|
216
|
+
```
|
|
217
|
+
你是 CSV job 子 agent。
|
|
218
|
+
先原样执行这一段技能调用:{skill_call}
|
|
219
|
+
然后基于结果完成这一行任务说明:{topic}
|
|
220
|
+
限制:不要修改 .workflow/.maestro/ 下的 status 文件
|
|
221
|
+
最后必须调用 `report_agent_job_result`,返回 JSON:
|
|
222
|
+
{"status":"completed|failed","skill_call":"{skill_call}","summary":"一句话结果","artifacts":"产物路径","error":"失败原因"}
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
**Result schema:** `{ status, skill_call, summary, artifacts, error }` — all string, all required
|
|
226
|
+
|
|
227
|
+
### CSV Schema
|
|
228
|
+
|
|
229
|
+
**wave-{N}.csv:**
|
|
230
|
+
```csv
|
|
231
|
+
id,skill_call,topic
|
|
232
|
+
"1","$maestro-analyze --gaps \"fix auth\" -y","Chain \"quality-fix\" step 1/4"
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
**Session status.json:** see A_CREATE_SESSION for full schema
|
|
236
|
+
|
|
237
|
+
### Error Codes
|
|
238
|
+
|
|
239
|
+
| Code | Severity | Condition | Recovery |
|
|
240
|
+
|------|----------|-----------|----------|
|
|
241
|
+
| E001 | error | Intent unclassifiable after clarification | Default to `feature` chain |
|
|
242
|
+
| E002 | error | Intent unresolvable after retry | List chains, abort |
|
|
243
|
+
| E003 | error | Wave timeout | Mark step failed, abort chain |
|
|
244
|
+
| E004 | error | Barrier artifact not found | Retry wave once, then abort |
|
|
245
|
+
| E005 | error | --continue: no session found | List sessions, prompt |
|
|
246
|
+
| W001 | warning | Barrier artifact partial | Continue with available context |
|
|
247
|
+
|
|
248
|
+
### Success Criteria
|
|
249
|
+
|
|
250
|
+
- [ ] Intent classified and chain resolved
|
|
251
|
+
- [ ] Session dir initialized with status.json before first wave
|
|
252
|
+
- [ ] Every skill goes through spawn_agents_on_csv
|
|
253
|
+
- [ ] Barrier skills solo wave; non-barriers grouped parallel
|
|
254
|
+
- [ ] Each wave: CSV → spawn → results → state updated
|
|
255
|
+
- [ ] Barrier artifacts read before assembling next wave args
|
|
256
|
+
- [ ] Failed step → remaining skipped → abort reported
|
|
257
|
+
- [ ] --dry-run shows chain with [BARRIER], no execution
|
|
258
|
+
- [ ] --continue resumes from last incomplete wave
|
|
259
|
+
|
|
260
|
+
### Report Format
|
|
261
|
+
|
|
262
|
+
```
|
|
263
|
+
=== COORDINATE COMPLETE ===
|
|
264
|
+
Session: {sessionId}
|
|
265
|
+
Chain: {chain}
|
|
266
|
+
Waves: {N} executed
|
|
267
|
+
Steps: {completed}/{total}
|
|
268
|
+
|
|
269
|
+
WAVE RESULTS:
|
|
270
|
+
[W1] $maestro-analyze --gaps → ✓ found 3 gaps
|
|
271
|
+
[W2] $maestro-plan --gaps → ✓ 12 tasks in 3 waves
|
|
272
|
+
...
|
|
273
|
+
|
|
274
|
+
State: .workflow/.maestro/{sessionId}/status.json
|
|
275
|
+
Resume: $maestro --continue
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
</appendix>
|