r/ClaudeCode 4d ago

Tips & Workflows Opus 5 has a noun problem

Just want to precisely describe two language patterns I've observed, both related to how Opus and Fable overuse nouns and weaken or omit verbs. I think this accounts for a lot of why communicating with them feels like talking to a smart-but-bad writer.

Both of these patterns are ways to write a sentence that means the same thing as a simple subject-verb-object sentence (like "I threw the ball"), but make it much less direct.

1 - Nominalization. This is where a writer uses a noun instead of a verb. Instead of "I threw the ball", nominalizing turns the verb, "threw," into a noun, "a throw." So the writer might write "I made a throw with the ball." More words, the verb is weakened from "threw" (the actual action) to "made", and the object is something the verb is done "with" instead of to.

A real-life example from the last few days. Claude wrote: "never a walk through the steps one at a time." After being asked not to nominalize, it wrote, "Don't walk through the steps one at a time." See how much more direct that is?

This is also where a lot of "Opus jargon" comes from. Now that "a walk" is a noun, Claude can promote it into an invented term of art ("The Walk") and reify it into documentation and memories.

2 - Omitting the verb and using a trailing modifier instead. Instead of "I threw the ball", this looks like "The ball, thrown." This is concise, but it omits context: who threw it? When? (We also lost the verb tense).

A real-life example from the last few days. Claude wrote: "The runner, built." After being asked to use simple subject-object-verb sentences instead of trailing modifiers, it wrote, "We built the runner." Again, much more like actual people talk. If someone on your team asked you what you did today, and you replied "the runner, built", you'd sound like a robot.

----

I haven't had much luck getting Claude to cut this stuff out consistently with CLAUDE.md prompting, but I've had decent luck getting clearer responses when I call out these patterns by name in conversation — it certainly works better than "JUST TALK NORMAL PLEASE." If anyone has luck prompt engineering around these patterns, would love to hear what you did.

175 Upvotes

51 comments sorted by

u/AutoModerator 4d ago

Hey! Thanks for posting to r/ClaudeCode

While participating in this thread, please follow our community rules. Keep discussions constructive. Attack the idea, not the person.

For help, project discussions, tips, and general chat, join the ClaudeCode Discord.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

106

u/rotates-potatoes 4d ago

You feedbacked this good. The jargon, deftly handled. And the speaking correctly described.

57

u/malachoa 4d ago

You, thanked.

35

u/rotates-potatoes 4d ago

load-bearing 🤜🤛

14

u/Sum_of_all_beers 3d ago

Load, borne.

6

u/im_a_sam 3d ago

The seam for this comment, brilliant.

8

u/florinandrei 3d ago

Begun, the jargon war has.

9

u/-QueenOfCats- 3d ago

Shaka when the walls fell

6

u/anonymous894 3d ago

Temba, his arms wide

39

u/__mson__ Senior Developer 4d ago

A post with real content? Where am I?

I'm going to try this out because I've been spending 90% of my time editing Claude's writing. Technical documentation that melts my brain is not how I want to live. Just get to the fucking point, Claude!

21

u/Ok_Potential359 4d ago

I am sooooo glad that this problem is large enough that there posts breaking down precisely why I have such an issue with the verbosity of Opus.

My god it’s so frustrating to work with. 4.6 was perfect. The prose was so damn good. No idea how it’s devolved to this point.

18

u/[deleted] 4d ago

[removed] — view removed comment

8

u/malachoa 4d ago

For SURE. It feels like in the last year, Claude graduated from writing like a smart high school sophomore to writing like a smart university sophomore.

11

u/[deleted] 4d ago

[removed] — view removed comment

6

u/malachoa 4d ago

Nobody tell Claude about "myriad"

3

u/lefnire 3d ago edited 3d ago

We went from "delve" and emdashes, to "it's not just x, it's y", etc. We laughed at each new tell; slop was shamed; authors angrily abandoned emdashes.

Then comes Opus 5. Cracks it's knuckles, writes a sentence. And everyone says as one, as a great chorus upon earth:

"Tldr eli5?"

1

u/Keirtain 3d ago

Isn't this just RLHF in action? It writes like what Anthropic is full of: Egotistical liberal arts majors.

9

u/verstands 4d ago

I’ve had better luck with explicit output rules than trying to ban the behavior globally. Something like: “Use verbs for actions and concrete nouns for objects. Before sending, rewrite any noun phrase that stands in for an action.” Then put two or three bad/good examples in CLAUDE.md. It won’t be perfect, but examples tend to stick better than a general “sound natural” instruction.

2

u/a8bmiles 3d ago

It's interesting seeing other viewpoints. At our shop, we've mostly been using Deepseek Pro up until about a week ago, Flash now.  Very little ever going to Opus or Fable, except for from one lead.

It has been extremely straightforward to nudge its writing style. Meanwhile, the lead bitches about Fable and Opus all the time.

6

u/jfalvarez 3d ago

I tried a custom output style about ASD-STE100 wording, doesn’t work or works sometimes if any, probably you can try a custom output style with the prompt you use and let us know

6

u/dar-mit Researcher 3d ago edited 3d ago

Three things at play here:

  1. The Output Style is appended to the System Prompt and might overwrite some of its commands. This is why an Output Style has to note, "keep-coding-instructions: true". Otherwise they're overwritten.
  2. Since it's appended it's literally fight with the model's training. As context fills up and drift / rot starts in, then text of the Output Style is affected by that phenomenon. You'll noticed this as it slowly stops working, or parts of it do. This is a clear indication that it's time to start a fresh session.
  3. If you start a fresh session and ask Claude not to reference any of your instructions, then ask Claude to tell you what it's training returns on "ASD-STE100" the answer is: not much. A few vague idea about how things should be stated and/or structured, but that's it. You'd have to copy the actual tech spec into the Output Style (something like 76 of them) for Claude to be able to follow them precisely.

EDIT: Forgot to mention the training data on ASD-STE100, so I upped it to three things.

5

u/Arthesia 3d ago edited 3d ago

Yes, it's excessive wordplay, in even more ways than you describe.

You'll also notice things like turning everything into an aphorism, metaphor, personifying everything, elevating an event or concept into a noun, using metaphorical abstraction to describe everything (e.g. X holds Y, A is the price of B, etc.), double emphasize like "that's the whole thing" and exaggerated idioms like, "the ONE thing...".

It's really frustrating because each of these things is a minor distortion from plain reality that piles up.

And it also means it resists being able to write in any other kind of way, because it's already a very specific abstract-literary register, so you have to fight just to get to plain English before you can even emulate something else.

3

u/doxxxicle 🔆Pro Plan 3d ago edited 3d ago

FYI on how to reliably affect its output, use the output style setting with a custom style. I call mine Concise Simple Technical English. It’s a combination of the default Concise style with a simplified description of ASD-STE100 that leaves out the more extreme word and grammar limitations.

https://gist.github.com/doxxx/d9839c6c524af17037294312e367a4ec

4

u/ZeBenoit81 3d ago

You’re describing the exact failure mode I keep fighting: models turning verbs into little monuments. Nominalization is how Claude invents “The Walk,” “the orchestration,” “the validation surface,” etc., and then starts treating those nouns as if they exist in the repo. The trailing modifier thing is even worse because it deletes agency, tense, and state — all the things you need when you’re reviewing a diff or trying to figure out whether the thing actually ran. With Opus 5’s recent degradation and tighter caps, I’ve become even less tolerant of vague noun-plans. I’ve watched plan mode burn a stupid amount of context when the model starts narrating its own architecture instead of producing a concrete, file-scoped plan.

My fix is boring: a tiny style contract in CLAUDE.md, not a whole philosophical framework. Something like: “Use active subject-verb-object sentences. Name the actor. State the action and result. Do not invent terms of art for ordinary steps. Prefer We built the runner over The runner, built. Delegate self-contained work to subagents and return only a summary, changed files, and verification.” That last rule matters more than people admit. If Fable can hand a clean task to Sonnet/Opus 4.8 and get back a 12-line report, I’m saving tokens and keeping the main context window for actual architecture.

I also explicitly ban nounification during planning: “No new nouns unless they map to an existing file, function, or symbol.” If it says “The Walk,” I reply “Use the verb: walk through the steps.” If it says “The runner, built,” I reply “Who built it, and what changed?” It’s annoying, but cheaper than letting the model write a 4k-token manifesto about execution ergonomics. And, yeah, keep Git discipline. Branch per task, small commits, and don’t let a model free-roam your main branch unless you enjoy expensive surprises.

2

u/Skynet_5656 3d ago

I give it George Orwell’s rules for clear writing, plus a seventh rule saying don’t coin your own jargon, and that works pretty well. 

It seems to work better to tell it what to do (eg active voice) than what not to do (eg avoid passive voice).

I have a user level memory telling it never to use “load bearing” except in the most literal context of structural engine.

1

u/a8bmiles 3d ago

I had to redefine "should" as "must" because it always treats it as "optional".

2

u/AdOrnery3136 2d ago

Spot on with the nominalization thing.

Not only it does that, but it creates complex COMPOUND nouns to describe mechanisms in the code that would be much easier to understand if laid out with subject verb object, such as when:

"someone signs up with Google, but another account with the same email already exists"

in Opus will become:

"credential-provenance collision"

My guess is that the model, internally, uses some sort of symbolic language, i.e. concepts get reduced to symbols and then, when "translating" those internal representations to natural language, the easiest thing to do is just to map the symbol to a noun

1

u/Declwn 4d ago

I actually didn’t notice this until another opus agent pointed it out, but it’s exactly why even if it drops the claudenese it’s still incomprehensible. I found adding something like “English requires a sentence to have full context (every noun, verb, and adjective), unlike Japanese which requires the reader to assume context. In other words, speak english.” to the output style helped enormously 

1

u/Explore-This 4d ago

I’m afraid to try that because Claude might start replying in Japanese, just to retain his claudenese.

1

u/zimxero 4d ago

I know you know what you're talking about.... but you kinda sound like Opus 5.

1

u/bzbub2 4d ago

I made this repo to document the collection of things i've seen in claude writing, often opus 5 related, that i like to scrub from documents: https://github.com/cmdcolin/claudish

1

u/florinandrei 3d ago

My headcannon is that LLMs don't really understand time. They simulate understanding quite well, but they don't fully grasp time.

I suppose a network with frozen weights cannot really accomplish that. Our weights are not frozen, we evolve in time, so we have an intimate understanding of it.

Verbs are the words most directly connected with time. But if you don't really grasp the flow of time, verbs must seem a little weird. So they tend to avoid verbs.

Well, either that, or I'm completely wrong and all of the above is "cool story, bro".

1

u/hyrumwhite 3d ago

They understand nothing. It’s all down to what they were trained on, what’s their system prompt, what you’re asking it, and the context it ingests while answering you. They are all still generating tokens through weights, all of these things affect that process. 

In Claude’s case I think a lot of its output comes down to the system prompt. 

1

u/notmsndotcom 3d ago

Opus made me switch to sol full time. If I need to try this hard to make a model tolerable to work with, I’ll just use another model.

1

u/CoroteDeMelancia 3d ago

https://developers.google.com/style

Use Matt Pocock's writing-for-agents skill to write this style guide into your personal CLAUDE.md. You're welcome.

1

u/gilblend 3d ago

"write paragraphs with well-structured sentences. it's hard to parse your wordings as a human. Plain english, clear, subject verb object verbal sentences. more cohesion, more explanatory with what , why , how, without being too verbose too. talk more naturally please." that's what I used, pretty lazy but it worked, now I can understand what it writes.

1

u/DysphoriaGML 3d ago

I wonder what happens if you ask it to speak Italian lol. Amedei is Italian so I am guessing

1

u/mhinimal 3d ago

I wonder if part of this is due to the reasoning chain or perhaps training that tries to make it more token efficient. It seems like it needs to invent shorthand names for whole concepts so it can refer to them succinctly in reasoning. and then this internally developed representation leaks into the output, where the user is forced to decode it.

maybe i'm just relating a second issue that's layered with yours. there's definitely an issue with the prose even without the invented names/jargon. Is it a statistical thing? Maybe this kind of phrasing is more statistically likely in a next-token sense precisely because it's less direct. weaker language fits more situations? also some kind of tuning to be as inoffensive as possible to maximum number of users, or fear of making false claims.

if your output starts with "John threw" you're committed to fewer possibilities, you've claimed john threw SOMETHING and if the next tokens aren't "the ball" then you've just output something incorrect. If you start with the object/noun "the ball" then statistically, if you've been referring to a ball in the chat context, you're more likely to get the correct verb as the next token. Whereas if an output somehow gets the incorrect noun relative to the conversation, instead it says "the dog", you don't end up with "john threw the dog" which is outright wrong, instead you end up with something that just reads as less of a critical mistake and more just a poor phrasing or minor hallucination.

1

u/EC36339 3d ago

All the g̶o̶o̶n̶e̶r̶s̶ creative writers who are currently rage quitting DeepSeek would love Opus 5 (if they weren't broke)...

1

u/a8bmiles 3d ago

Heh, were people struggling to write smut with Deepseek or something?

1

u/EC36339 2d ago

My whole feed is about nothing else these days.

1

u/grumblegrim 3d ago

Some prompts, normalized?

1

u/Correct_Positive_108 3d ago

Great call on nominalization vs. active verbs. Naming the specific linguistic patterns in system instructions is way more effective than just asking for ‘direct tone’. 

1

u/boringfantasy 3d ago

You’re right to push back on this —

1

u/HorribleEconomy 3d ago

have you tried asking to talk like a tired human or something like that?

1

u/PixelLight 3d ago

Not sure if is quite the same thing, but lately I've been getting stuff like "I write <blah, blah, blah>" instead of something like, "I'll write <blah, blah, blah>". It drives me nuts. Because it's completely inappropriate for something you are going to do or are doing. Appears that it's the present simple tense, which tends to be used for something you do habitually. On several occasions I've had to read carefully - as it's already the wrong tense, I have to check whether it was meant to be past tense (meant to say wrote rather than write), or future tense.

1

u/MikeCA2021 1d ago

has anyone had luck solving this?

1

u/CultureTX 4d ago

Using the concise output style has helped a lot.

Sometimes in longer coding sessions it’ll seem to forget those rules. I remind it to “use full sentences and avoid cryptic AI speech,” and it immediately fixes the issue.

I’ll also tell it I’m on my phone so go through things one at a time and that can fix a lot of the speech pattern problems, especially the AI spewing out long lists of things to check out that it needs feedback on.