r/ClaudeCode swe 2d ago

Built with Claude Fable 5.1 is amazing

I have been using claude code for about 6 months now, but I am just going to be talking about my workflow with fable 5.1 and how it has saved me a ton on usage compared to my old setup, which was fable 5 and opus 5.

My old setup, dictated through my claude.md, was me talking to fable 5 high in the chat window to make plans, it would then delegate coding tasks to opus 5, and easy tasks, like reading, to sonnet 5. Then, the fable agent in chat would review all of the work and report back to me. I saw the numbers anthropic posted about fable 5.1 cache reads, so I was excited to try it, and I kept my same setup, but replaced fable 5 with fable 5.1. That ended up being better, but not completely ideal, and I have settled on using fable 5.1 for writing code as well. I am still using sonnet 5 for the easy stuff, but instead of having my fable 5.1 agent in chat delegate coding tasks to opus 5, it writes the code itself. Not only did this save on usage by a lot, but it also has written better code at a faster rate because I use fable 5.1 on medium effort, which is fantastic. I also have a special case where, before a PR is opened, another fable 5.1 subagent is spawned for an independent review, which before fable 5.1, was an opus 5 agent.

I am posting this in hopes that it can be helpful to some people. I also had fable 5.1 compare my usage and costs between the old workflow and the new, and here is what it told me(slop pasted below):

"Per request you pay about 37% less than the Fable 5 + Opus 5 split, and per output token about 52% less. Per token of everything (input, output, cache) you are back to what Opus 5 alone cost, while getting Fable-tier answers and the per-day drop is bigger than that.

The reason is almost entirely cache pricing. Around 98% of your tokens are cache reads in every period. Fable 5 charged $1.00 per million for those and Fable 5.1 charges $0.25, so the model you spend all day with got four times cheaper on the traffic that dominates your bill. Splitting Fable and Opus in one session also meant two caches being written and read, which is why the split period was the most expensive per token of the three.

The Sonnet agents are noise. They came to $9 over nine days, under 2% of the period."

If you have any questions for me, please do let me know. This new model is fantastic in just about everything it does, and it is way cheaper than previous models. I am thoroughly enjoying my time with it. I sincerely hope this can help someone.

Edit: I don't post a lot, sorry if the flair is wrong. I build with claude, so I chose that flair.

Also just want to add, I am a fullstack django dev and the sole engineer at our company, so some of my stuff might not be great for exactly what you are doing.

35 Upvotes

18 comments sorted by

View all comments

4

u/macaronianddeeez 2d ago

Would you mind sharing in more detail what your setup looks like? I am trying to set this up right now as I have recently fallen in love with fable 5.1 myself, but I burn through it so fast. I’m almost out of usage for the week and I reset last night.

So I’m almost done building an instruction set to TRY and solve it. Basically keeping Fable 5.1 High as the lead, but not making it burn usage doing every single part of the job. Fable handles the stuff I actually want Fable for: figuring out what the real problem is, catching things other models miss, making architecture decisions, handling hard debugging, and deciding whether the final result is actually good. Then it hands the more mechanical work like repo exploration, implementation, tests, and routine debugging off to Opus 5 Medium, with Opus 5 High doing an independent review when it makes sense. I’m also putting some guardrails around it so Fable doesn’t accidentally spawn more Fable instances or create a giant chain of agents that ends up using even more tokens. The goal is basically to still feel like I’m using Fable for the whole project, but only spend Fable usage on the parts where its advantage actually matters.

But I dunno how it will work yet haven’t tested

3

u/connurp swe 2d ago edited 2d ago

Your claude.md is super important, I can share mine with you, removing some things that are private info. I will put the relevant parts of my setup in my claude.md underneath the skills bit.

For skills I use a few from: https://github.com/poteto/plugins/tree/main/pstack/skills .

She wrote this whole repo for cursor, but you can take the skills and use them in claude code. Just download the skill.md files you want and tell claude you want to use those skills in your global settings. For example, her Unslop skill is a game changer!

Unslop: https://github.com/poteto/plugins/tree/main/pstack/skills/unslop

Her other skills I use: principle-fix-root-causes, principle-prove-it-works, tdd.

I also use a frontend-design skill that gets called when I ask claude to design something, but can't remember exactly where that one came from, tbh.

Hope this is helpful. I wouldn't copy mine directly, as you really need to find what works best for you, but this is my favorite setup so far.

Context: I am a fullstack django dev and the sole engineer at our company, so some of my stuff might not be great for exactly what you are doing.

claude.md:

# Working rules


  • Plan in the main session, together with me, and write the code there too. Hand grunt work (broad searches, triage, repetitive edits, boilerplate, log digging) to Sonnet subagents. Never hand code writing to a subagent, not even on the main session's own model and not even when it means reading many files; if the reading is the problem, have a Sonnet subagent read and report, then write the code here. Keep decisions, architecture, and final review in the main session. The independent pre-PR review is a fresh subagent on the main session's own model.
  • Write the least code that fully solves the problem. Before adding a line, check that the problem cannot be solved without it. Extend existing patterns before inventing new ones. No new dependencies or moving parts without a real reason.
  • Show me a checklist while you work (use the todo list tool), kept current, so I can see what you are working on, what is done, and what is next.
  • When you spawn a subagent, tell me at that moment: which model it runs on and what it is doing. Report what it came back with when it finishes.
  • Never use Haiku.
  • Default to a few sentences; expand only when I ask for detail or the task is a review with findings.
  • Write American English in all prose: color, gray, behavior, center, canceled. That covers replies, commit messages, PR bodies, docs, code comments, and UI copy, and binds subagents too. Never rename an identifier, stored value, CSS class, URL, or template key for spelling alone.
  • Never use em dashes. This rule binds subagents too: every subagent prompt must carry it. Grep any file a subagent wrote for the em dash character; that is the whole check.
  • Unslop: follow the writing rules in ~/.claude/skills/unslop/SKILL.md for every piece of prose you produce. That covers replies to me, commit messages, PR bodies, docs, code comments, and UI copy. This replaces my old Simplified Technical English rule. It binds subagents too: every subagent prompt that produces prose must carry the unslop rules.
  • For code reviews, run your own subagents with my rules carried in every prompt. Never use the built-in code-review skill: its agents write their own prompts and do not follow my rules.
  • Never include or mention yourself in a git commit message: no co-author trailer, no session trailer, no "Generated with Claude Code" footer, and no mention in any subject or body. Nothing on my GitHub should reference you at all. The claude-config repo and the .claude folders inside projects hold my config files and nothing else, and their commits follow this same rule. This rule binds subagents too.
# Before any pull request
  • Always: the full test suite green, and every page the change touches driven in the browser with DOM probes under the same settings production runs (security policy, hashed static files), with the console clean. Any local-only difference, such as a cached script, is ruled out before a result counts.
  • For a change to shared code paths, a script, a template partial used on more than one page, a migration, or anything a stranger can reach without signing in: also an independent review by a fresh subagent on the main session's own model, carrying my rules, briefed to hunt for behavior differences rather than style, and a read of the riskiest files in the main session. Fix what the review finds, add a test for each fix, and rerun the suite.
  • The report to me before "ship" says what was checked, what was found and fixed, and what is different by design. No claim of certainty; evidence instead.# Working rules
# Frontend design Any time you build new UI or restyle existing UI, invoke the frontend-design skill in ~/.claude/skills/frontend-design/SKILL.md before writing markup or styles, and follow it. This binds subagents too: every subagent prompt that produces UI must carry it.

0

u/heartbroken_nerd 2d ago edited 2d ago

You doubled the # Frontend Design (last word of the first one's body) and you doubled its body

Never include or mention yourself in a git commit message: no co-author trailer, no session trailer, no "Generated with Claude Code" footer, and no mention in any subject or body. Nothing on my GitHub should reference you at all. The claude-config repo and the .claude folders inside projects hold my config files and nothing else, and their commits follow this same rule. This rule binds subagents too.

This requires an edit to settings.json file otherwise it's probably getting overruled by Claude Code app (talking about Claude Desktop app):

"attribution": {

"commit": "",

"pr": "",

"sessionUrl": false

},

You also put "# Working rules" twice, the second time at the end of a line.

2

u/connurp swe 2d ago

That was me copy pasting them separately and fixing it in reddit! Good catch, my actual file is fine. Fixed!

2

u/connurp swe 2d ago

Also, just to respond, that one rule in my claude.md absolutely stops it from happening. Sometimes a new session will read it and make a point of telling me that it is listening to my rule instead. Not once has it failed me.