Debug Skill
Debugging Process
1. Reproduce
- •Get the exact error message
- •Find the minimal steps to trigger it
- •Note the environment (Python version, OS, dependencies)
2. Locate
- •Read the full stack trace (bottom = where it crashed, top = root cause)
- •Find the relevant file and line
- •Read surrounding code for context
3. Understand
- •What was the code trying to do?
- •What input caused the failure?
- •What assumption was violated?
4. Fix
- •Make the minimal change that fixes the issue
- •Don't refactor while debugging
- •Add a test that would have caught this
5. Verify
- •Run the failing case again
- •Run the full test suite
- •Check for similar patterns elsewhere
Common Patterns
NoneType errors: Something returned None unexpectedly. Check the call chain.
Import errors: Missing dependency or circular import. Check requirements and import order.
Key/Index errors: Accessing something that doesn't exist. Add existence checks.
Type errors: Wrong type passed. Check function signatures and callers.
Workflow
- •
grepfor the error message in codebase - •Read the stack trace bottom-to-top
- •Read the failing function
- •Add logging/print if needed to trace values
- •Fix and verify