Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
61%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./skills/dispatching-parallel-agents/SKILL.mdYou 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.
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:
Don't use when:
Group failures by what's broken:
test/models/subscription_test.rb: Renewal date calculationtest/jobs/invoice_delivery_job_test.rb: Invoice email deliverytest/controllers/imports_controller_test.rb: CSV import flowEach domain is independent - fixing renewal dates doesn't affect invoice delivery.
Each agent gets:
Send all Agent tool calls in one message. Calls sent in separate messages run one after another.
Agent(description: "Fix subscription_test.rb", prompt: "...")
Agent(description: "Fix invoice_delivery_job_test.rb", prompt: "...")
Agent(description: "Fix imports_controller_test.rb", prompt: "...")
# All three run concurrentlyWhen agents return:
Good agent prompts are:
Fix the 3 failing tests in test/models/subscription_test.rb:
1. "renews on the same day next month" - expected 2026-03-31, got 2026-03-30
2. "renewal date ignores the user's time zone" - off by one day near midnight
3. "trial ends after 14 days" - passes locally, fails on CI
These look like time and time zone issues. Your task:
1. Read the test file and understand what each test verifies
2. Identify root cause - test setup or actual bugs in Subscription?
3. Fix by:
- Freezing time with `travel_to` instead of relying on the real clock
- Using `Time.current` / `Date.current` instead of `Time.now` / `Date.today`
- Fixing bugs in the renewal calculation if found
Do NOT add `sleep`, retries, or loosen assertions - find the real issue.
Run only this file: bin/rails test test/models/subscription_test.rb
Return: Summary of the root cause and what you changed.❌ Too broad: "Fix all the tests" - agent gets lost ✅ Specific: "Fix subscription_test.rb" - 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"
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)
Scenario: 6 test failures across 3 files after a Rails upgrade
Failures:
Decision: Independent domains - date math separate from email delivery separate from imports
Dispatch:
Agent 1 → Fix subscription_test.rb
Agent 2 → Fix invoice_delivery_job_test.rb
Agent 3 → Fix imports_controller_test.rbResults:
Date.today with Date.current and froze time with travel_toinvoice.id but perform expected an Invoicesleep 1 with perform_enqueued_jobs so the import job runs inside the testIntegration: All fixes independent, no conflicts, bin/rails test green
Time saved: 3 problems solved in parallel vs sequentially
After agents return:
lucianghinda/superpowers-ruby
a7d6d13
Canonical home
since Jan 28, 2026
Also appears in
last in sync Mar 12, 2026
last in sync Mar 12, 2026
since Oct 20, 2026
last in sync Jun 18, 2026
since Jul 24, 2026
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.