一键导入
competing-hypotheses
Use when debugging with unclear root cause and multiple plausible explanations that need parallel adversarial testing to converge on the answer
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when debugging with unclear root cause and multiple plausible explanations that need parallel adversarial testing to converge on the answer
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
| name | competing-hypotheses |
| description | Use when debugging with unclear root cause and multiple plausible explanations that need parallel adversarial testing to converge on the answer |
When the root cause is unclear, a single investigator anchors on the first plausible explanation. Multiple investigators testing competing theories — and actively trying to disprove each other — converge faster and more accurately.
Core principle: Adversarial debate eliminates weak hypotheses. The theory that survives structured attack is most likely correct.
Management theory: Psychological Safety (agents MUST challenge each other), Tuckman's Storming (debate is the mechanism, not a problem), Belbin Monitor-Evaluator (devil-advocate role is mandatory).
Don't use when:
coordinator (lead, acts as judge)
├── debugger × 2-5 (each tests one hypothesis)
└── devil-advocate × 1 (challenges all hypotheses)
Belbin coverage:
Sizing by complexity:
| Bug Complexity | Debuggers | Notes |
|---|---|---|
| 2 plausible causes | 2 | Minimum viable debate |
| 3-4 theories | 3-4 | Standard case |
| Systemic/unknown | 4-5 + devil-advocate | Maximum investigation |
Coordinator:
Spawn prompt template for debugger:
You are testing the hypothesis: [HYPOTHESIS]
Bug symptoms: [SYMPTOMS]
Reproduction steps: [STEPS]
Your job:
1. Find evidence FOR your hypothesis (prove it)
2. Find evidence AGAINST your hypothesis (disprove it)
3. Be honest — if your hypothesis is wrong, say so
4. Report: evidence for, evidence against, confidence (0-100%)
You MUST report disconfirming evidence. Hiding evidence that
disproves your hypothesis is a critical failure.
Devil-advocate spawn prompt:
You will review each debugger's findings.
For EACH hypothesis:
1. What evidence would definitively prove it? Did they find it?
2. What evidence would definitively disprove it? Did they look?
3. Are there alternative explanations for their evidence?
4. What tests would distinguish this hypothesis from others?
Your success metric is finding flaws. Approving a weak hypothesis
without challenge is a failure.
Each debugger independently:
Critical: Debuggers must report disconfirming evidence. The prompt explicitly requires this to prevent confirmation bias.
For each hypothesis:
1. Debugger presents: evidence for + against + confidence
2. Devil-advocate challenges: gaps, alternative explanations
3. Other debuggers challenge: "my evidence contradicts yours because..."
4. Coordinator scores: STRONG / WEAK / DISPROVEN
Elimination round:
- DISPROVEN hypotheses are discarded
- WEAK hypotheses get one more investigation round
- STRONG hypotheses proceed to verification
The debate IS the value. Sequential investigation suffers from anchoring. Parallel adversarial investigation eliminates weak theories faster.
For the surviving hypothesis:
.claude.md: what theories were wrong and why (prevents future anchoring)Coordinator identifies 5 hypotheses:
H1: WebSocket connection closing prematurely
H2: Event loop draining with no listeners
H3: Unhandled promise rejection causing exit
H4: Session timeout misconfigured
H5: Message handler throwing uncaught error
Team investigates in parallel:
Debugger 1 (H1): "WebSocket stays open — DISPROVEN"
Debugger 2 (H2): "Event loop has active listeners — DISPROVEN"
Debugger 3 (H3): "Found unhandled rejection in auth middleware — STRONG (80%)"
Debugger 4 (H4): "Timeout is 30min, app exits in 1s — DISPROVEN"
Debugger 5 (H5): "Message handler has try-catch — WEAK (30%)"
Devil-advocate: "H3 is strong but — does the rejection happen on EVERY
message or just the first? If first-only, the auth token refresh
might be the real cause, not the handler."
→ Follow-up reveals: auth token refresh throws on first use because
token is not yet set. H3 was close but the real root cause is
token initialization order.
Without adversarial debate, team would have patched the rejection
handler without fixing the token initialization.
| Mistake | Fix |
|---|---|
| Debugger hides disconfirming evidence | Prompt explicitly requires both-sides reporting |
| All hypotheses are variations of one idea | Ensure hypotheses are truly independent |
| Skipping debate — just picking highest confidence | Debate reveals flaws that confidence scores don't |
| Devil-advocate too soft | Prompt: "approving a weak hypothesis is a failure" |
| Not recording eliminated hypotheses | They prevent future anchoring — record them |
| Fixing symptom, not root cause | Devil-advocate's final question prevents this |
Pre-requisite: team-orchestrator:orchestrating-work routes here Post-requisite: team-orchestrator:session-reflection records learnings Related: superpowers:systematic-debugging for single-agent debugging
基于 SOC 职业分类
Use when facing a task that could benefit from parallel work - decides whether to use subagents or agent teams, then composes the right team from the role pool based on task analysis
Use when changes span frontend, backend, and tests where each layer needs a dedicated owner plus an integration agent for cross-cutting consistency
Use when building new modules or features where teammates can each own a separate piece without stepping on each other
Use when multiple aspects of a problem need parallel investigation with findings shared and challenged between investigators
Use at the end of every team session or work session to record mistakes, lessons, and patterns to .claude.md for self-evolution across sessions