spawn-parallel
Pattern for spawning parallel subagents efficiently. Use when you need multiple independent tasks done concurrently.
When & Why to Use This Skill
The Spawn Parallel skill provides a high-performance pattern for orchestrating multiple Claude subagents concurrently. It is designed to optimize agentic workflows by breaking down complex, independent tasks into parallel streams, significantly reducing total execution time and improving the efficiency of codebase exploration, implementation, and verification.
Use Cases
- Concurrent Codebase Exploration: Deploy multiple 'explorer' agents simultaneously to analyze different modules (e.g., Auth, API, and Database) to quickly map out a large repository.
- Parallel Feature Implementation: Assign independent coding tasks to multiple 'implementer' agents with defined file boundaries to build features without sequential bottlenecks.
- Automated Testing and Verification: Spawn 'tester' and 'verifier' agents in parallel to validate different parts of a project or pull request concurrently.
- Batch Task Processing with Error Recovery: Execute a series of independent data or file operations in a single batch, with built-in logic to retry or escalate individual failures without stopping the entire workflow.
| name | spawn-parallel |
|---|---|
| description | Pattern for spawning parallel subagents efficiently. Use when you need multiple independent tasks done concurrently. |
| allowed-tools | Task |
Spawn Parallel Skill
Pattern for spawning and coordinating parallel subagents.
When to Load This Skill
- You have multiple independent tasks
- Tasks don't depend on each other's output
- You want to maximize concurrency
Spawning Pattern
1. Identify Independent Tasks
Tasks are independent if:
- No data dependencies between them
- No file conflicts (different files or read-only)
- Can complete in any order
2. Prepare Contexts
Each subagent needs minimal, focused context:
{"task":{"id":"unique_id","description":"specific task"},"context_files":["only relevant files"],"boundaries":{"owns":["files this agent can modify"],"reads":["files for reference"]},"output_path":"memory/tasks/{id}/output.json"}
3. Spawn All at Once
Use multiple Task calls in single response:
Task(subagent_type: "implementer", model: "sonnet", prompt: "Task 1...")
Task(subagent_type: "implementer", model: "sonnet", prompt: "Task 2...")
Task(subagent_type: "implementer", model: "sonnet", prompt: "Task 3...")
Subagent Type Reference (Custom Dotagent Agents):
| Type | Model | Use For |
|---|---|---|
explorer |
haiku | Fast codebase scouting |
implementer |
sonnet | Focused code writing |
verifier |
haiku | Independent verification |
tester |
haiku | Test execution |
Note: These are custom dotagent agents (lowercase). Built-in Claude Code
agents like Explore and Plan (capitalized) have different behavior.
4. Collect and Validate
After all complete:
- Check each output file exists
- Validate against schema
- Handle failures (retry or escalate)
Coordination Rules
Prevent Conflicts
- Define clear file ownership per agent
- Use contracts for shared interfaces
- Read-only access to shared resources
Handle Failures
Individual failures don't fail the batch. Apply recovery strategies from @.claude/skills/error-recovery/SKILL.md:
FOR each failed task in batch:
IF output malformed/timeout:
→ Simple Retry (same prompt, up to 3x)
ELIF agent said "unclear"/"don't understand":
→ Context Enhancement (add files, clarify)
ELIF partial completion:
→ Scope Reduction (split into subtasks)
ELIF boundary/contract violation:
→ Escalation (spawn contract-resolver)
ELIF 3+ attempts failed:
→ Abort, record failure, continue with others
Retry with Context Enhancement Example:
Task(
subagent_type: "implementer",
model: "sonnet",
prompt: |
## RETRY - Previous attempt failed
Error: "Unclear how to connect to database"
## Additional Context
See database config: @src/config/database.ts
Connection pattern: @src/services/db-connection.ts
## Original Task
{original_task_description}
Output: memory/tasks/{id}/output.json
)
Example: Parallel Explorers
# Spawn 3 custom explorer agents in parallel
Task(
subagent_type: "explorer", # Custom dotagent agent
model: "haiku",
prompt: "Explore authentication code. Return compact JSON with findings."
)
Task(
subagent_type: "explorer",
model: "haiku",
prompt: "Explore API routes. Return compact JSON with findings."
)
Task(
subagent_type: "explorer",
model: "haiku",
prompt: "Explore database models. Return compact JSON with findings."
)
All run concurrently, results collected when all complete.
Example: Mixed Agent Types
# Parallel implementation with different boundaries
Task(
subagent_type: "implementer",
model: "sonnet",
prompt: |
Task: Add user validation
Boundaries: owns=[src/validators/user.ts], reads=[src/types/]
Output: memory/tasks/task-001/output.json
)
Task(
subagent_type: "implementer",
model: "sonnet",
prompt: |
Task: Add email service
Boundaries: owns=[src/services/email.ts], reads=[src/config/]
Output: memory/tasks/task-002/output.json
)