Agent Skills: Systematic Debugging

This skill should be used when the user reports a "bug", "not working", "fix this", "debug", "test failing", or when investigating unexpected behavior. Four-phase framework ensuring root cause understanding before attempting solutions.

UncategorizedID: pproenca/dot-claude/systematic-debugging

Install this agent skill to your local

pnpm dlx add-skill https://github.com/pproenca/dot-claude/tree/HEAD/plugins/dev-workflow/skills/systematic-debugging

Skill Files

Browse the full folder contents for systematic-debugging.

Download Skill

Loading file tree…

plugins/dev-workflow/skills/systematic-debugging/SKILL.md

Skill Metadata

Name
systematic-debugging
Description
This skill should be used when the user reports a "bug", "not working", "fix this", "debug", "test failing", or when investigating unexpected behavior. Four-phase framework ensuring root cause understanding before attempting solutions.

Systematic Debugging

Find root cause before attempting fixes. Symptom fixes mask underlying issues.

The Four Phases

Phase 1: Root Cause Investigation

Before attempting any fix:

  1. Read error messages carefully — they often contain the solution. Read stack traces completely; note line numbers, file paths, error codes.
  2. Reproduce consistently — exact steps, every time. If not reproducible, gather more data.
  3. Check recent changes — git diff, new dependencies, config changes, environmental differences.
  4. Trace data flow — where does the bad value originate? For deep call stack errors, use the root-cause-tracing skill.

For multi-component systems, add diagnostic logging at each component boundary before proposing fixes. Log what enters and exits each component.

Phase 2: Pattern Analysis

  1. Find working examples — similar working code in the same codebase.
  2. Compare against references — read reference implementations completely, not skimmed.
  3. Identify differences — list every difference, however small.
  4. Understand dependencies — settings, config, environment assumptions.

Phase 3: Hypothesis and Testing

  1. Form single hypothesis — "I think X is the root cause because Y."
  2. Test minimally — smallest possible change, one variable at a time.
  3. Verify — didn't work? Form new hypothesis. Don't stack fixes.

Phase 4: Implementation

  1. Create failing test — simplest reproduction. Use the test-driven-development skill.
  2. Implement single fix — address the root cause. One change at a time. No "while I'm here" improvements.
  3. Verify fix — test passes, no other tests broken, issue resolved.
  4. If fix doesn't work — return to Phase 1 with new information. If 3+ fixes have failed, see below.

When 3+ Fixes Fail: Question Architecture

If each fix reveals a new problem in a different place, this is not a failed hypothesis — it's a wrong architecture.

Stop and question fundamentals:

  • Is this pattern fundamentally sound?
  • Are we sticking with it through inertia?
  • Should we refactor architecture vs. continue fixing symptoms?

Discuss with the user before attempting more fixes. Present findings: "3 fix attempts, each revealed new problem."

Quick Reference

| Phase | Key Activities | Success Criteria | |-------|---------------|-----------------| | 1. Root Cause | Read errors, reproduce, trace | Understand WHAT and WHY | | 2. Pattern | Find working examples, compare | Identify differences | | 3. Hypothesis | Form theory, test minimally | Confirmed or new hypothesis | | 4. Implementation | Create test, fix, verify | Bug resolved, tests pass |

Red Flags — Stop and Return to Phase 1

  • Proposing fixes before tracing data flow
  • "Quick fix for now, investigate later"
  • "I don't fully understand but this might work"
  • Each fix reveals a new problem in a different place
  • 3+ failed fix attempts without questioning architecture

Integration

  • root-cause-tracing — for deep call stack errors (Phase 1)
  • test-driven-development — for failing test case (Phase 4)
  • defense-in-depth — add validation layers after fix
  • verification-before-completion — verify fix before claiming success