debug
Skill1 starsChanged 15 days agoMITView on GitHub
Diagnose a failure with a tight red loop first, then minimise, hypothesise, fix the shared cause, and prove it. Use when something is broken, a test fails, a bug is reported, or the user asks to debug, diagnose, or find the root cause.
192 other projects use a version of this.
Adopted by
Most recently taken up by
- PeanutGT/NutsSkillstheir own version, first seen Nov 8, 2026
- jskswamy/skillstheir own version, first seen Nov 8, 2026
- Firzus/agent-skillstheir own version, first seen Nov 8, 2026
- domengabrovsek/agent-configtheir own version, first seen Nov 8, 2026
- domengabrovsek/claudetheir own version, first seen Nov 8, 2026
- microsoft/veronatheir own version, first seen Nov 8, 2026
Used with
Projects with it also use add-discord, add-slack and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
MicrosoftSkilladd-discord
Add Discord bot channel integration via Chat SDK.
Also in 11 projects that use this
MicrosoftSkilladd-slack
Add Slack channel integration via Chat SDK.
Also in 11 projects that use this
- +10 more from microsoft
Other versions192 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 192
- Yeachan-Heo/oh-my-claude-sisyphus★ 41ksame name
- Yeachan-Heo/oh-my-claudecode★ 41ksame name
- anthropics/knowledge-work-plugins★ 35ksame name
- gavrielc/nanoclaw★ 31ksame name
- nanocoai/nanoclaw★ 31ksame name
- qwibitai/nanoclaw★ 31ksame name
- openai/symphony★ 27ksame name
- FalkorDB/FalkorDB★ 10ksame name
- NVIDIA/TensorRT-Model-Optimizer★ 5.6ksame name
- NVIDIA/Model-Optimizer★ 5.6ksame name
182 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository34 other files it gives its agents.
- AGENTS.mdAGENTS.md
- templates/AGENTS.mdAGENTS.md
- commitSkill
- cut-releaseSkill
- data-changeSkill
- engineering-barSkill
- explain-codeSkill
- explore-codebaseSkill
- fix-ciSkill
- handoffSkill
- implement-changeSkill
- incident-triageSkill
- lean-reviewSkill
- open-prSkill
- performanceSkill
- production-passSkill
- ready-to-mergeSkill
- record-decisionSkill
- refactor-safelySkill
- resolve-conflictsSkill
- revert-changeSkill
- review-changeSkill
- security-passSkill
- shape-workSkill
- ship-notesSkill
- start-projectSkill
- upgrade-depsSkill
- verify-uiSkill
- write-architectureSkill
- write-designSkill
- write-dev-tasksSkill
- write-docsSkill
- write-prdSkill
- write-testsSkill
The file
We split this skill into the rules it gives an agent
8 rules. 0 are common, 5 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 175 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 14
Read AGENTS.md if present.
- Very specific: line 24
If this is a live incident and you cannot get a local repro, treat captured production evidence from incident-triage as the baseline.
- Distinctive: line 46
Read the entry point, nearby tests, and necessary callers to construct the loop.
- Distinctive: line 50
Run the loop when available.
- Distinctive: line 56
Write the smallest useful ranked set of falsifiable hypotheses: one for a direct, evidenced cause.
- Distinctive: line 69
Do not delete or skip the failing test, catch-and-ignore, or disable lint to hide it.
- Very specific: line 72
If a correct public seam exists, turn the minimised repro into a failing test (write-tests) before the fix, then make it pass.
- Distinctive: line 79
Run focused tests and, if cheap, repo Test.
“Common” is measured: kept by at least 6 in 10 of the 175 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Debug
Find the cause of a known failure. Do not shotgun-edit. Do not start a feature while debugging. Ground hypotheses in a reproduction or captured incident evidence for this bug.
Read AGENTS.md if present. Redact secrets in anything you show (<REDACTED>). Prefer env vars over pasting credentials.
Step 1 — Pin the failure
Write down:
- Expected: what should happen
- Actual: what happens instead (error text, exit code, wrong value)
- Repro: the exact command or the shortest UI/API steps
If this is a live incident and you cannot get a local repro, treat captured production evidence from incident-triage as the baseline. If you have neither a repro nor that evidence, stop.
Step 2 — Build a tight red loop
This is the job. A tight pass/fail signal for this symptom is the skill. Hypotheses come after.
Try, in order, until you have one command you have already run:
- Failing test at a public seam (
write-tests) - HTTP/script against a local server
- CLI + fixture, diff stdout to a known-good
- Browser script if the bug is UI-only and a browser tool exists
- Replay a captured payload through the path in isolation
- Throwaway harness that calls the failing path once
- Property/fuzz loop if it is "sometimes wrong"
git bisect/ automated "boot at state X, check" if it appeared between two known states- Differential: same input on old vs new
Then tighten: faster, asserts the user's exact symptom (not "didn't crash"), deterministic (pin time/RNG/network). Flakes: raise reproduction rate until it is debuggable.
Done with this step when you have a fast, red-capable command with captured output and controlled inputs. For intermittent failures, record reproduction frequency and remaining nondeterminism. For a live incident where safe replay is unavailable, captured production evidence remains an accepted baseline: proceed with bounded probes, label causal uncertainty, and verify the original production symptom after mitigation. Without either a loop or incident evidence, list what you tried and stop.
Read the entry point, nearby tests, and necessary callers to construct the loop. Keep inspection focused; do not change code based on an unsupported theory.
Step 3 — Reproduce and minimise
Run the loop when available; otherwise use the captured incident symptom. Confirm it is the user's failure, not a nearby one. Capture the symptom.
For a replayable loop, cut inputs, callers, config, and steps one at a time. Do not minimize a live production system by disrupting traffic. Re-run after each cut. Stop when every leftover piece is load-bearing (remove any one and the loop goes green).
Step 4 — Hypothesise, then probe
Write the smallest useful ranked set of falsifiable hypotheses: one for a direct, evidenced cause; several when the cause is uncertain:
If <X> is the cause, then <changing Y> will make it disappear / <changing Z> will make it worse.
Show the ranked list. Then test one at a time. Change one variable. Prefer a debugger or a few targeted logs over "log everything."
Tag temporary logs with a unique prefix (e.g. [DBG-a4f2]). For slowness, measure first (performance) — do not guess-cache.
Cap: if five hypotheses fail, stop and report the map.
Step 5 — Fix the cause
- Find every caller of the function you will change. One guard in the shared function beats a patch on only the ticket's path.
- Do not delete or skip the failing test, catch-and-ignore, or disable lint to hide it.
- Load
engineering-bar(paths in that skill). Climb Minimum path.
If a correct public seam exists, turn the minimised repro into a failing test (write-tests) before the fix, then make it pass. If no correct seam exists, say so — that is an architecture finding.
Step 6 — Prove and clean
- Re-run the original (un-minimised) loop, or verify the captured incident symptom against fresh production evidence. Report any verification gap; a mitigation alone is not proof of root cause.
- Regression test passes, or missing seam is written down.
- Grep out every tagged debug log. Delete throwaway harnesses.
- Run focused tests and, if cheap, repo Test.
Done
- The red-loop command and its last output, or incident evidence and its verification limits
- Root cause (file/symbol)
- Hypotheses discarded
- The fix
- Cleanup done (tagged logs gone)
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

