Systematic Debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
The Iron Law
NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST
If you haven't completed Phase 1, you cannot propose fixes.
The Four Phases
Phase 1: Root Cause Investigation
BEFORE attempting ANY fix:
Read Error Messages Carefully
- Don't skip past errors or warnings
- Read stack traces completely
- Note line numbers, file paths, error codes
Reproduce Consistently
- Can you trigger it reliably?
- What are the exact steps?
- If not reproducible, gather more data
Check Recent Changes
- Git diff, recent commits
- New dependencies, config changes
- Environmental differences
Trace Data Flow
- Where does bad value originate?
- What called this with bad value?
- Keep tracing up until you find the source
Phase 2: Pattern Analysis
Find Working Examples
- Locate similar working code in same codebase
Compare Against References
- Read reference implementation completely
- Don't skim - read every line
Identify Differences
- What's different between working and broken?
- List every difference, however small
Phase 3: Hypothesis and Testing
Form Single Hypothesis
- State clearly: "I think X is the root cause because Y"
- Write it down
Test Minimally
- Make the SMALLEST possible change
- One variable at a time
Verify Before Continuing
- Did it work? Yes -> Phase 4
- Didn't work? Form NEW hypothesis
- DON'T add more fixes on top
Phase 4: Implementation
Create Failing Test Case
- Use the
tdd.mdskill
- Use the
Implement Single Fix
- ONE change at a time
- No "while I'm here" improvements
Verify Fix
- Test passes now?
- No other tests broken?
If 3+ Fixes Failed: Question Architecture
- Is this pattern fundamentally sound?
- Should we refactor vs continue fixing symptoms?
- Discuss before attempting more fixes
Red Flags - STOP and Follow Process
- "Quick fix for now, investigate later"
- "Just try changing X and see if it works"
- "I don't fully understand but this might work"
- Proposing solutions before tracing data flow
- "One more fix attempt" (when already tried 2+)
ALL mean: STOP. Return to Phase 1.
Quick Reference
| Phase | Key Activities | Success Criteria |
|---|---|---|
| 1. Root Cause | Read errors, reproduce, check changes | 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 |
When to Use
Use this skill when the task directly matches the workflow described above.
When Not to Use
Do not use this skill when the request is unrelated, low-stakes, or better handled by a simpler direct response.