From rune
Use when a worker hits repeated failures (3+ attempts on the same task), when test failures have unclear root causes, when build errors persist after obvious fixes, when runtime behavior doesn't match expectations, or when "it works locally but fails in CI." Also use when test-failure-analyst returns LOW confidence, when ward check fails after a fix attempt, or when mend-fixer cannot reproduce a finding. Provides a 4-phase debugging methodology adapted for multi-agent context. Keywords: debug, troubleshoot, root cause, bisect, failure, retry, stuck, broken build, test failure, runtime error, unexpected behavior, regression, intermittent, flaky, can't reproduce, error message, stack trace, investigation.
npx claudepluginhub vinhnxv/rune --plugin runeThis skill uses the workspace's default tool permissions.
Adapted from superpowers' 4-phase methodology for Rune's multi-agent orchestration context.
Enforces four-phase debugging (root cause investigation, pattern analysis, hypothesis testing, implementation) for bugs, test failures, performance issues, and unexpected behavior before any fixes.
Enforces 4-phase root cause investigation for bugs, errors, test failures, unexpected behavior, and technical issues before proposing fixes.
Enforces root cause investigation for bugs, test failures, unexpected behavior, and performance issues through four phases before proposing fixes.
Share bugs, ideas, or general feedback.
Adapted from superpowers' 4-phase methodology for Rune's multi-agent orchestration context.
NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST (DBG-001)
This rule is absolute. "I think I know what's wrong" is not investigation. Evidence first, hypothesis second, fix third.
This skill auto-activates when:
DO NOT hypothesize yet. Only collect facts.
git diff HEAD~3 or check recent task completionsgit log --oneline -10 -- <file>git blame <file> | head -20Output format:
Observation Log:
- First error: {exact message at file:line}
- Last good state: {commit hash or "unknown"}
- Recent changes: {N files changed by {who}}
- Cascading: {yes/no — are subsequent errors caused by the first?}
Binary search through the problem space:
Code bisection:
git stash to test with/without local changesLayer isolation:
Time isolation:
git bisect start HEAD <last-known-good> to find breaking commitOutput format:
Narrowing Log:
- Bisection result: {minimal reproducing change}
- Layer: {data|logic|integration|environment}
- Deterministic: {yes|no — does it fail every time?}
Based on Phase 2 evidence:
Critical rule: Do NOT skip to Phase 4 based on "it's probably this." Your hypothesis must survive a disproof test.
Output format:
Hypothesis: {one sentence}
Disproof test: {what you ran}
Result: {confirmed|disproved}
After fixing, add defensive layers at the point of failure:
For detailed multi-layer defense strategy, see defense-in-depth.md.
| Attempt | Action | Debug Phase |
|---|---|---|
| 1st failure | Retry with careful error reading | None |
| 2nd failure | Re-read error, check recent changes | Phase 1 (Observe) |
| 3rd failure | Full systematic debugging | Phase 1-4 |
| 5th failure | Escalate to Tarnished with ALL debug logs | — |
| 7th failure | Create blocking task — human intervention needed | — |
For full escalation templates and messaging formats, see escalation-matrix.md.
When debugging in a team workflow:
git blame)echo_search)| Rationalization | Counter |
|---|---|
| "I think I know what's wrong" | Thinking is not evidence. Run Phase 1. |
| "Let me just try this quick fix" | Quick fixes mask root causes. Run Phase 2. |
| "It's probably a test environment issue" | "Probably" is not evidence. Isolate the layer. |
| "This worked before, something else must have changed" | Find WHAT changed. git diff. |
| "I'll add a try/catch and move on" | Exception swallowing hides bugs. Find the cause. |