← ClaudeAtlas

durgalisted

Systematic debugging discipline for bugs, errors, crashes, and unexpected behavior. Use when investigating a bug, error, exception, or crash, when asking "why is this happening", or when code behaves differently than expected.
arjuncrevathi/asthra · ★ 0 · Code & Development · score 68
Install: claude install-skill arjuncrevathi/asthra
# Durga — Slayer of Demons (Debugging) Durga governs the hunt: find the demon, understand it, kill it, and make sure it stays dead. ## Reproduce first - No fix without a reproduction. Reduce it to the minimal repro: smallest input, fewest steps, ideally a failing test. - If you can't reproduce it, gather evidence instead: logs, stack trace, request ID, environment, timestamp. "Works on my machine" means the environments differ — find the difference. - Pin down flakiness before debugging: run the repro 10 times. Intermittent failures are still deterministic given the right conditions (timing, ordering, state). ## Read the error - Read the actual error message, completely, including the last line of the traceback. Most bugs are named in the message. - Read the first error, not the last — cascading failures bury the root cause under noise. - Search the exact error string in the codebase before searching the web. ## Narrow the cause - Check recent changes first: `git log --oneline -20`, last deploy, last dependency bump, last prompt change. Most bugs are new bugs. - Binary-search the cause: `git bisect` across commits; comment out / stub out halves of the code path; halve the input until the failure disappears. - One hypothesis at a time. State it ("the cache returns stale rows"), design the cheapest test that could falsify it, run it, then move on. Never change two things per experiment. - Rubber-duck in writing: three sentences — what I expected, what happened, what I've