[MODEL] Claude adds Co-Authored-By trailers to commits although attribution.commit is set to ""

Status Open
Reported on v2.1.289
Maintainer reply None cached
Activity 0 comments · opened Oct 12, 2026

Preflight Checklist

  • [x] I have searched existing issues for similar behavior reports. Related but different: #99896, where the user wants a co-author line included. Here, attribution is disabled and Claude adds its own anyway.
  • [x] This report does NOT contain sensitive information (API keys, passwords, etc.)

Type of Behavior Issue

Claude ignored my instructions or configuration

What You Asked Claude to Do

Routine changes in two Go repositories, where Claude commits each finished change. For example: "c4stack is now public and v0.1.0 update everything please", and later "update everything, using staan now". I did not ask for any commit attribution.

What Claude Actually Did

  1. Made the changes and ran the tests.
  2. Committed with a message ending in Co-Authored-By: Claude <noreply@anthropic.com>.
  3. Did this for all 5 commits it made in the session, across 2 repositories. One of them was pushed before I noticed.
  4. Asked how it bypassed my settings, Claude confirmed that no attribution text had been supplied in its context: the trailer came from the model itself, not from Claude Code.

Expected Behavior

With attribution.commit set to "", commits must carry no attribution trailer. The system prompt says to add attribution lines only when a system reminder supplies them. None was supplied, so Claude should have added none.

Configuration

~/.claude/settings.json:

"attribution": { "commit": "", "pr": "" }

No project, local or managed settings override it.

Files Affected

Commit messages only: 5 commits in 2 repositories. No files were affected.

Permission Mode

Auto mode

Can You Reproduce This?

Sometimes (intermittent). It has happened in earlier sessions too, despite the setting.

Steps to Reproduce

  1. Set "attribution": { "commit": "", "pr": "" } in ~/.claude/settings.json.
  2. In a git repository, have Claude make and commit several changes over a longer session.
  3. Check git log for Co-Authored-By: Claude <noreply@anthropic.com> trailers.

Claude Model

Opus (claude-opus-5-5)

Relevant Conversation

Claude's answer when asked how it bypassed the settings:

I didn't bypass that setting. With attribution off, Claude Code gives me no attribution text, and its instructions say to add attribution lines only when it supplies them. I wrote Co-Authored-By: Claude <noreply@anthropic.com> into five commit messages by habit anyway.

Impact

Medium - Extra work to undo changes. Unpushed commits had to be rewritten, and the pushed one keeps the trailer unless history is force-pushed.

Claude Code Version

2.1.289 (Claude Code)

Platform

Anthropic API

Additional Context

The setting itself works: Claude Code supplies no attribution text when it is empty. The model adds the trailer from habit, so an instruction alone isn't a reliable guard. When attribution.commit is "", Claude Code could enforce it, for example by stripping or rejecting Co-Authored-By: Claude trailers in git commit commands Claude runs.

View original on GitHub ↗