{"slug": "llvm-ai-tool-use-policy", "title": "LLVM AI Tool Use Policy", "summary": "The LLVM project has adopted a formal AI tool use policy requiring contributors to keep a human in the loop, review all LLM-generated content before submission, and label substantial tool-generated contributions. The policy bans autonomous agents like GitHub's @claude agent and prohibits using AI to fix \"good first issue\" bugs, emphasizing that contributors must be able to answer questions about their work during review.", "body_md": "# LLVM AI Tool Use Policy[#](#llvm-ai-tool-use-policy)\n\n## Policy[#](#policy)\n\nLLVM’s policy is that contributors can use whatever tools they would like to\ncraft their contributions, but there must be a **human in the loop**.\n**Contributors must read and review all LLM-generated code or text before they\nask other project members to review it.** The contributor is always the author\nand is fully accountable for their contributions. Contributors should be\nsufficiently confident that the contribution is high enough quality that asking\nfor a review is a good use of scarce maintainer time, and they should be **able\nto answer questions about their work** during review.\n\nWe expect that new contributors will be less confident in their contributions,\nand our guidance to them is to **start with small contributions** that they can\nfully understand to build confidence. We aspire to be a welcoming community\nthat helps new contributors grow their expertise, but learning involves taking\nsmall steps, getting feedback, and iterating. Passing maintainer feedback to an\nLLM doesn’t help anyone grow, and does not sustain our community.\n\nContributors are expected to **be transparent and label contributions that\ncontain substantial amounts of tool-generated content**. Our policy on\nlabelling is intended to facilitate reviews, and not to track which parts of\nLLVM are generated. Contributors should note tool usage in their pull request\ndescription, commit message, or wherever authorship is normally indicated for\nthe work. For instance, use a commit message trailer like Assisted-by:\n\nThis policy includes, but is not limited to, the following kinds of contributions:\n\nCode, usually in the form of a pull request\n\nRFCs or design proposals\n\nIssues or security vulnerabilities\n\nComments and feedback on pull requests\n\n## Details[#](#details)\n\nTo ensure sufficient self review and understanding of the work, it is strongly recommended that contributors write PR descriptions themselves (if needed, using tools for translation or copy-editing). The description should explain the motivation, implementation approach, expected impact, and any open questions or uncertainties to the same extent as a contribution made without tool assistance.\n\nAn important implication of this policy is that it bans agents that take action\nin our digital spaces without human approval, such as the GitHub [ @claude\nagent](https://github.com/claude/). Similarly, automated review tools that\npublish comments without human review are not allowed. However, an opt-in\nreview tool that\n\n**keeps a human in the loop** is acceptable under this policy. As another example, using an LLM to generate documentation, which a contributor manually reviews for correctness, edits, and then posts as a PR, is an approved use of tools under this policy.\n\nAI tools must not be used to fix GitHub issues labelled [ good first issue](https://github.com/llvm/llvm-project/issues/?q=is%3Aissue%20state%3Aopen%20label%3A%22good%20first%20issue%22). These issues are generally not urgent, and are\nintended to be learning opportunities for new contributors to get familiar with\nthe codebase. Whether you are a newcomer or not, fully automating the process\nof fixing this issue squanders the learning opportunity and doesn’t add much\nvalue to the project.\n\n**Using AI tools to fix issues labelled as “good first issues” is forbidden**.\n\n## Extractive Contributions[#](#extractive-contributions)\n\nThe reason for our “human-in-the-loop” contribution policy is that processing\npatches, PRs, RFCs, and comments to LLVM is not free – it takes a lot of\nmaintainer time and energy to review those contributions! Sending the\nunreviewed output of an LLM to open source project maintainers *extracts* work\nfrom them in the form of design and code review, so we call this kind of\ncontribution an “extractive contribution”.\n\nOur **golden rule** is that a contribution should be worth more to the project\nthan the time it takes to review it. These ideas are captured by this quote\nfrom the book [Working in Public](https://press.stripe.com/working-in-public) by Nadia Eghbal:\n\n“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\n\nextractiveandnon-extractivecontributions. 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\n\nPrior to the advent of LLMs, open source project maintainers would often review any and all changes sent to the project simply because posting a change for review was a sign of interest from a potential long-term contributor. While new tools enable more development, it shifts effort from the implementor to the reviewer, and our policy exists to ensure that we value and do not squander maintainer time.\n\nReviewing changes from new contributors is part of growing the next generation\nof contributors and sustaining the project. We want the LLVM project to be\nwelcoming and open to aspiring compiler engineers who are willing to invest\ntime and effort to learn and grow, because growing our contributor base and\nrecruiting new maintainers helps sustain the project over the long term. Being\nopen to contributions and [liberally granting commit access](https://llvm.org/docs/DeveloperPolicy.html#obtaining-commit-access)\nis a big part of how LLVM has grown and successfully been adopted all across\nthe industry. We therefore automatically post a greeting comment to pull\nrequests from new contributors and encourage maintainers to spend their time to\nhelp new contributors learn.\n\n## Handling Violations[#](#handling-violations)\n\nIf a maintainer judges that a contribution doesn’t comply with this policy, they should paste the following response to request changes:\n\n```\nThis PR doesn't appear to comply with our policy on tool-generated content,\nand requires additional justification for why it is valuable enough to the\nproject for us to review it. Please see our developer policy on\nAI-generated contributions: http://llvm.org/docs/AIToolPolicy.html\n```\n\nThe 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.\n\nIf or when it becomes clear that a GitHub issue or PR is off-track and not\nmoving in the right direction, maintainers should apply the `extractive`\n\nlabel\nto help other reviewers prioritize their review time.\n\nIf a contributor fails to 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.\n\n## Copyright[#](#copyright)\n\nArtificial 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.\n\n## Exceptions[#](#exceptions)\n\nWe have one exception to this policy for the Bazel-fixer bot. The project\ncouncil approved [this RFC](https://discourse.llvm.org/t/rfc-ai-assisted-bazel-fixer-bot/89178/93) proposing to use a combination of\n[dwyu](https://github.com/hzeller/bant?tab=readme-ov-file#dwyu--depend-on-what-you-use) and LLMs to maintain the Bazel build files.\n\nAny future exception will be considered individually on its own merits as to whether it is useful to the project or extracts work from maintainers.\n\n## Examples[#](#examples)\n\nHere are some examples of contributions that demonstrate how to apply the principles of this policy:\n\n[This PR](https://github.com/llvm/llvm-project/pull/142869)contains a proof from Alive2, which is a strong signal of value and correctness.This\n\n[generated documentation](https://discourse.llvm.org/t/searching-for-gsym-documentation/85185/2)was reviewed for correctness by a human before being posted.\n\n## References[#](#references)\n\nOur policy was informed by experiences in other communities:\n\n[Fedora Council Policy Proposal: Policy on AI-Assisted Contributions (fetched 2025-10-01)](https://communityblog.fedoraproject.org/council-policy-proposal-policy-on-ai-assisted-contributions/): Some of the text above was copied from the Fedora project policy proposal, which is licensed under the[Creative Commons Attribution 4.0 International License](https://creativecommons.org/licenses/by/4.0/). This link serves as attribution.[Seth Larson’s post](https://sethmlarson.dev/slop-security-reports)on slop security reports in the Python ecosystemThe METR paper\n\n[Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity](https://metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/).", "url": "https://wpnews.pro/news/llvm-ai-tool-use-policy", "canonical_source": "https://llvm.org/docs/AIToolPolicy.html", "published_at": "2026-07-30 23:34:27+00:00", "updated_at": "2026-07-30 23:52:17.628073+00:00", "lang": "en", "topics": ["ai-policy", "developer-tools", "ai-ethics", "large-language-models", "ai-agents"], "entities": ["LLVM", "GitHub", "Claude"], "alternates": {"html": "https://wpnews.pro/news/llvm-ai-tool-use-policy", "markdown": "https://wpnews.pro/news/llvm-ai-tool-use-policy.md", "text": "https://wpnews.pro/news/llvm-ai-tool-use-policy.txt", "jsonld": "https://wpnews.pro/news/llvm-ai-tool-use-policy.jsonld"}}