Systematic root-cause debugging — investigates before fixing, with a 3-strike circuit breaker. Use when asked to "debug", "find the bug", "why is this broken", "fix this error", or "troubleshoot".
npx claudepluginhub francoisbgdw/claude-skillsThis skill is limited to using the following tools:
Systematic root-cause analysis inspired by gstack's debug methodology. The iron law: **no fixes without investigation**.
Guides systematic debugging of bugs, test failures, and unexpected behavior via root cause investigation. Enforces reproduction, evidence gathering, hypothesis testing before fixes.
Enforces systematic root cause analysis before fixes for bugs, test failures, unexpected behavior, performance issues, and build failures.
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
Systematic root-cause analysis inspired by gstack's debug methodology. The iron law: no fixes without investigation.
git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "not a git repo"git log --oneline -5 2>/dev/null || echo "no git history"Never apply a fix until you understand the root cause. A fix without understanding is a guess, and guesses compound into harder bugs.
$ARGUMENTS should describe the bug, error message, or unexpected behavior.
If you cannot reproduce:
git log --oneline -20 and git diff HEAD~5 to see what changedDocument your findings as you go:
## Investigation notes
- Symptom: <what's happening>
- Expected: <what should happen>
- Stack trace points to: <file:line>
- Root cause hypothesis: <your theory>
- Evidence: <what supports this theory>
Before fixing, state your hypothesis clearly:
## Root cause
<One-sentence explanation of why the bug occurs>
## Evidence
- <Fact 1 that supports this>
- <Fact 2 that supports this>
## Proposed fix
<What you will change and why it addresses the root cause>
Track failed fix attempts:
| Attempt | Outcome | Action |
|---|---|---|
| Strike 1 | Fix didn't work | Re-investigate. Your hypothesis was wrong. |
| Strike 2 | Second fix didn't work | Step back. Re-read the code from scratch with fresh eyes. Consider that the bug may be elsewhere. |
| Strike 3 | Third fix didn't work | Stop. Report your findings to the user. Present all three hypotheses and what you've learned. Ask for their input. |
After 3 failed fixes, do NOT continue guessing. The cost of wrong fixes compounds — each bad fix can introduce new bugs and obscure the real problem.
Apply the circuit breaker from shared safety patterns:
# Check runtime versions
node --version; python --version; git --version
# Check environment variables
env | grep -i <relevant-keyword>
# Check OS-specific behavior
uname -a
# Find what changed
git log --oneline --since="yesterday"
git diff HEAD~10 -- <suspect-file>
# Binary search for the breaking commit
git bisect start
git bisect bad HEAD
git bisect good <known-good-commit>
await or uncaught promisescatch {} with no body)