A Claude Code agent skill for systematic debugging. When reading code isn't enough to find a bug, Debug Probe guides you through a 6-phase loop: hypothesize → instrument → reproduce → converge → fix → clean up.
[Hypothesize] → [Instrument] → [Collect] → [Converge] → [Fix] → [Clean Up]
↑ │
└────────────────── if fix fails ─────────────────────────┘
- Hypothesize — Read source, generate 2-4 falsifiable hypotheses (not guesses)
- Instrument — Insert 2-4 precise log points per hypothesis, tagged for cleanup
- Collect — Build, reproduce the bug, export buffered logs
- Converge — Match log evidence to hypotheses, confirm or refute
- Fix — Minimal fix targeting the confirmed root cause
- Clean Up — Remove ALL instrumentation, verify build passes
# Clone the skill
git clone https://github.com/YOUR_USERNAME/debug-probe.git
# Install to Claude Code (project-level)
cp -r debug-probe .claude/skills/
# Or install globally
cp -r debug-probe ~/.claude/skills/Or install directly:
npx skills add YOUR_USERNAME/debug-probe -g -y| File | Purpose |
|---|---|
SKILL.md |
Main skill file — 6-phase workflow and rules |
TEMPLATES.md |
Diagnostic buffer code templates for TypeScript, Python, and Go |
The skill triggers automatically when Claude encounters:
- Bug reports, crashes, or unexpected behavior
- "Debug this", "diagnose", "investigate", "why is X broken"
- Situations where static code reading can't find the root cause
User: The login button does nothing in production but works fine locally
Claude (using Debug Probe):
[H1] API URL mismatch between envs → log baseUrl and resolved endpoint
[H2] Auth token not persisted in prod → log token presence and expiry
*instruments 3 points, user reproduces, exports logs*
Logs show: [DIAG][H1] baseUrl=https://api.prod.example.com /login
[DIAG][H2] token=null
→ H2 confirmed. Root cause: token storage key differs between envs.
→ Fix: align storage key. Verified. Cleaned up.
- ❌ Skip hypotheses, jump straight to "fixing"
- ❌ Sprinkle 10+ log points — 2-4 per hypothesis is the sweet spot
- ❌ Dump entire objects into logs —
key=valuepairs only - ❌ Leave instrumentation code after fixing — Phase 6 is mandatory
- ❌ Claim "fixed" without user verification
MIT