plugins/coordinator/skills/systematic-debugging/SKILL.md
Root-cause discipline for ONE identified bug, test failure, or unexpected behavior — pin the premise, reproduce, trace to source, fix at source, verify. For a single known issue, not a codebase sweep.
npx skillsauth add oduffy-delphi/coordinator-claude systematic-debuggingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Walk one identified failure to its root cause and fix it there. The skill exists because the fastest fix that actually holds starts by finding the cause: guessing averages slower, because every wrong patch adds a new variable and can mask the real one. This isn't a discipline tax — it's the shortest path to a fix that survives the next run.
This is the single-issue tool. You have a specific symptom in hand. Distinct from siblings:
/bug-sweep — searches the whole repo for unknown bugs (broad, discovery)./bug-blitz — grinds a known backlog of many bugs (broad, batch)./dogfood — exercises a newly-built thing until it works (broad, shakedown)./systematic-debugging — one known failure, traced to root cause and fixed (narrow, depth).If you're holding more than one unrelated symptom, you want a sibling. If you're holding exactly one, you're in the right place.
Announce at start: "Running /systematic-debugging on <symptom> — pinning the premise before I touch anything."
Reach for it on any single technical issue where the cause isn't yet known (not merely suspected): test failure, runtime bug, build break, flaky behavior, perf cliff, integration mismatch. It earns the most under exactly the conditions that make guessing tempting — time pressure, a fix that "looks obvious," a previous patch that didn't take, or a borrowed root cause from someone else's repo.
Skip it when the cause is already proven (just fix it), or when you have a pile of issues rather than one (sweep/blitz instead). A simple bug still has a root cause, but if you can already point at it with evidence, you've effectively done Phases 0–2 already — go fix it.
Before reproducing anything, confirm the bug you're chasing is the bug that exists. This phase is ~2 minutes and saves hours of debugging a symptom that was already fixed, or fixing in your repo on a cause that lives in someone else's.
git log --oneline -- <cited-paths> since the report's date, then re-run the failing case on current HEAD. An unverified "broken today" is a hypothesis, not a signal. → coordinator CLAUDE.md § Verifying Handoff Premises ("Broken today" claims).docs/wiki/tool-output-flakiness-protocol.md.If Phase 0 dissolves the bug (already fixed / not reproducible here / phantom signal), you're done — say so and stop. That is the systematic outcome.
git diff / recent commits / new deps / config drift. The delta is the highest-prior suspect.The bug usually appears far from where it originates. Fixing where the error surfaces is symptom-patching.
A patch that doesn't work is information, not a prompt to pile on another patch.
If you catch yourself reaching for a quick patch under pressure — that instinct is fine, it's the eagerness to fix. Spend it on Phase 0 and a reliable repro first; that's where it pays back fastest. The discipline here isn't distrust of your judgment, it's the route that gets your judgment to the right answer in one pass instead of three.
docs/wiki/eager-agent-calibration.md — why this skill is shaped as an offer, not an Iron Law.docs/wiki/tool-output-flakiness-protocol.md — when the symptom might be a failed channel, not a bug./bug-sweep, /bug-blitz, /dogfood, /code-health.tools
Orient session — preflight, load context, choose work
documentation
Wrap up finished work — capture lessons, update docs
testing
Use before commit, /merge-to-main, /workday-complete, or to validate repo state. Resolves and runs the project's configured fast-test command.
development
Root-cause discipline for ONE identified bug, test failure, or unexpected behavior — pin the premise, reproduce, trace to source, fix at source, verify. For a single known issue, not a codebase sweep.