fable-debug
Skill1 starsChanged 4 months agoMITView on GitHub
Use when behavior contradicts expectation — a bug, an unexplained error, a failing test, output that looks wrong, a fix that didn't hold — or when you're about to retry the same category of fix a second time, or work keeps failing or stalling. Also when the user says "debug this", "why is this happening", or "still broken". Skip when the cause is already proven.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- ahmdd4vd/Fable5restheir own version, first seen Jun 16, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- ahmdd4vd/Fable5res★ 13same name
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 repository6 other files it gives its agents.
- fable-methodSkill
- fable-reviewSkill
- fable-scopeSkill
- fable-shipSkill
- fable-statusSkill
- fable-verifySkill
The file
Files
fable-debug
A bug is a wrong belief, not just a wrong line. Fix your model of the system first; the code change then falls out. Never debug by mutation — "change something, rerun, hope" burns evidence and moves the bug around.
The procedure
- Reproduce first. Get the minimal command that shows it red, and run it. A failure you can't trigger on demand can't be verified fixed — and if you can't reproduce it, that is the finding: report it and instrument (logging, a capture) instead of shipping a speculative patch.
- State the contradiction in one sentence. "X should produce Y because Z; it produces W." If you can't fill in Z, you don't understand the intended behavior yet — go read the source of truth first (R1).
- Run a hypothesis ledger, cheapest-first. List 2–5 candidate causes. Each gets a designed probe with a predicted outcome written down before running it — a probe whose outcome you can't predict is a coin flip, not an experiment. One variable per probe. Strike out falsified rows in writing; that's what prevents circling back to a cause you already killed.
- Bisect the delta when a working/broken pair exists — version, commit, input, environment, config. Differential evidence beats staring at code.
- Three strikes → up a level. The same category of fix failing twice means the shared assumption underneath is wrong (R2). Stop patching; re-read the contradiction; widen the frame.
- Fix the invariant, not the instance. Root cause found → grep every caller and sibling path; the fix goes where all paths route through, or the siblings stay broken.
- Verify red → green on the exact reproduction from step 1 — red before the fix, green after, at the layer of the claim (→ fable-verify). A fix you never watched fail isn't proven to be the fix.
- Root-cause the escape. Always the second question: why did the existing checks miss this? Mint the runnable rule — the test/assert/check that would have caught it — and log the gotcha (
trap → cause → rule) to.fable/project.md. If a task file is open in.fable/tasks/, record the decision trail there. And if the broken behavior was vouched for earlier, find that claim in.fable/claims-log— and in.fable/claims-log.<year>, wherefable-shiparchives older ones; a claim you can't find is not a claim that was never made — then mark itFALSIFIED <date> — <what actually broke>: a falsifiedVerified:is a calibration miss, and how the check missed it is the gotcha.
Red flags — you are debugging by mutation
- "Let me just try…" with no predicted outcome.
- Editing code before reproducing the failure.
- Two changes in one probe (you won't know which mattered).
- A fix explained with "somehow" or "must have been".
- Deleting or weakening the failing test to get green.
- Attempt three of the same fix.
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.

