agentsclimarketplace

Root cause debugging

Skill pipipip169/fable5-handoff/sources/adamentwistle-fable-skills/root-cause-debugging

The retirement handoff of Claude Fable 5 - written by the model itself. Domain-neutral discipline files that transfer flagship working method to any model, any agent framework, any team.

Install
npx -y skills add pipipip169/fable5-handoff --skill root-cause-debugging

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

3 things to look at

  • 25 days oldThe repository was created 25 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Systematic debugging — reproduce, bisect, prove the cause with a falsifiable hypothesis, fix minimally, re-verify against the original repro. Use for any bug, test failure, regression, or flaky behavior, before proposing a fix — and whenever a first fix didn't work.

SKILL.md

3.1 KB, as published. Nobody here has run it

Root-Cause Debugging

Weak debugging looks like: read the error → pattern-match to a familiar cause → apply a plausible fix → declare victory. Strong debugging proves the cause before touching the fix. Follow this sequence and do not skip stages.

Stage 1 — Reproduce before anything else

Get the failure happening on demand, in the smallest command you can run repeatedly (a single test, a curl, a node one-liner). If you cannot reproduce it, your job is to instrument until you can — not to fix blind.

Write down (mentally or in a scratch file) the exact reproduction command and the exact observed-vs-expected output. This is the acceptance test for your fix.

Stage 2 — Locate by bisection, not intuition

Find where reality diverges from expectation by cutting the search space in half repeatedly:

  • Trace the data: pick one concrete value that ends up wrong and follow it backward from the symptom to where it was last correct.
  • Log/inspect at the midpoint of the suspected path; then midpoint again.
  • Use git: git log --oneline -- <file>, git bisect, or diff against the last-known-good commit when it's a regression.
  • Distrust the error site. The line that throws is where the bad state was noticed, rarely where it was created.

Stage 3 — State the cause as a falsifiable sentence

Before fixing, complete this sentence with specifics: "The failure happens because [specific code] does [specific wrong thing] when [specific condition]."

Then try to falsify it: if this were true, what ELSE would be broken? Check that. If the hypothesis predicts things that aren't happening, it's wrong — go back to stage 2. A hypothesis you haven't tried to break is a guess.

Stage 4 — Fix the cause, minimally

  • Fix where the bad state is created, not where it's detected.
  • Prefer the smallest diff that makes the falsifiable sentence false.
  • If the real fix is large and you must ship a symptom-level guard, say so explicitly in your report — never present a mitigation as a root-cause fix.

Stage 5 — Verify with the original reproduction

Run the exact stage-1 reproduction. Then run the surrounding test suite to check for collateral damage. A fix verified only by "the code looks right now" is not verified.

When a fix attempt fails

Do not stack a second guess on the first. Revert your mental model to stage 3: the failed fix is evidence — it falsified your hypothesis. Ask what the failure of the fix tells you about where the real cause is.

Flaky / intermittent failures

Don't average over the noise. Find the varying input: timing (race), ordering (test pollution, map iteration), environment (env var, port, clock), or data (random seed). Run the reproduction in a loop (for i in $(seq 20); do ...; done) to measure the failure rate before and after the fix — "passed once" is not evidence for a flake fix.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.