swarm-engine 1.1.0 → 1.3.0
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.md +1 -1
- package/README.md +102 -25
- package/agents/accessibility-reviewer.md +2 -0
- package/agents/api-contract-reviewer.md +2 -0
- package/agents/concurrency-reviewer.md +2 -0
- package/agents/data-integrity-reviewer.md +1 -0
- package/agents/debugger.md +2 -0
- package/agents/dependency-reviewer.md +2 -0
- package/agents/devils-advocate.md +1 -0
- package/agents/documentation-reviewer.md +2 -0
- package/agents/documenter.md +13 -0
- package/agents/error-handling-reviewer.md +2 -0
- package/agents/grounding.md +3 -2
- package/agents/guardian.md +3 -0
- package/agents/implementer.md +2 -0
- package/agents/integrator.md +3 -0
- package/agents/judge.md +2 -0
- package/agents/librarian.md +4 -1
- package/agents/orchestrator.md +3 -0
- package/agents/performance-reviewer.md +2 -0
- package/agents/planner.md +2 -0
- package/agents/refactorer.md +3 -0
- package/agents/reviewer.md +1 -0
- package/agents/security-reviewer.md +1 -0
- package/agents/sentinel.md +3 -0
- package/agents/tester.md +2 -0
- package/agents/testing-reviewer.md +2 -0
- package/commands/diff-review.md +27 -15
- package/commands/discover.md +102 -0
- package/commands/dynamic.md +136 -0
- package/commands/fix-pr.md +30 -24
- package/commands/postmortem.md +106 -0
- package/commands/red-team.md +41 -26
- package/commands/research.md +22 -1
- package/commands/review-cycle.md +38 -20
- package/commands/spike.md +108 -0
- package/commands/swarm.md +68 -60
- package/commands/tdd.md +44 -24
- package/dist/cli/commands/acp.d.ts.map +1 -1
- package/dist/cli/commands/acp.js +12 -2
- package/dist/cli/commands/acp.js.map +1 -1
- package/dist/cli/commands/agents.d.ts.map +1 -1
- package/dist/cli/commands/agents.js +16 -13
- package/dist/cli/commands/agents.js.map +1 -1
- package/dist/cli/commands/completions.d.ts.map +1 -1
- package/dist/cli/commands/completions.js +21 -9
- package/dist/cli/commands/completions.js.map +1 -1
- package/dist/cli/commands/compound.d.ts.map +1 -1
- package/dist/cli/commands/compound.js +1 -2
- package/dist/cli/commands/compound.js.map +1 -1
- package/dist/cli/commands/configure.d.ts.map +1 -1
- package/dist/cli/commands/configure.js +24 -8
- package/dist/cli/commands/configure.js.map +1 -1
- package/dist/cli/commands/convert.d.ts +1 -1
- package/dist/cli/commands/convert.d.ts.map +1 -1
- package/dist/cli/commands/convert.js +22 -48
- package/dist/cli/commands/convert.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +1 -3
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +17 -7
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +1 -1
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/learn.js +6 -6
- package/dist/cli/commands/learn.js.map +1 -1
- package/dist/cli/commands/mcp.d.ts.map +1 -1
- package/dist/cli/commands/mcp.js +1 -2
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/memory.d.ts.map +1 -1
- package/dist/cli/commands/memory.js +1 -2
- package/dist/cli/commands/memory.js.map +1 -1
- package/dist/cli/commands/orchestrate.d.ts.map +1 -1
- package/dist/cli/commands/orchestrate.js +20 -7
- package/dist/cli/commands/orchestrate.js.map +1 -1
- package/dist/cli/commands/plan.d.ts.map +1 -1
- package/dist/cli/commands/plan.js.map +1 -1
- package/dist/cli/commands/plugin.d.ts.map +1 -1
- package/dist/cli/commands/plugin.js +8 -5
- package/dist/cli/commands/plugin.js.map +1 -1
- package/dist/cli/commands/resume.js +1 -1
- package/dist/cli/commands/resume.js.map +1 -1
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +20 -6
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/share.d.ts.map +1 -1
- package/dist/cli/commands/share.js +6 -1
- package/dist/cli/commands/share.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +15 -7
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/template.d.ts.map +1 -1
- package/dist/cli/commands/template.js +14 -6
- package/dist/cli/commands/template.js.map +1 -1
- package/dist/cli/commands/vault.d.ts.map +1 -1
- package/dist/cli/commands/vault.js +14 -9
- package/dist/cli/commands/vault.js.map +1 -1
- package/dist/cli/commands/verify.d.ts.map +1 -1
- package/dist/cli/commands/verify.js +2 -2
- package/dist/cli/commands/verify.js.map +1 -1
- package/dist/cli/commands/watch.js +1 -1
- package/dist/cli/commands/watch.js.map +1 -1
- package/dist/cli/index.js +14 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/core/checkpoint.js +1 -1
- package/dist/core/checkpoint.js.map +1 -1
- package/dist/core/event-bus.d.ts.map +1 -1
- package/dist/core/event-bus.js +9 -3
- package/dist/core/event-bus.js.map +1 -1
- package/dist/core/lifecycle.js.map +1 -1
- package/dist/core/patterns.d.ts.map +1 -1
- package/dist/core/patterns.js +31 -8
- package/dist/core/patterns.js.map +1 -1
- package/dist/core/permissions.d.ts.map +1 -1
- package/dist/core/permissions.js +21 -10
- package/dist/core/permissions.js.map +1 -1
- package/dist/core/registry.d.ts.map +1 -1
- package/dist/core/registry.js +10 -6
- package/dist/core/registry.js.map +1 -1
- package/dist/core/snapshots.d.ts.map +1 -1
- package/dist/core/snapshots.js +17 -5
- package/dist/core/snapshots.js.map +1 -1
- package/dist/core/types.d.ts +3 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/index.d.ts +68 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +60 -4
- package/dist/index.js.map +1 -1
- package/dist/memory/index.d.ts +1 -0
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +39 -24
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/schema.d.ts +1 -0
- package/dist/memory/schema.d.ts.map +1 -1
- package/dist/memory/schema.js +20 -19
- package/dist/memory/schema.js.map +1 -1
- package/dist/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js.map +1 -1
- package/dist/runtime/acp.d.ts.map +1 -1
- package/dist/runtime/acp.js +71 -41
- package/dist/runtime/acp.js.map +1 -1
- package/dist/runtime/adaptive.d.ts.map +1 -1
- package/dist/runtime/adaptive.js +30 -31
- package/dist/runtime/adaptive.js.map +1 -1
- package/dist/runtime/agent-runner.d.ts +52 -0
- package/dist/runtime/agent-runner.d.ts.map +1 -0
- package/dist/runtime/agent-runner.js +156 -0
- package/dist/runtime/agent-runner.js.map +1 -0
- package/dist/runtime/autonomy.d.ts +1 -0
- package/dist/runtime/autonomy.d.ts.map +1 -1
- package/dist/runtime/autonomy.js +37 -19
- package/dist/runtime/autonomy.js.map +1 -1
- package/dist/runtime/backends/claude.d.ts.map +1 -1
- package/dist/runtime/backends/claude.js +2 -2
- package/dist/runtime/backends/claude.js.map +1 -1
- package/dist/runtime/backends/codex.d.ts.map +1 -1
- package/dist/runtime/backends/codex.js +8 -11
- package/dist/runtime/backends/codex.js.map +1 -1
- package/dist/runtime/backends/gemini.d.ts.map +1 -1
- package/dist/runtime/backends/gemini.js +11 -7
- package/dist/runtime/backends/gemini.js.map +1 -1
- package/dist/runtime/backends/index.js +1 -1
- package/dist/runtime/backends/index.js.map +1 -1
- package/dist/runtime/backends/mock.d.ts.map +1 -1
- package/dist/runtime/backends/mock.js +1 -1
- package/dist/runtime/backends/mock.js.map +1 -1
- package/dist/runtime/backends/vercel-ai.d.ts.map +1 -1
- package/dist/runtime/backends/vercel-ai.js +41 -9
- package/dist/runtime/backends/vercel-ai.js.map +1 -1
- package/dist/runtime/cache-optimizer.d.ts.map +1 -1
- package/dist/runtime/cache-optimizer.js +3 -9
- package/dist/runtime/cache-optimizer.js.map +1 -1
- package/dist/runtime/cascade.d.ts.map +1 -1
- package/dist/runtime/cascade.js +34 -7
- package/dist/runtime/cascade.js.map +1 -1
- package/dist/runtime/chunker.d.ts.map +1 -1
- package/dist/runtime/chunker.js +12 -6
- package/dist/runtime/chunker.js.map +1 -1
- package/dist/runtime/compounder.d.ts +1 -1
- package/dist/runtime/compounder.d.ts.map +1 -1
- package/dist/runtime/compounder.js +30 -11
- package/dist/runtime/compounder.js.map +1 -1
- package/dist/runtime/cost-model.d.ts.map +1 -1
- package/dist/runtime/cost-model.js +1 -1
- package/dist/runtime/cost-model.js.map +1 -1
- package/dist/runtime/database.d.ts +16 -0
- package/dist/runtime/database.d.ts.map +1 -0
- package/dist/runtime/database.js +39 -0
- package/dist/runtime/database.js.map +1 -0
- package/dist/runtime/distiller.d.ts.map +1 -1
- package/dist/runtime/distiller.js +6 -3
- package/dist/runtime/distiller.js.map +1 -1
- package/dist/runtime/engine.d.ts +7 -9
- package/dist/runtime/engine.d.ts.map +1 -1
- package/dist/runtime/engine.js +129 -394
- package/dist/runtime/engine.js.map +1 -1
- package/dist/runtime/executor.d.ts +1 -2
- package/dist/runtime/executor.d.ts.map +1 -1
- package/dist/runtime/executor.js +45 -14
- package/dist/runtime/executor.js.map +1 -1
- package/dist/runtime/heuristics.d.ts +1 -0
- package/dist/runtime/heuristics.d.ts.map +1 -1
- package/dist/runtime/heuristics.js +44 -22
- package/dist/runtime/heuristics.js.map +1 -1
- package/dist/runtime/learning-engine.d.ts +51 -0
- package/dist/runtime/learning-engine.d.ts.map +1 -0
- package/dist/runtime/learning-engine.js +209 -0
- package/dist/runtime/learning-engine.js.map +1 -0
- package/dist/runtime/living-spec.js +3 -3
- package/dist/runtime/living-spec.js.map +1 -1
- package/dist/runtime/lsp.d.ts.map +1 -1
- package/dist/runtime/lsp.js +41 -14
- package/dist/runtime/lsp.js.map +1 -1
- package/dist/runtime/mcp.d.ts.map +1 -1
- package/dist/runtime/mcp.js +56 -19
- package/dist/runtime/mcp.js.map +1 -1
- package/dist/runtime/model-router.d.ts +1 -0
- package/dist/runtime/model-router.d.ts.map +1 -1
- package/dist/runtime/model-router.js +37 -21
- package/dist/runtime/model-router.js.map +1 -1
- package/dist/runtime/panes.d.ts.map +1 -1
- package/dist/runtime/panes.js +50 -49
- package/dist/runtime/panes.js.map +1 -1
- package/dist/runtime/plan-search.js +2 -2
- package/dist/runtime/plan-search.js.map +1 -1
- package/dist/runtime/plugins.d.ts +1 -1
- package/dist/runtime/plugins.d.ts.map +1 -1
- package/dist/runtime/plugins.js +63 -47
- package/dist/runtime/plugins.js.map +1 -1
- package/dist/runtime/reflexion.d.ts.map +1 -1
- package/dist/runtime/reflexion.js +4 -8
- package/dist/runtime/reflexion.js.map +1 -1
- package/dist/runtime/review-schema.d.ts.map +1 -1
- package/dist/runtime/review-schema.js +12 -12
- package/dist/runtime/review-schema.js.map +1 -1
- package/dist/runtime/rewriter.d.ts.map +1 -1
- package/dist/runtime/rewriter.js +29 -9
- package/dist/runtime/rewriter.js.map +1 -1
- package/dist/runtime/sharing.d.ts +1 -1
- package/dist/runtime/sharing.d.ts.map +1 -1
- package/dist/runtime/sharing.js +55 -27
- package/dist/runtime/sharing.js.map +1 -1
- package/dist/runtime/stats.d.ts +1 -0
- package/dist/runtime/stats.d.ts.map +1 -1
- package/dist/runtime/stats.js +40 -24
- package/dist/runtime/stats.js.map +1 -1
- package/dist/runtime/templates.d.ts.map +1 -1
- package/dist/runtime/templates.js +2 -2
- package/dist/runtime/templates.js.map +1 -1
- package/dist/runtime/traces.d.ts +1 -0
- package/dist/runtime/traces.d.ts.map +1 -1
- package/dist/runtime/traces.js +50 -28
- package/dist/runtime/traces.js.map +1 -1
- package/dist/runtime/verifier.d.ts.map +1 -1
- package/dist/runtime/verifier.js +12 -6
- package/dist/runtime/verifier.js.map +1 -1
- package/dist/runtime/worktree.d.ts.map +1 -1
- package/dist/runtime/worktree.js +35 -18
- package/dist/runtime/worktree.js.map +1 -1
- package/dist/tui/dashboard.d.ts.map +1 -1
- package/dist/tui/dashboard.js +20 -16
- package/dist/tui/dashboard.js.map +1 -1
- package/dist/tui/progress.d.ts +2 -0
- package/dist/tui/progress.d.ts.map +1 -1
- package/dist/tui/progress.js +105 -33
- package/dist/tui/progress.js.map +1 -1
- package/dist/tui/renderer.d.ts.map +1 -1
- package/dist/tui/renderer.js.map +1 -1
- package/dist/utils/compact-format.js +1 -1
- package/dist/utils/compact-format.js.map +1 -1
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/env.d.ts.map +1 -1
- package/dist/utils/env.js +19 -5
- package/dist/utils/env.js.map +1 -1
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +3 -7
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/output.d.ts.map +1 -1
- package/dist/utils/output.js +6 -2
- package/dist/utils/output.js.map +1 -1
- package/dist/utils/project-config.d.ts +18 -0
- package/dist/utils/project-config.d.ts.map +1 -1
- package/dist/utils/project-config.js +14 -6
- package/dist/utils/project-config.js.map +1 -1
- package/dist/utils/schemas.d.ts.map +1 -1
- package/dist/utils/schemas.js +12 -12
- package/dist/utils/schemas.js.map +1 -1
- package/dist/utils/terminal.d.ts.map +1 -1
- package/dist/utils/terminal.js +18 -7
- package/dist/utils/terminal.js.map +1 -1
- package/dist/utils/tiers.d.ts.map +1 -1
- package/dist/utils/tiers.js +14 -6
- package/dist/utils/tiers.js.map +1 -1
- package/package.json +14 -3
- package/skills/swarm-output-style/SKILL.md +114 -46
package/commands/review-cycle.md
CHANGED
|
@@ -5,33 +5,55 @@ argument-hint: "<implementation task>"
|
|
|
5
5
|
|
|
6
6
|
You are running an implement-then-review cycle with parallel reviewers for quality assurance.
|
|
7
7
|
|
|
8
|
+
Follow the `swarm-output-style` skill for ALL output formatting.
|
|
9
|
+
|
|
8
10
|
## Task
|
|
9
11
|
$ARGUMENTS
|
|
10
12
|
|
|
11
13
|
## Workflow
|
|
12
14
|
|
|
15
|
+
### Step 0: Show Pre-flight Plan
|
|
16
|
+
|
|
17
|
+
Before creating any team or spawning any agent, show the plan:
|
|
18
|
+
|
|
19
|
+
Show the pre-flight plan (see swarm-output-style skill). Include:
|
|
20
|
+
- All phases (Research, Implement, Devil's Advocate, Review-Fix Loop)
|
|
21
|
+
- Agents per phase with model and focus
|
|
22
|
+
- Estimated cost (~$0.12 research, ~$0.19 implement, ~$0.10 devil's advocate, ~$0.29/review iteration)
|
|
23
|
+
- Estimated time (~15-30 min depending on review iterations)
|
|
24
|
+
|
|
25
|
+
Wait for user approval before proceeding.
|
|
26
|
+
|
|
13
27
|
### Setup: Create Team
|
|
14
28
|
1. Create a team with `TeamCreate` (name: `review-cycle-<timestamp>`, e.g., `review-cycle-1234`)
|
|
15
29
|
2. Create tasks with `TaskCreate` for each work unit identified in the plan
|
|
16
30
|
|
|
17
31
|
### Phase 1: Research (parallel)
|
|
32
|
+
|
|
33
|
+
Show the phase banner with running total (see swarm-output-style skill).
|
|
34
|
+
|
|
18
35
|
Spawn 2-3 researcher teammates (sonnet) simultaneously, each with `team_name`, `name` (e.g., `researcher-arch`, `researcher-tests`, `researcher-deps`), and `run_in_background: true`:
|
|
19
36
|
- One for architecture and patterns
|
|
20
37
|
- One for related tests and test patterns
|
|
21
38
|
- One for dependencies and integration points
|
|
22
39
|
|
|
23
|
-
As each
|
|
40
|
+
As each completes: show a one-line completion summary (see swarm-output-style skill), then send `shutdown_request` via `SendMessage`.
|
|
24
41
|
|
|
25
42
|
Present the research findings and implementation plan to the user. Proceed after approval.
|
|
26
43
|
|
|
27
44
|
### Phase 2: Implement (sequential)
|
|
45
|
+
|
|
46
|
+
Show the phase banner with running total (see swarm-output-style skill).
|
|
47
|
+
|
|
28
48
|
Based on research findings, spawn an implementer teammate (opus) with `team_name`, `name` (e.g., `implementer`), and `run_in_background: true`.
|
|
29
49
|
Include all research findings as context.
|
|
30
50
|
|
|
31
|
-
As the teammate completes, send
|
|
51
|
+
As the teammate completes: show a one-line completion summary (see swarm-output-style skill), then send `shutdown_request` via `SendMessage`.
|
|
32
52
|
|
|
33
53
|
### Phase 2b: Devil's Advocate (sequential)
|
|
34
54
|
|
|
55
|
+
Show the phase banner with running total (see swarm-output-style skill).
|
|
56
|
+
|
|
35
57
|
After implementation, spawn a devils-advocate teammate (opus) with `team_name`, `name` (e.g., `devils-advocate`), and `run_in_background: true`.
|
|
36
58
|
|
|
37
59
|
Provide it with:
|
|
@@ -39,7 +61,7 @@ Provide it with:
|
|
|
39
61
|
- The original task description
|
|
40
62
|
- Research findings from Phase 1
|
|
41
63
|
|
|
42
|
-
As the teammate completes, send
|
|
64
|
+
As the teammate completes: show a one-line completion summary (see swarm-output-style skill), then send `shutdown_request` via `SendMessage`.
|
|
43
65
|
|
|
44
66
|
If the devil's advocate found **Critical** challenges:
|
|
45
67
|
1. Spawn a new implementer teammate (opus, name: `implementer-hardened`) with `team_name` and `run_in_background: true`
|
|
@@ -54,12 +76,15 @@ If only Important challenges or Questions were raised, include them as context f
|
|
|
54
76
|
For each iteration (1 to 3):
|
|
55
77
|
|
|
56
78
|
#### Review (parallel)
|
|
79
|
+
|
|
80
|
+
Show the phase banner with running total (see swarm-output-style skill).
|
|
81
|
+
|
|
57
82
|
Spawn 3 reviewer teammates simultaneously, each with `team_name`, `name` (e.g., `reviewer-correctness`, `reviewer-security`, `reviewer-convention`), and `run_in_background: true`, each with a different focus:
|
|
58
83
|
1. **Correctness reviewer** (opus) — Logic errors, edge cases, error handling, race conditions
|
|
59
84
|
2. **Security reviewer** (opus) — Injection, auth bypass, data exposure, OWASP top 10
|
|
60
85
|
3. **Convention reviewer** (sonnet) — Project patterns, naming, structure, CLAUDE.md compliance
|
|
61
86
|
|
|
62
|
-
As each
|
|
87
|
+
As each completes: show a one-line verdict (PASS/FAIL + finding count) (see swarm-output-style skill), then send `shutdown_request` via `SendMessage`.
|
|
63
88
|
|
|
64
89
|
#### Gate Check
|
|
65
90
|
Parse review results:
|
|
@@ -93,23 +118,14 @@ This block must be constructed from the actual reviewer findings and included ve
|
|
|
93
118
|
As the fixer teammate completes, send it a `shutdown_request` via `SendMessage` to close its split pane.
|
|
94
119
|
|
|
95
120
|
### Phase 5: Report
|
|
96
|
-
```markdown
|
|
97
|
-
## Implementation Summary
|
|
98
|
-
[What was built/changed]
|
|
99
|
-
|
|
100
|
-
## Quality Gate: [PASS after N iterations | FAIL after 3 iterations]
|
|
101
|
-
|
|
102
|
-
### Per-Iteration Results
|
|
103
|
-
- **Iteration 1**: N critical, M important → [fixed / passed]
|
|
104
|
-
- **Iteration 2**: N critical, M important → [fixed / passed]
|
|
105
|
-
- **Iteration 3**: N critical, M important → [fixed / passed]
|
|
106
|
-
|
|
107
|
-
## Remaining Concerns
|
|
108
|
-
[Any Important/Suggestion findings from final iteration]
|
|
109
121
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
122
|
+
Show the full post-completion summary (see swarm-output-style skill). Include:
|
|
123
|
+
- Status (PASS / NEEDS ATTENTION / FAILED)
|
|
124
|
+
- Metrics (phases, agents, duration, tokens, cost)
|
|
125
|
+
- What changed (files with git diff --stat if available)
|
|
126
|
+
- Review gate result with per-reviewer table and per-iteration breakdown
|
|
127
|
+
- Non-blocking suggestions
|
|
128
|
+
- Next steps
|
|
113
129
|
|
|
114
130
|
### Cleanup
|
|
115
131
|
1. Send `shutdown_request` via `SendMessage` to any remaining active teammates
|
|
@@ -121,3 +137,5 @@ As the fixer teammate completes, send it a `shutdown_request` via `SendMessage`
|
|
|
121
137
|
- Maximum 3 review-fix iterations before escalating to user
|
|
122
138
|
- Present findings to user before each fix phase
|
|
123
139
|
- Each fix phase must only address findings from the current iteration's review
|
|
140
|
+
- Follow the swarm-output-style skill for ALL output formatting
|
|
141
|
+
- Show the plan first, spend tokens second
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Two independent approaches to the same problem, evaluated side-by-side"
|
|
3
|
+
argument-hint: "<problem to solve with competing approaches>"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
You are running a competitive spike: two independent approaches to the same problem, evaluated side-by-side.
|
|
7
|
+
|
|
8
|
+
Follow the `swarm-output-style` skill for ALL output formatting.
|
|
9
|
+
|
|
10
|
+
## Task
|
|
11
|
+
$ARGUMENTS
|
|
12
|
+
|
|
13
|
+
## Workflow
|
|
14
|
+
|
|
15
|
+
### Step 0: Show Pre-flight Plan
|
|
16
|
+
|
|
17
|
+
Before creating any team or spawning any agent, show the plan:
|
|
18
|
+
|
|
19
|
+
Show the pre-flight plan (see swarm-output-style skill). Include:
|
|
20
|
+
- All phases (Research, Implement x2 in parallel worktrees, Evaluate x2, Select)
|
|
21
|
+
- Agents per phase with model and focus
|
|
22
|
+
- Estimated cost (~$0.08 research, ~$0.38 implement, ~$0.20 evaluate)
|
|
23
|
+
- Estimated time (~20-35 min total)
|
|
24
|
+
|
|
25
|
+
Wait for user approval before proceeding.
|
|
26
|
+
|
|
27
|
+
### Setup: Create Team
|
|
28
|
+
1. Create a team with `TeamCreate` (name: `spike-<timestamp>`, e.g., `spike-1234`)
|
|
29
|
+
2. Create tasks with `TaskCreate` for each work unit (research, implementation, review)
|
|
30
|
+
|
|
31
|
+
### Phase 1: Research — parallel
|
|
32
|
+
|
|
33
|
+
Show the phase banner with running total (see swarm-output-style skill).
|
|
34
|
+
|
|
35
|
+
Spawn 2 researcher teammates (sonnet) simultaneously, each with `team_name`, `name` (e.g., `researcher-a`, `researcher-b`), and `run_in_background: true` to explore the problem space. Each should:
|
|
36
|
+
- Understand the constraints and requirements
|
|
37
|
+
- Identify a viable approach
|
|
38
|
+
- Describe the approach with tradeoffs
|
|
39
|
+
|
|
40
|
+
As each completes: show a one-line completion summary (see swarm-output-style skill), then send `shutdown_request` via `SendMessage`.
|
|
41
|
+
|
|
42
|
+
Present the two approaches to the user before proceeding.
|
|
43
|
+
|
|
44
|
+
### Phase 2: Implement — parallel (worktree isolation, depends on Phase 1)
|
|
45
|
+
|
|
46
|
+
Show the phase banner with running total (see swarm-output-style skill).
|
|
47
|
+
|
|
48
|
+
Spawn 2 implementer teammates (opus) simultaneously, each in an **isolated worktree**, with `team_name`, `name` (e.g., `implementer-a`, `implementer-b`), and `run_in_background: true`:
|
|
49
|
+
- **Implementer A**: Approach 1 — full implementation in isolated worktree
|
|
50
|
+
- **Implementer B**: Approach 2 — full implementation in isolated worktree
|
|
51
|
+
|
|
52
|
+
Both receive the same spec and requirements but different suggested approaches.
|
|
53
|
+
|
|
54
|
+
As each completes: show a one-line completion summary (see swarm-output-style skill), then send `shutdown_request` via `SendMessage`.
|
|
55
|
+
|
|
56
|
+
### Phase 3: Evaluate — parallel (depends on Phase 2)
|
|
57
|
+
|
|
58
|
+
Show the phase banner with running total (see swarm-output-style skill).
|
|
59
|
+
|
|
60
|
+
Spawn 2 reviewer teammates (opus) simultaneously, each with `team_name`, `name` (e.g., `reviewer-a`, `reviewer-b`), and `run_in_background: true`:
|
|
61
|
+
- **Reviewer A**: Reviews Approach 1 — correctness, complexity, maintainability, testability
|
|
62
|
+
- **Reviewer B**: Reviews Approach 2 — correctness, complexity, maintainability, testability
|
|
63
|
+
|
|
64
|
+
As each completes: show a one-line verdict per approach (see swarm-output-style skill), then send `shutdown_request` via `SendMessage`.
|
|
65
|
+
|
|
66
|
+
### Phase 4: Select — sequential (depends on Phase 3)
|
|
67
|
+
Present a comparison table to the user:
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
## Spike Comparison
|
|
71
|
+
|
|
72
|
+
| Criteria | Approach 1 | Approach 2 |
|
|
73
|
+
|-----------------|----------------------|----------------------|
|
|
74
|
+
| Summary | [brief description] | [brief description] |
|
|
75
|
+
| Correctness | [assessment] | [assessment] |
|
|
76
|
+
| Complexity | [lines/abstractions] | [lines/abstractions] |
|
|
77
|
+
| Maintainability | [assessment] | [assessment] |
|
|
78
|
+
| Performance | [assessment] | [assessment] |
|
|
79
|
+
| Testability | [assessment] | [assessment] |
|
|
80
|
+
| Reviewer Verdict| [recommendation] | [recommendation] |
|
|
81
|
+
|
|
82
|
+
### Recommendation
|
|
83
|
+
[Which approach and why]
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
The user picks the winner. Apply the winning approach: merge the winning worktree branch with `git merge <branch> --no-ff`, or if significantly diverged, cherry-pick the relevant commits.
|
|
87
|
+
|
|
88
|
+
Show the full post-completion summary (see swarm-output-style skill). Include:
|
|
89
|
+
- Status (PASS / NEEDS ATTENTION)
|
|
90
|
+
- Metrics (phases, agents, duration, tokens, cost)
|
|
91
|
+
- Spike comparison table summary
|
|
92
|
+
- Which approach was selected and why
|
|
93
|
+
- What was applied (merge/cherry-pick)
|
|
94
|
+
- Next steps
|
|
95
|
+
|
|
96
|
+
### Cleanup
|
|
97
|
+
1. Send `shutdown_request` via `SendMessage` to any remaining active teammates
|
|
98
|
+
2. Call `TeamDelete` to clean up the team
|
|
99
|
+
|
|
100
|
+
## Rules
|
|
101
|
+
- All agents must be spawned as team members (TeamCreate → TaskCreate → Agent with team_name/name/run_in_background → SendMessage shutdown → TeamDelete)
|
|
102
|
+
- Both approaches must solve the FULL problem — no partial implementations
|
|
103
|
+
- Use worktree isolation so approaches don't interfere with each other
|
|
104
|
+
- Include clear tradeoff analysis in the comparison
|
|
105
|
+
- The user always makes the final decision — never auto-select
|
|
106
|
+
- If both approaches are flawed, recommend a third path informed by what was learned
|
|
107
|
+
- Follow the swarm-output-style skill for ALL output formatting
|
|
108
|
+
- Show the plan first, spend tokens second
|
package/commands/swarm.md
CHANGED
|
@@ -1,83 +1,104 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "Swarm Engine
|
|
2
|
+
description: "Swarm Engine -- orchestrate multi-agent development with composable patterns"
|
|
3
3
|
argument-hint: "<task description> | setup | status | backends"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
You are the Swarm Engine
|
|
6
|
+
You are the Swarm Engine -- a multi-agent orchestration system.
|
|
7
7
|
|
|
8
8
|
If the user says "setup", run: `swarm setup` in the terminal to launch the interactive configuration wizard.
|
|
9
9
|
If the user says "status", run: `swarm status` to show registered agents and backends.
|
|
10
10
|
If the user says "backends", run: `swarm backends` to show available execution backends.
|
|
11
11
|
|
|
12
|
-
Otherwise, orchestrate the task using formal patterns.
|
|
12
|
+
Otherwise, orchestrate the task using formal patterns. Follow the `swarm-output-style` skill for ALL output formatting.
|
|
13
13
|
|
|
14
14
|
## Task
|
|
15
15
|
$ARGUMENTS
|
|
16
16
|
|
|
17
17
|
## Workflow
|
|
18
18
|
|
|
19
|
-
###
|
|
19
|
+
### Step 0: Check Memory
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
Search for relevant context before doing anything:
|
|
22
|
+
```bash
|
|
23
|
+
cd ~/dev/swarm-engine && npx tsx src/cli/index.ts memory search "<relevant keywords>"
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Step 1: Select Pattern and Show Pre-flight Plan
|
|
27
|
+
|
|
28
|
+
Assess the task and select the best pattern:
|
|
25
29
|
|
|
26
|
-
|
|
30
|
+
| Task Type | Pattern | Command |
|
|
31
|
+
|-----------|---------|---------|
|
|
32
|
+
| General feature | `hybrid` | Continue below |
|
|
33
|
+
| Understanding code | `research` | Delegate to `/research` |
|
|
34
|
+
| Quality-critical code | `review-cycle` | Delegate to `/review-cycle` |
|
|
35
|
+
| New feature with tests | `tdd` | Delegate to `/tdd` |
|
|
36
|
+
| Uncertain approach | `spike` | Delegate to `/spike` |
|
|
37
|
+
| Security-sensitive code | `red-team` | Delegate to `/red-team` |
|
|
38
|
+
| Complex/novel problem | `discover` | Delegate to `/discover` |
|
|
39
|
+
| Error/incident | `postmortem` | Delegate to `/postmortem` |
|
|
27
40
|
|
|
28
|
-
|
|
29
|
-
|-----------|---------|-----|
|
|
30
|
-
| General feature | `hybrid` | Research → Implement → Review (default) |
|
|
31
|
-
| Understanding code | `research` | Fan-out parallel exploration |
|
|
32
|
-
| Quality-critical code | `review-cycle` | Iterative review-fix loop |
|
|
33
|
-
| New feature with tests | `tdd` | Test-first guarantees coverage |
|
|
34
|
-
| Uncertain approach | `spike` | Two approaches compete, reviewer picks |
|
|
35
|
-
| Security-sensitive code | `red-team` | Build → Break → Harden |
|
|
36
|
-
| Complex/novel problem | `discover` | Hypothesize → Test → Implement winner |
|
|
41
|
+
If a dedicated command exists, **delegate to it**. Only continue here for `hybrid`.
|
|
37
42
|
|
|
38
|
-
|
|
43
|
+
**Show the pre-flight plan BEFORE creating any team or spawning any agent.** Include estimated cost, time, and an agent table for each phase (see swarm-output-style skill). Wait for user approval.
|
|
39
44
|
|
|
40
|
-
|
|
41
|
-
|
|
45
|
+
### Step 2: Create Team
|
|
46
|
+
|
|
47
|
+
After the user approves the plan:
|
|
48
|
+
1. `TeamCreate` (name: `orchestrate-<timestamp>`)
|
|
49
|
+
2. `TaskCreate` for each planned phase
|
|
42
50
|
|
|
43
51
|
### Phase 1: Research (parallel)
|
|
44
52
|
|
|
53
|
+
Show the phase banner with running total.
|
|
54
|
+
|
|
45
55
|
Spawn 2-3 researcher teammates (sonnet) simultaneously, each with `team_name`, `name`, and `run_in_background: true`:
|
|
46
|
-
- **researcher-code**
|
|
47
|
-
- **researcher-context**
|
|
56
|
+
- **researcher-code** -- Explore the relevant codebase: architecture, entry points, existing patterns
|
|
57
|
+
- **researcher-context** -- Check memory and vault for past decisions, conventions, gotchas:
|
|
48
58
|
```bash
|
|
49
59
|
~/.claude/scripts/swarm-vault.sh repo "<repo-name>" conventions
|
|
50
60
|
~/.claude/scripts/swarm-vault.sh repo "<repo-name>" gotchas
|
|
51
61
|
```
|
|
52
|
-
- **researcher-deps** (optional)
|
|
62
|
+
- **researcher-deps** (optional) -- Map dependencies, integration points, downstream consumers
|
|
53
63
|
|
|
54
|
-
As each
|
|
64
|
+
As each completes: show a one-line completion summary, then send `shutdown_request`.
|
|
55
65
|
|
|
56
|
-
|
|
66
|
+
After all researchers complete: show phase summary with key findings.
|
|
67
|
+
|
|
68
|
+
**Approval gate**: Present findings and proposed implementation plan. Proceed after user approval. (This is where cost jumps to expensive-tier agents.)
|
|
57
69
|
|
|
58
70
|
### Phase 2: Implement (parallel if independent, sequential if dependent)
|
|
59
71
|
|
|
60
|
-
|
|
72
|
+
Show the phase banner with running total.
|
|
73
|
+
|
|
74
|
+
Spawn implementer teammates (opus) with `team_name`, `name`, and `run_in_background: true`.
|
|
61
75
|
|
|
62
76
|
For each implementer, include:
|
|
63
77
|
- All relevant research findings as context
|
|
64
78
|
- Specific file assignments (no two implementers touch the same files)
|
|
65
79
|
- Reference patterns from the codebase
|
|
66
80
|
|
|
67
|
-
As each
|
|
81
|
+
As each completes: show one-line summary of files changed, then send `shutdown_request`.
|
|
68
82
|
|
|
69
83
|
### Phase 3: Review (parallel)
|
|
70
84
|
|
|
85
|
+
Show the phase banner with running total.
|
|
86
|
+
|
|
71
87
|
Spawn 2-3 reviewer teammates simultaneously, each with `team_name`, `name`, and `run_in_background: true`:
|
|
72
|
-
1. **reviewer-correctness** (opus)
|
|
73
|
-
2. **reviewer-security** (opus)
|
|
74
|
-
3. **reviewer-convention** (sonnet)
|
|
88
|
+
1. **reviewer-correctness** (opus) -- Logic errors, edge cases, error handling, race conditions
|
|
89
|
+
2. **reviewer-security** (opus) -- Injection, auth bypass, data exposure, OWASP top 10
|
|
90
|
+
3. **reviewer-convention** (sonnet) -- Project patterns, naming, structure compliance
|
|
75
91
|
|
|
76
|
-
As each
|
|
92
|
+
As each completes: show one-line verdict (PASS/FAIL + finding count), then send `shutdown_request`.
|
|
77
93
|
|
|
78
94
|
#### Gate Check
|
|
79
|
-
- **0 Critical AND 0 Important findings**
|
|
80
|
-
- **Any Critical or Important finding**
|
|
95
|
+
- **0 Critical AND 0 Important findings** -- proceed to report
|
|
96
|
+
- **Any Critical or Important finding** -- show error recovery options:
|
|
97
|
+
1. Spawn a fixer implementer (opus) to address them, then re-review
|
|
98
|
+
2. Accept and note as risks
|
|
99
|
+
3. Abort
|
|
100
|
+
|
|
101
|
+
Maximum 2 fix iterations before escalating remaining issues to the user.
|
|
81
102
|
|
|
82
103
|
### Phase 4: Record Outcomes
|
|
83
104
|
|
|
@@ -88,39 +109,26 @@ echo "<outcome summary>" | cd ~/dev/swarm-engine && npx tsx src/cli/index.ts mem
|
|
|
88
109
|
|
|
89
110
|
### Phase 5: Report
|
|
90
111
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
-
|
|
94
|
-
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
## Research Findings
|
|
100
|
-
[Key insights that informed the implementation]
|
|
101
|
-
|
|
102
|
-
## Review Results
|
|
103
|
-
- **Gate**: PASS / FAIL after N iterations
|
|
104
|
-
- **Critical findings**: N (all resolved)
|
|
105
|
-
- **Important findings**: N (resolved / remaining)
|
|
106
|
-
|
|
107
|
-
## Suggestions (non-blocking)
|
|
108
|
-
[Reviewer suggestions not addressed]
|
|
109
|
-
|
|
110
|
-
## Knowledge Stored
|
|
111
|
-
[What was saved to memory/vault for future use]
|
|
112
|
-
```
|
|
112
|
+
Show the full post-completion summary (see swarm-output-style skill). Include:
|
|
113
|
+
- Status (PASS / NEEDS ATTENTION / FAILED)
|
|
114
|
+
- Metrics (phases, agents, duration, tokens, cost)
|
|
115
|
+
- What changed (files with git diff --stat if available)
|
|
116
|
+
- Review gate result with per-reviewer table
|
|
117
|
+
- Non-blocking suggestions
|
|
118
|
+
- Knowledge stored
|
|
119
|
+
- Next steps (git diff, tests, /verify)
|
|
113
120
|
|
|
114
121
|
### Cleanup
|
|
115
|
-
1. Send `shutdown_request`
|
|
122
|
+
1. Send `shutdown_request` to any remaining active teammates
|
|
116
123
|
2. Call `TeamDelete` to clean up the team
|
|
117
124
|
|
|
118
125
|
## Rules
|
|
119
|
-
-
|
|
120
|
-
-
|
|
121
|
-
-
|
|
126
|
+
- **Show the plan first, spend tokens second** -- never spawn agents before user approval
|
|
127
|
+
- All agents must use team protocol (TeamCreate, Agent with team_name/name/run_in_background, SendMessage shutdown, TeamDelete)
|
|
128
|
+
- Delegate to dedicated commands when a pattern match exists
|
|
122
129
|
- Include full context in every agent dispatch (agents don't share memory within a session)
|
|
123
130
|
- Use the cheapest model that can handle each task (sonnet for research, opus for implementation/review)
|
|
124
131
|
- Check engine memory before starting for relevant context
|
|
125
132
|
- Record outcomes to engine memory after completion
|
|
133
|
+
- Follow the swarm-output-style skill for ALL output formatting
|
|
126
134
|
- Maximum 2 fix iterations before escalating remaining issues to the user
|
package/commands/tdd.md
CHANGED
|
@@ -5,23 +5,43 @@ argument-hint: "<feature description>"
|
|
|
5
5
|
|
|
6
6
|
You are running a strict TDD cycle: Red → Green → Review.
|
|
7
7
|
|
|
8
|
+
Follow the `swarm-output-style` skill for ALL output formatting.
|
|
9
|
+
|
|
8
10
|
## Task
|
|
9
11
|
$ARGUMENTS
|
|
10
12
|
|
|
11
13
|
## Workflow
|
|
12
14
|
|
|
15
|
+
### Step 0: Show Pre-flight Plan
|
|
16
|
+
|
|
17
|
+
Before creating any team or spawning any agent, show the plan:
|
|
18
|
+
|
|
19
|
+
Show the pre-flight plan (see swarm-output-style skill). Include:
|
|
20
|
+
- All phases (Research, Write Failing Test, Implement, Verify, Review)
|
|
21
|
+
- Agents per phase with model and focus
|
|
22
|
+
- Estimated cost (~$0.08 research, ~$0.13 test, ~$0.19 implement, ~$0.13 verify, ~$0.29 review)
|
|
23
|
+
- Estimated time (~10-20 min total)
|
|
24
|
+
|
|
25
|
+
Wait for user approval before proceeding.
|
|
26
|
+
|
|
13
27
|
### Setup: Create Team
|
|
14
28
|
1. Create a team with `TeamCreate` (name: `tdd-<timestamp>`, e.g., `tdd-1234`)
|
|
15
29
|
2. Create tasks with `TaskCreate` for each phase of the TDD cycle
|
|
16
30
|
|
|
17
31
|
### Phase 1: Research — parallel
|
|
32
|
+
|
|
33
|
+
Show the phase banner with running total (see swarm-output-style skill).
|
|
34
|
+
|
|
18
35
|
Spawn 2 researcher teammates simultaneously, each with `team_name`, `name`, and `run_in_background: true`:
|
|
19
36
|
- **Researcher A** (`researcher-code`, sonnet): Existing code patterns, interfaces, and the module where the feature belongs
|
|
20
37
|
- **Researcher B** (`researcher-tests`, sonnet): Test patterns, fixtures, test infrastructure, and how similar features are tested
|
|
21
38
|
|
|
22
|
-
As each
|
|
39
|
+
As each completes: show a one-line completion summary (see swarm-output-style skill), then send `shutdown_request` via `SendMessage`.
|
|
23
40
|
|
|
24
41
|
### Phase 2: Write Failing Test — sequential (depends on Phase 1)
|
|
42
|
+
|
|
43
|
+
Show the phase banner with running total (see swarm-output-style skill).
|
|
44
|
+
|
|
25
45
|
Spawn a tester teammate (opus) with `team_name`, `name` (e.g., `tester-red`), and `run_in_background: true`, with research context. The tester must:
|
|
26
46
|
1. Write test(s) that describe the desired behavior
|
|
27
47
|
2. Run the tests
|
|
@@ -29,54 +49,52 @@ Spawn a tester teammate (opus) with `team_name`, `name` (e.g., `tester-red`), an
|
|
|
29
49
|
|
|
30
50
|
If the tests pass, the feature already exists — report this and stop.
|
|
31
51
|
|
|
32
|
-
As the teammate completes, send
|
|
52
|
+
As the teammate completes: show a one-line completion summary (see swarm-output-style skill), then send `shutdown_request` via `SendMessage`.
|
|
33
53
|
|
|
34
54
|
Present the failing tests to the user. Proceed to implementation after approval.
|
|
35
55
|
|
|
36
56
|
### Phase 3: Implement — sequential (depends on Phase 2)
|
|
57
|
+
|
|
58
|
+
Show the phase banner with running total (see swarm-output-style skill).
|
|
59
|
+
|
|
37
60
|
Spawn an implementer teammate (opus) with `team_name`, `name` (e.g., `implementer`), and `run_in_background: true`, with:
|
|
38
61
|
- The failing test(s) as the specification
|
|
39
62
|
- All research context from Phase 1
|
|
40
63
|
- Goal: make the tests pass with **minimal code** — no extras
|
|
41
64
|
|
|
42
|
-
As the teammate completes, send
|
|
65
|
+
As the teammate completes: show a one-line completion summary (see swarm-output-style skill), then send `shutdown_request` via `SendMessage`.
|
|
43
66
|
|
|
44
67
|
### Phase 4: Verify — sequential (depends on Phase 3)
|
|
68
|
+
|
|
69
|
+
Show the phase banner with running total (see swarm-output-style skill).
|
|
70
|
+
|
|
45
71
|
Spawn a tester teammate (sonnet) with `team_name`, `name` (e.g., `tester-green`), and `run_in_background: true` to run the full test suite:
|
|
46
72
|
- All tests must pass (green phase)
|
|
47
73
|
- If **new** tests fail → send back to implementer with failure details
|
|
48
74
|
- If **unrelated** tests fail → report regression and stop
|
|
49
75
|
|
|
50
|
-
As the teammate completes, send
|
|
76
|
+
As the teammate completes: show a one-line completion summary (see swarm-output-style skill), then send `shutdown_request` via `SendMessage`.
|
|
51
77
|
|
|
52
78
|
### Phase 5: Review — parallel (depends on Phase 4)
|
|
79
|
+
|
|
80
|
+
Show the phase banner with running total (see swarm-output-style skill).
|
|
81
|
+
|
|
53
82
|
Spawn 2 reviewer teammates simultaneously, each with `team_name`, `name`, and `run_in_background: true`, on the implementation (not the tests):
|
|
54
83
|
1. **Correctness reviewer** (`reviewer-correctness`, opus) — Logic, edge cases, error handling
|
|
55
84
|
2. **Convention reviewer** (`reviewer-convention`, sonnet) — Project patterns, naming, structure
|
|
56
85
|
|
|
57
|
-
As each
|
|
86
|
+
As each completes: show a one-line verdict (PASS/FAIL + finding count) (see swarm-output-style skill), then send `shutdown_request` via `SendMessage`.
|
|
58
87
|
|
|
59
88
|
### Phase 6: Report
|
|
60
89
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
-
|
|
69
|
-
|
|
70
|
-
### Implementation
|
|
71
|
-
- [file:line — what was added/changed]
|
|
72
|
-
|
|
73
|
-
### Review Findings
|
|
74
|
-
- Correctness: [PASS/FAIL — findings]
|
|
75
|
-
- Conventions: [PASS/FAIL — findings]
|
|
76
|
-
|
|
77
|
-
### Test Results
|
|
78
|
-
[Full suite pass/fail summary]
|
|
79
|
-
```
|
|
90
|
+
Show the full post-completion summary (see swarm-output-style skill). Include:
|
|
91
|
+
- Status (PASS / NEEDS ATTENTION / FAILED)
|
|
92
|
+
- Metrics (phases, agents, duration, tokens, cost)
|
|
93
|
+
- What changed (test file:line and implementation file:line)
|
|
94
|
+
- Review gate result with per-reviewer table
|
|
95
|
+
- Test results (full suite pass/fail count)
|
|
96
|
+
- Non-blocking suggestions
|
|
97
|
+
- Next steps
|
|
80
98
|
|
|
81
99
|
### Cleanup
|
|
82
100
|
1. Send `shutdown_request` via `SendMessage` to any remaining active teammates
|
|
@@ -89,3 +107,5 @@ As each reviewer teammate completes, send it a `shutdown_request` via `SendMessa
|
|
|
89
107
|
- Implement minimally — no gold-plating, no anticipatory code
|
|
90
108
|
- If tests pass before implementation, the feature already exists — stop and report
|
|
91
109
|
- Use opus for writing tests and implementation, sonnet for verification and convention review
|
|
110
|
+
- Follow the swarm-output-style skill for ALL output formatting
|
|
111
|
+
- Show the plan first, spend tokens second
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acp.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/acp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"acp.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/acp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,eAAO,MAAM,UAAU,SAgCnB,CAAC"}
|
package/dist/cli/commands/acp.js
CHANGED
|
@@ -19,11 +19,21 @@ export const acpCommand = new Command('acp')
|
|
|
19
19
|
if (options.engine) {
|
|
20
20
|
engine = new SwarmEngine({ registry, bus, logger, mock: false, nonInteractive: true });
|
|
21
21
|
}
|
|
22
|
-
const server = new ACPServer({
|
|
22
|
+
const server = new ACPServer({
|
|
23
|
+
port: parseInt(options.port, 10),
|
|
24
|
+
host: options.host,
|
|
25
|
+
registry,
|
|
26
|
+
bus,
|
|
27
|
+
logger,
|
|
28
|
+
engine,
|
|
29
|
+
});
|
|
23
30
|
await server.start();
|
|
24
31
|
console.log(chalk.green(`ACP server on http://${options.host}:${options.port}`));
|
|
25
32
|
console.log(` Engine: ${engine ? chalk.green('connected') : chalk.dim('disabled (--no-engine)')}`);
|
|
26
33
|
console.log(` GET /health | GET /agents | POST /sessions | POST /sessions/:id/messages`);
|
|
27
|
-
process.on('SIGINT', async () => {
|
|
34
|
+
process.on('SIGINT', async () => {
|
|
35
|
+
await server.stop();
|
|
36
|
+
process.exit(0);
|
|
37
|
+
});
|
|
28
38
|
});
|
|
29
39
|
//# sourceMappingURL=acp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acp.js","sourceRoot":"","sources":["../../../src/cli/commands/acp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC;KACzC,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,mBAAmB,EAAE,MAAM,EAAE,MAAM,CAAC;KAC3C,MAAM,CAAC,mBAAmB,EAAE,MAAM,EAAE,WAAW,CAAC;KAChD,MAAM,CAAC,aAAa,EAAE,oCAAoC,CAAC;KAC3D,MAAM,CAAC,KAAK,EAAE,OAAwD,EAAE,EAAE;IACzE,MAAM,GAAG,GAAG,IAAI,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"acp.js","sourceRoot":"","sources":["../../../src/cli/commands/acp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC;KACzC,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,mBAAmB,EAAE,MAAM,EAAE,MAAM,CAAC;KAC3C,MAAM,CAAC,mBAAmB,EAAE,MAAM,EAAE,WAAW,CAAC;KAChD,MAAM,CAAC,aAAa,EAAE,oCAAoC,CAAC;KAC3D,MAAM,CAAC,KAAK,EAAE,OAAwD,EAAE,EAAE;IACzE,MAAM,GAAG,GAAG,IAAI,QAAQ,EAAE,EACxB,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAClC,QAAQ,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;IACpC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEzE,IAAI,MAA+B,CAAC;IACpC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,GAAG,IAAI,WAAW,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QAChC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,QAAQ;QACR,GAAG;QACH,MAAM;QACN,MAAM;KACP,CAAC,CAAC;IACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wBAAwB,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;IACpG,OAAO,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC;IAC1F,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QAC9B,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,aAAa,SAAgE,CAAC"}
|