debuglisted
Install: claude install-skill ohm41321/luciazero
# Debug — hypothesis before edit
The doctrine says: *debugging starts with a hypothesis, not an edit.* Mutating code until the test goes green is not debugging — it is how plausible-but-wrong fixes ship. This is the procedure for bugs that resist the first obvious look.
## 1. Reproduce first
One command that shows the failure deterministically. This command is the ground truth for the whole session — every hypothesis is judged against it.
- If it cannot be reproduced yet, that is the entire current task. Do not theorize about causes of a failure you cannot trigger.
- If it is intermittent, make it deterministic before proceeding: fix the seed, pin the time/timezone, run it in a loop (`for i in $(seq 20)`) until the trigger condition is understood. An intermittent repro means the hypothesis space still contains "timing/state you have not seen".
## 2. Minimize
Shrink the reproduction — smaller input, fewer flags, one test instead of the suite — until the failure is small enough to reason about. Every element removed eliminates a family of hypotheses for free. Stop minimizing when shrinking stops being cheap.
## 3. Hypothesis ledger
**Seed it from recorded experience first.** Before inventing hypotheses, grep the symptom's keywords (error strings, subsystem names) against two files, if they exist:
- the repo's lesson ledger `docs/lessons.md` — this project's previously debugged failures;
- the global heuristics file `luciazero-heuristics.md` in the harness config dir (`