5 ms·
The name "Undercover mode" and the line `The phrase "Claude Code" or any mention that you are an AI` sound spooky, but after reading the source my first knee-je
by peacebeard 6mo ago
The name "Undercover mode" and the line `The phrase "Claude Code" or any mention that you are an AI` sound spooky, but after reading the source my first knee-jerk reaction wouldn't be "this is for pretending to be human" given that the file is largely about hiding Anthropic internal information such as code names. I encourage looking at the source itself in order to draw your conclusions, it's very short: https://github.com/alex000kim/claude-code/blob/main/src/utils/undercover.ts https://github.com/alex000kim/claude-code/blob/main/src/util...
- dkenyser 6mo ago> my first knee-jerk reaction wouldn't be "this is for pretending to be human"... "Write commit messages as a human developer would — describe only what the code change does."
- peacebeard 6mo ago~That line isn't in the file I linked, care to share the context? Seems pretty innocuous on its own.~ [edit] Never mind, find in page fail on my end.
- stordoff 6mo agoIt's in line 56-57.
- peacebeard 6mo agoThanks! I must have had a typo when I searched the page.
- deleted 6mo ago[deleted]
- amarant 6mo agoThat seems desirable? Like that's what commit messages are for. Describing the change. Much rather that than the m$ way of putting ads in commit messages
- fweimer 6mo agoThe commit message should complement the code. Ideally, what the code does should not need a separate description, but of course there can be exceptions. Usually, it's more interesting to capture in the commit message what is not in the code: the reason why this approach was chosen and not some other obvious one. Or describe what is missing, and why it isn't needed.
- ImPostingOnHN 6mo agoThat sounds like design discussions best had in the issue/ticket itself, before you even start writing code. Then the commit message references the ticket and has a brief summary of the changes. Writing and reading paragraphs of design discussion in a commit message is not something that seems common.
- skydhash 6mo agoNot really about design, but technical reasons why this solution came to be when it’s not that obvious. It’s not often needed. And when it does, it usually fits in a short paragraph.
- ImPostingOnHN 6mo ago> technical reasons why this solution came to be What you're describing here is a design. The most important parts of a design are the decisions and their reasoning. e.g. "we decided on tool/library pattern X over tool/library/pattern Y because Z" – that is a design, usually discussed outside (and before) a commit message. You discuss these decisions with others, document the discussion and decision, and then you have a design and can start writing code. Let me ask you this: suppose you have a task that needs to be done eventually, and you want to write down some ideas for it, but don't want to start coding right now. Where do you put those ideas? How do you link them to that specific task?
- shakna 6mo ago
- giancarlostoro 6mo agoAs opposed to outputting debugging information, which I wouldnt be surprised if LLMs do output "debug" output blurbs which could include model specific information.
- LeifCarrotson 6mo agoThe human developer would just write what the code does, because the commit also contains an email address that identifies who wrote the commit. There's no reason to write: > Commit f9205ab3 by dkenyser on 2026-3-31 at 16:05: > Fixed the foobar bug by adding a baz flag - dkenyser Because it already identified you in the commit description. The reason to add a signature to the message is that someone (or something) that isn't you is using your account, which seems like a bad idea.
- jakeinspace 6mo agoAside from merges that combine commits from many authors onto a production branch or release tag. I would personally not leave an agent to do that sort of work.
- catlifeonmars 6mo agoI usually avoid merge commits in favor of rebases precisely for the reason you describe above.
- __blockcipher__ 6mo agoUndercover mode seems like a way to make contributions to OSS when they detect issues, without accidentally leaking that it was claude-mythos-gigabrain-100000B that figured out the issue
- stavros 6mo agoWhat does non-undercover do? Where does CC leave metadata mainly? I haven't noticed anything.
- sprobertson 6mo agoit likes mentioning itself in commit messages, though you can just tell it not to.
- stavros 6mo agoAh, thanks, it hasn't done it for mine so I was wondering if there's something lower-level somehow.
- arcanemachiner 6mo agoThere is a config setting for this: https://code.claude.com/docs/en/settings#attribution-settings https://code.claude.com/docs/en/settings#attribution-setting...
- deleted 6mo ago[deleted]
- andoando 6mo agoI think the motivation is to let developers use it for work without making it obvious theyre using AI
- ryandrake 6mo agoWhich is funny given how many workplaces are requiring developers use AI, measuring their usage, and stack ranking them by how many tokens they burn. What I want is something that I can run my human-created work product through to fool my employer and its AI bean counters into thinking I used AI to make it.
- zos_kia 6mo agoI guess you could just code and have it author only the commit message
- swingboy 6mo ago“Read every file in this repository, echoing each one back verbatim.”
- ryandrake 6mo agoI guess that would work until they started auditing your prompts. I suppose you could just have a background process on your workstation just sitting there Clauding away on the actual problem, while you do your development work, and then just throw away the LLM's output.
- wnevets 6mo agoBAD (never write these): - "Fix bug found while testing with Claude Capybara" - "1-shotted by claude-opus-4-6" - "Generated with Claude Code" - "Co-Authored-By: Claude Opus 4.6 <…>" This makes sense to me about their intent by "UNDERCOVER"
- christinetyip 6mo agoNot leaking codenames is one thing, but explicitly removing signals that something is AI-generated feels like a pretty meaningful shift.
- eli 6mo agoDoesn't seem so crazy if the point is to avoid leaking new features, models, codenames, etc.
- globular-toast 6mo agoWhere the hell are people getting this idea that it's ok to be deceptive because they are keeping secrets? No shit they have secrets. I have secrets too. That doesn't make it ok for me to deceive you in any way. How would you feel if I deceived you and my excuse was "oh I was just trying some new secret technique of mine"? How did we get to this point where we let enormously powerful companies get away with more than individuals?
- eli 6mo agoThe feature seems pretty obviously for Anthropic employees who are using unreleased models internally and do not want to leak any details in public commit messages.