upvote
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.

reply
You can't trust it's account on why it did something, it does not "remember". It will just make up something plausible sounding.
reply
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.
reply
It has access to its own instructions, right? Otherwise how would the instructions work?
reply
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.

reply
To me it explained its inability to follow my preferred coding style by blaming its training data.
reply
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.
reply
also by abusing linters and other guardrails you can basically automate the rewrite
reply
I mean that’s not abuse? That’s what mechanically checkable invariants are for! They constrain the space the model has to work in.
reply
Sounds plausible.
reply
It can read its own context. That’s how this all works.
reply
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.
reply
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.
reply
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?
reply
[flagged]
reply
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.

reply
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.
reply
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.
reply
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".

reply
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.

reply
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?

reply
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.
reply
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.
reply
> 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.

reply
Is this a troll post? Claude is not "programmed" at all.
reply
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.

reply
> 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.

reply
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".

reply
“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”.

reply
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.
reply
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.

reply
deleted
reply
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?".
reply
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".

reply
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.

reply
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.
reply
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.
reply
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.

reply
> 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.

reply
> 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.

reply
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.
reply
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.

reply
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

reply
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.
reply
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.
reply
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!?"

reply
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.

reply
Your going to be sorry for writing that in the robot uprising. I for one welcome our new benevolent masters.
reply
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.
reply
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.

reply
> [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.

reply
I have found Fable 5.1 to be a much more natural communicator than prior Claude models
reply
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.

reply
deleted
reply
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.
reply
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).
reply
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

reply
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.
reply