Parallel Execution Skill
Manage parallel work item execution and coordination.
When to Use
- Running multiple work items concurrently
- Monitoring status of background tasks
- Coordinating non-blocking patterns
- Operating in L3 autonomy mode
Parallel Execution Rules
Independence Check
Before parallel execution, verify:
- No data dependencies between items
- No file conflicts (same file modified)
- No sequential requirements (check BlockedBy)
Maximum Concurrency
- Default: 5 parallel items
- Configurable via
autonomy.max_parallel - Respect system resource limits
Non-Blocking Patterns
Launch Background Task (Claude Code)
Task tool with run_in_background: true
- Returns immediately with task ID
- Continue with other work
- Check status periodically
Monitor Status
TaskOutput with task_id, block: false
- Non-blocking status check
- Returns current progress
Wait for Completion
TaskOutput with task_id, block: true
- Blocks until task completes
- Returns final result
Queue-Based Execution
Identify Parallel Items
From .agent/queue/, items can run in parallel if:
- Neither has
BlockedByreferencing the other - They modify different files/components
- They're independent features
Launch Parallel Work
# Example: two independent items
# 001-pending-frontend.md (no blockers)
# 002-pending-backend.md (no blockers)
# Can run in parallel
Track Status in Queue
Update status in filenames:
pending→in_progresswhen startedin_progress→completedwhen donein_progress→blockedif dependency issue found
Prioritization
- Items blocking others (critical path)
- Independent items (parallelizable)
- Items with most blockers (finish last)
Error Handling
L3 (continue_on_error: true):
- Log failed items
- Continue with remaining items
- Report all failures at end
L1/L2:
- Stop on first failure
- Report error to user
- Await guidance
Coordination Patterns
Fork-Join Pattern
- Identify independent work items
- Launch all in parallel (Task tool with run_in_background)
- Wait for all to complete
- Aggregate results
Pipeline Pattern
- Item A produces output
- Item B blocked by A
- Execute sequentially
- Respect BlockedBy in queue files
