Skills · Coding

Dispatching Parallel Agents

Unverified30/40

Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies

Originally by obra · MIT

Claude CodePartialHas SKILL.md but declares no allowed-tools — Claude Code will ask for permission each time
CursorPartialPlain prose you can paste in — but no Cursor rules file
CodexPartialPlain prose you can paste in — but no AGENTS.md
Gemini CLIPartialPlain prose you can paste in
CopilotPartialPlain prose you can paste in — but no Copilot instructions file
npx agentalley add dispatching-parallel-agents

This command does not work yet — the CLI is still being built. Until then, use Raw in the reader below to take the file.

Who is stuck, and on what

Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies

The whole source

No sign-in, no blur, nothing truncated
dispatching-parallel-agents/SKILL.md168 lines5.9 KBRawView on GitHub
Frontmatter — 2 properties
namedispatching-parallel-agents
descriptionUse when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
1---
2name: dispatching-parallel-agents
3description: Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
4---A5No allowed-tools declared — no way to tell what this skill may touch
5 
6# Dispatching Parallel Agents
7 
8## Overview
9 
10You delegate tasks to specialized agents with isolated context. By precisely crafting their instructions and context, you ensure they stay focused and succeed at their task. They should never inherit your session's context or history — you construct exactly what they need. This also preserves your own context for coordination work.
11 
12When you have multiple unrelated failures (different test files, different subsystems, different bugs), investigating them sequentially wastes time. Each investigation is independent and can happen in parallel.
13 
14**Core principle:** Dispatch one agent per independent problem domain. Let them work concurrently.
15 
16## When to Use
17 
18```dot
19digraph when_to_use {
20 "Multiple failures?" [shape=diamond];
21 "Are they independent?" [shape=diamond];
22 "Single agent investigates all" [shape=box];
23 "One agent per problem domain" [shape=box];
24 "Can they work in parallel?" [shape=diamond];
25 "Sequential agents" [shape=box];
26 "Parallel dispatch" [shape=box];
27 
28 "Multiple failures?" -> "Are they independent?" [label="yes"];
29 "Are they independent?" -> "Single agent investigates all" [label="no - related"];
30 "Are they independent?" -> "Can they work in parallel?" [label="yes"];
31 "Can they work in parallel?" -> "Parallel dispatch" [label="yes"];
32 "Can they work in parallel?" -> "Sequential agents" [label="no - shared state"];
33}
34```
35 
36**Use when:**
37- 3+ test files failing with different root causes
38- Multiple subsystems broken independently
39- Each problem can be understood without context from others
40- No shared state between investigations
41 
42**Don't use when:**
43- Failures are related (fix one might fix others)
44- Need to understand full system state
45- Agents would interfere with each other
46 
47## The Pattern
48 
49### 1. Identify Independent Domains
50 
51Group failures by what's broken:
52- File A tests: Tool approval flow
53- File B tests: Batch completion behavior
54- File C tests: Abort functionality
55 
56Each domain is independent - fixing tool approval doesn't affect abort tests.
57 
58### 2. Create Focused Agent Tasks
59 
60Each agent gets:
61- **Specific scope:** One test file or subsystem
62- **Clear goal:** Make these tests pass
63- **Constraints:** Don't change other code
64- **Expected output:** Summary of what you found and fixed
65 
66### 3. Dispatch in Parallel
67 
68Issue all three subagent dispatches in the same response — they run in parallel:
69 
70```text
71Subagent (general-purpose): "Fix agent-tool-abort.test.ts failures"
72Subagent (general-purpose): "Fix batch-completion-behavior.test.ts failures"
73Subagent (general-purpose): "Fix tool-approval-race-conditions.test.ts failures"
74# All three run concurrently.
75```
76 
77Multiple dispatch calls in one response = parallel execution. One per response = sequential.
78 
79### 4. Review and Integrate
80 
81When agents return:
82- Read each summary
83- Verify fixes don't conflict
84- Run full test suite
85- Integrate all changes
86 
87## Agent Prompt Structure
88 
89Good agent prompts are:
901. **Focused** - One clear problem domain
912. **Self-contained** - All context needed to understand the problem
923. **Specific about output** - What should the agent return?
93 
94```markdown
95Fix the 3 failing tests in src/agents/agent-tool-abort.test.ts:
96 
971. "should abort tool with partial output capture" - expects 'interrupted at' in message
982. "should handle mixed completed and aborted tools" - fast tool aborted instead of completed
993. "should properly track pendingToolCount" - expects 3 results but gets 0
100 
101These are timing/race condition issues. Your task:
102 
1031. Read the test file and understand what each test verifies
1042. Identify root cause - timing issues or actual bugs?
1053. Fix by:
106 - Replacing arbitrary timeouts with event-based waiting
107 - Fixing bugs in abort implementation if found
108 - Adjusting test expectations if testing changed behavior
109 
110Do NOT just increase timeouts - find the real issue.
111 
112Return: Summary of what you found and what you fixed.
113```
114 
115## Common Mistakes
116 
117**❌ Too broad:** "Fix all the tests" - agent gets lost
118**✅ Specific:** "Fix agent-tool-abort.test.ts" - focused scope
119 
120**❌ No context:** "Fix the race condition" - agent doesn't know where
121**✅ Context:** Paste the error messages and test names
122 
123**❌ No constraints:** Agent might refactor everything
124**✅ Constraints:** "Do NOT change production code" or "Fix tests only"
125 
126**❌ Vague output:** "Fix it" - you don't know what changed
127**✅ Specific:** "Return summary of root cause and changes"
128 
129## When NOT to Use
130 
131**Related failures:** Fixing one might fix others - investigate together first
132**Need full context:** Understanding requires seeing entire system
133**Exploratory debugging:** You don't know what's broken yet
134**Shared state:** Agents would interfere (editing same files, using same resources)
135 
136## Real Example from Session
137 
138**Scenario:** 6 test failures across 3 files after major refactoring
139 
140**Failures:**
141- agent-tool-abort.test.ts: 3 failures (timing issues)
142- batch-completion-behavior.test.ts: 2 failures (tools not executing)
143- tool-approval-race-conditions.test.ts: 1 failure (execution count = 0)
144 
145**Decision:** Independent domains - abort logic separate from batch completion separate from race conditions
146 
147**Dispatch:**
148```
149Agent 1 → Fix agent-tool-abort.test.ts
150Agent 2 → Fix batch-completion-behavior.test.ts
151Agent 3 → Fix tool-approval-race-conditions.test.ts
152```
153 
154**Results:**
155- Agent 1: Replaced timeouts with event-based waiting
156- Agent 2: Fixed event structure bug (threadId in wrong place)
157- Agent 3: Added wait for async tool execution to complete
158 
159**Integration:** All fixes independent, no conflicts, full suite green
160 
161## Verification
162 
163After agents return:
1641. **Review each summary** - Understand what changed
1652. **Check for conflicts** - Did agents edit same code?
1663. **Run full suite** - Verify all fixes work together
1674. **Spot check** - Agents can make systematic errors
168 

Reviews

Installed this one?Write the first review and take the Trailblazer badge.

Reviews only open after a real install, so this is empty — and we leave it empty rather than invent one.

Alternatives

Also in Coding