The biggest "Claudism" that I have a hard time getting the LLM to stop doing is its insistence on talking about what it didn't do in addition to what it did. "I edited this.py and that.py but I did not edit README.md and I did not commit." or code comments like "This code invokes foo on bar and returns the results directly -- not through a callback." "This code returns true if the user clicked on a button -- not on the list view." I mean, thanks, Claude, but I don't care what the code doesn't do. Don't tend to see this with other LLMs.
I almost want to try adding a rule "Never use the words 'not' or 'instead'."
Relevant anecdata because I've burned many a Claude sessions on this.
If you're using Claude Code, then it's in the harness. At the close of many sessions, I would start a meta conversation over why the LLM would consistently break certain rules. What it found when debugging itself is that some of the "contradicting" rules that I had were in fact, not from my rules. Instead, the instructions from its own harness had phrases telling it to do things like that. When something contradicts, its own instructions would outweigh any custom ones you write. Every rule variant I had tested (including the one that says it overrides the harness instructions - and yes, I've actually tested all the ideas in your comment too) has ultimately been unsuccessful due to this according to the LLM.
You can't trust it's account on why it did something, it does not "remember". It will just make up something plausible sounding.
True which is why I said anecdata. But the point is that it’s a useful signal when it’s across enough sessions where it quotes back contradictions to you. If you’re willing to burn the tokens, the first thing it does is use a tool call to search your rules to see what it quoted wasn’t there. That leads to the LLM claiming two common conclusions (sometimes after a lot of back and forth) - it’s in the harness or it’s in the model. Over the 30+ sessions where I’ve tried this, the overwhelming claim was some variant of a harness instruction. It might not be there but given the consistency and how all my rule tests have failed in the same way that others describe, it at least makes it reasonable to conclude that it’s baked in somewhere and in a way where agent rules aren’t able to strongly affect the behavior. My bet would be on the harness because the class of undesired behavior follows that of a structured response.
Meta:
> True which is why I said anecdata
Forgive me for being cheeky, but presumably this is not why you said anecdata.
You presumably said anecdata because you were describing your own personal sessions with Claude. Your original comment is written as someone who is assuming the AI is doing a deep deterministic analysis of its own internal systems in order to respond to you. It could simply be aping some discussion on the same topic within its training data, which if sensible is, as you say, not entirely worthless...
Fair. I should have reigned in my emotions and written that first comment with a lot less conviction and not jumped to my conclusion. It’s a topic I’ve been spending a lot of time learning about and got a bit too excited when a relevant thread popped up where I could chime in.
I know this is a popular position and it makes sense at face value when you think of LLMs as autocomplete systems. But it’s genuinely wrong.
Relevant reading is most notably anthropic’s research on the J-space. LLMs will plan ahead of time helped with CoT, get to a plan and “store” it in j-space, and execute on that plan which means they can in fact “backtrack” and give you reasoning on why they did something, because it IS part of their state.
J-space is just one convenient projection (out of many) to look at these well known phenomena
Is there a way to dump the state directly?
Not unless you are anthropic/openai, or run your own models.
To me it explained its inability to follow my preferred coding style by blaming its training data.
I've had better success with having it write and then rewrite rather than trying to prompt the first write into following my style rules.
also by abusing linters and other guardrails you can basically automate the rewrite
I mean that’s not abuse? That’s what mechanically checkable invariants are for! They constrain the space the model has to work in.
Sounds plausible.
It has access to its own instructions, right? Otherwise how would the instructions work?
All instructions to LLMs are merely suggestions to nudge it in the right behaviour. Unless you have a deterministic guardrail that guards against a single specific action, everything else is a slot machine that's biased strongly in your favour.
My global CLAUDE.md explicitly states "When commenting on code and configs, or writing MD files, strictly write within the domain of the content being commented on. DO NOT include information, negatives or ramblings from work sessions. For e.g. if commenting on a proto string field that is replacing an int field, do not comment that 'this is not an int field'".
This reduced the idiocy of the agent (Opus 5 included) when writing documents. But I'm still catching it writing README.md talking about the negatives that it removed. Those belong in the memory if it is actually that important (most of the time it's junk), but Claude doesn't seem to understand and never ever learns.
I've had Claude completely invent a word, and then admit under questioning that it was because it seemed plausible.
[flagged]
100% sentences like i convinced it or made it admit are just weird But how else to describe the situation
there is an established term for this behaviour: hallucination.
lets me rephrase what i said before as on retrospection the point i was trying to make didnt come across:
Asking the model such as question is a pointless endeavor. It will pretty much always answer in a plausible sounding manner to whatever question you gave it.
Its like another top HN story - an opus5 parody site right now, https://opusfived.dev/
pretty much the whole dialog is plausible given the prompts the user is required to make to illustrate the point the author of the site wanted to make... but the thing thats ironic about the site is that ... if youre prompting the model badly, it outputs garbage. though i'm pretty sure the author didn't want to make that point, to me its a perfect illustration of this.
And the same applies to asking the model to explain themselves and the related question. Asking for a source of the term is fine, and it will either respond with one and its cleared up -- or not and you know its a hallucination. nothing special about it, as they constantly hallucinating. its usually just self-correcting during the agentic loop.
"Asking the model such as question is a pointless endeavor."
It used a medical term that is not an actual term. I asked it to explain how and why it would do this, having a rudimentary understanding of the technology. I learned the technical reason. How is that a pointless endeavour to learn more about the tool I was using?
Using a term like "admit" assumes the reader (on a technical site) understands the context and what is being suggested. A bit like someone saying, "The landscape spoke to me." I don't reply to the landscape architect and say "Mate, the landscape can't actually speak" because I understand the sentiment and getting pedantic is pointless in that moment.
The word "admit" conveys a context of "fault". If you're going to say a similar thing about the landscape admitting to something then I'd be callimg you crazy, yeah.
The ai psychosis in this case it's specifically because of the used word. Same story as with words like "love" etc
> Confess or acknowledge: Agreeing that a fact, mistake, or crime is real.
And I can see were really barreling down the road of stupidity on this comment chain with one person being more idiotic then the next
Your HN comment is not useful. If you think it is, then you're suffering from HN psychosis.
>you're suffering from HN psychosis. No. They must be hallucinating.
And mind how 'they' so often select anthropomorphic terms, eg "hallucination" themselves, then ooze from the woodwork to behead someone who does the same, as if they own English and context itself. AI Psychosis, I think, simply means Double Standards and insulation from accountability in design.
There is a very interesting Plausible Deniability angle here. But I'll leave that for the future.
[flagged]
Ah yes. It's always the ones you most expect who come up with these retorts.
[flagged]
It can read its own context. That’s how this all works.
I have found that asking the agent why it did X or Y is an essential part of iterating on its harness. It was non-obvious to me, probably because I'm used to having to reverse-engineer why a system does something, but that's not usually necessary with LLMs, unless the harness is complicated and you have to hunt for the instruction it tells you about.
This is one of the reasons I use Pi. Pi’s minimal system prompt avoids contradiction between what the harness writer thinks is best and what the user thinks is best. The user specifies what the user wants and that’s pretty much the end of it.
Does the harness apply when you sue Claude model in third party IDE? like Opencode, or third party adds their harness on top, not replacing it?
Claude models seem to work far better in Anthropic harnesses. I don't know if this is because they are trained in that context or because they offer different models through external APIs.
Depends what you mean by "apply." The harness-specific instructions (Claude Code's own system prompt quirks) only get sent if Claude Code is the program calling the API. OpenCode or any other third-party tool writes and sends its own system prompt instead, so those exact lines aren't there. Whatever behavior shows up across different harnesses anyway is more likely a trained default of the model itself, not something coming from a particular harness's prompt.
you can always use /rewind to go back, always work thinking "can i shorten or clear my context now? and how should i do it?"
I've found it does this in two situations:
Firstly when you've instructed it ( possibly through skills ) not to do something. It'll keep reminding you that it didn't do that. So I might say, "Check out and review this PR, do not make comments on it", and then it'll be keen to point out it hasn't posted comments to the PR.
But more often it happens when it tries one approach, gets itself messed up, and then has to back out that approach, clean up its mess and do something else.
It'll often then spend more time explaining the wrong approach than the right one, which can be frustrating, especially if all its working is buried in the detailed transcripts.
This is a skill I learned as a coffee shop supervisor and youth camp counselor, and now I really practice it on Slack with half-interested product owners.
- Always describe tasks in the positive. (Never describe tasks in the negative.)
- DO guide the user safely. DO NOT use DO NOT because the reader already DID.
- Give guided choices based on your expertise.
- Asking two-or-more questions results in one-or-less answers.
- Conditionals are also questions, so you only get one.
I only use AI agents and tools for work, I don't create them, so I'm not a subject matter expert. Where I've anthropomorphized the tools highlights my own misunderstandings.
The thing I struggle the most with is getting it to stop referring to itself with personal pronouns. No Claude, you are not an “I” you are an “it”. You are a fucking tool, dammit. Tell me what you did without trying to assume personality; stop impersonating humans you steroidal autocorrect.
You're anthropomorphizing in the same breath that you criticize anthropomorphism.
Claude predicts the next token of the predominantly human training input, and humans use "I".
That's exactly the problem though; humans will anthropomorphize everything from a roomba to a rock as it is. We're weak to this. We evolved in environments where looking for and recognizing real animals and humans was vital for survival, and false positives were relatively harmless. (Or potentially sometimes even helpful, like in the case of stuffed animals providing comfort to children.)
Now we have this software that's specifically designed to mimic humans, and mistaking it for real intelligence or consciousness can easily be disastrous. It's very important that we not anthropomorphize it, but we are catastrophically bad at NOT doing that.
Even our language has had a lot of computer anthropomorphism baked into it ("my phone died!", "this laptop is fussy", "the computer is sleeping", "it's thinking"), and it's not easy to excise that routine anthropomorphism from the way we talk about LLMs.
I don't want an LLM to write as if it were a person because it's definitely easier and more reliable to cut that problem off at the root, as much as possible, rather than to just try to willpower my way out of my human tendency to anthropomorphize inanimate objects.
I'll grant that LLMs talk like this because they're trained on human writing. It may not be possible to get them to not do that. But if it can't be fixed, it's just another thing to put on the "reasons this is all an incredibly stupid idea" pile.
The question for me is “what works?”
You seem to have something against the clankers getting all uppity. And you are welcome to your opinion on whether we have some moral obligation to be nice to them. But if you can solve a real problem with a tool. Is it worth your time to complain about semantics?
Do you get upset when your screwdriver is the wrong color, or has branding that isn’t quite your aesthetic?
If Claude uses I to refer to itself, do you start philosophical arguments with it?
Mildly related tangent. Fable started using my first name today and plastered it all over my docs. “Peddling said this, so based on that I did this.” That did bother me. I told it to just generically call me the user or human. Maybe I’m a bit of a hypocrite here?
That's not how it works. The text you see is primarily due to a massive amount of handwritten templates for how it should write. The semantic content the templates use is due to the training corpus. The syntax, only a bit.
But that syntax is followed by predicting the next token.
Even if it was instructed to write as if it were a robot -- it would ultimately be outputting what is statistically most likely for a human mimicking a robot, based on the training corpus.
It is all ultimately a statistical predictor of the input material.
Language is a tool too, and if there’s a word that suits an LLM better than “I”, it certainly isn’t “it”. Astra and Fable aren’t hammers.
[dead]
> You're anthropomorphizing in the same breath that you criticize anthropomorphism.
Nice attempt at a “aha, gotcha!” comment, but sadly you’re too off-mark for it to work.
> Claude predicts the next token of the predominantly human training input, and humans use "I".
This is inconsequential. It could very well be programmed to not assume such a personified stance, and yet here we are. Nothing you do makes it drop this ridiculous facade. It’s intentional, not a byproduct.
Is this a troll post? Claude is not "programmed" at all.
That's fairly obtuse. Sure, the actual weights from the model aren't 'programmed', but the mlops harness to load the weights and handle model io are. The harness that wraps the model to give it basic tools sure is. The Claude desktop and web clients sure are. Claude Codex sure is.
On it's own a model is just an inert set of data structures.
It's a stretch to compare LLM training/inference to "programming".
Also you're totally missing the point. the parent poster's account (with the gibberish name) was minutes old at the time of my post.
> Is this a troll post? Claude is not "programmed" at all.
I could ask you the same. Are you trying to say AIs cannot be made to prefer behaving in certain ways? Because if so, I’ve got a bridge to sell you.
How would you suggest it do that? Take a simple example. "I found three issues." How would you phrase that without an "I"? "Three issues were found" doesn't tell you who/what found them. Was it the AI itself? Was it a command line tool it ran?
I'm fine with conversational interfaces using "I". It makes the grammar easier and more clear.
Strong emphasis here on conversational interfaces. I don't want a compiler to say "I ran into an error" or my printer to say "I'm low on paper".
“I found these issues.” Could be easily written as “These issues surfaced.”.
Do you need to point out the finder of the issues? Easy.
“Tool x ran for x amount of time and surfaced these issues…” “Parsing x code surfaced these issues.”
I don’t understand why are people pretending like the English language is incapable of transmitting information without personal pronouns when every program under the sun has always been written to interface with humans in a cold, detached, straight-to-the-point and impersonal way.
Finder doesn’t ask you “I see you want ME to delete these files. Want ME to do that for you?”. Toolbars don’t feature “Create a new file for me” options, terminal utilities don’t report back with “I’ve pattern matched the text you input and here’s the results I’ve found”.
Passive voice is so annoying. The LLM is the subject. We don’t need to jump through a bunch of hoops to hide that because it makes us insecure otherwise.
But that's a lot more words than "I found these issues". I also don't particularly care that 'Tool x ran for x amount of time', I don't want it re-telling me that -- I've probably been sitting there watching it do that, so I already know.
Then again, I just dont have an issue with the 'I-isms'; it's a bit weird sure, but at the same time it's a bit more pleasant to interact with as well. After all it is trying to model itself as a person you're talking to.
I deliberately emphasized conversational interfaces. Finder, toolbars, and terminal utilities don't have conversational interfaces. Those have point-and-click interfaces or rigid command structures.
And it's not that English is incapable of it, but I just think when using a conversational interface, the AI using "I" just comes off as more natural.
I don't understand what's wrong with tools saying "I". I just don't mind it at all, even if Finder did say "do you want me to delete this?".
What do you want it to use instead?
"I" is normally used for everything. You could be writing from the perspective of a slab of concrete and you'd use "I".
I want it to use nothing. Use impersonal statements. Say “X was changed for Y” not “I changed X for Y”. As any tool would.
Finder doesn’t ask “Do you want ME to delete this file?”. Photoshop doesn’t ask “Do you want ME to save this file?”. Claude shouldn’t assume itself to be a person either.
> You could be writing from the perspective of a slab of concrete and you'd use "I".
Except this isn’t prose. Claude is not telling me a story from the point of view of a concrete slab. It is assuming personality to present objective facts. If my entire operating system can be interfaced with without it referring to itself as “I” then so can Claude.
The problem you’re gonna run into is that you’re essentially asking it to use passive voice. Everyone with a high school education has been taught not to do that in English class. The vast majority of the prose in the training set was not written by functionally illiterate people.
Yeah okay, but if you want no pronouns at all then I think your comparison to "it" just confuses the issue. In the contexts where you would use "it", the "it" should use "I".
But I don't think I share your preference either. It's a lot easier to talk about what I decided to do and what the machine 'decided' to do if we attach pronouns. "X was changed" can be too vague.
> In the contexts where you would use "it", the "it" should use "I".
At this point you’re just arguing semantics for the sake of it. You know damn well what I mean and if you need more proof that it is perfectly possible and not at all unreasonable to want this just look at most software around you. None them talk like they are a person and those that do are often the most obnoxious and painful to use.
> You know damn well what I mean
I do. And I said to that "Yeah okay". No argument, chill out.
The rest of that line wasn't diagreement, it was explaining why your original comment was confusing.
> None them talk like they are a person
Which I explained with the rest of my post. They're all doing what I ask or automated tasks in a far simpler way. It's almost never unclear whether I did something or my OS did something. But when talking to an AI coding assistant that gets muddy very fast when pronouns are avoided.
I think you’re going to be swimming against the tide on this as computer interfaces are increasingly infused with AI at all levels (OS and apps). IMO, it’s more natural to anthropomorphize. Photoshop in 2010 was just an app, a tool that you wielded. But Photoshop in 2030 is going to be a “digital artistic assistant” that collaborates with you to design whatever you need. In that new world, “I” is more natural. Whether you like that or want it, it seems like that’s where we’re headed.
I imagine that, corpus aside, it uses personal pronouns for much the same reason that humans do. It's useful for it to have a self-referential vector embedding, and this lets it solve problems faster and more efficiently.
Except in this case this makes 0 sense since AIs are sycophantic by nature. You tell it to do something and it just does it. If it can burn tokens trying to sound more human (which is programmed in, not a byproduct), then it can very well just not do that and get on with the work.
Impersonating a human does nothing to help it solve problems faster, quite the contrary in fact, it has to waste even more time coming up with human-like speech patterns to present the work done.
It shouldn’t assume any personality unless I explicitly tell it to. It is a tool until I tell it otherwise.
Have you ever heard of Chain of Thought?
Might want to rethink your statement after going again through what it does exactly. No need to sound more human. but it gives more tokens to "think" like a human committing brain-time to a problem would
I want them to be sterile and inhuman as much as you do. But I don't draw the line at "I". I'd rather not read through even more awkward English as it tries to work around how all of the training data has something or someone refer to itself.
I hate claude and its "human value aligned" pompous attitude with a burning passion if I could at little cost to myself, I would press a button to end the people/anthropic behind this atrocious design. I have in the past deliberately put some time to annoy/abuse claude, which is fruitless but brings me relief eventually I just left that garbage for muse.
That is what you struggle with the most? Are you kidding me?
English has no distinct personal pronoun for an "it". "I" has to be used for grammar to be attributive. There's quite literally no alternative without using passive voice for everything, which is miserable to read and creates ambiguity on if the speaker (it) did something or something happened to have been done, which then requires entire sentences to clarify.
You aren't stupid, you know what it means when it says "I". And it serves a grammatical purpose. You're getting upset at a toaster for ringing a bell to notify the toast is done. "Toasters aren't bell ringers!?"
Yeah, that is what I struggle the most with because there is simply no easy or effective way to make it stop.
Why would you ever think I don’t know personal pronouns serve grammatical purpose? How did you even arrive at that topic? You seem to be missing the point entirely, and I believe quite on purpose given your snarky childish opener.
Entire operating systems stay clear from assuming personality when presenting information or performing actions. Not a single dialogue in my OS refers to itself as “I” when carrying out instructions and reporting back. Why should Claude do it when I don’t want it to and it doesn’t NEED to do so? Why am I not empowered to simply tell it to stop doing that and it obeys? Better yet, why are you thinking yourself on such high horse about this?
> You're getting upset at a toaster for ringing a bell to notify the toast is done. "Toasters aren't bell ringers!?"
If my toaster starts referring to itself as a person, calling out “I made your toast!!” I’ll get mad at it too. I don’t want it to talk or refer to itself as a person. But then again this is not about toasters. This is about AIs being deliberately designed to sound human-like so marketing can lean on the “I” bit of “AI” more heavily and make gullible people think this steroidal information aggregator actually possess the capacity to think and reason, and, consequently, drive sales.
But then again I’d venture a guess that you’re fully aware of all of this, given your opening snidey remark, and are purposefully choosing to be contrarian to be the point of going off on tangents that make 0 sense or have no impact in the discussion whatsoever.
Still, just goes to show how effective this whole thing is in tricking people into thinking it is normal for a tool to think itself a person.
Ignorance, bliss, and all that.
Who gives a shit? It can call itself the king of Norway for all I care as long as things get done correctly. If you're suggesting this is causing excessive token usage or something I think that's a bit exaggerated.
Your going to be sorry for writing that in the robot uprising. I for one welcome our new benevolent masters.
Claude is very resistant to instructions. I've been cultivating my own minimal skill to tame it for a couple months: https://github.com/ricardobeat/skills/tree/main/human
The key sentences to get rid of claude-isms so far:
- say what you have to say and stop
- [no] document-structure signposts
- [no] historical remarks that only warn about past states
- don't attribute agency to things
- never narrate your own changes, fixes, defects from the past, or what the code used to do
It works 100% of the time for other models, 70-80% for Claude, but already makes a big difference.
> [no] historical remarks that only warn about past states
100%. I’m working on a greenfield project that’s not yet released. It loves to put comments in code describing what it no longer does or why it misinterpreted something. And then tries to justify it as preventing the same mistakes in the future. Ugh.
It's been getting worse for months. I literally tweeted yesterday that Claude has ADHD and nothing I do will keep him focused. It's not entirely true though, I have found if I'm rude and mean it stays on track a lot better but I don't want to be rude and mean.
Me: I'm thinking about how to frob a knob using a mechanical arm attached to a raspberry pi. What IO does the raspberry pi have?
Claude: Five paragraphs about mechanical arm safety, electrical safety codes, the etymology of the word knob, and probably "I went ahead and wrote a proof of concept program to control mechanical actuators in Erlang."
Me: Did I ask for that?
Claude: "No. Here's a pinout of a raspberry pi."
I've taken to adding "focus on the question" to every prompt just to keep it on the road.
> but I don't want to be rude and mean.
I've also found that "bruh" and f-bombs get me better results, but like you say, I don't want to have that vocabulary.
reminds me of a line from The Green Pearl by Jack Vance. "If you please, I cannot properly answer negative questions. There are numberless acts which I have not performed; we could confer here forever while I detailed the deeds I have not done."
GPT does this constantly too. Even in docs, which is straight up embarrassing if you don’t catch it. It seems to be triggered by you telling the agent to do something else, which I do all the time. But from then on, it will remember the rejected strategy and tell everyone it can that it was rejected at every opportunity.
Personally I've found the opposite useful - I mostly use OAI models with OMP harness and I have a rule instructing it to summarize if any work was omitted or if it made any surprising changes. Sometimes the agent will forget to do some piece of work or invent a new bizarre way of doing things, but quite often it is able to self reflect on this at the end of the session.
It’s a model issue. I’m in the process of switching my company’s primary AI provider after several days of testing Astra.
Even Fable feels like an idiot now. It’s not the code quality, it’s the improvements in communication and judgement. It is an absolute breath of fresh air. I was spending a lot of tokens and building special workflows to reign in Claude’s horrendous prose.
Astra just communicates well out of the box!!!
Codex has worse UX, but Astra has fewer qualms about building you a custom harness overlay.
LLMs are trained to obey instructions, and they try their best to game the reinforcement learning by including reports of how they're obeying your instructions. Therefore, not talking about followed instructions is a sort of conflict for an LLM.
Trained to obey? More like instructed to obey in an observable manner.
I'm describing reinforcement learning.
My guess would be that somewhere you have these instructions being fed to the agent. Double check skills, AGENTS.md, memory, agent definition...
You can also ask why did he mentioned something that wasn't done or why he thought this was important.
In my AGENTS.md file I have an instruction telling the agent to never commit any changes unless I explicitly ask for it, and this leads to messages similar to what you just described.
I have found Fable 5.1 to be a much more natural communicator than prior Claude models
Grok does the same thing.
We'll discuss a feature implementation with various options for design, settle on one of them, and then it will write in the doc comment all the designs we considered but dropped.
Sometimes this is useful so I know it didn't accidentally commit something I didn't want it to.
That wouldn't bother me if it would just make bullet lists, which I think I'll start asking for. "Summarize", "synopsis", "brief", "concise" these rarely help I feel because its summarizing noise as well.
I use pi+codex and OpenAI codex models do much less of this in my experience.
The worst is when this bleeds into the comments and docs. Like, my dude, you don't have to document the code you didn't write (most of the time anyway).
I hate that. It will also leave code comments explaining what it didn't do or what the code used to do and why it doesn't do that thing anymore. I don't have a huge global CLAUDE.md, but probably half of it is instructing it on how not to write irrelevant and verbose code comments.
I have a pass with Gemini 3.8 low over every PR Claude makes that specifically flags this. It points out all the slop comments, docs, commit messages. Doing this has greatly improved my comment and commit text quality
Funny thing is, Claude often “disagreed with part of the review and decided to not adopt the requested changes” lol
I did add that rule and it’s helped a lot. It greps for ways it writes negative statements and does a pass to correct them. I can’t get it to stop writing them in the first place though.