Skill Tracer
Skills › Superpowers › dispatching-parallel-agents

dispatching-parallel-agents

skill · 167 lines · MIT · skills/dispatching-parallel-agents/SKILL.md

The facts

Its description

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

The description the agent reads to decide when to use it.

From its settingsline 3

When it starts

The agent would pick this skill when the person describes several tasks, failures, or problem areas that look unrelated and could be worked on at the same time without touching the same state. The name and description both stress "2+ independent tasks" with no shared state or sequential dependencies, so a request to fix or build multiple separate things at once is what sets it off.

Things a person might say (the model's guesses)

  • “I've got three failing test files with unrelated causes — can you fix them all?”
  • “There are four independent modules that each need a small fix; please get them done.”
  • “Six tests are failing across three files after a refactor and they don't seem related to each other.”

A model's summary of when it is used.

A model's reading

Starts other agents

11 lines mention starting other agents (first 5 linked)

Lines in the file that mention starting another agent. Found by matching words, so treat them as pointers.

Found by matching wordsline 6 line 14 line 26 line 31 line 66

Licence

MIT, from LICENSE

The terms its author shares it under, which let it be shown here.

From the repositorylicence text

The text

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1---
2name: dispatching-parallel-agents
3description: Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
4---
5
6# Dispatching Parallel Agents
7

Dispatching Parallel Agents

Raw lines 1 to 7
Starts an agent Dispatching :6
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.
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.
14**Core principle:** Dispatch one agent per independent problem domain. Let them work concurrently.

Overview

You 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.

When 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.

Core principle: Dispatch one agent per independent problem domain. Let them work concurrently.

Raw lines 8 to 15
Starts an agent Dispatch :14
16## When to Use
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];
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"];
34```
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
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

When to Use

digraph when_to_use {
    "Multiple failures?" [shape=diamond];
    "Are they independent?" [shape=diamond];
    "Single agent investigates all" [shape=box];
    "One agent per problem domain" [shape=box];
    "Can they work in parallel?" [shape=diamond];
    "Sequential agents" [shape=box];
    "Parallel dispatch" [shape=box];

    "Multiple failures?" -> "Are they independent?" [label="yes"];
    "Are they independent?" -> "Single agent investigates all" [label="no - related"];
    "Are they independent?" -> "Can they work in parallel?" [label="yes"];
    "Can they work in parallel?" -> "Parallel dispatch" [label="yes"];
    "Can they work in parallel?" -> "Sequential agents" [label="no - shared state"];
}

Use when:

  • 3+ test files failing with different root causes
  • Multiple subsystems broken independently
  • Each problem can be understood without context from others
  • No shared state between investigations

Don't use when:

  • Failures are related (fix one might fix others)
  • Need to understand full system state
  • Agents would interfere with each other
Raw lines 16 to 46
Starts an agent dispatch :26
47## The Pattern
49### 1. Identify Independent Domains
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
56Each domain is independent - fixing tool approval doesn't affect abort tests.

1. Identify Independent Domains

Group failures by what's broken:

  • File A tests: Tool approval flow
  • File B tests: Batch completion behavior
  • File C tests: Abort functionality

Each domain is independent - fixing tool approval doesn't affect abort tests.

Raw lines 49 to 57
58### 2. Create Focused Agent Tasks
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

2. Create Focused Agent Tasks

Each agent gets:

  • Specific scope: One test file or subsystem
  • Clear goal: Make these tests pass
  • Constraints: Don't change other code
  • Expected output: Summary of what you found and fixed
Raw lines 58 to 65
66### 3. Dispatch in Parallel
68Issue all three subagent dispatches in the same response — they run in parallel:
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```
77Multiple dispatch calls in one response = parallel execution. One per response = sequential.

3. Dispatch in Parallel

Issue all three subagent dispatches in the same response — they run in parallel:

Subagent (general-purpose): "Fix agent-tool-abort.test.ts failures"
Subagent (general-purpose): "Fix batch-completion-behavior.test.ts failures"
Subagent (general-purpose): "Fix tool-approval-race-conditions.test.ts failures"
# All three run concurrently.

Multiple dispatch calls in one response = parallel execution. One per response = sequential.

Raw lines 66 to 78
Starts an agent Dispatch :66
Starts an agent subagent :68
Starts an agent dispatches :68
Starts an agent Subagent :71
Starts an agent dispatch :77
79### 4. Review and Integrate
81When agents return:
82- Read each summary
83- Verify fixes don't conflict
84- Run full test suite
85- Integrate all changes

4. Review and Integrate

When agents return:

  • Read each summary
  • Verify fixes don't conflict
  • Run full test suite
  • Integrate all changes
Raw lines 79 to 86
87## Agent Prompt Structure
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?
94```markdown
95Fix the 3 failing tests in src/agents/agent-tool-abort.test.ts:
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
101These are timing/race condition issues. Your task:
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
110Do NOT just increase timeouts - find the real issue.
112Return: Summary of what you found and what you fixed.
113```

Agent Prompt Structure

Good agent prompts are:

  1. Focused - One clear problem domain
  2. Self-contained - All context needed to understand the problem
  3. Specific about output - What should the agent return?
Fix the 3 failing tests in src/agents/agent-tool-abort.test.ts:

1. "should abort tool with partial output capture" - expects 'interrupted at' in message
2. "should handle mixed completed and aborted tools" - fast tool aborted instead of completed
3. "should properly track pendingToolCount" - expects 3 results but gets 0

These are timing/race condition issues. Your task:

1. Read the test file and understand what each test verifies
2. Identify root cause - timing issues or actual bugs?
3. Fix by:
   - Replacing arbitrary timeouts with event-based waiting
   - Fixing bugs in abort implementation if found
   - Adjusting test expectations if testing changed behavior

Do NOT just increase timeouts - find the real issue.

Return: Summary of what you found and what you fixed.
Raw lines 87 to 114
115## Common Mistakes
117**❌ Too broad:** "Fix all the tests" - agent gets lost
118**✅ Specific:** "Fix agent-tool-abort.test.ts" - focused scope
120**❌ No context:** "Fix the race condition" - agent doesn't know where
121**✅ Context:** Paste the error messages and test names
123**❌ No constraints:** Agent might refactor everything
124**✅ Constraints:** "Do NOT change production code" or "Fix tests only"
126**❌ Vague output:** "Fix it" - you don't know what changed
127**✅ Specific:** "Return summary of root cause and changes"

Common Mistakes

❌ Too broad: "Fix all the tests" - agent gets lost ✅ Specific: "Fix agent-tool-abort.test.ts" - focused scope

❌ No context: "Fix the race condition" - agent doesn't know where ✅ Context: Paste the error messages and test names

❌ No constraints: Agent might refactor everything ✅ Constraints: "Do NOT change production code" or "Fix tests only"

❌ Vague output: "Fix it" - you don't know what changed ✅ Specific: "Return summary of root cause and changes"

Raw lines 115 to 128
129## When NOT to Use
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)

When NOT to Use

Related failures: Fixing one might fix others - investigate together first Need full context: Understanding requires seeing entire system Exploratory debugging: You don't know what's broken yet Shared state: Agents would interfere (editing same files, using same resources)

Raw lines 129 to 135
136## Real Example from Session
138**Scenario:** 6 test failures across 3 files after major refactoring
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)
145**Decision:** Independent domains - abort logic separate from batch completion separate from race conditions
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```
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
159**Integration:** All fixes independent, no conflicts, full suite green

Real Example from Session

Scenario: 6 test failures across 3 files after major refactoring

Failures:

  • agent-tool-abort.test.ts: 3 failures (timing issues)
  • batch-completion-behavior.test.ts: 2 failures (tools not executing)
  • tool-approval-race-conditions.test.ts: 1 failure (execution count = 0)

Decision: Independent domains - abort logic separate from batch completion separate from race conditions

Dispatch:

Agent 1 → Fix agent-tool-abort.test.ts
Agent 2 → Fix batch-completion-behavior.test.ts
Agent 3 → Fix tool-approval-race-conditions.test.ts

Results:

  • Agent 1: Replaced timeouts with event-based waiting
  • Agent 2: Fixed event structure bug (threadId in wrong place)
  • Agent 3: Added wait for async tool execution to complete

Integration: All fixes independent, no conflicts, full suite green

Raw lines 136 to 160
Starts an agent Dispatch :147
161## Verification
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

Verification

After agents return:

  1. Review each summary - Understand what changed
  2. Check for conflicts - Did agents edit same code?
  3. Run full suite - Verify all fixes work together
  4. Spot check - Agents can make systematic errors
Raw lines 161 to 167

From obra/superpowers at 2ce8aa1, 2026-10-21. Skills read by DeepSeek V4.1 Flash on 2026-11-04. Summary and techniques by Claude Opus 5.5 on 2026-11-06.