LLVM’s AI tool policy is fairly liberal and allows essentially all uses of AI, as long as there is a “human in the loop”, who takes responsibility for the contribution.
Now that we have more experience with AI-assisted contributions, I would like propose a change to the policy, which is aimed at rejecting extractive uses more thoroughly, while retaining the beneficial ones.
In particular, this RFC proposes to ban the use of AI-generated or substantially AI-assisted textual communication, including, but not limited to, for pull request descriptions and RFC texts. It does not make any changes to the allowable uses of AI for code contributions.
Motivation
The main motivation for this is the very large amount of low-quality pull request descriptions we receive, especially from new contributors. These are often extremely verbose, contain huge amounts of unnecessary information (such as about routine testing), as well as gratuitous formatting.
Such pull request description are a drain on our limited reviewer bandwidth, both because they take more time to read in the first place, but also require substantial massaging to bring them into a mergeable form.
Additionally, AI-generated pull request descriptions deprive the contributor of the opportunity to understand what a PR does by themselves, and express it in their own words. This is an important sanity check for the “human in the loop” contribution model.
Of course, this issue is not limited to just PR descriptions, even if they are the most pressing concern due to the sheer quantity of incoming PRs. We’ve also had issues with overly verbose and hard to understand AI-generated RFCs, etc.
Proposal
The proposed policy would be something along these lines (in spirit, not necessarily in wording).
Any AI-generated or substantially AI-assisted textual communication must be clearly labelled as such, and enclosed either in a blockquote or a
<details>section.As this is not suitable for pull request descriptions (which become commit messages), they must not contain any AI-generated text. If you want to post additional AI-generated information, do so in a separate comment (with appropriate labeling and enclosure).
The same applies for RFCs, which must be fully understandable without reading AI-generated content. However, such content (with appropriate labeling and enclosure) can provide non-essential auxiliary information, such as data analysis.
“Substantially AI-assisted” includes any case where the description is initially generated by AI and then edited by humans. It does not include the use of AI for translating an initially human-written text and does not include the use of AI for proofreading.
“Textual communication” includes, but is not limited to, pull request descriptions, issue descriptions, comments on PRs and issues, RFC texts and comments on Discourse. It does not include (at present) code comments.
Examples of appropriate labelling and enclosure are given in the following.
Variant 1:
I asked Claude to review this PR, and I think it makes a good point:
AI generated text goes here.
Variant 2:
Some additional data analysis performed by Codex:
AI generated text goes here.
Notes
This policy will have collateral damage. There are people whose communication, while being very clearly AI-assisted, is still concise and useful. However, there is a limit to how nuanced we can make policies without rendering them useless.
For example, the fact that our current AI tool policy “strongly encourages” writing PR descriptions yourself turned out to be essentially useless. AI-generated descriptions are not explicitly forbidden, so that’s what we get.
At this point, I believe that the damage done by AI-generated PR descriptions is much higher than the damage that will be done by forbidding them.
Finally, I also don’t want to start any witch hunts about AI-generated text. The problematic cases tend to be exceedingly obvious. This is a question of policy enforcement: The intent is to be able to easily reject egrogious cases, not to hunt down any text that might possibly smell of AI involvement. Your use of en-dashes is fine.