[BUG] Built-in Co-Authored-By: Claude commit trailer asserts AI co-authorship by default (contrary to U.S. Copyright Office guidance)

Open 💬 0 comments Opened Jun 9, 2026 by joshuagay

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Claude Code appends Co-Authored-By: Claude <noreply@anthropic.com> to git commits (and a "🤖 Generated with Claude Code" line to PR bodies). This is a default behavior. The problem with the "Co-Authored-By" field is that it encourages users to assert that an AI is a co-author of a work. And, this Co-Author attribution is contrary to the U.S. Copyright Office's published guidance on AI authorship

The U.S. Copyright Office, in "Copyright Registration Guidance: Works Containing Material Generated by Artificial Intelligence" (Statement of Policy, 88 Fed. Reg. 16190, Mar. 16, 2023; 37 CFR Part 202), states (§IV.A):

Applicants should not list an AI technology or the company that provided it as an author or co-author simply because they used it when creating their work.

The same guidance holds that "to qualify as a work of 'authorship' a work must be created by a human being." A Co-Authored-By: Claude trailer asserts exactly the co-authorship the Office says not to assert. Git tooling treats every Co-authored-by name as a co-author of the commit, so this is a substantive authorship claim, not a cosmetic string.

Since you do not support a comprehensive set of such commit/pr message strings, the primary reason for this "Co-Authored-By" option is to be able to assert that a work is co-authored by Claude. And this is made even more clear by the fact that this the default functionality.

That is, the trailer is on by omission. From the bundled attribution function in Claude Code v2.1.169 (de-minified):

function wuH() {
  if (jUH() === "remote") {                                  // remote/cloud session path
    if (Y$.CLAUDE_CODE_SUPPRESS_SESSION_ATTRIBUTION)
      return { commit: "", pr: "" };                         // env-var off-switch (remote only)
    ...
  }
  let H = z7(),
      $ = QjH(H) !== null ? u36(H) : "Claude Opus 4.8",      // model name; default literal
      q = `🤖 Generated with [Claude Code](${dSH})`,          // PR-body attribution
      K = `Co-Authored-By: ${$} <noreply@anthropic.com>`,    // the commit trailer
      _ = d6();                                              // resolved settings
  if (_.attribution) return {                                // newer schema
    commit: _.attribution.commit ?? K,
    pr:     _.attribution.pr     ?? q
  };
  if (_.includeCoAuthoredBy === false) return { commit: "", pr: "" };  // explicit opt-out
  return { commit: K, pr: q };                               // default: include it
}

The trailer is suppressed only if the user has already set attribution or includeCoAuthoredBy: false. With no such setting, _.includeCoAuthoredBy === false evaluates to false, so execution falls through to the final return { commit: K, pr: q } and so the co-authorship trailer is the unconditional default, not even an opt-in. (The same K value also drives the system-prompt line instructing the model to append the trailer, so the default reaches commits via two paths.)

  • It bakes an inaccurate authorship claim into users' commit history by default, contrary to the cited federal guidance on AI authorship.
  • It is on by omission — the fix requires knowing an opt-out setting exists. For an accuracy-sensitive attribution, the safe default should be off.
  • It is a correctness issue, not a preference: the Office's position is that the human is the author and the AI is a tool.
  • Claude Code v2.1.169 (behavior located in the bundled wuH() attribution function).

What Should Happen?

Claude Code should not generate an AI authorship/attribution trailer at all — by default, by fallback, or via a built-in setting. Remove the Co-Authored-By: <AI> attribution entirely, rather than just defaulting it off:

  • Remove the Co-Authored-By: <model> <noreply@anthropic.com> trailer literal and the PR "Generated with Claude Code" attribution as shipped defaults, the attribution defaults/fallbacks that emit them (including the silent attribution.commit ?? <co-author-line> path), and the includeCoAuthoredBy toggle.
  • Omit the corresponding "End git commit messages with…" instruction from the system prompt when no attribution is configured.

This is not removing a general-purpose trailer feature, because there isn't one: the tool ships exactly this one co-authorship trailer and none of the trailers developers actually manage (Signed-off-by, Reviewed-by, Authored-By, …). The whole attribution / includeCoAuthoredBy mechanism exists to add the AI co-authorship line, so keeping any opt-in just preserves a one-flag path to an attribution that runs directly against the U.S. Copyright Office's guidance — which a tool shouldn't ship a switch for.

This stands on its own regardless of #36105 (the proposal to offer an Assisted-by trailer): even if Assisted-by is added, the Co-Authored-By co-authorship claim should be removed outright.

Error Messages/Logs

Steps to Reproduce

  1. Use a default Claude Code install with no attribution or includeCoAuthoredBy set in ~/.claude/settings.json (or any project/managed settings).
  2. In a git repository, have Claude Code create a commit (make a change and ask it to commit).
  3. Inspect the commit message: git log -1 --format=%B (or git show -s).
  4. Observe the appended Co-Authored-By: Claude <model> <noreply@anthropic.com> trailer, which was not configured anywhere. (A PR it opens likewise gets a "🤖 Generated with Claude Code" line in the body.)

Claude Model

Opus

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.1.169 (Claude Code)

Platform

Other

Operating System

Ubuntu/Debian Linux

Terminal/Shell

Other

Additional Information

  • Located by de-minifying the bundled wuH() attribution function in the v2.1.169 build, plus a trailer-string scan of the same binary (only Co-Authored-By and Generated with [Claude Code] are present; no Signed-off-by / Reviewed-by / Acked-by / standalone Authored-By).
  • Related: #36105 (feature request for an Assisted-by trailer) — related but distinct; this issue is about removing the AI co-authorship attribution, not replacing it.

View original on GitHub ↗