| name | debug-systematically |
| description | Use this skill when diagnosing a bug, unexpected behavior, test failure, or any situation where code does not behave as expected. Follow a structured debugging process instead of randomly changing code. |
| category | coding |
Debug Systematically
Process:
- Reproduce the bug with the smallest possible input.
- Isolate — narrow down which component/function causes it.
- Hypothesize — form a specific, falsifiable hypothesis.
- Test — verify or disprove the hypothesis with a minimal experiment.
- Fix — address the root cause, not just the symptom.
- Verify — re-run the failing test and related tests.
Useful tools: print/logging, pdb/ipdb, unit tests, git bisect.
Anti-patterns:
- Changing multiple things at once and not knowing what fixed it.
- Ignoring related test failures.
- Commenting out code instead of understanding it.