← ClaudeAtlas

bugfixlisted

Lightweight bug-fixing loop — reproduce → root-cause → fix test-first → verify — deliberately separate from the heavyweight feature workflow so small fixes don't drag a spec-and-plan process behind them. Demands a deterministic reproduction before any code changes, a stated root-cause hypothesis confirmed with evidence (never a shotgun fix), a failing test that captures the bug, and the original repro re-run as proof. Keeps a one-line-per-bug log in out/dev/bugfix-log.md and checks it first, so recurring bugs get recognized instead of re-diagnosed. Use when the user reports something broken, failing, throwing, or flaky, or asks to fix a bug — e.g. "/bugfix login 500s on empty password", "fix this error", "this test is flaky", "why is X crashing". If the fix turns out to need real design work, hand off to feature; the shipping gate is done.
duthaho/skillhub · ★ 6 · AI & Automation · score 75
Install: claude install-skill duthaho/skillhub
# bugfix — reproduce, root-cause, fix, prove `/bugfix <symptom / error / failing thing>` Answer one question: **why does this actually happen, and what's the minimal fix that provably removes it?** The order is non-negotiable — reproduce before diagnosing, diagnose before fixing, prove after fixing. A fix without a confirmed root cause is a guess wearing a commit message. ## Step 0 — Check the log Read `out/dev/bugfix-log.md` if it exists. A similar symptom fixed before is the best diagnostic head start there is — past root causes cluster ("we've had three timezone bugs in this module"). Mention any match. Also skim recent `git log` — a bug that appeared recently usually shipped recently. ## Step 1 — Reproduce (before touching any code) Turn the report into a **deterministic reproduction**: a command, a failing test invocation, a curl, a click path, a `git bisect run` harness — something that fails on demand and will pass when the bug is dead. - **The gate is checkable:** a command you have **already run at least once**, with the invocation and its output pasted. That output is the baseline the fix is judged against — a repro described but never run doesn't count. - **Tighten the loop** — Step 2 re-runs it on every hypothesis, so its speed is your debugging speed: faster, sharper signal, more deterministic (pin time, seed RNG, isolate the filesystem). - **Minimise** (skip when the repro is already one obvious line): cut inputs, steps, config, and data one a