跳到正文

mrtooher

fable-mode

A Claude skill that activates Fable-style agentic behavior: explicit multi-stage planning, sub-agent delegation, and self-verification.

README 已保存到本站,可直接阅读

Documentation snapshot

README 快照

这篇是英文原文

下面正文是项目自己的英文 README。想读全文就用浏览器自带的整页翻译: Chrome / Edge 点地址栏右侧的翻译图标,或用右键菜单里的「翻译成中文」; 手机浏览器一般在菜单里。

本页保存的是公开项目资料快照,阅读过程不需要连接 GitHub。

fable-mode

Execution discipline for Claude on large tasks: a written stage map, delegation to named agents where the runtime allows, a verification check at every stage that can actually fail, a skeptical self-review, and a mandatory cold double-check before anything is delivered.

It is a checklist, not a capability transplant. Benchmarked three times so the README can say what it does and does not do (see Evidence).

The ladder

Haiku  →  Sonnet  →  Opus  →  Fable 5.1  →  the user

One skill per rung, same core loop, tuned to that tier’s known failure mode:

SkillModelUse it whenKnown gap it guards
fable-modewhatever is runningdefault; adapts intensity to the model—
fable-fableClaude Fable 5.1the deliverable needs an audit trail (worklog, reproducible checks, flagged judgment calls) or spans sessionsnone measured — a provenance runner, not an accuracy runner
fable-opusClaude Opuspeak synthesis short of Fable; orchestrates Sonnet/Haiku workerstrusts its own introspection; scope growth
fable-sonnetClaude Sonnetbalanced default for thorough workskips the failable check, substitutes “looks right”
fable-haikuClaude Haikubulk, cheap, parallel mechanical workskips verification under time pressure

Two always-on companions:

  • execution-guardrails — verify-before-flag, warning batching, word-boundary find-and-replace. Every model, every task, whether or not the loop runs.
  • double-check — the delivery gate. A panel of fresh checker agents (Haiku for mechanical checks, Sonnet for requirements, Opus to adjudicate) attacks the finished artifact. Every fable runner calls it before handing anything over.

Core loop

  1. Stage map first. Numbered stages, expected output each, one verifiable artifact per stage. Living document; at most two full replans per run — a third means the requirements are ambiguous, go back to the user.
  2. Delegate by name. Reasoning stages to a Sonnet worker, mechanical stages to a Haiku worker, cold checks to a read-only verifier. Workers don’t spawn workers.
  3. Verify with a check that can fail. A test that runs, a file in the expected shape, a source actually fetched, an output diffed against spec. “I reviewed it and it looks right” is not a check. Name the exact command or mark the stage unverified.
  4. Self-critique. Fix or flag a real weakness; a clean pass stated plainly beats a manufactured caveat.
  5. Double-check. Fresh eyes, ternary verdicts (PASS / FAIL / UNVERIFIABLE), fix and re-check before delivery.

v3: delegation is structural

Field feedback on v2 (r/claudeskills): telling a model in prose to spawn a worker almost always runs the task inline. So v3 moves the discipline into real agent definitions under agents/:

  • fable-orchestrator — no Write/Edit tool. It cannot produce artifacts; every one must come from a named worker. Opus by default; fable-fable runs the same definition with model: "fable" (per-invocation override, documented for Claude Code and confirmed in Cowork).
  • fable-worker-sonnet / fable-worker-haiku — one bounded assignment, exact output path, named pass condition, evidence in the report.
  • fable-verifier — read-only; gets the spec and the artifact, never the producer’s reasoning.

The skills shrink to routers. Full history in V3-CHANGES.md.

Evidence

Three benchmark rounds, deterministic graders, tasks built with unstated traps (duplicate rows, grep-invisible getattr("calc" + "_total"), errata chains superseded by meeting notes, a real federal data file to fetch or fabricate).

TierEffect of the skillSource
Fable 5.10 delta — 100/100 in all 16 paired runs (n=2/cell, 4 tasks incl. open-ended real-data fetch); ~1.1× tokens, ~2× wallBENCHMARK-2026-09-02.md
Opus / Sonnet0 delta on closed graded tasks; real on open-ended research — Opus+skill fetched and parsed the NIAAA state dataset, Opus baseline shipped synthetic trend linesJuly 2026 rounds
Haikureal but noisy: +25 / −17 across rounds; raises the floor on mechanical diligence, cannot supply synthesisJuly 2026 rounds

Read: the loop’s value inverts with model strength. On Fable 5.1 it buys provenance. On Opus it buys real sources over plausible ones. On Haiku it buys verification the model would otherwise skip — sometimes. The harness is in bench/; rerun it.

Install

Claude Code (user scope — skills to ~/.claude/skills/, agents to ~/.claude/agents/):

git clone https://github.com/mrtooher/fable-mode.git && cd fable-mode && ./install.sh

Cowork / claude.ai: Settings → Capabilities → Skills → add each /SKILL.md (root SKILL.md is fable-mode). The agents are not loadable there; the skills detect that and fall back to inline mode, saying so.

Do not install anything from agents/ as a skill. Those files are agent definitions: second-person system prompts whose frontmatter carries tools: and model:. Loaded as a skill they land in the main thread and assert things about it that are false there — fable-orchestrator in particular tells its reader it has no Write tool and must delegate to worker agents that do not exist on a skill-only surface. The result is a stall, or an inline run narrating a delegation that never happened — the exact failure v3 exists to prevent. Agents go in agents/, skills go in skills.

Folder name must equal the name: field in each SKILL.md or the skill will not trigger.

Files

SKILL.md                    fable-mode (default, adaptive)
fable-fable/SKILL.md        Fable 5.1 runner
fable-opus/SKILL.md         Opus runner (orchestrator route)
fable-sonnet/SKILL.md       Sonnet runner
fable-haiku/SKILL.md        Haiku runner
execution-guardrails/       always-on rules
double-check/               delivery gate
agents/                     orchestrator, sonnet worker, haiku worker, verifier
bench/                      fixtures generator, graders, prompts, results.json
BENCHMARK-2026-09-02.md     Fable 5.1 results
EXAMPLE.md                  worked before/after: the failable check catching a bug
V3-CHANGES.md               why delegation became structural
install.sh                  Claude Code installer

When NOT to use it

One obvious approach that fits in a single pass → do it directly. Staging a trivial task buries the answer under ceremony. The loop earns its cost only when a one-shot attempt would plausibly miss something — or when you need to show your work.

Official distribution

获取与安装

暂未发现可确认的官方软件包地址

当前 README 快照没有出现 npm、PyPI、Crates.io、pub.dev 等官方包页链接。本站不会根据仓库名称猜测下载地址。

本站不托管项目文件;需要安装时,请以项目维护者发布的官方文档为准。

使用前核验

本站保存公开资料用于阅读,不代表安全审计或功能背书。安装前请核对许可证、依赖来源和发布签名,不要直接运行来源不明的二进制文件或高权限脚本。