systematic-debugging
Debugging from evidence: read the failure, form one hypothesis, test it.
Skill by ayeo-io
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/ayeo-io-systematic-debugging
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: testing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/systematic-debugging
What's inside
- Skill name
systematic-debugging- Description
- Debugging from evidence: read the failure, form one hypothesis, test it. Load on an unexpected failure.
- License
- Apache-2.0
- Instructions
- 103 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Systematic Debugging A test failed and you did not expect it to. The reflex is to change something plausible and re-run. That reflex is why debugging sessions get long: each fix you try is a guess, guesses do not accumulate into understanding, and the fourth one lands on a system you no longer have a model of. This is the method that replaces the reflex. It is four phases and one escape clause, and the escape clause is the part Compass adds. ## Root cause investigation (phase 1) **Read, do not infer.** The single biggest cost in debugging is reasoning about what the code *should* do instead of observing what it *does*. - Instrument at every component boundary the failing path crosses - the call in, the call out, and the value at each hand-off. Not inside the function you suspect: at the edges, so you learn *where* the truth changes. - Read the whole log, not the last line. The last line is where it surfaced; somewhere above is where it started. - Reproduce it deliberately before changing anything. A failure you cannot trigger on demand is one you cannot confirm you fixed. You leave this phase when you can point at the line where correct becomes incorrect. Not before. ## Pattern analysis (phase 2) **Find a working case and compare.** Almost every bug has a neighbor that works: a sibling test, an earlier commit, a different input, another environment. Run the working case and the failing case side by side, and write down the delta. Keep narrowing it until one difference remains. That difference is not always the cause, but it is the only honest place to start hypothesizing. ## Single-hypothesis test (phase 3) **One hypothesis, stated out loud, with a test that can falsify it.** - State it in a sentence: "the token is expired by the time the validator sees it, because the clock is read twice." - Design the smallest check that would come out differently if it were false. - Run it. If it does not falsify cleanly, the hypothesis was too vague - sharpen it and repeat. Changing two things at once is what makes a debugging session unrecoverable. You stop being able to attribute the result, and both changes stay in the code. ## Fix through a failing test (phase 4) **Write the regression test first, watch it go red, then fix it.** This is the same red-green discipline the implement stage already runs (`compass tdd-red`, then `compass tdd-green`) - see `tdd-discipline`. It matters more here, not less: a bug fixed without a test that failed for the bug's reason is a bug you cannot prove you fixed, and one that returns without anyone noticing. If the test does not go red first, you have not reproduced the bug. Go back to phase 1. ## The escape clause - three failed fixes means the framing is wrong **After three consecutive fixes that did not hold, stop fixing.** Do not try a fourth. Three failures in a row is not bad luck. It means the model you are debugging against does not match the system - and continuing to make changes against a wrong model damages code that was not broken. The question stops being "what is the bug" and becomes "why do I keep being wrong about this". In Compass terms that is a **re-assessment** signal, not just a debugging one. An issue whose fixes keep failing is usually an issue whose risk, familiarity or size was misread at the assess stage - most often familiarity scored `brownfield-mapped` when the behavior was never actually written down. So: ``` /compass:assess --reassess --reason "three fixes failed; the familiarity was misread" ``` Re-score the dimensions honestly. If familiarity is genuinely unmapped, the unmapped-familiarity floor (`RP-FLOOR-002`) will force `behavior-mapping` (on an atomic or small change with trivial or contained risk and no domain label, `RP-ADV-002` gives it as advice), and writing the current behavior down is very often the thing that ends the bug hunt. A re-assess here is the system working; a fourth guess is not. ## Anti-patterns - **The plausible change.** Editing something that looks wrong without a hypothesis that predicts the failure. If you cannot say what you expect to change, you are not testing anything. - **Debugging by diff.** "It worked before this commit" locates a change, not a cause. Use it to build a hypothesis, not to skip phase 1. - **The silent fourth fix.** Trying one more after three failures because this one *feels* right. Feeling right is what the previous three felt like. - **Fixing the symptom.** Making the test pass without understanding why it failed. On a hotfix this is an explicit, recorded follow-up; anywhere else it is a bug you have hidden rather than removed.
From ayeo-io/compass, Apache-2.0.
More from ayeo-io/compass
- 0.584score
tdd-discipline
ayeo-io
The red-green-refactor cycle as Compass runs it, including what to do when a change has no natural failing test.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
adaptive-routing
ayeo-io
Reading the three scored dimensions for the CLI.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
bdd-specification
ayeo-io
Writing and checking Given/When/Then acceptance scenarios.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
behavior-mapping
ayeo-io
Capturing existing behavior as scenarios before changing it.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
compass
ayeo-io
Use Compass stages and roles to deliver a change or resume an issue, using the shared kit and instructions.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
evidence-gates
ayeo-io
What counts as gate evidence, and how to clear a gate.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
flow-management
ayeo-io
Priorities across issues, blockers and the digest.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
governance-check
ayeo-io
Checking a design against the guardrails and strategies in force.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
receiving-code-review
ayeo-io
Answering review comments: check each against the code, push back with reasons, record the outcome.
SkillAFreshness: A★ 1Claude Code +9 - 0.577score
intent-interview
ayeo-io
Drawing `intent.md` out of a conversation.
SkillAFreshness: A★ 1Claude Code +9 - 0.577score
compass-runtime
ayeo-io
Which command runs each stage, which agent owns it, where issue state lives.
SkillAFreshness: A★ 1Claude Code +9 - 0.577score
plan-authoring
ayeo-io
Writing a technical design and its self-review.
SkillAFreshness: A★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 23
- Last commit (this folder)
- Oct 20, 2026 (9 days ago)
- Last release
- Oct 20, 2026 (9 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/ayeo-io/compass
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from ayeo-io
- 0.584score
tdd-discipline
ayeo-io
The red-green-refactor cycle as Compass runs it, including what to do when a change has no natural failing test.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
evidence-gates
ayeo-io
What counts as gate evidence, and how to clear a gate.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
behavior-mapping
ayeo-io
Capturing existing behavior as scenarios before changing it.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
adaptive-routing
ayeo-io
Reading the three scored dimensions for the CLI.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
bdd-specification
ayeo-io
Writing and checking Given/When/Then acceptance scenarios.
SkillAFreshness: A★ 1Claude Code +9 - 0.581score
compass
ayeo-io
Use Compass stages and roles to deliver a change or resume an issue, using the shared kit and instructions.
SkillAFreshness: A★ 1Claude Code +9
Cite this page
systematic-debugging skill. Agent Mart. https://agentmart.dev/skills/ayeo-io-systematic-debugging (last updated 2026-10-24)