From code-foundations
Guides active bug investigation using Code Complete's scientific debugging method: STABILIZE → LOCATE → HYPOTHESIZE → EXPERIMENT → FIX → TEST → SEARCH. Runs the failing test first, then forms testable hypotheses before editing.
How this skill is triggered — by the user, by Claude, or both
Slash command
/code-foundations:cc-debuggingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Most debugging time goes to finding and understanding the defect; the fix is usually obvious once you understand it. Every action tests a hypothesis — no guessing, no random changes.
Most debugging time goes to finding and understanding the defect; the fix is usually obvious once you understand it. Every action tests a hypothesis — no guessing, no random changes.
First action on any bug: run the failing test or repro and read its actual output. Do this before reading the source in depth and before editing anything — the observed failure, not the code you infer it from, is what you debug. If the usual runner is unavailable (e.g. no pytest), fall back to a runnable form (python3 -c, a direct script) and capture that output now, not after a fix.
Shared numeric thresholds (20:1 debugger variation, ~50% of fixes wrong first time): Read(${CLAUDE_PLUGIN_ROOT}/references/cc-foundations.md).
STABILIZE → LOCATE → HYPOTHESIZE → EXPERIMENT → FIX → TEST → SEARCH
Get a reliable reproduction — you cannot debug what you cannot reproduce.
Precondition on editing: the first tool action of the session is running the failing test or repro, and its output is captured, BEFORE any Edit to implementation code. The order is run-test → then edit, never edit-then-test. If the standard runner is missing, run the repro another way (python3 -c, a direct script) and capture that — the missing runner does not excuse skipping the observed failure.
Narrow the suspicious region before forming a hypothesis.
Form a specific, testable hypothesis — not "the bug is somewhere in module X."
Design a test that will disprove the hypothesis, not confirm it.
Fix the root cause, not the symptom.
Verify the fix actually works.
Defects cluster — if this bug existed, similar ones likely exist nearby.
Precondition on completing: before reporting the fix complete, a search for the same defect pattern (grep/Glob) has been run and its result recorded.
Rule these out before deep investigation:
< vs <=), array index vs length== instead of epsilon comparison)When quick checks fail and the systematic method stalls, the brute-force techniques (full code review, isolate in a harness, rewrite the section) and the full defect catalog are in Read(${CLAUDE_SKILL_DIR}/checklists.md).
Explain the problem out loud, to a person or a rubber duck. Articulation frequently reveals the bug before the listener responds.
| After | Next |
|---|---|
| Root cause found | Fix + add regression test (Steps 6–7 above) |
| Defect is in untested legacy code | Skill(code-foundations:welc-legacy-code) — get it under test first |
| Fix requires structural refactoring | Skill(code-foundations:cc-refactoring-guidance) |
npx claudepluginhub ryanthedev/code-foundationsSystematic debugging methodology for finding and fixing bugs through root cause analysis. Covers reproduce-investigate-hypothesize-fix-prevent workflow, evidence-based diagnosis, and bug category strategies.
Enforces systematic root cause analysis for bugs, test failures, and unexpected behavior. Requires proof of root cause before any fix.
Disciplined methodology to isolate bugs through hypothesis-driven testing. Form hypotheses, test them with minimal changes, narrow scope systematically. Use when bugs are unclear or reproduce intermittently.