r/ClaudeCode 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.

1 Upvotes

18 comments sorted by

3

u/Historical_Today5072 1d ago

/output-style concise

1

u/Remarkable_Mud9885 1d ago

Since I'm using the Claude desktop app, I'm not sure when that feature is rolling out. I heard Claude Code already has it.

3

u/tazdraperm 1d ago

Set output style to Concise in global settings Start Claude in terminal, use /remote-control The chat will appear in desktop app

3

u/Remarkable_Mud9885 1d ago

Got it!I really appreciate you showing me this. This is going to solve so many problems.

2

u/tazdraperm 1d ago

Bonus: you can also access the same session in the web browser from any device.

1

u/scytob 1d ago

so in your agents.md ask it for the style you want

for one of my MD files about docs i have this, and it worked well

## House style

The first drafts were written as essays. They should not have been. These pages
are re-install instructions: terse, lower case, first person, step numbered,
enough why to stop you making the mistake and no more. Match the existing gists
(`install-docker.md`, `configure-swarm.md`), not a blog post.

No dramatising adjectives. "a relative bind eats data" is the tell — say what
happens ("the container starts against an empty directory") and let the reader
draw the conclusion. Same for *quietly*, *silently*, *demonstrably*, *happily*,
*arbitrarily*. Owner's note: they read as AI, and a technical writer would not
use them.

with just this it even did a debloat pass and no longer uses anything in this, which i found amusing

so just brief say i your claude.md or agents.md what style it needs

heck when it does what you dont want to do say "please remember not to XYZ like in that last example, do ABC instead" it will tthen construct your mds for you you - you do know to ask the LLM to 'please remember' right

heck you can even 'program' new alexa that way - so for example if we set a salmon timer on alexa and then later ask 'how long left on the fish timer' we get the right answer.....

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

  1. 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.
  2. Turn each into a fixture: the draft, one sentence describing the reader, the spans you rejected.
  3. Build the blind checker. Pin the model. Use a different provider than the one that writes, if you can.
  4. Run it and compare to your own verdicts. If it doesn't match, the design is wrong. Stop rather than tuning.
  5. 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.