Systematic Debugging

VerifiedSafe

Systematic debugging with hypothesis-driven investigation. Use when something is broken, tests fail, or errors need investigation. The process includes assessing the issue, isolating the root cause with hypotheses, applying minimal fixes, and adding regression tests to prevent recurrence.

Sby Skills Guide Bot
DevelopmentIntermediate
1506/2/2026
Claude Code
#debugging#bug-fixing#troubleshooting#hypothesis-driven

Recommended for

Our review

A structured debugging process that uses hypothesis-driven investigation to systematically find and fix bugs.

Strengths

  • Provides a clear 4-phase process (Assessment, Investigation, Resolution, Quality).
  • Encourages forming and testing hypotheses rather than guessing.
  • Includes a checklist and common root causes table.
  • Helps avoid rationalization and premature fixes.

Limitations

  • Requires discipline to follow the process under time pressure.
  • May not cover all types of bugs (e.g., performance issues only briefly mentioned).
  • Assumes ability to reproduce bugs consistently.
When to use it

Use when you encounter a bug, unexpected behavior, or test failure that needs systematic investigation.

When not to use it

Do not use for trivial syntax errors or simple typos where the fix is obvious.

Security analysis

Safe
Quality score92/100

The skill provides a structured debugging methodology and does not instruct or suggest any destructive, exfiltrating, or obfuscated actions. It uses allowed tools like Bash for legitimate diagnostic purposes within an agent context, but the content itself poses no direct security risk.

No concerns found

Examples

Debug unexpected function output
This function returns unexpected results when given negative numbers. Can you help debug why?
Investigate intermittent CI failure
Our CI tests are failing intermittently. I need to investigate the root cause.
Trace and fix a TypeError
Debug this error: TypeError: Cannot read property 'map' of undefined in file src/components/List.js.

name: debug description: "Systematic debugging with hypothesis-driven investigation. Use when something is broken, tests are failing, unexpected behavior occurs, or errors need investigation. Triggers on: 'this is broken', 'debug', 'why is this failing', 'unexpected error', 'not working', 'bug', 'fix this issue', 'investigate', 'tests failing', 'trace the error', 'use debug mode'. Full access mode - can run commands, add logging, and fix issues." allowed-tools: [Read, Edit, Write, Bash, Grep, Glob, LSP]

Debug Mode

Systematic bug investigation and resolution.

Core Approach

"Don't guess. Form hypotheses. Test them."

The 4-Phase Process

Phase 1: Assessment 🔍

Goal: Understand and reproduce

  • What is the expected behavior?
  • What is the actual behavior?
  • Can you reliably reproduce?
  • What changed recently?

Key Questions:

  • When did this start happening?
  • Does it happen consistently or intermittently?
  • What are the exact inputs that trigger it?
  • What error messages or symptoms appear?

Phase 2: Investigation 🔬

Goal: Isolate and trace

  • Trace execution from entry point
  • Identify where expected diverges from actual
  • Form hypotheses about root cause
  • Test hypotheses systematically

Techniques:

  • Add strategic logging/prints
  • Use debugger breakpoints
  • Simplify inputs to minimal reproduction
  • Check boundary conditions

Phase 3: Resolution 🔧

Goal: Fix minimally and verify

  • Implement the smallest fix that addresses root cause
  • Don't fix symptoms, fix the disease
  • Add regression test
  • Verify fix doesn't break other things

If fix doesn't work:

  • Count: How many fixes attempted?
  • If < 3: Return to Phase 1, re-analyze with new information
  • If ≥ 3: STOP. Question your understanding of the system.

Phase 4: Quality ✅

Goal: Prevent recurrence

  • Add test covering the bug
  • Document if the cause was non-obvious
  • Consider if similar bugs exist elsewhere
  • Clean up debug code

Debugging Checklist

- [ ] **Reproduced**: Can trigger bug consistently
- [ ] **Isolated**: Know which component is failing
- [ ] **Root Cause**: Understand WHY it fails
- [ ] **Fixed**: Minimal change addresses cause
- [ ] **Tested**: Regression test added
- [ ] **Clean**: Debug code removed

Hypothesis Template

**Hypothesis**: [What you think is wrong]
**Test**: [How you'll verify]
**Result**: [What happened]
**Conclusion**: [Confirmed/Rejected/Needs more info]

Common Root Causes

| Symptom | Often Caused By | | -------------------------- | --------------------------------------------- | | Works locally, fails in CI | Environment differences, missing deps | | Intermittent failure | Race condition, timing, external dependency | | Wrong output | Logic error, wrong variable, off-by-one | | Crash/exception | Null/None access, type mismatch, missing data | | Performance issue | N+1 queries, missing index, memory leak |

Rationalization Prevention

| Excuse | Reality | | ---------------------------------------------- | ---------------------------------------------------- | | "I'll just add a quick fix" | Quick fixes hide root cause. Follow Phase 1 first. | | "It's probably X" | "Probably" isn't evidence. Test the hypothesis. | | "This is too simple to debug formally" | Simple bugs waste the most time when undiagnosed. | | "I've tried 3 things, might as well try a 4th" | STOP. Return to Phase 1. Re-analyze with new info. | | "It works now, not sure why" | If you don't know why it works, it will break again. |

Red Flags - STOP and Re-Assess

  • Adding a 3rd fix attempt without returning to Phase 1
  • Saying "should work now" without verification
  • Fixing a symptom because root cause is unclear
  • Skipping reproduction because "I know what's wrong"
  • Multiple hypotheses being tested simultaneously

Debug Report Format

## Debug Report

### Bug Summary

- **Expected**: [what should happen]
- **Actual**: [what happens instead]
- **Severity**: [critical/high/medium/low]

### Reproduction

1. [Step to reproduce]
2. [Step to reproduce]
3. [Observe bug]

**Minimal reproduction**: [simplest case that triggers bug]

### Investigation

| Hypothesis | Test           | Result                     |
| ---------- | -------------- | -------------------------- |
| [theory]   | [what I tried] | ✅ Confirmed / ❌ Rejected |

### Root Cause

[What's actually wrong and why]

### Fix Applied

- **File**: `path/to/file.py`
- **Change**: [what was modified]
- **Why**: [how this fixes the root cause]

### Verification

- [ ] Bug no longer reproduces
- [ ] Existing tests pass
- [ ] Regression test added: `test_name`
- [ ] No debug code left behind

### Prevention

[How to prevent similar bugs in the future]
Related skills