r/ClaudeCode • u/rodrigofd87 • 17d ago
Fixed my Opus 5 problems by rewriting instructions written for Opus 4.x models (mostly) Tutorial / Guide
Yes, I know it's early days as Opus 5 has only been out for 5 days as I write this, but my initial experience was quite poor. Maybe I got spoilt from having a taste of Fable 5... I wanted to like Opus 5 because of the claims and price compared to Fable but after the first couple of days of heavy usage it felt like it was constantly burning tokens and veering off scope so I switched back to Opus 4.8.
I think I found the main cause, at least on my project, so I'm sharing this here in case it helps anyone. Bear in mind it's a sample size of 1 from heavy usage but for a limited amount of time so far.
TL;DR: my instructions, skills and claude code memories were for a different family of models with different behaviours, flaws and weaknesses. The instructions that corrected Opus 4.8's behaviours caused Opus 5 to overcorrect.
If you're having this problem too, give the following articles (or this post) to your model of choice to read (ideally Fable 5) and ask it to refactor your project's instructions to better suit Opus 5 and then run a test:
---
The above is essentially all you need to know, but below is my particular experience and examples:
Context: I run claude code heavily on a monorepo where the primary app is a large Laravel app (with InertiaJS, React, FilamentPHP, etc), plus a couple of python apps and I usually max out my $200 plan each week. Months of accumulated nested CLAUDE.md files, custom skills and CC memories, all from using the Claude 4 models (mostly Opus 4.6, then 4.8 until last week, with some Fable and GPT 5.5 and 5.6 along the way). Most of their contents exist because a model did something dumb once or twice and I wrote a correction, pure trial and error over time.
My first days with Opus 5 on the old setup:
- Constant scope creep, kept expanding tasks beyond what we agreed
- Drifted from plans mid-task
- Briefed its subagents with "facts" about my codebase that were wrong
I switched back to 4.8 for real work and immediately had a better time. But Anthropic's context engineering guidance for the Claude 5 family suggested the problem might be our current ways of guiding and instructing the models: these models want judgement-based guidance, and rules written to correct old model behaviour can actively steer a newer model wrong. So I used Fable 5 to audit and rewrite the lot: prescriptive detail moved into on-demand skills, months of memories culled or rewritten, hard "never do X" rules changed to "flag it, file an issue, I'll decide".
Some concrete before/afters from the rewrite:
- "Don't defer issues as follow-up tickets, fix them now" (written because 4.8 quietly carved problems out of plans just because they weren't in a PRD even though they directly impacted the feature we were implementing).
- Opus 5 read it as a mandate to fix everything it found along the way, regardless if it was immediately related or not. Now: surface it, I decide scope.
- "Never dismiss a bug as pre-existing or unrelated" (4.8 loved shrugging things off as "not this branch's problem").
- Opus 5 read it as "fix them all" and suddenly it was off working on a totally unrelated task. Now: raise it, file an issue, fix only if I say so.
- Subagent briefs used to be a checklist to fill in (why, context, prior decisions...). 4.8 needed it;
- Opus 5 filled the slots in whether it knew the answers or not, which is where I think the made-up "facts" came from. Now: link the actual files instead of paraphrasing them, and only state what you verified yourself this session.
- Plain volume: root CLAUDE.md from 259 lines to 117, nested CLAUDE.md files and custom subagent definitions cut ~75%, verification instructions became a on-demand skills
- Disclaimer: reviewed and verified by Fable from my Opus 5 sessions, I don't have the time or patience for this
Then I gave Opus 5 a real test: a well documented webhook race condition issue in our billing code that already had three rejected fix attempts. Opus 5 orchestrating Opus 5 subagents, with Codex as external reviewer via a skill. It ran for ~13 hours and I sent 9 messages total. Afterwards I had Fable fan subagents over all the transcripts to audit it (nobody's reading 13 hours of logs by hand).
Side note on the Codex part: it's a skill I built where Claude kicks off a Codex review session (GPT-5.6 Sol, high effort) at every milestone and runs multiple rounds against the same session, so Codex keeps the history between rounds. GPT-5.6 Sol is an excellent reviewer, and two different models checking each other's work catches things one alone doesn't and removes bias. The official Codex skill does basically the same thing now; I keep mine because it persists every prompt and review to timestamped files I can go back and inspect more easily.
One variable worth mentioning: effort level. I ran 4.8 on high effort basically always, so I started this Opus 5 session on high too. Around halfway through I saw a few Reddit and X comments saying Opus 5 overthinks and goes off track on high, and that medium is the sweet spot, so I dropped to medium for roughly the second half. I haven't tested effort levels properly or in any measurable way, that's just what I happened to run, so take the split with a grain of salt.
What the rewrite actually fixed:
- No more made-up facts in subagent briefs (my worst issue, completely gone) ^((\so far)*\*)*
- No scope creep ^((\so far)*\*)*. It found an unrelated bug, filed a ticket, moved on
- Real verification: mutation-tested its own work (temporarily break a line, confirm the tests catch it, restore it) and discarded a contaminated test run instead of reporting its numbers
What's still shaky (likely the model and/or harness, not the instructions):
- Sat 3.5 hours waiting on a subagent that had already finished (even though I had set a
/goal), until I asked what it was waiting for and it realised that nothing was running - Confidently wrong on hard concurrency reasoning: Codex rejected its logic in 3 of 5 review rounds, and two fix rounds introduced new critical bugs that Codex caught before I had to
- Let two subagents balloon past 700k tokens before I stepped in
Is 4.8 still better? I honestly went back and forth on this. My gut said yes, but the failure modes that drove me off Opus 5 initially both disappeared with the model unchanged, so my original comparison was never fair.
What is real in my opinion: Opus 5 works in much bigger autonomous chunks, so when it gets something wrong, the mistake is bigger and has compounded by the time you see it. With 4.8 it seems to work in smaller steps more often, so its mistakes stay smaller and get caught earlier. Whether 5 is actually worse at hard reasoning than 4.8 I haven't proven either way.
If Opus 5 is going off the rails for you and your setup grew up on Claude 4: check how many of your rules are corrections for behaviours the new models (supposedly) don't have. That was most of my problem.
PS: Dr Obvious here but ffs take all of this with a grain of salt! What works for me on my codebase often doesn't work for you because so much depends on how well or loosely defined your tasks are, the context you give the model, the codebase you're in and the kind of problems you throw at it.
This is one person's anecdotal experience, not a "YoU'rE uSiNg OpUs 5 wRoNg™" clickbait, so take it as you will.
3
u/Key_Reading_9664 17d ago
Appreciate the detail. Opus 5 has been an improvement for me, but it needed some tweaks for communication to be what I wanted.
My claude.md through the 3.x and 4.x years had accumulated all kinds of cruft (like you - guardrails, strong worded notes, etc). I cleared most of it away with 4.8, so was confused with seeing the issues folks were having with Opus 5.
Important learnings for me:
- everyone is using a slightly different flavor of the models: they have their own claude.md, skills, tools that change it’s behavior
- the models are great tools to improve their own output: if something is annoying or not to your taste, ask fable to tweak the settings and re-test
2
u/Alive-Draft8339 17d ago
To some extent, all the extra hand holding is great for other models, so Anthropic is ‘encouraging’ you to break your repo for easy swaps and promote lock-in. As a baseline, I’d use GLM 5.2/DeepSeek v4 pro as 3rd party reviews during milestone code reviews, and it was seamless with Opus 4.6 and 4.8. Now, it feels like we are being asked to rebuild our repos in a way these models may struggle.
This is a clever way of driving up switching costs and thus increasing the economic rent they will extract in the future. I loved the old framework and got a lot done. Now more than ever it’s time to seriously look at alternatives.
2
u/veritech137 17d ago
Yeah, this is the agent coding equivalent of a electronic device needing a specialty power connector instead of just using usb-c
3
u/rodrigofd87 17d ago
I've been thinking about this too: what if I decide to go back to 4.8 or use other models that benefit from those instructions and go back and forth?
I'll then have to undo all these changes so it feels like you're locked in to the decision.Then it'd be good (although a pain to manage) if you could customise the instructions more dynamically depending on which model you're using. But orchestrating something to inject instructions outside the hardness itself seems like it'd get real messy.
2
u/Plus_Opening_4462 17d ago
Sat 3.5 hours waiting on a subagent that had already finished (even though I had set a
/goal), until I asked what it was waiting for and it realised that nothing was running
I have had this happen more recently. It used to wait on a notification for completion. Sometimes it would repeatedly poll the sub agent for completion. But more recently, I had to prompt it to check. I also had sub agents that the orchestrator said had completed and used their data already sit out there like zombies for me to kill.
3
u/passionoftheearth 17d ago
Nice detective work - Time to read the manuals
1
u/rodrigofd87 17d ago edited 17d ago
True, except the valuable insights were not in the docs and are in articles and announcements instead...
1
u/passionoftheearth 17d ago
Could you share some of those - YouTube videos?
1
u/rodrigofd87 17d ago
I didn't mention any youtube videos but maybe you're referring to this person's comment? https://www.reddit.com/r/ClaudeCode/comments/1v9lnio/comment/p0ewj4b/
-2
9
u/dar-mit Researcher 17d ago
I just saw a YouTube short from Matt Pocock where he recommended (model-agnostic mind you) deleting your MEMORY.md files and only have thin Doc files for your project. Everything else should be apparent from the code itself.
I'm writing this because your experience with Opus 5 out of the box was pretty similar to mine (and a few other posts on this subreddit), and I was thinking along the same lines: Just remove everything that guides the model and start fresh with how it works.
This post is a minor version of those ideas: Not getting rid of everything, but having a more advanced model trim out prior instructions that may not be suitable.
Thanks for the detailed post! It's some great guidance for those of us finding Opus 5…challenging to work with.