Debug
Investigate and fix the issue described in "$ARGUMENTS" using systematic root cause analysis. No guessing — find the cause before attempting fixes.
Prerequisites
None — this is a utility skill that can run anytime a bug is encountered.
Process
Phase 1: Investigation
Read error messages carefully:
- Read the full error output, stack trace, and any warnings
- Note file paths, line numbers, and error codes
- Don't skip past errors — they often contain the solution
Reproduce the issue:
- Identify the exact steps to trigger the bug
- Can it be triggered reliably?
- If not reproducible, gather more data before proceeding
Check recent changes:
- What changed recently that could cause this? (git log, git diff)
- New dependencies, config changes, environment differences?
Phase 2: Analysis
Trace the data flow:
- Where does the bad value originate?
- Trace backward through the call stack to the source
- Fix at the source, not at the symptom
Find working examples:
- Is there similar code that works correctly?
- What's different between working and broken?
Phase 3: Hypothesis
Form a single hypothesis:
- State clearly: "I think X is the root cause because Y"
- Be specific, not vague
Test minimally:
- Make the smallest possible change to test the hypothesis
- One variable at a time
- If it doesn't work, form a NEW hypothesis — don't pile fixes
Phase 4: Fix
Write a failing test that reproduces the bug
Implement the fix — address the root cause, not the symptom
Verify:
- The failing test now passes
- No other tests broke
- The original issue is resolved
Commit the fix with a clear message explaining what was wrong and why
Output
Present findings to the user:
- What the root cause was
- What was changed to fix it
- The commit hash
- Any related issues discovered during investigation