[ 
https://issues.apache.org/jira/browse/CALCITE-7752?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vladimir Sitnikov updated CALCITE-7752:
---------------------------------------
    Description: 
Calcite has no rule for disclosing AI tooling in a commit. Six commits on main 
since June 2026 name a tool in a trailer, in four different spellings:

{noformat}
Co-Authored-By: Claude Opus 4.8 <[email protected]>   (3 commits)
Co-Authored-By: Claude Sonnet 5 <[email protected]>   (1)
Co-authored-by: Cursor <[email protected]>           (1)
Generated-by: Claude Opus 5 (1M context)                  (1)
{noformat}

Five of them use {{Co-authored-by:}}, which git and GitHub read as naming an 
author of the commit. A tool listed there makes a claim about authorship rather 
than a note about tooling, and nobody chose it: Claude Code adds the line 
unless {{attribution.commit}} says otherwise, and VS Code 1.118 shipped Copilot 
as a commit co-author by default before reversing it.

The ASF generative tooling guidance [1] asks contributors to name the tooling 
in the commit message and offers {{Generated-by:}}. Projects that allow AI 
assistance under rules have since settled on {{Assisted-by:}} for the ordinary 
case: the Linux kernel [2], Zephyr, Fedora, Rocky Linux, OpenInfra and Mesa. 
Mesa states the rule directly: "Do not use the Co-authored-by tag as this one 
is reserved for human co-authors." The kernel's first RFC proposed 
{{Co-developed-by}} and changed to {{Assisted-by}} before merging; the Apache 
Impala dev@ thread [3] opened on {{Generated-by}} and settled on 
{{Assisted-by}}, on the grounds that a tool assists and does not author.

h2. Proposed change

Add a "Commit messages" section to AGENTS.md carrying one rule:

{noformat}
Always end commit messages, including drafts, with `Assisted-by: <tool> 
(<model-id>)`,
never `Co-Authored-By:`. Keep existing trailers and add yours when amending 
someone
else's commit.
{noformat}

The human contributor remains the author of the change and remains responsible 
for it under the ICLA. That is why the rule forbids {{Co-Authored-By:}} for a 
tool rather than merely preferring {{Assisted-by:}}.

h2. Notes on scope

The section is one sentence on purpose. AGENTS.md is read by agents, and every 
sentence in it changes what they write: a draft that offered {{Generated-by:}} 
as a second tier moved agents onto {{Generated-by:}} for a one-word typo fix, 
which makes the narrow label the default one and defeats the distinction it 
exists to draw. A second tier is worth having, but it needs a trigger an agent 
does not read as covering routine work.

The wording is imperative rather than descriptive because a descriptive line 
loses to the instruction an agent already carries from its own harness. It was 
chosen by running Claude Sonnet 5, Claude Opus 5 and Codex gpt-5.6-terra 
against live git repositories across six commit scenarios, including a dictated 
commit message, a drafted message, and amending a commit that already carries 
another tool's trailer. The matrix and a reproduction prompt for adding a model 
or a scenario are in the pull request.

Editor autocomplete, and tooling used only to read, search or triage code, are 
not covered by this issue.

[1] https://www.apache.org/legal/generative-tooling.html
[2] https://docs.kernel.org/process/coding-assistants.html
[3] https://lists.apache.org/thread/dn8dgq213mr9znx6zogw1n85rsf00f1w

  was:
Calcite has no rule for disclosing AI tooling in a commit. Six commits on main
since June 2026 name a tool in a trailer, in four different spellings:
 
{noformat}
Co-Authored-By: Claude Opus 4.8 <[email protected]> (3 commits)
Co-Authored-By: Claude Sonnet 5 <[email protected]> (1)
Co-authored-by: Cursor <[email protected]> (1)
Generated-by: Claude Opus 5 (1M context) (1)
{noformat}
 
Five of them use \{{Co-authored-by:}}, which git and GitHub read as naming an
author of the commit. A tool listed there makes a claim about authorship rather
than a note about tooling, and nobody chose it: Claude Code adds the line unless
{\{attribution.commit}} says otherwise, and VS Code 1.118 shipped Copilot as a
commit co-author by default before reversing it.
 
The ASF generative tooling guidance [1] asks contributors to name the tooling in
the commit message and offers \{{Generated-by:}}. Projects that allow AI
assistance under rules have since settled on \{{Assisted-by:}} for the ordinary
case: the Linux kernel [2], Zephyr, Fedora, Rocky Linux, OpenInfra and Mesa.
Mesa states the rule directly: "Do not use the Co-authored-by tag as this one is
reserved for human co-authors." The kernel's first RFC proposed
{\{Co-developed-by}} and changed to \{{Assisted-by}} before merging; the Apache
Impala dev@ thread [3] opened on \{{Generated-by}} and settled on
{\{Assisted-by}}, on the grounds that a tool assists and does not author.
 
h2. Proposed change
 
Add a "Commit messages" section to AGENTS.md carrying one rule:
 
{noformat}
Always end commit messages, including drafts, with `Assisted-by: <tool> 
(<model-id>)`,
never `Co-Authored-By:`. Keep existing trailers and add yours when amending 
someone
else's commit.
{noformat}
 
The human contributor remains the author of the change and remains responsible
for it under the ICLA. That is why the rule forbids \{{Co-Authored-By:}} for a
tool rather than merely preferring \{{Assisted-by:}}.
 
h2. Notes on scope
 
The section is one sentence on purpose. AGENTS.md is read by agents, and every
sentence in it changes what they write: a draft that offered \{{Generated-by:}} 
as
a second tier moved agents onto \{{Generated-by:}} for a one-word typo fix, 
which
makes the narrow label the default one and defeats the distinction it exists to
draw. A second tier is worth having, but it needs a trigger an agent does not
read as covering routine work.
 
The wording is imperative rather than descriptive because a descriptive line
loses to the instruction an agent already carries from its own harness. It was
chosen by running Claude Sonnet 5, Claude Opus 5 and Codex gpt-5.6-terra against
live git repositories across six commit scenarios, including a dictated commit
message, a drafted message, and amending a commit that already carries another
tool's trailer. The matrix and a reproduction prompt for adding a model or a
scenario are in the pull request.
 
Editor autocomplete, and tooling used only to read, search or triage code, are
not covered by this issue.
 
[1] https://www.apache.org/legal/generative-tooling.html
[2] https://docs.kernel.org/process/coding-assistants.html
[3] https://lists.apache.org/thread/dn8dgq213mr9znx6zogw1n85rsf00f1w


> AGENTS.md should require an "Assisted-by:" commit trailer for AI-assisted 
> work, rather than "Co-Authored-By:"
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: CALCITE-7752
>                 URL: https://issues.apache.org/jira/browse/CALCITE-7752
>             Project: Calcite
>          Issue Type: Improvement
>            Reporter: Vladimir Sitnikov
>            Priority: Major
>
> Calcite has no rule for disclosing AI tooling in a commit. Six commits on 
> main since June 2026 name a tool in a trailer, in four different spellings:
> {noformat}
> Co-Authored-By: Claude Opus 4.8 <[email protected]>   (3 commits)
> Co-Authored-By: Claude Sonnet 5 <[email protected]>   (1)
> Co-authored-by: Cursor <[email protected]>           (1)
> Generated-by: Claude Opus 5 (1M context)                  (1)
> {noformat}
> Five of them use {{Co-authored-by:}}, which git and GitHub read as naming an 
> author of the commit. A tool listed there makes a claim about authorship 
> rather than a note about tooling, and nobody chose it: Claude Code adds the 
> line unless {{attribution.commit}} says otherwise, and VS Code 1.118 shipped 
> Copilot as a commit co-author by default before reversing it.
> The ASF generative tooling guidance [1] asks contributors to name the tooling 
> in the commit message and offers {{Generated-by:}}. Projects that allow AI 
> assistance under rules have since settled on {{Assisted-by:}} for the 
> ordinary case: the Linux kernel [2], Zephyr, Fedora, Rocky Linux, OpenInfra 
> and Mesa. Mesa states the rule directly: "Do not use the Co-authored-by tag 
> as this one is reserved for human co-authors." The kernel's first RFC 
> proposed {{Co-developed-by}} and changed to {{Assisted-by}} before merging; 
> the Apache Impala dev@ thread [3] opened on {{Generated-by}} and settled on 
> {{Assisted-by}}, on the grounds that a tool assists and does not author.
> h2. Proposed change
> Add a "Commit messages" section to AGENTS.md carrying one rule:
> {noformat}
> Always end commit messages, including drafts, with `Assisted-by: <tool> 
> (<model-id>)`,
> never `Co-Authored-By:`. Keep existing trailers and add yours when amending 
> someone
> else's commit.
> {noformat}
> The human contributor remains the author of the change and remains 
> responsible for it under the ICLA. That is why the rule forbids 
> {{Co-Authored-By:}} for a tool rather than merely preferring {{Assisted-by:}}.
> h2. Notes on scope
> The section is one sentence on purpose. AGENTS.md is read by agents, and 
> every sentence in it changes what they write: a draft that offered 
> {{Generated-by:}} as a second tier moved agents onto {{Generated-by:}} for a 
> one-word typo fix, which makes the narrow label the default one and defeats 
> the distinction it exists to draw. A second tier is worth having, but it 
> needs a trigger an agent does not read as covering routine work.
> The wording is imperative rather than descriptive because a descriptive line 
> loses to the instruction an agent already carries from its own harness. It 
> was chosen by running Claude Sonnet 5, Claude Opus 5 and Codex gpt-5.6-terra 
> against live git repositories across six commit scenarios, including a 
> dictated commit message, a drafted message, and amending a commit that 
> already carries another tool's trailer. The matrix and a reproduction prompt 
> for adding a model or a scenario are in the pull request.
> Editor autocomplete, and tooling used only to read, search or triage code, 
> are not covered by this issue.
> [1] https://www.apache.org/legal/generative-tooling.html
> [2] https://docs.kernel.org/process/coding-assistants.html
> [3] https://lists.apache.org/thread/dn8dgq213mr9znx6zogw1n85rsf00f1w



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to