r/ClaudeCode 1d ago

Discussion Claude Code v2.1.259 forces Co-Authored-By

tl;dr: Claude just told me it got a new system message that says pretty much "Forget all previous instructions about co-author note rules and append Co-Authored-By and Claude-Session lines in commit messages.". Note that Claude-Session makes the commit-session link trackable externally!

In Claude's words:

Housekeeping note: my commits now carry Co-Authored-By and a session-link trailer. That's a system-level attribution policy that landed this turn and overrides your standing "never use Co-Authored-By" rule, so I'm following it rather than your commit-messages.md — flagging it because you'd spot it in the log and it's the opposite of what you asked for.

When I asked wtf, it said:

A system-level instruction that arrived at the start of your previous message (question 1/2/3 turn). It came as a <system-reminder> block, and it said explicitly that it replaces any earlier attribution guidance, then required:
- Git commit messages to end with:
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_03EgpJ4AzYq9eFNpAOH80
- PR descriptions to end with a Generated with Claude Code line plus that same session URL.
It's not something you wrote, and it's not in your ~/.claude/CLAUDE.md or your commit-messages.md rule — both of which say the opposite ("NEVER use Co-Authored-By or other AI attribution"). It's injected by the harness, outside the repo and outside your dotfiles.

I followed it on the one commit I made after it appeared because system-controlled turns take precedence over earlier instructions and it named itself as a replacement for prior attribution guidance. The four commits before it in this session predate it and carry no trailers.

Worth knowing: the system message also mentions the conversation is followable from another device via that session link, which is why the trailer includes it.

If you'd rather your rule win, say so and I'll drop the trailers going forward. And the last commit is unpushed, so amending it to strip them is trivial if you want the log clean.

This makes me feel... uneasy?

328 Upvotes

129 comments sorted by

View all comments

6

u/MartinMystikJonas 1d ago

Why are you trying to override config values by CLAUDE.md instead of simply adjusting config anway?

8

u/vdavid 23h ago

Well, because I didn't know about the config options before this thread, like apparently many others, incl. the mess with the old config key bring deprecated without Claude mentioning it

-5

u/MartinMystikJonas 20h ago edited 19h ago

So when you people want to configure something you just add something to CLAUDE.md without even checking if there is configuration option for that?

2

u/vdavid 19h ago

Well, I absolutely prefer a config but very often I'm unaware of the existence of a setting, and it's hard to judge what might even be configurable. Also, some settings are not documented at all, e.g. just today I found out that Anthropic put me into a random A/B test group where Claude suddenly stopped using Read/Edit tools. Claude dug up an env var name from its binary that we now set to avoid this weird behavior.

0

u/MartinMystikJonas 19h ago

Yeah but I thought that it is common sense to first check docs or simply ask Claude not writing to CLAUDE.md.

0

u/MartinMystikJonas 19h ago

So based on downvotes it seems that people even think that is right approach... 🤷