[
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 [3], Fedora [4], Rocky Linux [5], OpenInfra
[6] and Mesa [7]. 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 [8] 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] ASF generative tooling guidance
https://www.apache.org/legal/generative-tooling.html
[2] Linux kernel https://docs.kernel.org/process/coding-assistants.html
[3] Zephyr https://docs.zephyrproject.org/latest/contribute/guidelines.html
[4] Fedora
https://docs.fedoraproject.org/en-US/council/policy/ai-assisted-contributions/
[5] Rocky Linux
https://docs.rockylinux.org/10/guides/contribute/ai-contribution-policy/
[6] OpenInfra Foundation https://openinfra.org/legal/ai-policy/
[7] Mesa https://docs.mesa3d.org/submittingpatches.html
[8] Apache Impala dev@ thread
https://lists.apache.org/thread/dn8dgq213mr9znx6zogw1n85rsf00f1w
[9] Survey of 1000 popular GitHub repositories; 118 have an AI policy, 78%
allow AI assistance and 51% require disclosure https://arxiv.org/abs/2605.16706
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] ASF generative tooling guidance
https://www.apache.org/legal/generative-tooling.html
[2] Linux kernel https://docs.kernel.org/process/coding-assistants.html
[3] Zephyr https://docs.zephyrproject.org/latest/contribute/guidelines.html
[4] Fedora
https://docs.fedoraproject.org/en-US/council/policy/ai-assisted-contributions/
[5] Rocky Linux
https://docs.rockylinux.org/10/guides/contribute/ai-contribution-policy/
[6] OpenInfra Foundation https://openinfra.org/legal/ai-policy/
[7] Mesa https://docs.mesa3d.org/submittingpatches.html
[8] Apache Impala dev@ thread
https://lists.apache.org/thread/dn8dgq213mr9znx6zogw1n85rsf00f1w
[9] Survey of 1000 popular GitHub repositories; 118 have an AI policy, 78%
allow AI assistance and 51% require disclosure https://arxiv.org/abs/2605.16706
> 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
> Labels: pull-request-available
>
> 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 [3], Fedora [4], Rocky Linux [5],
> OpenInfra [6] and Mesa [7]. 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 [8] 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] ASF generative tooling guidance
> https://www.apache.org/legal/generative-tooling.html
> [2] Linux kernel https://docs.kernel.org/process/coding-assistants.html
> [3] Zephyr https://docs.zephyrproject.org/latest/contribute/guidelines.html
> [4] Fedora
> https://docs.fedoraproject.org/en-US/council/policy/ai-assisted-contributions/
> [5] Rocky Linux
> https://docs.rockylinux.org/10/guides/contribute/ai-contribution-policy/
> [6] OpenInfra Foundation https://openinfra.org/legal/ai-policy/
> [7] Mesa https://docs.mesa3d.org/submittingpatches.html
> [8] Apache Impala dev@ thread
> https://lists.apache.org/thread/dn8dgq213mr9znx6zogw1n85rsf00f1w
> [9] Survey of 1000 popular GitHub repositories; 118 have an AI policy, 78%
> allow AI assistance and 51% require disclosure
> https://arxiv.org/abs/2605.16706
--
This message was sent by Atlassian Jira
(v8.20.10#820010)