# Ask Bug Finder

> Systematic debugging with reproduction, isolation, and hypothesis testing.

- Skill: `navanithans/ask-bug-finder` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add navanithans/ask-bug-finder`
- Raw SKILL.md: https://api.skillmd.com/api/skills/navanithans/ask-bug-finder/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: NavanithanS (https://skillmd.com/u/navanithans)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/navanithans/ask-bug-finder

---


<critical_constraints>
❌ NO fixing without reproducing first
❌ NO changing random things hoping it works
❌ NO fixing symptoms instead of root cause
✅ MUST read full error message including stack trace
✅ MUST form hypothesis before making changes
✅ MUST write test after fixing to prevent recurrence
</critical_constraints>

<process>
1. **Reproduce**:
   - Ensure consistent steps.
   - Compare expected vs actual.
   - Check all environments.
2. **Gather**:
   - Collect error messages and logs.
   - Review recent changes.
   - Check environment details.
3. **Hypothesize**:
   - Identify suspect components.
   - Seek simplest explanation.
4. **Test**:
   - Add strategic logging.
   - detailed assertions.
   - Comment out sections.
5. **Fix**:
   - Make minimal changes.
   - Verify fix.
   - Check regressions.
   - Add test case.
</process>

<techniques>
- **Binary Search**: git bisect to find breaking commit
- **Rubber Duck**: explain problem aloud, bug reveals itself
- **Divide & Conquer**: midpoint check, narrow scope
- **Print Debug**: `[DEBUG] func_name: var={var}` (not just "here")
</techniques>

<common_patterns>
- Off-by-one: `range(len(x)-1)` → should be `range(len(x))`
- Null reference: `user.name` without checking `user is None`
- Race condition: check-then-act pattern
- State mutation: `items.sort()` modifies original
</common_patterns>

<tools>
| Tool | Use |
|------|-----|
| Debugger (pdb) | step through, inspect |
| Logger | track execution flow |
| Profiler | performance issues |
| git bisect | find breaking commit |
</tools>

<when_stuck>
1. Take a break
2. Explain to someone (rubber duck)
3. Check the obvious (is server running?)
4. Search for similar issues
5. Create minimal reproduction
</when_stuck>

