/fleet Parallel Dispatch for squad watch --execute
Summary
Add a --dispatch-mode flag to the execute capability that enables hybrid dispatch: /fleet for read-heavy work (triage, analysis, reviews) and the existing task tool for write-heavy work (code changes, PRs).
Benchmark Results (tested on real issues)
| Metric |
Fleet (parallel) |
Sequential |
Improvement |
| Total time (4 issues) |
116s |
332s |
2.9x faster |
| Per-issue avg |
~29s |
~83s |
2.9x |
| Premium requests |
12 (~3/track) |
~16 |
~25% cheaper |
| MCP startup overhead |
1x (shared) |
4x (per process) |
4x less |
Quality Validation
Fleet correctly triaged 4 real open issues with proper urgency classification:
- 🔴 P0: DK8S on-call checklist — same-day action required
- 🟡 P1: NPD stale PR — SLA already breached
- 🟡 P1: Squad watch logging gaps — reliability issue
- ⚪ P2: Arxiv paper assessment — research task
Each track produced specific, actionable next steps — not generic summaries.
Key Finding: Fleet Ignores Custom Agents
When referencing @seven or @data in a /fleet prompt, Copilot CLI spawns generic explore agents, NOT the custom agents from .github/agents/. This means agent charters are NOT followed in fleet mode.
Implication: Fleet is ideal for read-only analysis but NOT for charter-driven code changes.
Proposed Design
Add --dispatch-mode to watch CLI flags:
// New flag in cli-entry.ts
const dispatchMode = args.includes('--dispatch-mode')
? args[args.indexOf('--dispatch-mode') + 1] as 'fleet' | 'task' | 'hybrid'
: undefined;
Modify the execute capability to support three modes:
// In execute.ts
if (dispatchMode === 'fleet') {
await executeViaFleet(batch, context);
} else if (dispatchMode === 'hybrid') {
const { reads, writes } = classifyIssues(batch);
if (reads.length) await executeViaFleet(reads, context);
if (writes.length) await Promise.all(writes.map(i => executeOne(i, context)));
} else {
// Default: existing Promise.all behavior (unchanged)
await Promise.all(batch.map(i => executeOne(i, context)));
}
Issue classification by title keywords:
- Read-heavy → fleet:
research, review, analyze, investigate, audit, check, scan, assess, evaluate, fact-check, document, report
- Write-heavy → task tool:
fix, implement, create, build, refactor, add, update, migrate, deploy, feature
New files needed
packages/squad-cli/src/cli/commands/watch/capabilities/fleet-dispatch.ts — fleet dispatch capability
- Update
packages/squad-cli/src/cli/commands/watch/capabilities/execute.ts — add hybrid dispatch mode
- Update
packages/squad-cli/src/cli-entry.ts — add --dispatch-mode flag
How /fleet works (reference)
Blog: https://github.blog/ai-and-ml/github-copilot/run-multiple-agents-at-once-with-fleet-in-copilot-cli/
copilot -p "/fleet Execute these tracks in parallel:
Track 1 (seven): Research issue #42
Track 2 (q): Fact-check PR #43
..." --allow-all --no-ask-user --autopilot
Important gotchas:
- Don't use
-s (silent) flag — suppresses results
- Write prompt to temp file — PowerShell splits multi-line CLI args
- Custom agents ignored — fleet uses generic explore agents
- Sub-agents share filesystem with no locking — need worktree isolation for writes
Relationship to PR #709
This builds on the watch capability plugin system from PR #709 (merged to dev). The execute capability already supports Promise.all parallelism — this adds fleet as an alternative dispatch mechanism for read-heavy work.
/fleet Parallel Dispatch for
squad watch --executeSummary
Add a
--dispatch-modeflag to the execute capability that enables hybrid dispatch:/fleetfor read-heavy work (triage, analysis, reviews) and the existingtasktool for write-heavy work (code changes, PRs).Benchmark Results (tested on real issues)
Quality Validation
Fleet correctly triaged 4 real open issues with proper urgency classification:
Each track produced specific, actionable next steps — not generic summaries.
Key Finding: Fleet Ignores Custom Agents
When referencing
@sevenor@datain a/fleetprompt, Copilot CLI spawns generic explore agents, NOT the custom agents from.github/agents/. This means agent charters are NOT followed in fleet mode.Implication: Fleet is ideal for read-only analysis but NOT for charter-driven code changes.
Proposed Design
Add
--dispatch-modeto watch CLI flags:Modify the execute capability to support three modes:
Issue classification by title keywords:
research,review,analyze,investigate,audit,check,scan,assess,evaluate,fact-check,document,reportfix,implement,create,build,refactor,add,update,migrate,deploy,featureNew files needed
packages/squad-cli/src/cli/commands/watch/capabilities/fleet-dispatch.ts— fleet dispatch capabilitypackages/squad-cli/src/cli/commands/watch/capabilities/execute.ts— add hybrid dispatch modepackages/squad-cli/src/cli-entry.ts— add--dispatch-modeflagHow /fleet works (reference)
Blog: https://github.blog/ai-and-ml/github-copilot/run-multiple-agents-at-once-with-fleet-in-copilot-cli/
Important gotchas:
-s(silent) flag — suppresses resultsRelationship to PR #709
This builds on the watch capability plugin system from PR #709 (merged to dev). The execute capability already supports
Promise.allparallelism — this adds fleet as an alternative dispatch mechanism for read-heavy work.