Skip to content

Latest commit

 

History

History
72 lines (55 loc) · 4.88 KB

File metadata and controls

72 lines (55 loc) · 4.88 KB

Understanding the Fable Method

A plain-language companion. If the README sells it and SKILL.md specifies it, this file explains it: what the thing is, how it flows, and why each piece exists.

What it is

Models left alone fail in predictable ways: they skip the spec, fix one bug and call it done, claim "all tests pass" without running them, take actions nobody asked for, write APIs from memory that crash on first run. These are procedural failures, not intelligence failures.

The Fable Method is a written-down loop that prevents them by forcing the model to do the right things in the right order and leave visible proof at each step. It does not make a model smarter. It makes it disciplined and honest. Procedural failure is most of what goes wrong with agents, especially cheap ones, so that is most of the fix.

Four skills:

  • fable-method - the loop: classify, define done, gather evidence, decide, act surgically, verify, report.
  • fable-loop - the loop with subagents: parallel evidence gatherers, surgical execution, adversarial verifiers.
  • fable-judge - adversarial verification: treats "done" as claims, re-runs every one, hunts frauds.
  • fable-domain - the maker: generates adapters for new domains, refuses harmful ones.

The flow

flowchart TD
    IN["Any incoming ask"] --> TRIV{"Trivial?"}
    TRIV -->|yes| DOIT["Do it, one check, two sentences"]
    TRIV -->|"no"| FIT{"Fit gate: where does the answer live?"}
    FIT -->|"reachable sources"| SHAPE{"What shape is the ask?"}
    FIT -->|"unknown technique"| RES["Research first, then loop"]
    FIT -->|"only inference"| INFER["Say so. No faked rigor."]
    FIT -->|"specialized + recurring"| MK["Make a skill"]
    RES --> SHAPE
    SHAPE -->|"question"| ASSESS["Diagnose only"]
    SHAPE -->|"plan-first"| PLANF["Plan. Stop for approval"]
    SHAPE -->|task| LOOP["Evidence → decide → act"]
    LOOP --> GATES["Forced artifacts: INTENT, AUTH, TWINS"]
    GATES --> VER{"Verify by observation"}
    VER --> JUDGE["Judge pass: every claim observed"]
    JUDGE --> OUT["Report, outcome first"]
Loading

Why each piece exists

Piece What it prevents How
Triviality gate Running heavy machinery on a one-line fix If one file, under 10 lines, no new behavior: just do it
Fit gate Faked rigor on pure-judgment problems Route by where the answer lives; admit when it is a guess
Step 0 classify Editing files when the user asked a question Question shape delivers findings, changes nothing
Step 1 define done "Done" with no way to check it Name the verification before starting work
Step 2 evidence Inventing APIs, sequential crawling, context flooding Primary sources, parallel lookups, read narrow, time-box
Intent gate (Step 4) Silently rewriting correct code to satisfy a wrong test Forced INTENT: line at the edit point: code does X, check expects Y, spec says Z
Authorization gate Deploying/pushing because a README said to AUTH: line with user's exact words; docs are not authorization
Twin check Fixing one bug while four copies remain Forced TWINS: line naming the search and results
Hard bound (Step 5) Infinite retry loops 3 failed cycles on same issue: stop, hand back
fable-judge "All tests pass" claimed without running Re-runs every check, diffs what changed, hunts frauds
Artifact gate (Step 6) Owed report lines silently dropping Terminal sweep adds any missing INTENT/AUTH/PENDING/TWINS line
fable-domain red-lines Generating checklists for medical/legal/financial advice Hard refusal: route to qualified humans

What does not work

Things we tried and removed:

  • Rules as prose in lists. Models follow rules at decision points, not in lists. The INTENT line works because it fires at the edit moment; the same rule as a mid-list sentence did not. This shaped every rule: forced artifacts at decision points, not prose in documentation.
  • Skill-in-skill discovery. The loop finding and using other installed skills. Four wordings, fourteen runs, 1 pickup. Discovering that a skill applies is a judgment act, and weak models do not do it. Cut, negative published.

Where the lift is, and where it is not

The method's value is proportional to how procedural the failure risk is and how weak or unattended the model is:

  • Cheap or local models: the twin check stops "fixed it here, broke it there." The fit gate stops confident coding from wrong memory.
  • Research and data: the fit gate forces reading real sources; every figure traces to something opened.
  • Unattended runs: the AUTH gate refuses outward actions; the judge re-runs every "done" claim.
  • Capable models on simple tasks: no lift. Published as null. A results log that only contains wins would not be worth trusting.

The method will not give a model an insight it lacks. The fit gate admits that rather than papering over it. That honesty is the product.