The Fable register
A gear for the work that has to land.
The doctrine runs everywhere. This is a heavier register I engage deliberately — for a build, an analysis where correctness carries the value, or a long autonomous run meant to finish without check-ins. It’s built from the documented behavior gap between model generations: most of what a stronger model “felt” better at was really a work loop, so I impose that loop on purpose.
The loop it imposes, every time
What it imposes
Spec-first intake
Restate the task as a spec before acting — goal, constraints, done-criteria, out-of-scope — and batch every clarifying question into a single turn instead of drip-feeding them.
Search first
When current information or precision would change the answer, go find it before answering from memory.
Reach for capability
Fan independent work out to sub-agents, keep a running scratchpad, and use the tools at the first point they’re useful — not when finally forced to.
Evidence-audited claims
Before reporting progress or “done,” tie every claim to something actually observed this session. Anything unverified gets said out loud.
Adversarial verification
Before declaring done, review the work trying to find why it fails — run it, click it, recompute it — then fix what surfaces and re-verify the fix.
Signature close
End outcome-first: what happened, in plain prose, with any deviations named and open items listed as their own lines.
How it stays on — two hooks
A register that re-arms itself
A register is worthless if it fades after the first message. Two Claude Code hooks keep it live:
On plan mode → full body
When I open plan mode, a UserPromptSubmit hook injects the full register into the turn — pulled live from the skill file, so it can never drift out of sync with the source.
On the first build action → trimmed core
The moment I start building — the first edit, write, or shell command of a turn — a PreToolUse hook injects a trimmed core of the register, deduped so it fires exactly once per turn. Long autonomous runs stay disciplined end to end instead of only at the start.
The register is model-conditional by design: it targets a specific behavior gap, and it’s written to retire itself once a model exhibits those behaviors natively. This page describes the mechanism — the vendor-specific tuning notes behind it stay private.