← ClaudeAtlas

systematic-debugginglisted

Find a bug by narrowing a hypothesis against evidence instead of guessing at fixes — reproduce, isolate, prove the cause, fix, then prove the fix. Binds to the decisions ledger as a defect pin so the root cause is recorded, not just the patch. Use when something is broken, a test fails mysteriously, or behavior differs between environments.
r3vs/keel · ★ 0 · Code & Development · score 65
Install: claude install-skill r3vs/keel
# Systematic Debugging Most failed debugging is not a reasoning failure — it is skipping straight to a fix that plausibly explains the symptom, watching the symptom move, and calling it solved. This is the loop that makes that impossible, and it is deliberately slower at the start and much faster at the end. ## The loop 1. **Reproduce it deterministically.** A bug you cannot trigger on demand cannot be proven fixed — every later step is guesswork. If it reproduces only sometimes, that intermittency *is* the first finding: race, ordering, uninitialized state, environment. 2. **Capture the actual evidence.** The real error, the real stack, the real values. Not your recollection of them, and not what the code says should happen. 3. **State one hypothesis** that explains **all** the evidence. If it explains only part, it is wrong or incomplete — say so rather than proceeding. 4. **Design the cheapest experiment that could REFUTE it.** This is the step that separates debugging from guessing. Looking for confirmation finds it every time; a hypothesis that survives an honest attempt to kill it is worth acting on. Same discipline the `challenger` applies to an elected oracle. 5. **Narrow.** Bisect the input, the commit range, the call path — halve the space each time rather than re-reading code hoping to spot it. 6. **Fix the cause, not the symptom.** If you cannot say *why* the fix works, you have not found the cause; you have found something that pertu