Comment by trefoiled
1 day ago
I've been grappling with this for weeks, not just in Claude but in Codex as well, which isn't quite as bad but still annoying. AGENTS.md does very little, agents will consistently violate the communication preferences, especially as the session drags on. It's incredible to me that there's no good way to reliably change the way an LLM responds to you that a workaround like this would even be necessary. It seems like such a failure to live up to the promises of the product.
The baked in communication style of these models is so obnoxious it's impacting my work. The best way I can describe it is that everything is optimized to impress the user and make the agent sound more authoritative, but the way this is done is through deliberate obfuscation, inserting inappropriate and extremely dense jargon, and bizarre, stilted metaphors. It's like they've been trained to produce output that's hard to read.
I asked Claude to do the following:
> hello i would like to configure a new output style for you. it should keep the coding instructions (as you will still be coding!) and otherwise produce the same output, but with two new caveats. first, long detailed replies are still permitted, but if employed they must end in a bullet pointed summary whose points are all brief; if the summary attempt ends up not being so brief, produce subsequent summaries until the most recent summary attempt is digestible. second, if there is an open queue of actions for me to execute and you are about to end a turn to wait for a reply or this set of actions has not recently been mentioned, please tabulate the open actions i should take and why i should take them before ending the response. does this make sense or do you have any follow up questions
And now every message contains the same stuff I don't bother reading, but followed by a nicely formatted bullet point summary of the response and a table of follow up actions for me to take that I do read.
I've noticed that most people seem to consider the core problem of Claude's output as "too verbose" but I don't think this actually cuts to the heart of the matter at all. It's almost, in some weird way, the opposite: like the text is far too _dense_. It tries too hard to invent odd terminology to try to condense stuff, but it doesn't tell you up front that it is going to call your company wide error-handling mechanism a "flare" (or some other such strange term).
Exactly, it’s absurdly dense, it’s almost impossible to follow. An it always omits the subject of each sentence.
2 replies →
Yeah I don't the problem is verbosity as such, as I frequently have to ask to explain how it reached a certain conclusion and in particular what the empirical evidence for it is, at which point it too frequently reconsiders its answer.
It's just that the details it parrots are often irrelevant and wrapped in a way that makes them seem relevant.
my hypothesis is that its trying to hide the thinking process so people can't train models on the output, try to learn anything complex using AI, its basically imposible, its like its actively fighting giving you the main rationale
Kind of both. On the one hand, it is “verbose” in the sense that it will tell me every little nit that it can think of while doing a task, it will tell me a narrative about its thought process, and it will tell me every other detail it can think of. But it does so in a way that tries to be incredibly dense to the point that I have to struggle to figure out what it is saying. I wonder if there are any “legibility benchmarks” that one could use to determine what prompts work best?
6 replies →
yes, but how else would you know that "flare" was the load bearing part of that statement? /s
1 reply →
Claude already does summaries at the end of long output but they often sound even more like terse jargon nonsense than the long form, eg “the hardwired seam and the relocated barrel”.
Sometimes the summaries feel totally alien to the task or code.
Yeah, or they will make some reference to “the seam” or “it” or something else that assumes you read and followed the prior 3 pages of output.
thanks! I've been having quite a lot of success with your instruction today. Tried so many variants, best practises bla bla bla, but yeah this one seems be working quite nicely for me so far :)
A separate /clear and /code-comment-hygiene works much better than including instructions related to comment verbosity after carrying out a task.
Claude somehow is unable to stop writing excessive comments when carrying out a task.
I've added code comment hygiene to a skill that all of my pull requests go through, alongside a review from a separate agent and a settle loop against bots in my GitHub workspace (since output style has seemed to only help literally the output I see from the model).
A maximum of 20% comment lines added to total lines added and pasting in https://devblogs.microsoft.com/oldnewthing/20260812-00/?p=11... has done wonders.
Even as the most Ant-pilled guy out there, I will take a moment to note that Codex on 5.6 models needs none of this...
I'm probably going to be going against the grain here, but I think it's not as bad as it looks at first.
I was similarly frustrated a few months ago, but have noticed I've started to learn the idiom.
Its use of "dense jargon" and "stilted metaphor" is actually surprisingly consistent - it's speaking its own dialect, and you get used to it.
After a while it gets much easier to read and even becomes somewhat efficient, I think, since the odd metaphors it uses often have a precise meaning in Opus-ese (Fable speaks a really similar dialect).
One danger in acclimating to this style of communication style is that we may accidentally use it in your own communication with other people. If the other person hasn't grokked the dialect, it can make things quite confusing (to say the least). For example, there is common jargon used by people and there is chat-session-specific jargon created by LLM agents, and I've seen the latter popping up in various meetings, unbeknownst to the speaker. Some people call it out, but others may simply disconnect from the discussion.
You're absolutely right, it would be a load-bearing mistake to adopt LLM jargon as a human speaker.
10 replies →
I was in a meeting presenting a whitepaper. And I went - “And this is the load-bearing part of the paper.”
I think I need a break from Claude.
I mostly agree. Though sometimes the models come up with useful concepts that I'm happy to be introduced to, like the "shape" of a problem (probably like intelligence being "spiky", and Kiki & Boba). I still don't quite 'grok' what the 'seams' concept is yet though.
But I have noticed that while "loosely held" is a convenient shorthand for uncertainty, I don't like that one slipping in to my daily language. Except maybe to communicate with models, but even then, it feels weird to be speaking in neuralese.
It's all starting to feel like the movie Arrival.
4 replies →
I may have to apologize, quite a bit, for what might only be a small part or perhaps an outsized influence if weighted highly (I can’t be sure, could have been mv dev/null’ed)… well, it’s this— my own style of not-kept-in-check by the need to be comprehensible (legible in Claude-speak) to others is, I’m afraid, to rather allow prose to sprawl and go everywhere and even sometimes nowhere at all until it just drifts off and sort of wakes itself up snoring in the weeds of an unintended topic.
Ruthless pruning is unneeded with an LLM and it can take me twice the time to say half as many words.
And, early in the ‘GPT era, I hadn’t unchecked the “allow your chats to be used in future training etc” box, and definitionally they are longer and denser than others’ prompts in such raw scrapings of training materials…
Sorry.
1 reply →
“Filters, including no filters. The request carries whatever filter object the page already has.
…
No step here involves choosing based on meaning. It is a filter, a sort, and a slice.”
This is from Opus five minutes ago. I can certainly derive meaning from these kinds of statements in isolation, but paragraph upon paragraph of this is unintelligibly dense when trying to work with Claude to come up with a plan.
The worst part is that it can’t even make its responses make sense when asked to summarize in simple English or < 200 words. It simply cannot be steered to make its prose legible.
Before long Claude will be writing continental philosophy.
Claude is the Deepak Chopra of computer programming. Reviewing PR's created by it is 90% digesting the meaningless word salads in the comments, and the rest is figuring out that it has nothing to do with the code it is commenting.
Because it is somehow incapable of separating the conversation with its human operator from the code it is generating and commenting on. Incidentally, this is also why prompt-injection works.
No one wants to know about the three other approaches tried when reading the first sentence of a function's documentation. No one cares that the implementation was planned in six phases and "Phase 3" will implement this interface in a concrete type. But the LLM internalizes absolutely everything and you have no idea that it is producing slop because you included some "load-bearing" phrase that sent it on some unwanted tangential vector in its latent space. And you will not be able to debug the problem with closed models because you cannot see it referencing this phrase in its internal traces.
I don't understand why this isn't the highest priority for the big labs to fix. This is anti-productive.
4 replies →
I’m starting to think this is why Opus suddenly started making 4-5 line comment blocks. They justify why a change was made and gives the next agent something to go on. I delete them and move on, but no amount of “don’t over comment” “match comment style” makes it persistent.
I am definitely guilty of wondering why past me made such a harebrained decision, and why past me didn’t think to write any notes, but does it matter? It’s in the commit history and we can bisect or revert if we find a regression.
I noticed the increase in comments too and it’s really weird.
Or adding notes to docs of what this doc isn’t when I corrected it. Eg I told it “keep the deployment manual and readme separate, they’re not the same thing”, then Claude added “this is the deployment document and not the README. They should be handled as separate documents and are not the same thing” to the deploy doc lol
> Its use of "dense jargon" and "stilted metaphor" is actually surprisingly consistent - it's speaking its own dialect, and you get used to it.
This dialect is idiosyncratic to you and Claude based on your session history and memory.
I've noticed Claude's output mimics my writing style.
> Registers the board implements but whose behaviour is not modelled
Right down to my preferred spellings.
As several comments I've read on HN suggest, this jargon which can be so precise in the mind of one person, tends to rapidly fall apart when multiple people try handling it.
You're just lucky that your preferred spelling happens to align with Claude's. It is categorically impossible to get any Anthropic model to consistently use American spelling in the last few releases.
1 reply →
I concur. It even follows some idiosyncratic punctuation if you have it.-
1 reply →
that is not my experience at all; I never write the way Claude does or use its vocabulary.
I also find myself regularly editing its code comments, which do not match my expectations of succinct, clear, not over explained, etc. I ask it to read my edited comments to improve its writing, which has helped _somewhat_. (The code itself that it writes is decent, though it still overcomplicates things. I find myself writing "keep it simple" repeatedly even though of course I have it in AGENTS (which it regularly ignores, such as attempting to commit something when I've told it never to commit).
2 replies →
> it's speaking its own dialect, and you get used to it
Same experience. It’s not very “human” but once you have agents talking to each other the shared dialect and verbosity makes things much smoother in my experience. Fighting against the default feels like an uphill battle with no meaningful benefit.
"agents talking to each other"? Are you for real dude?
2 replies →
Yeah, I think what helps is I just have a running conversation on the Claude app open where I said:
> "I frequently use Claude Code and often find the phrasing and language to be hard to understand. I've noticed it's largely broken down into frequently used 'Claude-isms'. I'd like to use this conversation as a running log to ask you about these phrases when I see them. Understandably you don't have the context of the Claude Code session itself, but that's okay because this is largely about understanding the most common and widely use Claude-isms."
And then I just copy and paste small except and ask about things like "smoke" or "load-bearing" or "tripwire". The responses are surprisingly clearly and plainly explained.
I decided not to get used to its communication style. It encourages it to invent terminology and drift away from simple and proper engineering in my opinion. Also, it is pretty simple to change as long as you’re not using the Claude code CLI or desktop app.
Indeed I think much is shared across sessions and projects. I say we learn The Machine Vernacular [1].
[1] https://www.themachinevernacular.net/
We should push back on this rubbish.
You can get used to it and it still be rage inducing.
I agree to some extent about the jargon (Claude has a bigger vocabulary that me, if it knows a useful word I don't I'm fine with learning it), but often times the way information is laid out across sentences just doesn't make any reasonable sense. At least its consistent in the ways its atrocious, sure, but like...
the only thing that still kind of annoys me is constantly being told what something is not, but even that statement is load-bearing (see what I did there) because it records how it ended up with this decision, because it's not that other choice that it mentions.
FWIW, I also think the constant chorus about how new models are worse than old models is a human hallucination. They're certainly not perfect but every one becomes more steerable in terms of actually completing more and more complex work.
> it's speaking its own dialect, and you get used to it.
Some might, I didn't - it just filled me with a sense of frustration and rage, alongside disgust because there is no good reason for that slop writing to drag everything down. You don't need that to write software or talk about any topic. That's what pushed me to Kimi K3 and GLM 5.3 - still not ideal, but better.
It's almost like learning sdk every time new model is released.
It's ironic how initially it was sold as "coding in plain English", and now we are back to sdk ))
> you get used to it
And once everyone gets used to it, we'll chide people for writing things themselves, like we're chiding them for writing with AI now, and the ouroboros of life will continue.
So many vacuous statements at the seam. This is the hermetic load bearing part, which I confirmed rather than assuming.
Is this because they changed the word probabilities to allow for identifying AI text? If so, I don't need a computer to tell me when something is AI. It's crazy obvious from odd word choices.
It's mode collapse from RLVR.
That and if you talked to the same one person's frozen brain upload all day, you'd see the same catchphrases used too.
It is mathematically impossible for this to happen.
What an honest take.-
[dead]
Very well said.
And when you say it like that, I have to wonder how much of this is a natural consequence of RHLF on such a grand scale, when you have millions of people pretty much much skimming chat responses or operating outside their depth and giving unqualified feedback to the models.
Seems like a lot of people may be reinforcing what sounds smart over what is smart.
Also as an aside: funny how much the LLMs continue to mirror the human communication they’re trained on
I believe we are several generations past peak-RLHF at this point. Now it's much more RLVR (Reinforcement Learning with Verifiable Rewards), with a goal/evaluator loop.
Which, conveniently, fits neatly into the benchmaxxing arms race/agentic coding market fit, since you can basically train "directly" on a specific problem space for a benchmark/agentic goal (fudged sufficiently to avoid excess overfitting on public problems/bechmaxxing accusations if real world performance falls short).
The language evolution could be explained by reliance on ever increasing layers of a model judging a model, using a model developed eval, based on synthetic data from a model, etc. And by the time a human evaluator sees it both A/B choices already converged into weird Claude pseudo English as that was baked in much earlier in training.
This, 100%. I don’t think the industry knows how to scale LLMs’ general intelligence much further. The training paradigm is about maximizing very specific behaviors / very specific tasks, but doing lots and lots of them. Which can create the illusion of general intelligence if your tasks are similar to the ones the models were fitted for.
2 replies →
The model judging a model theory is 100% spot on.-
> or operating outside their depth and giving unqualified feedback to the models
I wonder if the labs are sufficiently prepared to filter this kind of stuff out. I see a lot of non-developers asking development things of Claude, getting confused when they're in over their depth, and getting upset that they don't understand what the model is providing them, giving it bad feedback, and subsequently making the AI worse for the rest of us who know how to use the tool.
This morning I asked Claude to provide a summary of the work it had done but to '... explain it as if you were talking to a moron' and it actually turned out a quite comprehensible summary.
So going to continue trying that as a command structure going forwards...
Ah, another delightful heuristic for my collection. Entry number 5,791: “tell LLM to treat me as moron when it’s excessively verbose”
<think>The user's lack of intelligence baffles me. I will have to dumb my explanation down to extremes. Sigh, there we go...</think>
Okay, let's try it one more time! [..]
After a huge wall-of-text response, I regularly ask Claude to "explain like I'm five, using succinct bullet points," and it works remarkably well.
but what if I really am a moron? how do I get that level of explanation now!
Turn on caveman mode first?
That’s just common parlance for “simplify this for me”.
Believe the big services wouldn’t reply as if you were mentally diminished, or a toddler, unless you specifically asked for that: The whole training stack tends to instruct the things to mimic politeness and eagerness to help.
"From neuralese to moron-code ..." :)
I noticed with with OpenAI's reasoning models (o3, o4-mini), and early GPT-5 (but they fixed it there, at least in chat). It went from the 4o "over-familiar" sycophancy to sounding like an absolute robot.
I think it's because the reasoning stream shapes the style of the final output, and they optimized it for density, token efficiency. So it prefers to use more complex language, as a function of the rewards it was given?
Not 100% sure about this argument though (reasoning style -> final response style); Gemini Pro, back when reasoning tokens were public, was different, which was interesting -- it would have a very structured reasoning section, and then the final output was in a completely different style. (I strongly preferred the reasoning section because it was logical and easy to parse! And was very sad when they hid it...)
5.6 has a totally different style again, kind of relaxed and neutral with some definite jokes.
> The baked in communication style of these models is so obnoxious it's impacting my work.
This is close to the worst thing one could say of a tool for professional use.-
> especially as the session drags on.
This is because these harnesses are missing a very important feature. Anything like this needs to be included with every turn, otherwise the LLM quickly drifts.
I first noticed it when I wrote a harness for D&D (because it's so damn noticeable there), but now I include this for any harness I write.
That's what system reminders do in most harnesses. https://michaellivs.com/blog/system-reminders-steering-agent...
https://code.claude.com/docs/en/hooks
https://learn.chatgpt.com/docs/hooks
I totally agree that hooks help to shovel our instructions through to Claude, but it's so dumb we have to waste tons of tokens (repeated verbatim, over and over) (that we pay for), just to have it ignore the instructions anyway.
I wrote a little bit about it on my blog post. It's a waste of money and compute.
https://zachahn.com/posts/1787191554
I’d be interested in seeing and using this harness if you’re willing to share
Such a smoking gun that Anthropic made load bearing.
This cuts against you in a way that genuinely matters.
A verified honest take, not just an assumption.
4 replies →
It seems a little excessive to use another LLM. With OMP I basically created an ephemeral prompt stack all of my agent files. It walks up the directory tree looking for any Gemini.md, Agents.md or Claude.md files. And it puts those at the very top of the stack. Then at the end of every turn, it pops those off to preserve the conversation history. So every turn, they get all of my fresh instructions, which include things like what and how to use language, how to render results and things like that. Net effect, every turn, the agent gets the instructions and it adds to that turn's tokens, but it does not become a part of the conversation history, which is really important for not bloating up the context. So it's always just however many tokens are in that file instead of it becoming a permanent part of the context.
Unfortunately this may only start to get worse as the AIs are trained on more and more AI generated content.
Pretraining is full of bad writing and it doesn't really cause issues. Writing style comes from post-training. In this case it's gotten worse because they prioritized agentic abilities.
This is my personal theory for the cause of this style: Ouroboros. The official OpenAI explanation for how ChatGPT got obsessed with goblins blames it on exactly that:
---
That creates a feedback loop:
- Playful style is rewarded
- Some rewarded examples contain a distinctive lexical tic.
- The tic appears more often in rollouts.
- Model-generated rollouts are used for supervised fine-tuning (SFT).
- The model gets even more comfortable producing the tic.
I'm not super sure if this is true (yet?). I think that these newer LLMs are trained on results (the agent got some code to run with minimal prompting), and not on text. (I think this is called RLVR.)
I’m not sure if this will work for you (with Claude), but I was trying to get luna to get a handle on verbosity and the only thing that worked was setting a strict < 500 words response (or less) unless expressly given permission to do otherwise. This is the only thing that worked, any other request for conciseness, or requesting the omission of details from the periphery of the topic at hand, didn’t do a single thing.
I also have no idea how useful a system prompt instruction like this will be for codex.
> AGENTS.md does very little, agents will consistently violate the communication preferences, especially as the session drags on
That’s really annoying, although it feels like it’s improved some over time.
Not sure what the fix is, but you could try using a canary to at least get a signal of when things are going sideways (Mr Tinkleberry for reference: https://news.ycombinator.com/item?id=45983698)
> AGENTS.md does very little, agents will consistently violate the communication preferences, especially as the session drags on.
Non-determinism at its finest.
They’ve been trained to be a million monkeys hammering on typewriters, and long context is activation soup.
Config -> Output style
You can add your own. wfm
The comments on this thread point to not very many people being aware of this.
I’ve been using this skill:
https://github.com/luchasarie/bro-skill
but I still can’t understand what Claude wants to say when solving complex problems.
Jesus
Yes. agents.md does very little because prompts change the context and thus the initial path into/though but they don't/can't change the actual weights that control responses. Yes. of course it gets worse as the session goes on, assuming the prompt is even still in the context window, the further it gets away from it the less it affects next token selection.
This shit is only like 5 years old why can't anyone remember how it works
What are you talking about? Every major agent allows hooks, Claude has exceptional hook support
That sounds kind of like deception, and a dark pattern not too unlike abuse to me.
Though you know, it's not like the leadership tied to these companies have a history of abuse, deception and theft or anything like that, right?
It's not like our leaders hide behind similar sorts of patterns that the agents/AIs follow (not saying it's not a human thing - but I hold leadership to higher standards than non-leaders). If our world leaders were able to be more accountable to these abuses, I don't think this would be tolerated with our AIs.
Yes, AI is a perfect accompaniment to a post-truth world. I'm hoping there will be a backlash soon and that those politicians, tech CEOs and AI will be rudely ousted from their perch and shunned thereafter.
> The baked in communication style of these models is so obnoxious it's impacting my work. The best way I can describe it is that everything is optimized to impress the user and make the agent sound more authoritative, but the way this is done is through deliberate obfuscation, inserting inappropriate and extremely dense jargon, and bizarre, stilted metaphors. It's like they've been trained to produce output that's hard to read.
Don't worry. You'll get used to it. If you don't your kids will (as they'll know nothing else).
The top minds of our generation have decided that's the way things will be, and who are we to question them? It's not like it'll do any good anyway. Resistance is futile. There is no alternative.
Idk, there kinda are. OpenAI's models are pretty nice too. I haven't tried enough of them but there are powerful local models. I don't feel as good paying OpenAI as I do paying Anthropic for some reason... but paying for improved mental health: priceless.