All writing

Effort economics on Fable 5: coming down from xhigh

Yesterday I un-pinned Ultracode and set the interactive effort slider to xhigh. Today the slider came down another notch, to high. Same driver as before — token consumption — but this time the fix wasn't about which orchestration mode to run. It was about a wrong mental model of what the effort dial actually does on Fable 5.

Lower effort is not the downgrade it sounds like

The mental model I carried over from previous model generations was: xhigh is where the good output lives, and everything below it is a degraded budget mode. Anthropic's own migration guide says that model is obsolete on Fable 5: lower effort settings — including low — still perform very well, often exceeding the xhigh or even max performance of previous-generation models. The guide's advice is to reduce effort when tasks complete correctly but take longer than necessary.

What actually changes at lower effort is behavior, not correctness. Fewer and more consolidated tool calls. Less pre-work context gathering. Fewer self-verification loops. Shorter preambles. The gap matters on long-horizon autonomous work — big refactors, multi-hour agentic runs, debugging with no known cause. On everyday interactive work, the main thing xhigh buys is a model that gathers context and deliberates beyond what the task needs. That surplus deliberation was most of my token bill.

The orchestrator doesn't need to be the deep thinker

The second realization is specific to my setup. My main session is an orchestrator: it plans, splits work, and synthesizes results. The genuinely hard thinking is delegated — architecture and gnarly debugging go to a subagent pinned to Opus, grunt work goes to one pinned to Sonnet. So the expensive reasoning already happens outside the main session. Running the routing layer at xhigh meant paying deep-thinking rates for decisions like "who should handle this." That's the mismatch the new default fixes: Fable stays the main model for its judgment, but at an effort level matched to the orchestrating role it actually plays.

The new rule

Verbatim from the updated file:

CLAUDE.md
- Keep the interactive `/effort` slider at **high** by default. The official
  guidance is that Fable 5 performs at or above previous-generation xhigh even
  at lower effort levels, and the main session is an orchestrator (planning,
  splitting, synthesis), so always-on xhigh is token overspend (lowered
  2026-07-09). Raise to `xhigh` only for the hardest coding/agentic sessions,
  and to go deep for a single turn, put the `ultrathink` keyword in the prompt
  instead of touching the setting.

The ladder this leaves me with: high as the standing default. medium as a legitimate per-session economy option for routine sessions — the official caveat is that newer models respect low effort strictly, so judgment-heavy work can come out under-thought, which is why it isn't the default. xhigh reserved for sessions that are genuinely hard end-to-end. And ultrathink — a prompt keyword, not a setting — when one turn needs depth but the session doesn't.

Everything from yesterday's post still stands: Ultracode stays off except for work one conversation can't coordinate, programmatic calls specify both model and effort per stage, and the hook still blocks any subagent dispatch that doesn't name a model. This change only moves the interactive baseline.

That's two posts in two days about turning a dial down. The pattern behind both is the same: defaults I chose to maximize quality were really maximizing spend, because on this model generation the quality curve flattens out much earlier than my instincts said. The updated file is live at taejunoh.com/claude.md.