About systematic-debugging
A debugging skill for software developers and coding agents that requires confirming a bug’s root cause before changing production code. It follows a reproducible sequence from investigation through regression testing and verification.
Key features
- 01Reproduce failures reliably
- 02Isolate and test hypotheses
- 03Confirm root cause with evidence
- 04Write a failing regression test first
- 05Apply and verify a minimal fix
Use cases
- 01Investigate a reproducible production bug
- 02Narrow down failures after recent changes
- 03Prevent a confirmed bug from recurring
- 04Avoid speculative patches and symptom masking
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ alexbruno/ dev-skills --skill systematic-debuggingAfter installing, type/systematic-debuggingin Claude Code to confirm it loaded.
Details
From the project READMESystematic Debugging
Find and prove the root cause before changing any production code. Never guess, apply shotgun patches, or silence errors to make symptoms disappear.
Core Rule
No fix without a confirmed root cause. Every bug fix must follow: Reproduce -> Isolate -> Prove Root Cause -> Regression Test -> Fix -> Verify.
Debugging Process
1. Reproduce Reliably
- Capture exact reproduction steps, inputs, environment conditions, and expected vs. actual behavior.
- If the failure cannot be reproduced yet, gather logs, traces, or state snapshots first—do not speculate.
2. Isolate & Form Hypotheses
- Narrow the failure boundary (recent changes via
git diff/git log, failing inputs, or call paths viacodebase-indexingif active). - Form one concrete, testable hypothesis at a time about why the failure occurs.
- Test the hypothesis with targeted observation (logs, minimal reproduction, or debugger/test run).
3. Confirm & Document Root Cause
- Confirm the exact mechanism causing the bug with direct evidence.
- If
workflow/SPEC.mdis active for this bug fix, record the reproduction steps and confirmed root cause there before planning the fix.
4. Write a Failing Regression Test First
- Create an automated test (or reproducible check) that fails for the exact reason of the bug.
- Verify it fails before applying the fix so you know the test actually catches the regression.
5. Fix the Root Cause & Verify
- Apply the minimal, clean fix that addresses the root cause—not a workaround around the symptom.
- Run the regression test and the full relevant test suite to confirm no regressions were introduced.
Anti-Patterns to Avoid
- Shotgun debugging: Changing multiple unrelated things at once hoping one works.
- Symptom masking: Catching and ignoring exceptions, adding arbitrary retries/sleeps, or loosening assertions to pass tests.
- Speculative fixes: Editing code before you can explain why it failed.
Comments
Markdown supported