Structured approach to finding and fixing bugs
Scanned 9/1/2026
Install to Claude Code
npx -y skills add Dicklesworthstone/pi_agent_rust --skill systematic-debugging --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Systematic Debugging?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/dicklesworthstone-systematic-debugging)More formats (shields.io, HTML) on the badges page.
---
name: systematic-debugging
description: Structured approach to finding and fixing bugs
version: 1.0.0
author: Ariff
when_to_use: When debugging - follow systematic process instead of guessing
---
# Systematic Debugging
## The Process
```
REPRODUCE → ISOLATE → TRACE → FIX → VERIFY
```
Never skip steps. Never guess.
## Step 1: Reproduce
**Goal:** See the bug happen reliably
```
1. Get exact reproduction steps
2. Run them yourself
3. See the exact error
4. Document: input, output, expected
```
**Red flags:**
- "It happens sometimes" → Find the condition
- "I can't reproduce" → Get more details from reporter
- Skipping this step → You'll waste time guessing
## Step 2: Isolate
**Goal:** Find minimum case that shows bug
```
1. Start removing things
2. Does bug still happen?
3. Keep removing until minimal
4. Result: smallest repro case
```
**Why this matters:**
- Smaller case = easier to debug
- Reveals what's actually involved
- Eliminates red herrings
## Step 3: Trace
**Goal:** Find root cause (use root-cause-tracing skill)
```
1. Start at symptom
2. Trace backward: where does bad value come from?
3. Keep asking "where did THIS come from?"
4. Stop when you find origin
```
**Tools:**
- Print/log statements
- Debugger breakpoints
- Code reading
- Test isolation
## Step 4: Fix
**Goal:** Change code at root cause
```
1. Write failing test first
2. Make minimal change to fix
3. Verify test passes
4. Check for side effects
```
**Anti-patterns:**
- Big refactor during bugfix
- Fixing symptoms not cause
- No test for the fix
## Step 5: Verify
**Goal:** Confirm fix works and nothing broke
```
1. Run original reproduction
2. Bug should be gone
3. Run full test suite
4. No regressions
```
**Must have:**
- Fresh reproduction attempt
- All tests passing
- No new warnings/errors
## Common Bug Types
| Type | Debug Strategy |
|------|---------------|
| Null/undefined | Trace where value should've been set |
| Wrong value | Log at each transformation step |
| Race condition | Add logging with timestamps |
| State corruption | Find all state modifiers |
| Off-by-one | Check loop bounds and indices |
| Missing case | Check all switch/if branches |
## Debug Log Pattern
When adding debug logs:
```javascript
// Include: location, variable name, value, timestamp
console.log('[user.ts:45]', 'userId:', userId, Date.now());
```
Clean up logs before committing.
## Bisect Strategy
When you don't know what broke it:
```
1. Find last known working version
2. Find first broken version
3. Binary search between them
4. Each step: does bug exist?
5. Result: exact commit that broke it
```
## Integration with Skills
- `root-cause-tracing` → For step 3 (Trace)
- `defense-in-depth` → For step 5 (Verify)
- `verification-before-completion` → Before claiming fixed
## Integration with Checkers
- `assumption-checker` → What assumptions about the code?
- `fact-checker` → Verify claims about behavior
- `pre-action-verifier` → Before applying fix
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!