debuglisted
Install: claude install-skill YoniChechik/claude-code-config
# Debugging Workflow
Always work based on data. Never guess. ALWAYS run as subagent (opus high effort).
### 1. Understand the Error
- Identify the failing test or error scenario from trace or user report
- Pin down expected vs actual behavior in the user's own terms
- Read the error message and stack trace if available
### 2. Build a Feedback Loop
A loop you can run, not a plan to read code.
**Pick a mechanism** — options are ordered by preference, pick the first that fits:
1. Failing test at the right seam (real code path, minimal mocking)
2. curl/HTTP script against a dev server
3. CLI invocation diffed against known-good output
4. Headless browser script (Playwright)
5. Replay a captured trace/payload
6. Throwaway minimal harness
**Then optionally wrap it in a strategy** — each needs a mechanism underneath to drive:
- Property/fuzz loop — for "sometimes wrong" bugs
- Bisection for regressions (`git bisect run` needs a script that exits non-zero on the bug)
- Differential loop — old vs new, or working vs broken input
### 3. Gate the Loop
Do not proceed until all four hold:
- **Red-capable** — asserts the user's exact symptom, not "didn't crash"
- **Deterministic** — pin time, seed RNG, freeze network
- **Fast** — seconds, not minutes
- **Agent-runnable** — you can name one command you have already run at least once
**Stop rule:** if you're reading code to build a theory before that command exists, stop.
**Exemption — non-deterministic bugs:** when the bug is inheren