Files
mad-skills/disclose-gen-ai/SKILL.md
T
2026-10-10 14:51:18 -05:00

76 lines
3.5 KiB
Markdown

---
name: disclose-gen-ai
description: Generated-by trailer / AI disclosure — use when writing, amending, or reviewing a git commit message or PR description for work substantially generated by an AI tool (Claude, Copilot, Codex, an LLM, "the bot wrote it"); when choosing between Generated-by and Co-authored-by; when asked how to attribute or disclose AI-generated code or docs. Per the ASF Generative Tooling Guidance. Not for typo fixes or edits the human typed.
---
# Disclose generative AI
When a commit's content was substantially generated by an AI tool, end
the commit message with a trailer that names the tool, as the
[ASF Generative Tooling Guidance][gen-tooling] recommends:
```
Add lazy-tdd skill
Code that works the first time may ship untested; a discovered goof
owes a regression test.
Generated-by: Claude Opus 5.5
```
## the rules
- **When:** the content is substantially machine-generated: code,
docs, tests, or a rewrite. Not needed for a typo fix or an edit the
human typed.
- **Form:** `Generated-by: <Tool> <Version>`, as the last paragraph of
the message, in git trailer format (`git interpret-trailers` can
parse it).
- **Generated-by, not Co-authored-by.** The ASF accepts
`Co-authored-by: <Tool> <Version>`, but `Generated-by:` is preferred
here because it is easy for machines to parse. When a tool adds its
own `Co-authored-by` trailer by default, use `Generated-by:` instead.
- **Mixed commits:** if only part of a series was AI-generated, put the
trailer only on those commits. Don't add it to every commit.
- **PR descriptions:** say which parts were AI-generated. The commit
trailers stay the record that counts.
- **Unreviewed PRs are drafts.** When an agent opens a PR under the
human's GitHub account and the human hasn't read it yet, open it as
a draft (`gh pr create --draft`) and start the description with:
```
> [!WARNING]
> **Unreviewed LLM output.** Generated by <Tool> <Version>; no human
> has reviewed this code yet.
```
The human removes the caveat and marks it ready after reviewing.
The caveat exists because the PR appears to come from the human.
A PR opened from a bot account already shows who wrote it, so it
doesn't need the caveat.
- **The human stays responsible.** The commit author vouches for the
contribution. That includes disclosing material that is not their
original creation, and making sure the tool's terms grant enough
rights to license the output ([ICLA][icla], sections 4-5, 7-8).
Precedent: ocap-merkledag commit 68ffcca ("Add high-level design doc
for deploying on Cloudflare."), and this skills repo's lazy-tdd commit.
## why
The [Apache-2.0 license][apache2] and the [ICLA][icla] both require
contributors to disclose material in a contribution that is not the
contributor's original creation. Section 7 of the ICLA (third-party
work) is not a practical route for AI output, because the source
details can't be known. A `Generated-by:` trailer is the
[ASF's recommended disclosure practice][gen-tooling]. It keeps the
record honest about what the signing contributor does and does not
claim to own. This matches the U.S. Copyright Office's finding that
purely machine-generated output is not copyrightable
([Copyright and AI, Part 2: Copyrightability][uspto-part2], Jan 2025).
[gen-tooling]: https://www.apache.org/legal/generative-tooling.html
[icla]: https://www.apache.org/licenses/icla.pdf
[apache2]: https://www.apache.org/licenses/LICENSE-2.0
[uspto-part2]: https://www.copyright.gov/ai/Copyright-and-Artificial-Intelligence-Part-2-Copyrightability-Report.pdf