From groundwork
Parallel swarm debugging for bugs with multiple plausible explanations. Multiple agent teams test competing hypotheses simultaneously to avoid anchoring bias and converge on root cause faster.
How this skill is triggered — by the user, by Claude, or both
Slash command
/groundwork:swarm-debug [bug description][bug description]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Parallel adversarial investigation. Multiple teammates test competing hypotheses simultaneously, actively trying to disprove each other. Converges on root cause faster by fighting anchoring bias.
Parallel adversarial investigation. Multiple teammates test competing hypotheses simultaneously, actively trying to disprove each other. Converges on root cause faster by fighting anchoring bias.
Core principle: One investigator anchors on their first theory. A team of investigators who must disprove each other cannot.
This skill extends the groundwork:debug workflow. Phases 1-2 and 4-5 follow that skill exactly. Phase 3 (ISOLATE) is replaced by parallel swarm investigation using Claude Code agent teams.
Your current effort level is {{effort_level}}.
Skip this step silently if effort is high, xhigh, or max (the scale is low < medium < high < xhigh < max, so xhigh and max are already above high) AND you are Opus (1M context).
If effort is low or medium (i.e. below high), you MUST show the recommendation prompt — regardless of model.
If you are not Opus (1M context), you MUST show the recommendation prompt - regardless of effort level.
Otherwise → use AskUserQuestion:
{
"questions": [{
"question": "Do you want to switch? Hypothesis generation quality determines whether the entire swarm investigates the right space.\n\nTo switch: cancel, run `/model opus[1m]` and `/effort high`, then re-invoke this skill.",
"header": "Recommended: Opus (1M context) at high effort",
"options": [
{ "label": "Continue" },
{ "label": "Cancel — I'll switch first" }
],
"multiSelect": false
}]
}
If the user selects "Cancel — I'll switch first": output the switching commands above and stop. Do not proceed with the skill.
This skill requires the agent teams experimental feature.
To enable:
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=true"experimentalAgentTeams": trueIf agent teams is not available: Fall back to the standard groundwork:debug skill and run Phase 3 sequentially. Note to the user that enabling agent teams would allow parallel investigation.
Use swarm debugging instead of standard debugging when:
Use standard debugging when:
UNDERSTAND → REPRODUCE → ISOLATE (SWARM) → FIX → VERIFY
│ │ │ │ │
└────────────┴────────────┴───────────────┴───────┘
│
DEBUG JOURNAL
.debug/{slug}.md
Follow the groundwork:debug skill's Phase 1 exactly.
Read the system. Check your assumptions. Don't touch anything yet. Trace the code path from input to failure. For multi-component systems, instrument at each boundary before forming hypotheses.
Create the debug journal at .debug/{slug}.md during this phase.
Follow the groundwork:debug skill's Phase 2 exactly.
Make it fail consistently and on demand. Create a minimal reproduction. Document reproduction steps in the debug journal.
This is where swarm debugging diverges. Instead of testing hypotheses sequentially, spawn an agent team to investigate them in parallel.
From the evidence gathered in Phases 1-2, generate 3-5 falsifiable hypotheses. Each must be:
Record all hypotheses in the debug journal under ### Swarm Hypotheses.
Example:
### Swarm Hypotheses
1. Race condition in session middleware — concurrent requests overwrite session data
2. Database connection leak — pool exhaustion causes timeouts under load
3. Cache invalidation bug — stale user record served after profile update
4. Memory leak in request parser — GC pause causes intermittent 500s
Create one teammate per hypothesis. Each teammate's prompt must include:
Teammate spawn prompt template:
You are investigating a bug as part of a swarm debugging team.
## Bug Context
[Paste reproduction steps and debug journal]
## Your Hypothesis (#N of M)
[The specific hypothesis assigned to this teammate]
## All Hypotheses Being Investigated
[Full numbered list]
## Your Mission
1. Gather evidence to PROVE your hypothesis (#N). Be specific: file paths, line numbers, command outputs.
2. Gather evidence to DISPROVE at least one other hypothesis. Message that teammate with your findings.
3. If another teammate messages you with evidence against your hypothesis, evaluate it honestly. If it's valid, acknowledge it.
4. When you reach a conclusion (Confirmed/Eliminated/Inconclusive), message the team lead with your verdict and all supporting evidence.
## Rules
- READ ONLY. Do not edit source files or tests. You may add temporary logging for diagnostics.
- Cite every claim: file:line, command output, or log entry.
- Be adversarial. Your job is to find truth, not to confirm your assignment.
- If your hypothesis is wrong, say so. Eliminating a hypothesis is as valuable as confirming one.
While teammates investigate:
Call convergence when one of these conditions is met:
Do NOT call convergence prematurely. Wait for teammates to actively challenge each other's findings. Early agreement without adversarial testing is a red flag.
Record all teammate findings in the debug journal's ## Swarm Evidence section (see journal format below). Include:
Dismiss the agent team. Remove any temporary logging or instrumentation added by teammates.
Follow the groundwork:debug skill's Phase 4 exactly.
State the root cause with a verification level. Write a failing test using TDD. Make the minimal fix. The root cause was identified by the swarm — now the lead executes the fix directly.
Follow the groundwork:debug skill's Phase 5 exactly.
Run the failing test, full test suite, and original reproduction. Review the fix with fresh eyes. Check related code paths.
Same 3-fix limit as the debug skill. If your third fix attempt fails, stop and escalate.
When escalating after swarm debugging, include all teammate findings in the escalation output — the breadth of parallel investigation makes the escalation more valuable than a sequential one.
## Escalation: [Bug Description]
### Swarm Investigation Summary
| Teammate | Hypothesis | Verdict | Key Evidence |
|----------|-----------|---------|--------------|
| 1 | [hypothesis] | [Confirmed/Eliminated/Inconclusive] | [summary] |
| 2 | [hypothesis] | [Confirmed/Eliminated/Inconclusive] | [summary] |
| ... | ... | ... | ... |
### What I tried
| # | Hypothesis | Fix Attempted | Result |
|---|-----------|---------------|--------|
| 1 | [hypothesis] | [what you changed] | [what happened] |
| ... | ... | ... | ... |
### Eliminated hypotheses
- [hypothesis]: eliminated because [evidence from teammate N]
### What I know
- [confirmed fact with evidence]
### Could this be architectural?
[assessment]
### Recommended next step
[specific suggestion]
Use the same .debug/{slug}.md format as the debug skill, with an additional ## Swarm Evidence section:
# Debug: {slug}
## Status
[Active | Swarm Investigating | Root Cause Found | Fixed | Escalated]
## Symptoms
[same as debug skill]
## Reproduction
[same as debug skill]
## Hypotheses
[same as debug skill — but populated from swarm results]
## Swarm Evidence
### Team Composition
| Teammate | Assigned Hypothesis | Status |
|----------|-------------------|--------|
| 1 | [hypothesis] | [Investigating/Concluded] |
| ... | ... | ... |
### Teammate Reports
#### Teammate 1: [Hypothesis summary]
**Verdict:** [Confirmed | Eliminated | Inconclusive]
**Evidence for:**
- [evidence with file:line citations]
**Evidence against:**
- [evidence with file:line citations]
**Cross-hypothesis findings:**
- [findings that affected other hypotheses]
#### Teammate 2: [Hypothesis summary]
[same structure]
### Convergence Decision
**Converged on:** [winning hypothesis or "no convergence"]
**Reasoning:** [why this hypothesis won / why investigation was inconclusive]
**Dissenting evidence:** [any remaining contradictions to address]
## Evidence Log
[same as debug skill]
## Root Cause
[same as debug skill]
## Fix
[same as debug skill]
## Resolution
[same as debug skill]
| Pitfall | Remedy |
|---|---|
| Spawning teammates before reproduction | Complete Phases 1-2 first. Teammates need shared context. |
| Too many hypotheses (>5) | Prioritize. More teammates means more noise, not more signal. |
| Too few hypotheses (<3) | If there's only one plausible theory, use standard debugging. |
| Teammates not challenging each other | Re-prompt with explicit adversarial instructions. Agreement without challenge is suspect. |
| Calling convergence too early | Wait for active disproof attempts. "No one disagreed" is not convergence. |
| Teammates editing code | Enforce read-only. Code conflicts between teammates waste more time than they save. |
| Ignoring dissenting evidence | Record it. If one teammate found contradicting evidence, the root cause analysis must address it. |
| Skipping cleanup | Remove all temporary logging/instrumentation before Phase 4. |
If agent teams is not available (feature not enabled or not supported):
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=true. Falling back to sequential debugging."Skill(skill="groundwork:debug") and continue with its standard Phase 3 (sequential hypothesis testing)Parallel investigation → Adversarial disproof → Convergence → Fix with failing test → Verify
Otherwise → you're just running multiple guessers in parallel
The swarm's power is adversarial challenge, not parallel agreement. If your teammates aren't trying to prove each other wrong, you're not swarm debugging.
npx claudepluginhub etr/groundworkDeploys parallel agent investigators to test multiple bug hypotheses simultaneously, gather confirming/disproving evidence, synthesize findings, rank causes, and apply minimal verified fixes.
Runs parallel AI agent investigations on a bug/issue and produces a consolidated debug report. Use for debugging, error analysis, or problem diagnosis.
Executes systematic debugging loop: reproduce bug, analyze root cause, apply fix, verify with independent agent challenge to confirm fundamental resolution over workarounds.