Home / debugging
Debugging
Six skills for finding the cause of a failure: minimise a bug reproduction, cluster log lines, find flaky tests in JUnit XML, explain a stack trace, summarise a py-spy, pprof or cProfile profile, and work a memory leak checklist.
Install
In Claude Code, add the marketplace and install the plugin:
/plugin marketplace add basitalisandhu/claude-skills
/plugin install debugging@claude-skills
Or copy the skill files into ~/.claude/skills/ from a clone:
git clone https://github.com/basitalisandhu/claude-skills
cd claude-skills
python3 install.py --user --only debugging
Skills
| Skill | What it does | Scripts |
|---|---|---|
| bug-repro-minimiser | Turn a vague bug report into the smallest reliable reproduction: a single command or test that fails every time, with the environment, input and expected versus actual result pinned down. | no |
| flaky-test-hunter | Find tests that pass and fail without code changes by comparing JUnit XML reports from several runs with a bundled script, then classify each flaky test by cause (ordering, timing, shared state, resources, environment) and prescribe the fix. | yes |
| log-triage | Reduce a large log file to its distinct message templates with counts, levels, first and last occurrence and attached stack traces using a bundled clustering script, then rank what to investigate. | yes |
| memory-leak-checklist | Diagnose a process whose memory grows over time with a fixed checklist: confirm it is a leak and not a cache or fragmentation, measure with the runtime's heap tools (tracemalloc, objgraph, Node heap snapshots, Go pprof heap, JVM histograms), find the retaining path, and fix the usual suspects (unbounded caches, listeners, closures, global registries, connection pools, large buffers). | no |
| perf-profile-reader | Summarise a captured CPU profile (py-spy collapsed stacks or dump, Go pprof text, Python cProfile output) into the few functions that hold the time, separate busy from waiting, and name the optimisation to try first, using a bundled script. | yes |
| stack-trace-explainer | Read a stack trace or crash report from any mainstream runtime (Python, JavaScript and Node, Java and JVM, Go, Rust, .NET, Ruby, PHP), identify the frame where the fault lives versus where it surfaced, explain the error type, and propose the next diagnostic step. | no |
Plugin README
Six skills for finding the cause of a failure: minimise a bug reproduction, cluster log lines, find flaky tests across JUnit reports, explain a stack trace, read a CPU profile, and work a memory leak checklist.
Install
/plugin marketplace add basitalisandhu/claude-dev-skills
/plugin install debugging@claude-dev-skills
Skills then appear as /debugging:<skill>. Scripts need Python 3.11 or newer on PATH as python3; they use the standard library only and make no network calls.
Skills
| Skill | Triggers on | Produces |
|---|---|---|
bug-repro-minimiser | "sometimes", "on my machine", before a fix | smallest deterministic reproduction and a regression test |
log-triage | a log dump, CI log, "logs full of errors" | log_triage.py templates with counts, the three things to investigate |
flaky-test-hunter | CI fails intermittently, "is this flaky?" | flaky_test_hunter.py flaky list with cause and fix |
stack-trace-explainer | a pasted trace, "what does this mean?" | root cause in the chain, project frame, hypothesis, next check |
perf-profile-reader | a py-spy, pprof or cProfile capture | perf_profile_reader.py top frames, busy versus waiting, candidates |
memory-leak-checklist | memory grows until restart, OOM kills | confirm, measure, retaining path, suspect, fix, verify |
Tests for every script live in the repository's tests/ directory; run python3 -m pytest -q at the repository root.