maestro-flow 0.3.9 → 0.3.11
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/workflow-collab-planner.md +1 -1
- package/.claude/agents/workflow-executor.md +1 -1
- package/.claude/agents/workflow-plan-checker.md +1 -1
- package/.claude/agents/workflow-planner.md +1 -1
- package/.claude/commands/learn-decompose.md +176 -176
- package/.claude/commands/learn-follow.md +167 -167
- package/.claude/commands/learn-retro.md +1 -1
- package/.claude/commands/maestro-analyze.md +46 -3
- package/.claude/commands/maestro-coordinate.md +1 -3
- package/.claude/commands/maestro-execute.md +14 -0
- package/.claude/commands/maestro-plan.md +16 -0
- package/.claude/commands/manage-harvest.md +131 -131
- package/.claude/commands/manage-issue-discover.md +2 -2
- package/.claude/commands/manage-issue.md +5 -5
- package/.claude/commands/spec-add.md +67 -56
- package/.claude/commands/spec-load.md +66 -64
- package/.claude/commands/spec-setup.md +5 -9
- package/.codex/skills/learn-decompose/SKILL.md +119 -0
- package/.codex/skills/learn-follow/SKILL.md +83 -0
- package/.codex/skills/learn-investigate/SKILL.md +83 -0
- package/.codex/skills/learn-retro/SKILL.md +83 -0
- package/.codex/skills/learn-second-opinion/SKILL.md +86 -0
- package/.codex/skills/maestro/SKILL.md +335 -0
- package/.codex/skills/maestro-analyze/SKILL.md +84 -75
- package/.codex/skills/maestro-brainstorm/SKILL.md +452 -463
- package/.codex/skills/maestro-chain/SKILL.md +233 -0
- package/.codex/skills/maestro-coordinate/SKILL.md +167 -278
- package/.codex/skills/maestro-execute/SKILL.md +435 -438
- package/.codex/skills/maestro-fork/SKILL.md +68 -0
- package/.codex/skills/maestro-init/SKILL.md +171 -167
- package/.codex/skills/maestro-learn/SKILL.md +80 -0
- package/.codex/skills/maestro-link-coordinate/SKILL.md +224 -220
- package/.codex/skills/maestro-merge/SKILL.md +62 -0
- package/.codex/skills/maestro-milestone-audit/SKILL.md +108 -103
- package/.codex/skills/maestro-milestone-complete/SKILL.md +155 -149
- package/.codex/skills/maestro-milestone-release/SKILL.md +70 -0
- package/.codex/skills/maestro-overlay/SKILL.md +188 -185
- package/.codex/skills/maestro-plan/SKILL.md +66 -69
- package/.codex/skills/maestro-quick/SKILL.md +26 -23
- package/.codex/skills/maestro-roadmap/SKILL.md +65 -73
- package/.codex/skills/maestro-spec-generate/SKILL.md +66 -74
- package/.codex/skills/maestro-ui-design/SKILL.md +34 -31
- package/.codex/skills/maestro-verify/SKILL.md +556 -566
- package/.codex/skills/manage-codebase-rebuild/SKILL.md +397 -405
- package/.codex/skills/manage-codebase-refresh/SKILL.md +93 -82
- package/.codex/skills/manage-harvest/SKILL.md +82 -0
- package/.codex/skills/manage-issue/SKILL.md +80 -65
- package/.codex/skills/manage-issue-discover/SKILL.md +491 -503
- package/.codex/skills/manage-learn/SKILL.md +190 -186
- package/.codex/skills/manage-memory/SKILL.md +95 -72
- package/.codex/skills/manage-memory-capture/SKILL.md +99 -86
- package/.codex/skills/manage-status/SKILL.md +102 -89
- package/.codex/skills/quality-business-test/SKILL.md +228 -223
- package/.codex/skills/quality-debug/SKILL.md +54 -66
- package/.codex/skills/quality-integration-test/SKILL.md +532 -544
- package/.codex/skills/quality-refactor/SKILL.md +197 -191
- package/.codex/skills/quality-retrospective/SKILL.md +512 -505
- package/.codex/skills/quality-review/SKILL.md +93 -105
- package/.codex/skills/quality-sync/SKILL.md +101 -89
- package/.codex/skills/quality-test/SKILL.md +202 -198
- package/.codex/skills/quality-test-gen/SKILL.md +93 -104
- package/.codex/skills/spec-add/SKILL.md +58 -39
- package/.codex/skills/spec-load/SKILL.md +45 -40
- package/.codex/skills/spec-map/SKILL.md +180 -182
- package/.codex/skills/spec-setup/SKILL.md +94 -76
- package/.codex/skills/team-coordinate/SKILL.md +346 -357
- package/.codex/skills/team-executor/SKILL.md +70 -112
- package/.codex/skills/team-lifecycle-v4/SKILL.md +311 -299
- package/.codex/skills/team-quality-assurance/SKILL.md +234 -227
- package/.codex/skills/team-review/SKILL.md +232 -225
- package/.codex/skills/team-tech-debt/SKILL.md +78 -100
- package/.codex/skills/team-testing/SKILL.md +242 -235
- package/.codex/skills/wiki-connect/SKILL.md +75 -0
- package/.codex/skills/wiki-digest/SKILL.md +87 -0
- package/README.md +14 -11
- package/README.zh-CN.md +14 -11
- package/chains/issue-lifecycle.json +13 -13
- 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/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/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/specs.d.ts +1 -1
- package/dashboard/dist-server/dashboard/src/server/routes/specs.js +75 -30
- package/dashboard/dist-server/dashboard/src/server/routes/specs.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.d.ts +5 -0
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.js +5 -0
- package/dashboard/dist-server/dashboard/src/server/state/event-bus.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/constants.js +5 -0
- package/dashboard/dist-server/dashboard/src/shared/constants.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/dashboard/src/shared/team-types.d.ts +21 -0
- package/dashboard/dist-server/dashboard/src/shared/team-types.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/shared/types.d.ts +3 -2
- 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/dashboard/dist-server/src/hooks/constants.d.ts +92 -12
- package/dashboard/dist-server/src/hooks/constants.js +151 -16
- package/dashboard/dist-server/src/hooks/constants.js.map +1 -1
- package/dashboard/dist-server/src/types/index.d.ts +5 -0
- package/dist/src/commands/collab.d.ts +1 -34
- package/dist/src/commands/collab.d.ts.map +1 -1
- package/dist/src/commands/collab.js +8 -76
- package/dist/src/commands/collab.js.map +1 -1
- 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 +115 -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/spec.d.ts.map +1 -1
- package/dist/src/commands/spec.js +7 -2
- package/dist/src/commands/spec.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 +92 -12
- package/dist/src/hooks/constants.d.ts.map +1 -1
- package/dist/src/hooks/constants.js +151 -16
- package/dist/src/hooks/constants.js.map +1 -1
- package/dist/src/hooks/guards/index.d.ts +2 -0
- package/dist/src/hooks/guards/index.d.ts.map +1 -1
- package/dist/src/hooks/guards/index.js +2 -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/guards/spec-validator.d.ts +25 -0
- package/dist/src/hooks/guards/spec-validator.d.ts.map +1 -0
- package/dist/src/hooks/guards/spec-validator.js +66 -0
- package/dist/src/hooks/guards/spec-validator.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/hooks/keyword-spec-injector.d.ts +21 -0
- package/dist/src/hooks/keyword-spec-injector.d.ts.map +1 -0
- package/dist/src/hooks/keyword-spec-injector.js +96 -0
- package/dist/src/hooks/keyword-spec-injector.js.map +1 -0
- package/dist/src/hooks/plugins/spec-injection-plugin.d.ts +2 -1
- package/dist/src/hooks/plugins/spec-injection-plugin.d.ts.map +1 -1
- package/dist/src/hooks/plugins/spec-injection-plugin.js +21 -12
- package/dist/src/hooks/plugins/spec-injection-plugin.js.map +1 -1
- package/dist/src/hooks/preflight-core.d.ts +37 -0
- 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/spec-bridge.d.ts +40 -0
- package/dist/src/hooks/spec-bridge.d.ts.map +1 -0
- package/dist/src/hooks/spec-bridge.js +97 -0
- package/dist/src/hooks/spec-bridge.js.map +1 -0
- package/dist/src/hooks/spec-injector.d.ts.map +1 -1
- package/dist/src/hooks/spec-injector.js +18 -12
- package/dist/src/hooks/spec-injector.js.map +1 -1
- 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/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/team/phase-orchestrator.d.ts +52 -0
- package/dist/src/team/phase-orchestrator.d.ts.map +1 -0
- package/dist/src/team/phase-orchestrator.js +165 -0
- package/dist/src/team/phase-orchestrator.js.map +1 -0
- package/dist/src/team/phase-types.d.ts +51 -0
- package/dist/src/team/phase-types.d.ts.map +1 -0
- package/dist/src/team/phase-types.js +41 -0
- package/dist/src/team/phase-types.js.map +1 -0
- package/dist/src/tools/collab-adapter.d.ts +17 -0
- package/dist/src/tools/collab-adapter.d.ts.map +1 -1
- package/dist/src/tools/collab-adapter.js +138 -0
- package/dist/src/tools/collab-adapter.js.map +1 -1
- package/dist/src/tools/index.d.ts.map +1 -1
- package/dist/src/tools/index.js +6 -0
- package/dist/src/tools/index.js.map +1 -1
- 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/spec-entry-parser.d.ts +56 -0
- package/dist/src/tools/spec-entry-parser.d.ts.map +1 -0
- package/dist/src/tools/spec-entry-parser.js +196 -0
- package/dist/src/tools/spec-entry-parser.js.map +1 -0
- package/dist/src/tools/spec-init.d.ts.map +1 -1
- package/dist/src/tools/spec-init.js +66 -92
- package/dist/src/tools/spec-init.js.map +1 -1
- package/dist/src/tools/spec-keyword-index.d.ts +30 -0
- package/dist/src/tools/spec-keyword-index.d.ts.map +1 -0
- package/dist/src/tools/spec-keyword-index.js +101 -0
- package/dist/src/tools/spec-keyword-index.js.map +1 -0
- package/dist/src/tools/spec-loader.d.ts +3 -3
- package/dist/src/tools/spec-loader.d.ts.map +1 -1
- package/dist/src/tools/spec-loader.js +49 -23
- package/dist/src/tools/spec-loader.js.map +1 -1
- package/dist/src/tools/team-agents.d.ts +27 -0
- package/dist/src/tools/team-agents.d.ts.map +1 -0
- package/dist/src/tools/team-agents.js +362 -0
- package/dist/src/tools/team-agents.js.map +1 -0
- package/dist/src/tools/team-mailbox.d.ts +40 -0
- package/dist/src/tools/team-mailbox.d.ts.map +1 -0
- package/dist/src/tools/team-mailbox.js +384 -0
- package/dist/src/tools/team-mailbox.js.map +1 -0
- package/dist/src/tools/team-msg.d.ts +17 -8
- package/dist/src/tools/team-msg.d.ts.map +1 -1
- package/dist/src/tools/team-msg.js +110 -13
- package/dist/src/tools/team-msg.js.map +1 -1
- package/dist/src/tools/team-tasks-mcp.d.ts +27 -0
- package/dist/src/tools/team-tasks-mcp.d.ts.map +1 -0
- package/dist/src/tools/team-tasks-mcp.js +408 -0
- package/dist/src/tools/team-tasks-mcp.js.map +1 -0
- package/dist/src/types/index.d.ts +5 -0
- package/dist/src/types/index.d.ts.map +1 -1
- package/package.json +2 -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/search-tools.md +1 -1
- package/workflows/analyze.md +816 -816
- package/workflows/brainstorm.md +471 -471
- package/workflows/cli-tools-usage.md +44 -27
- package/workflows/codebase-rebuild.md +332 -332
- package/workflows/codebase-refresh.md +240 -240
- package/workflows/delegate-usage.md +3 -3
- package/workflows/execute.md +1 -1
- package/workflows/harvest.md +420 -420
- package/workflows/integration-test.md +343 -343
- package/workflows/issue-analyze.md +6 -2
- package/workflows/issue-discover.md +414 -414
- package/workflows/issue-execute.md +6 -3
- package/workflows/issue-plan.md +5 -2
- package/workflows/maestro-coordinate.codex.md +281 -470
- package/workflows/maestro-coordinate.md +14 -14
- package/workflows/maestro-link-coordinate.md +2 -2
- package/workflows/maestro.codex.md +710 -0
- package/workflows/maestro.md +10 -11
- package/workflows/map.md +111 -111
- package/workflows/milestone-complete.md +176 -176
- package/workflows/plan.md +1 -1
- package/workflows/quick.md +497 -497
- package/workflows/refactor.md +300 -300
- package/workflows/retrospective.md +1 -1
- package/workflows/roadmap.md +335 -335
- package/workflows/spec-generate.md +640 -640
- package/workflows/specs-add.md +46 -81
- package/workflows/specs-load.md +15 -17
- package/workflows/specs-setup.md +40 -161
- 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/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
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: maestro-chain
|
|
3
|
+
description: Flat chain coordinator — resolve intent, build single CSV with all steps, execute via spawn_agents_on_csv (max_workers=1). Sub-agents self-discover context. No coordinator-side artifact analysis. Simpler than maestro.
|
|
4
|
+
argument-hint: "\"intent text\" [-y] [-c|--continue] [--dry-run] [--chain <name>]"
|
|
5
|
+
allowed-tools: spawn_agents_on_csv, Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<purpose>
|
|
9
|
+
Flat sequential chain coordinator. Resolves intent, builds a single CSV with all steps,
|
|
10
|
+
executes via one `spawn_agents_on_csv` call (max_workers=1). Sub-agents are self-discovering:
|
|
11
|
+
each skill reads `.workflow/state.json` and globs for latest artifacts on its own.
|
|
12
|
+
Coordinator only assembles initial args and launches — no mid-chain artifact analysis.
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
Intent → Resolve Chain → Build tasks.csv → spawn_agents_on_csv(max_workers=1) → Read results → Report
|
|
16
|
+
(all steps) step 1 → step 2 → … → step N
|
|
17
|
+
(each skill self-discovers context)
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
**When to use this vs `$maestro`**:
|
|
21
|
+
- `$maestro-chain` — all skills self-discover (read state.json, glob artifacts)
|
|
22
|
+
- `$maestro` — need coordinator-side artifact analysis between steps (dynamic arg resolution)
|
|
23
|
+
</purpose>
|
|
24
|
+
|
|
25
|
+
<required_reading>
|
|
26
|
+
@~/.maestro/workflows/maestro.codex.md — authoritative `detectTaskType`, `detectNextAction`, `chainMap` (35+ intent patterns, 40+ chain types). Read before executing any step.
|
|
27
|
+
</required_reading>
|
|
28
|
+
|
|
29
|
+
<context>
|
|
30
|
+
$ARGUMENTS — user intent text, or special flags.
|
|
31
|
+
|
|
32
|
+
**Flags:**
|
|
33
|
+
- `-y, --yes` — Auto mode: skip all prompts; propagate `-y` to each skill
|
|
34
|
+
- `--continue` — Resume latest paused session (re-run from first failed/pending step)
|
|
35
|
+
- `--dry-run` — Display planned chain without executing
|
|
36
|
+
- `--chain <name>` — Force specific chain (skips intent classification)
|
|
37
|
+
|
|
38
|
+
**Session state**: `.workflow/.maestro-chain/{session-id}/`
|
|
39
|
+
**Core output**: `tasks.csv` + `results.csv` + `state.json`
|
|
40
|
+
</context>
|
|
41
|
+
|
|
42
|
+
<invariants>
|
|
43
|
+
1. **ALL skills via spawn_agents_on_csv**: The entire chain is a single `spawn_agents_on_csv` invocation. Coordinator NEVER directly executes any skill. No exceptions.
|
|
44
|
+
2. **Coordinator = prompt assembler only**: Classify intent → build CSV → spawn → read results → report. It never runs skill logic itself.
|
|
45
|
+
3. **One CSV, one call**: All steps go into one `tasks.csv`, one `spawn_agents_on_csv` call.
|
|
46
|
+
4. **max_workers=1**: Strict sequential execution — step N finishes before step N+1 starts.
|
|
47
|
+
5. **Skills self-discover**: Each skill reads `.workflow/state.json` and globs for latest artifacts. No coordinator-side artifact analysis between steps.
|
|
48
|
+
6. **Args resolved once**: All `{phase}`, `{description}` placeholders resolved at CSV build time — no dynamic updates mid-chain.
|
|
49
|
+
7. **Abort tolerance**: A failed step doesn't auto-skip subsequent steps — each skill decides independently whether to proceed.
|
|
50
|
+
8. **Resume = rebuild CSV**: `--continue` rebuilds CSV from first pending/failed step.
|
|
51
|
+
</invariants>
|
|
52
|
+
|
|
53
|
+
<chain_map>
|
|
54
|
+
| Intent keywords | Chain | Steps (skills, in order) |
|
|
55
|
+
|----------------|-------|--------------------------|
|
|
56
|
+
| fix, bug, error, broken, crash | `quality-fix` | $maestro-analyze --gaps → $maestro-plan --gaps → $maestro-execute → $maestro-verify |
|
|
57
|
+
| test, spec, coverage | `quality-test` | $quality-test |
|
|
58
|
+
| refactor, cleanup, debt | `quality-refactor` | $quality-refactor |
|
|
59
|
+
| feature, implement, add, build | `feature` | $maestro-plan → $maestro-execute → $maestro-verify |
|
|
60
|
+
| review, check, audit | `quality-review` | $quality-review |
|
|
61
|
+
| deploy, release, ship | `deploy` | $maestro-verify → $maestro-execute |
|
|
62
|
+
</chain_map>
|
|
63
|
+
|
|
64
|
+
<execution>
|
|
65
|
+
|
|
66
|
+
### Phase 1: Resolve Intent and Chain
|
|
67
|
+
|
|
68
|
+
1. Parse arguments: extract `AUTO_YES`, `RESUME`, `DRY_RUN`, `forceChain`, `intent`
|
|
69
|
+
2. Read `.workflow/state.json` for project context
|
|
70
|
+
3. Classify intent → select chain (same logic as `$maestro`)
|
|
71
|
+
4. If unclear and not AUTO_YES: ask one clarifying question
|
|
72
|
+
5. Resolve phase from intent or state
|
|
73
|
+
|
|
74
|
+
**`--continue`**: Load latest `state.json` from `.workflow/.maestro-chain/`, rebuild CSV from first pending step.
|
|
75
|
+
|
|
76
|
+
**`--dry-run`**: Display chain and stop.
|
|
77
|
+
|
|
78
|
+
### Phase 2: Build CSV and Execute
|
|
79
|
+
|
|
80
|
+
#### Skill Call Assembly
|
|
81
|
+
|
|
82
|
+
```javascript
|
|
83
|
+
const AUTO_FLAG_MAP = {
|
|
84
|
+
'maestro-analyze': '-y', 'maestro-brainstorm': '-y',
|
|
85
|
+
'maestro-ui-design': '-y', 'maestro-plan': '--auto',
|
|
86
|
+
'maestro-spec-generate': '-y', 'quality-test': '--auto-fix',
|
|
87
|
+
'quality-retrospective': '--auto-yes',
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
function buildSkillCall(step) {
|
|
91
|
+
let args = (step.args ?? '')
|
|
92
|
+
.replace(/{phase}/g, resolvedPhase ?? '')
|
|
93
|
+
.replace(/{description}/g, intent ?? '')
|
|
94
|
+
.replace(/{issue_id}/g, resolvedIssueId ?? '');
|
|
95
|
+
if (AUTO_YES) {
|
|
96
|
+
const flag = AUTO_FLAG_MAP[step.cmd];
|
|
97
|
+
if (flag && !args.includes(flag)) args = args ? `${args} ${flag}` : flag;
|
|
98
|
+
}
|
|
99
|
+
return `$${step.cmd} ${args}`.trim();
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
#### Session Init + CSV Generation
|
|
104
|
+
|
|
105
|
+
```javascript
|
|
106
|
+
const sessionId = `MC-${dateStr}-${timeStr}`;
|
|
107
|
+
const sessionDir = `.workflow/.maestro-chain/${sessionId}`;
|
|
108
|
+
Bash(`mkdir -p ${sessionDir}`);
|
|
109
|
+
|
|
110
|
+
Write(`${sessionDir}/state.json`, JSON.stringify({
|
|
111
|
+
id: sessionId, intent, chain: chainName, auto_yes: AUTO_YES,
|
|
112
|
+
status: "running", started_at: new Date().toISOString(),
|
|
113
|
+
steps: chain.map((s, i) => ({
|
|
114
|
+
step_n: i + 1, cmd: s.cmd,
|
|
115
|
+
skill_call: buildSkillCall(s), status: "pending"
|
|
116
|
+
}))
|
|
117
|
+
}, null, 2));
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
```csv
|
|
121
|
+
id,skill_call,topic
|
|
122
|
+
"1","$maestro-analyze --gaps \"fix auth\" -y","Chain quality-fix step 1/4"
|
|
123
|
+
"2","$maestro-plan --gaps -y","Chain quality-fix step 2/4"
|
|
124
|
+
"3","$maestro-execute -y","Chain quality-fix step 3/4"
|
|
125
|
+
"4","$maestro-verify -y","Chain quality-fix step 4/4"
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
#### Spawn — ALL execution via spawn_agents_on_csv, never direct
|
|
129
|
+
|
|
130
|
+
```javascript
|
|
131
|
+
spawn_agents_on_csv({
|
|
132
|
+
csv_path: `${sessionDir}/tasks.csv`,
|
|
133
|
+
id_column: "id",
|
|
134
|
+
instruction: INSTRUCTION,
|
|
135
|
+
max_workers: 1,
|
|
136
|
+
max_runtime_seconds: 1800,
|
|
137
|
+
output_csv_path: `${sessionDir}/results.csv`,
|
|
138
|
+
output_schema: RESULT_SCHEMA
|
|
139
|
+
});
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Sub-Agent Instruction Template
|
|
143
|
+
|
|
144
|
+
```
|
|
145
|
+
你是 CSV job 子 agent。
|
|
146
|
+
|
|
147
|
+
先原样执行这一段技能调用:
|
|
148
|
+
{skill_call}
|
|
149
|
+
|
|
150
|
+
然后基于结果完成这一行任务说明:
|
|
151
|
+
{topic}
|
|
152
|
+
|
|
153
|
+
限制:
|
|
154
|
+
- skill 内部自己管理 session 和产物发现
|
|
155
|
+
- 不要修改 .workflow/.maestro-chain/ 下的 state 文件
|
|
156
|
+
|
|
157
|
+
最后必须调用 `report_agent_job_result`,返回 JSON:
|
|
158
|
+
{"status":"completed|failed","skill_call":"{skill_call}","summary":"一句话结果","artifacts":"产物路径或空字符串","error":"失败原因或空字符串"}
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Result Schema
|
|
162
|
+
|
|
163
|
+
```javascript
|
|
164
|
+
const RESULT_SCHEMA = {
|
|
165
|
+
type: "object",
|
|
166
|
+
properties: {
|
|
167
|
+
status: { type: "string", enum: ["completed", "failed"] },
|
|
168
|
+
skill_call: { type: "string" },
|
|
169
|
+
summary: { type: "string" },
|
|
170
|
+
artifacts: { type: "string" },
|
|
171
|
+
error: { type: "string" }
|
|
172
|
+
},
|
|
173
|
+
required: ["status", "skill_call", "summary", "artifacts", "error"]
|
|
174
|
+
};
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Phase 3: Report
|
|
178
|
+
|
|
179
|
+
```javascript
|
|
180
|
+
const results = parseCSV(Read(`${sessionDir}/results.csv`));
|
|
181
|
+
const done = results.filter(r => r.status === 'completed').length;
|
|
182
|
+
const failed = results.filter(r => r.status === 'failed').length;
|
|
183
|
+
|
|
184
|
+
state.status = failed > 0 ? 'completed_with_errors' : 'completed';
|
|
185
|
+
state.completed_at = new Date().toISOString();
|
|
186
|
+
for (const row of results) {
|
|
187
|
+
const step = state.steps[parseInt(row.id) - 1];
|
|
188
|
+
step.status = row.status;
|
|
189
|
+
step.summary = row.summary;
|
|
190
|
+
step.artifacts = row.artifacts;
|
|
191
|
+
step.error = row.error;
|
|
192
|
+
}
|
|
193
|
+
Write(`${sessionDir}/state.json`, JSON.stringify(state, null, 2));
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
```
|
|
197
|
+
=== CHAIN COMPLETE ===
|
|
198
|
+
Session: <sessionId>
|
|
199
|
+
Chain: <chain>
|
|
200
|
+
Steps: <done>/<total>
|
|
201
|
+
|
|
202
|
+
RESULTS:
|
|
203
|
+
[1] $maestro-analyze --gaps → ✓ <summary>
|
|
204
|
+
[2] $maestro-plan --gaps → ✓ <summary>
|
|
205
|
+
[3] $maestro-execute → ✓ <summary>
|
|
206
|
+
[4] $maestro-verify → ✓ <summary>
|
|
207
|
+
|
|
208
|
+
State: .workflow/.maestro-chain/<sessionId>/state.json
|
|
209
|
+
Resume: $maestro-chain --continue
|
|
210
|
+
```
|
|
211
|
+
</execution>
|
|
212
|
+
|
|
213
|
+
<error_codes>
|
|
214
|
+
| Code | Severity | Condition | Recovery |
|
|
215
|
+
|------|----------|-----------|----------|
|
|
216
|
+
| E001 | error | Intent unclassifiable | Default to `feature` chain |
|
|
217
|
+
| E002 | error | `--chain` not in map | List valid chains, abort |
|
|
218
|
+
| E003 | error | Step timeout | Mark `failed` in results (subsequent steps still attempt) |
|
|
219
|
+
| E004 | error | `--continue`: no session | List sessions, prompt |
|
|
220
|
+
</error_codes>
|
|
221
|
+
|
|
222
|
+
<success_criteria>
|
|
223
|
+
- [ ] Intent classified and chain resolved
|
|
224
|
+
- [ ] Session dir initialized with `state.json` before spawn
|
|
225
|
+
- [ ] All steps in one `tasks.csv`, one `spawn_agents_on_csv` call — no direct skill execution
|
|
226
|
+
- [ ] max_workers=1 enforced (strict sequential)
|
|
227
|
+
- [ ] Each skill self-discovers context (no coordinator-side artifact analysis)
|
|
228
|
+
- [ ] Args resolved at CSV build time, no mid-chain updates
|
|
229
|
+
- [ ] Results read, state.json updated with per-step status
|
|
230
|
+
- [ ] Completion report displayed
|
|
231
|
+
- [ ] `--dry-run` shows chain, no execution
|
|
232
|
+
- [ ] `--continue` rebuilds CSV from first pending/failed step
|
|
233
|
+
</success_criteria>
|