Vladimir Sitnikov created CALCITE-7752:
------------------------------------------

             Summary: 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


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