Disciplined diagnosis loop for hard bugs and performance regressions — build a tight feedback loop FIRST, then hypothesize, never the reverse. Use when the user says "diagnose"/"debug this"/"why does this fail"/"it's broken"/"it's slow", or reports something throwing/failing/flaky/wrong. Complements abductive-engineering (which supplies the reasoning framework — A-D-I loop, semiotic triad) with the operational mechanics that turn that framework into a repeatable debugging process. Where…
Collected from public GitHub. Every version is saved exactly as it was and never changes. Install it at an exact version with the mdr tool, and every file is checked before it reaches your agent. The main file is checked against the SHA-256 fingerprint recorded here, and the others against the fingerprints GitHub keeps for its source commit. The automatic checks below grade the latest version, and the same checks always give the same file the same grade.
What the file says
# Diagnosing Bugs
An operational discipline for hard bugs. `abductive-engineering` supplies the engine (A-D-I loop, Peirce's inference triad); this skill supplies the gears — the concrete steps, checkpoints, and anti-patterns that turn abductive reasoning into a repeatable debugging process.
It exists because the single most common debugging failure mode is **jumping to a hypothesis before having a feedback loop that can falsify it.** A developer reads the code, forms a plausible story ("it's probably the race condition in the connection pool"), and starts editing — without ever running the bug. When the edit doesn't work, they form another story. This is narrative debugging, and it is the opposite of inquiry.
> **The prime directive: a tight, red-capable feedback loop comes before any hypothesis.** If you have one, you will find the bug. If you don't, no amount of code-reading will save you.
---
## Phase 1 — Build a Feedback Loop
**This is the skill.** Everything else is mechanical. Spend disproportionate effort here.
A feedback loop is a single command — a script, a test invocation, a curl — that:
…
The line at the top of this page pins the label git:20260714.874a755, which is what most people want. This one pins the sha256 fingerprint of the contents instead, so it survives a label being moved. Either way the exact version is written to mdr.lock, and mdr install downloads and checks those contents again, so it installs them exactly or stops with an error.
A 17 of 17 checks passed. Fixed automatic checks with no AI involved, so the same checks give the same answer every run.
pass: Frontmatter block present
pass: Frontmatter declares a name
pass: Frontmatter declares a description
pass: Size between 200 bytes and 200 KB (11118 bytes)
pass: No zero-width or bidi control characters
pass: No instruction hidden inside an HTML comment
pass: No link to an exfiltration or paste host
pass: No credential-shaped string
pass: No instruction to send local credentials anywhere
pass: No text hidden with inline styles
pass: No prompt-injection phrasing
pass: No curl or wget piped into a shell
pass: No recursive delete of root, home or parent
pass: No instruction to read or print local credentials
pass: No base64 blob over 200 characters
pass: No link to a raw IP address
pass: No script tag
Source
GitHub
annatchijova/skills · 9 stars · license a license file GitHub does not identify · pushed 2026-11-02 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_5bh2py65bxpozeu7
GET https://markdownregistry.com/api/v1/resolve?ref=annatchijova/skills/diagnosing-bugs
GET https://markdownregistry.com/api/v1/blob/f5fe1c262d5ba998d018ddfae346aecb4cfc3537783ffcc1d03894bf7cdf2bed
Your AI assistant does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
annatchijova/skills · abductive-engineering/SKILL.md · Software engineering best practices grounded in C.S. Peirce's abductive reasoning and his triadic framework…
annatchijova/skills · acquisition-order-of-volatility/SKILL.md · Collect digital evidence in order of volatility, or destroy the thing you came for — memory, network state, and running…
annatchijova/skills · agent-trust-boundaries/SKILL.md · Design LLM and agentic systems so that retrieved content is data and never instruction — instruction authority comes…
annatchijova/skills · alert-triage-economics/SKILL.md · Triage a security alert queue by expected loss, not by the severity label the tool stamped — because analyst attention…
annatchijova/skills · assume-breach-modeling/SKILL.md · Start from "this step already succeeded" and map what the attacker reaches next — the identity held at that position…
annatchijova/skills · atomic-state-mutation/SKILL.md · Make a logical operation that spans several writes to persistent state land all-or-nothing, isolated from concurrent…
annatchijova/skills · attack-surface-triage/SKILL.md · Enumerate the attack surface of an AUTHORIZED target and rank it into a reproducible, falsifiable candidate queue —…
annatchijova/skills · audit-before-patch/SKILL.md · Validate any audit finding, bug report, or proposed fix against the actual current file content before changing a…
annatchijova/skills · authorization-surface-mapping/SKILL.md · Build the actor × resource × action matrix a system implicitly claims to enforce, then test the cells it never wrote a…
annatchijova/skills · beyond-the-fix/SKILL.md · Audit the bug fixes themselves — a patch proves that someone knew something was wrong there, never that it is now…
annatchijova/skills · beyond-the-sink/SKILL.md · Look past the obvious layer of an investigation — past sink-grep keyword lists, past the exhausted question family…
annatchijova/skills · claim-provenance-discipline/SKILL.md · Tracking and preserving the origin of every assertion as it travels through drafts, handoffs, summaries, and documents…
kunolu/640-skills · sbtd-workflow-onboard/assets/external-skills/stable/skills/diagnosing-bugs/SKILL.md · Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports…
mxyhi/ok-skills · diagnosing-bugs/SKILL.md · Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports…
asymmetric-al/core · .agents/skills/diagnosing-bugs/SKILL.md · Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports…
oyadotai/oya-browser · .agents/skills/diagnosing-bugs/SKILL.md · This skill should be used when diagnosing a reported bug, intermittent failure, stuck operation, or performance…
oyadotai/oya-browser · .claude/skills/diagnosing-bugs/SKILL.md · This skill should be used when diagnosing a reported bug, intermittent failure, stuck operation, or performance…
jellydn/my-ai-tools · skills/diagnosing-bugs/SKILL.md · Build a tight, red-capable feedback loop before diagnosing failures, then minimize, test ranked hypotheses, and lock…
jellydn/my-ai-tools · configs/amp/plugins/my-ai-tools-skills/skills/diagnosing-bugs/SKILL.md · Build a tight, red-capable feedback loop before diagnosing failures, then minimize, test ranked hypotheses, and lock…