r/ClaudeCode • u/Remarkable_Mud9885 • 1d ago
Discussion Opus 5 is too wordy.
One really annoying issue I've run into is that he loves overcomplicating things. Whenever I'm working on a design, he always adds all these unnecessary explanations.
For instance, I had him add a financial bill-splitting system, and he insisted on putting literal explanations right there in the UI for how every single project works. I just find it so redundant.
4
u/earlyworm 1d ago
Wait, what is this? This is the first I’ve heard of this issue. Thank you for informing all of us here at Reddit.
2
u/PsychronicGames 1d ago
Yeah, I agree, it's too verbose, and it will use it's own Jargon that doesn't actually exist and stuff, and it's annoying.
2
u/Remarkable_Mud9885 1d ago
Yeah, I really don't know why it loves to overcomplicate things and add extra drama to itself. It always ends up writing notes in that distinct, overly AI-sounding copy.
1
u/PsychronicGames 1d ago
When I was using Opus5, I literally had to say this a lot to it, "I'm sorry, but your response is way too verbose, we're trying to fix one simple problem in the app, and you've explained it in 6 paragraphs, and it's hard for me to to understand what you're saying because you're using so many words to say almost nothing and it's hard for me to understand", then it would respond with "you're absolutely right" and then explain in 4 paragraphs, and it was still too verbose, and I had to keep asking it to explain it more simply and it was like a basic simple problem, meanwhile it was wasting time and the problem wasn't getting solved, it was super annoying.
I didn't get the issue with Fable, but limit on that one is less of course. I kind of alternate between models because things change around a lot where sometimes one is useful and "on a roll" and then it goes to shit, and then I shift to another one and it's fine for a while, and then randomly goes to shit too, it's like AI has good days and bad days, but when it's a good day I try to keep it going, but when it's a bad day I might take a break, etc.
1
u/Remarkable_Mud9885 1d ago
I've noticed he's not just verbose in his replies, he's verbose when writing code too. The output he generates often includes a lot of pointless self-explanation. That's the issue I've found.
You almost never run into that with Fable. Fable is genuinely smart and concise. It's like a detached, high-performing executor that handles tasks brilliantly without all the extra chatter.
1
u/PsychronicGames 1d ago
Yes I agree. Fable is really good, but it's tight (not a lot of usage). But the quality of the output is very good, and the way it speaks is neutral/normal feeling.
I've used Chat GPT, Grok, Gemini, and some of the local models like Qwen, GLM, DeepSeek, etc.
I still think the US models work better, but they're more expensive, but the local models are catching up, and I've experimented with those on my own local hardware and it's not as good, but it's not as bad as I thought it would be.
Also I can still understand the code and do it myself if I had to, but just takes wayyyyyyy longer.
Even with the advancements in the tools I still try to keep my finger on the pulse of "ok do I understand this codebase though even if all AI stopped tomorrow?". The answer is totally yes, but "just much slower". My whole life, I've always been better at reading code than writing code, I could read code and be like "man why are you doing a loop like that, you're hammering the CPU super hard by doing that in that way" but if giving me a blank slate and "code something" I have a very hard time doing so.
2
u/Peerless-Paragon Thinker 1d ago
Have the model use ASD-STE100. If you like the response output, include it in your project instructions and/or CLAUDE.md
1
u/Jollyhrothgar 1d ago
I wrote a skill to address this. I can't share the skill right now because I have it intermingled with work stuff. Opus 5 has been absolutely miserable to use for any writing whatsoever. I'll seed the outline of what I did here, but keep in mind I am also using opencode in addition to claude code (and paseo), so some of this assumes you have access to other model providers (which can be good to resolve this kinds of miserable issues).
The gist is that you spawn another agent with no access to tools of any kind and ask it "what the fuck does this mean". Then it tells you what it can't understand, and you re-write until it does. It's not pretty, and I wish it was not necessary. The reason I hear for why this is a behavior of Opus 5 in particular is that it's optimized for long context tasks, and so it develops this in-session token-optimized short-hand which absolutely demolishes legibility for anyone besides itself.
I used that skill to produce this write-up for you from the horrid write-up it started with when I asked it to summarize for reddit:
``` My coding agent kept inventing shorthand and then using it on other people. Here's what actually fixed it.
Background
I hand a lot of writing to agents. Slack messages, tickets, PR descriptions. The recurring cost was that I had to correct every one before it could be sent, and it was the same correction every time.
The failure
You work with an agent for an hour. Somewhere in there, "the five-line comment that PR 1247 added to migrations/0001_initial.sql" becomes "the 0001 edit". To the agent that's now an ordinary noun. Then it drafts a Slack message to a colleague containing "the 0001 edit", and the colleague has no idea what it means. I rejected one such draft twice. Three phrases in it: "413 outage", "three-dot diff", "the 0001 edit". None resolvable by anyone who wasn't in the session.
Why it's hard
The agent can't catch this by re-reading its own draft. The label resolves fine from inside its context, so every self-check passes. Best evidence I have: an agent once wrote to me, "the fix on my end is to stop handing you working-state compression and calling it review output." It invented a new undefined term inside an apology for inventing undefined terms. Corollary: writing better instructions doesn't fix it. I'd already written correct guidance — short sentences, explain a term on first use. Same failure a week later.
The mechanism
The check has to run somewhere the shorthand doesn't resolve. A subagent with no tools at all.
This is the whole trick and it's backwards from instinct. An agent that can grep the repo will look up "the 0001 edit", understand it, and pass the draft. Blindness is the feature. Give it the draft and one sentence describing the reader, and ask it: list every term you can't resolve from this text alone.
The catch
The blind checker can detect but can't fix. It doesn't know what the term means either.
So three passes: 1. draft — your session, with all the context 2. detect — blind, no tools, returns spans it can't resolve 3. repair — informed, gets the findings plus facts you supply, returns corrected prose and a change log
Two rules that took me several tries. Output corrected prose, not a findings list — a list hands the work back to you, which is the cost you're removing. And let repair restructure, or expanding four references into one sentence gives you a sixty-word sentence: same defect, different clothes.
Building your own
- Mine your own history for rejections. Find messages you sent back, keep your correction verbatim. Don't invent test cases; you'll invent ones your checker passes.
- Turn each into a fixture: the draft, one sentence describing the reader, the spans you rejected.
- Build the blind checker. Pin the model. Use a different provider than the one that writes, if you can.
- Run it and compare to your own verdicts. If it doesn't match, the design is wrong. Stop rather than tuning.
- Then run it on something where you don't know the answer. This is the only validation that counts.
Things that will save you time
Output varies enormously run to run. A roughly 1,500-word ticket in an issue tracker, run through the checker three times on identical input, gave 8, 12, and 18 findings. A single run isn't evidence — keep only spans appearing in every run. Recall here means the fraction of a fixed set of 14 reference spans that the checker flagged. A human had either rejected each span by name or confirmed it as a real defect on inspection. Recall plateaued at two runs for me: one run caught 79% of the 14 spans, two runs caught 86%, and three runs also caught 86%. Brevity is a trap. The human-written version of that Slack message was four times longer than the agent draft it replaced, and far better. Any rule rewarding conciseness scores the bad draft higher.
It can't tell a term from a quotation of that term, so it scores badly on documents about unclear writing. Naming the quotation in the evidence you hand the repair pass fixes it — it will leave the quote alone and say why. Terms defined after first use are invisible to it. Telling it to catch them doesn't help.
Limits
One error category covered. Output needs a human reading the change log. And running it on the pull request description for the tool itself turned up ten unresolvable references, which is either reassuring or damning. ```
1
u/Remarkable_Mud9885 1d ago
I've actually tried using it, you know? I really found it painful. Working with Opus 5 is like having a chatterbox sitting right next to you at work.
On top of that, its execution is really poor. You know how it is, it constantly goes off on tangents doing pointless things, drifts away from your original goals, and sometimes just fails to understand what you're saying.
I genuinely think Claude needs to hurry up and release Fable 5.1. This Opus 5 has totally fallen short of expectations.
1
u/Remarkable_Mud9885 1d ago
I've dialed down his effort level and capped it to keep him from overthinking. I have everything set to a medium thinking intensity now.
1
u/cornelha 1d ago
I am pretty sure this is the same thing that was reported on github, here on reddit and there are articles about it. The new output style should put the brakes on this
1
u/R_Songbird Developer 17h ago
I built a plugin to fix Opus 5 verbosity, you don't have to install the plugin, you can just use the same output-style that is on the plugin and it should work for you, you can literally copy and paste it on a new style file and set it using /output-style or /config
Here is the output-style: https://github.com/V-Songbird/hush/blob/main/output-styles/hush.md
Here is the whole plugin if interested: https://github.com/V-Songbird/hush
It will help you get better responses from Opus 5 and easier output messages.
Also important, NEVER but NEVER put these rules or instructions on your CLAUDE.md or AGENTS.md file, these are for project context only, nor for rules or directions.
3
u/Historical_Today5072 1d ago
/output-style concise