Hey folks, over the course of 2025 it’s become clear that we need policy tools to help maintainers push back against unwanted AI generated content (aka slop) in our project. We have a 64-comment thread on that already.
I’ve created a draft policy guiding how we expect contributors to use AI tools, and creating guidelines for how maintainers and moderators should handle unwanted contributions. I’ve pasted the markdown inline below as part of this Discourse post, but it’s also available rendered on github or in the associated PR.
The policy text contains chunks of text from the Fedora proposal for AI policy, which was pretty darn good, plus my own recent addition of the guideline that new contributors should keep patches small. I came upon the number of 150 lines of non-test code additions to come up with an objective standard, but that is completely arbitrary, and informed only by eyeballing recent diffstats on main
.
I’d love to get your high-level feedback on the RFC, and any low-level text edits on the PR.
LLVM AI Tool Use Policy
LLVM’s policy on AI-assisted tooling is fundamentally liberal – We want to
enable contributors to use the latest and greatest tools available. However,
human oversight remains critical. The contributor is always the author and is
fully accountable for their contributions.
-
You are responsible for your contributions. AI-generated content must be
treated as a suggestion, not as final code or text. It is your responsibility
to review, test, and understand everything you submit. Submitting unverified or
low-quality machine-generated content (sometimes called “AI
slop”) creates an unfair review burden on the community and is not
an acceptable contribution. Contributors should review and understand their own
submissions before asking the community to review their code.
-
Start with small contributions: Open source communities operate on trust
and reputation. Reviewing large contributions is expensive, and AI tools tend
to generate large contributions. We encourage new contributors to keep their
first contributions small, specifically below 150 additional lines of
non-test code insertions, until they build personal expertise and maintainer
trust before taking on larger changes.
-
Be transparent about your use of AI. When a contribution has been
significantly generated by an AI tool, we encourage you to note this in your
pull request description, commit message, or wherever authorship is normally
indicated for the work. For instance, use a commit message trailer like
Assisted-by: . This transparency helps the community
develop best practices and understand the role of these new tools.
-
LLVM values Your Voice. Clear, concise, and authentic communication is
our goal. Using AI tools to translate your thoughts or overcome language
barriers is a welcome and encouraged practice, but keep in mind, we value your
unique voice and perspective.
-
Limit AI Tools for Reviewing. As with creating code, documentation, and
other contributions, reviewers may use AI tools to assist in providing
feedback, but not to wholly automate the review process. Particularly, AI
should not make the final determination on whether a contribution is accepted
or not. The same principle of ownership applies to review comment
contributions as it does to code contributions.
This policy extends beyond code contributions and includes, but is not limited
to, the following kinds of contributions:
- Code, usually in the form of a pull request
- RFCs or design proposals
- Issues or security vulnerabilities
- Comments and feedback on pull requests
Extractive Changes
Sending patches, PRs, RFCs, comments, etc to LLVM, is not free – it takes a
lot of maintainer time and energy to review those contributions! We see the act
of sending low-quality, un-self-reviewed contributions to the LLVM project as
“extractive.” It is an attempt to extract work from the LLVM project community
in the form of review comments and mentorship, without the contributor putting
in comensurate effort to make their contribution worth reviewing.
Our golden rule is that a contribution should be worth more to the project
than the time it takes to review it. These ideas are captured by this quote
from the book Working in Public by Nadia Eghbal:
"When attention is being appropriated, producers need to weigh the costs and
benefits of the transaction. To assess whether the appropriation of attention
is net-positive, it’s useful to distinguish between extractive and
non-extractive contributions. Extractive contributions are those where the
marginal cost of reviewing and merging that contribution is greater than the
marginal benefit to the project’s producers. In the case of a code
contribution, it might be a pull request that’s too complex or unwieldy to
review, given the potential upside." -- Nadia Eghbal
We encourage contributions that help sustain the project. We want the LLVM
project to be welcoming and open to aspiring compiler engineers who are willing
to invest time and effort to learn and grow, because growing our contributor
base and recruiting new maintainers helps sustain the project over the long
term. We therefore automatically post a greeting comment to pull requests from
new contributors and encourage maintainers to spend their time to help new
contributors learn.
Handling Violations
If a maintainer judges that a contribution is extractive (i.e. it is
generated with tool-assistance or simply requires significant revision), they
should copy-paste the following response, add the extractive
label if
applicable, and refrain from further engagement:
This PR appears to be extractive, and requires additional justification for
why it is valuable enough to the project for us to review it. Please see
our developer policy on AI-generated contributions:
https://llvm.org/docs/AIToolPolicy.html
Other reviewers should use the label prioritize their review time.
The best ways to make a change less extractive and more valuable are to reduce
its size or complexity or to increase its usefulness to the community. These
factors are impossible to weigh objectively, and our project policy leaves this
determination up to the maintainers of the project, i.e. those who are doing
the work of sustaining the project.
If a contributor responds but doesn’t make their change meaningfully less
extractive, maintainers should escalate to the relevant moderation or admin
team for the space (GitHub, Discourse, Discord, etc) to lock the conversation.
Copyright
Artificial intelligence systems raise many questions around copyright that have
yet to be answered. Our policy on AI tools is similar to our copyright policy:
Contributors are responsible for ensuring that they have the right to
contribute code under the terms of our license, typically meaning that either
they, their employer, or their collaborators hold the copyright. Using AI tools
to regenerate copyrighted material does not remove the copyright, and
contributors are responsible for ensuring that such material does not appear in
their contributions. Contributions found to violate this policy will be removed
just like any other offending contribution.
Examples
Here are some examples of contributions that demonstrate how to apply
the principles of this policy:
- This PR contains a proof from Alive2, which is a strong signal of
value and correctness.
- This generated documentation was reviewed for correctness by a
human before being posted.
References
Our policy was informed by experiences in other communities: