Skip to content

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

Closed as not planned

Description

@joshuagay

Preflight Checklist

  • I have searched existing issues and this hasn't been reported yet
  • This is a single bug report (please file separate reports for different bugs)
  • 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: [FEATURE] Use Assisted-by git commit trailer instead of Co-authored-by #36105 (feature request for an Assisted-by trailer) — related but distinct; this issue is about removing the AI co-authorship attribution, not replacing it.

Activity

  1. added
    duplicateThis issue or pull request already exists
    and removed
    bugSomething isn't working
    on Jun 9, 2026
  2. github-actions commented on Jul 17, 2026

    @github-actions

    Closing for now — inactive for too long. Please open a new issue if this is still relevant.

  3. github-actions commented on Sep 14, 2026

    @github-actions

    This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.

  4. locked as resolved and limited conversation to collaborators on Sep 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    duplicateThis issue or pull request already existsstaleIssue is inactive

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions