{"id":3507,"date":"2026-05-15T06:48:24","date_gmt":"2026-05-14T23:48:24","guid":{"rendered":"https:\/\/daiilynews.cu.ma\/?p=3507"},"modified":"2026-05-15T06:48:24","modified_gmt":"2026-05-14T23:48:24","slug":"add-an-llm-policy-for-rust-lang-rust-by-jyn514-%c2%b7-pull-request-1040-%c2%b7-rust-lang-rust-forge-%c2%b7-github","status":"publish","type":"post","link":"https:\/\/daiilynews.cu.ma\/?p=3507","title":{"rendered":"Add an LLM policy for `rust-lang\/rust` by jyn514 \u00b7 Pull Request #1040 \u00b7 rust-lang\/rust-forge \u00b7 GitHub"},"content":{"rendered":"<p> <br \/>\n<br \/>\n      ## Summary<br \/>\n(summary): #summary<\/p>\n<p>This document establishes a policy for how LLMs can be used when contributing to `rust-lang\/rust`.<br \/>\nSubtrees, submodules, and dependencies from crates.io are not in scope.<br \/>\nOther repositories in the `rust-lang` organization are not in scope.<\/p>\n<p>This policy is intended to live in (Forge)(https:\/\/forge.rust-lang.org\/) as a living document, not as a dead RFC.<br \/>\nIt will be linked from `CONTRIBUTING.md` in rust-lang\/rust as well as from the rustc- and std-dev-guides.<\/p>\n<p>## Moderation guidelines<\/p>\n<p>This PR is preceded by (an enormous amount of discussion on Zulip)(https:\/\/rust-lang.zulipchat.com\/#narrow\/channel\/588130-project-llm-policy).<br \/>\nAlmost every conceivable angle has been discussed to death;<br \/>\nthere have been upwards of 3000 messages, not even counting discussion on GitHub.<br \/>\nWe initially doubted whether we could reach consensus at all.<\/p>\n<p>Therefore, we ask to bound the scope of this PR specifically to the policy itself.<br \/>\nIn particular, we mark several topics as out of scope below.<br \/>\nWe still consider these topics to be important, we simply do not believe this is the right place to discuss them.<\/p>\n<p>No comment on this PR may mention the following topics:<\/p>\n<p>&#8211; Long-term social or economic impact of LLMs<br \/>\n&#8211; The environmental impact of LLMs<br \/>\n&#8211; Anything to do with the copyright status of LLM output<br \/>\n&#8211; Moral judgements about people who use LLMs<\/p>\n<p>We have asked the moderation team to help us enforce these rules.<\/p>\n<p>## Feedback guidelines<\/p>\n<p>We are aware that parts of this policy will make some people very unhappy.<br \/>\nAs you are reading, we ask you to consider the following.<\/p>\n<p>&#8211; Can you think of a *concrete* improvement to the policy that addresses your concern? Consider:<br \/>\n  &#8211; Whether your change will make the policy harder to moderate<br \/>\n  &#8211; Whether your change will make it harder to come to a consensus<br \/>\n&#8211; Does your concern need to be addressed before merging or can it be addressed in a follow-up?<br \/>\n  &#8211; Keep in mind the cost of *not* creating a policy.<\/p>\n<p>### If your concern is for yourself or for your team<br \/>\n&#8211; What are the *specific* parts of your workflow that will be disrupted?<br \/>\n  &#8211; In particular we are *only* interested in workflows involving `rust-lang\/rust`.<br \/>\n    Other repositories are not affected by this policy and are therefore not in scope.<br \/>\n&#8211; Can you live with the disruption? Is it worth blocking the policy over?<\/p>\n<p>&#8212;<\/p>\n<p>Previous versions of this document were discussed on Zulip, and we have made edits in responses to suggestions there.<\/p>\n<p>## Motivation<br \/>\n(motivation): #motivation<\/p>\n<p>&#8211; Many people find LLM-generated code and writing deeply unpleasant to read or review.<br \/>\n&#8211; Many people find LLMs to be a significant aid to learning and discovery.<br \/>\n&#8211; `rust-lang\/rust` is currently dealing with a deluge of low-effort &#8220;slop&#8221; PRs primarily authored by LLMs.<br \/>\n  &#8211; Having *a* policy makes these easier to moderate, without having to take every single instance on a case-by-case basis.<\/p>\n<p>This policy is *not* intended as a debate over whether LLMs are a good or bad idea, nor over the long-term impact of LLMs.<br \/>\nIt is only intended to set out the future policy of `rust-lang\/rust` itself.<\/p>\n<p>## Drawbacks<br \/>\n(drawbacks): #drawbacks<\/p>\n<p>&#8211; This bans some valid usages of LLMs.<br \/>\n  We intentionally err on the side of banning too much rather than too little in order to make the policy easy to understand and moderate.<br \/>\n&#8211; This intentionally does not address the moral, social, and environmental impacts of LLMs.<br \/>\n  These topics have been extensively discussed on Zulip without reaching consensus, but this policy is relevant regardless of the outcome of these discussions.<br \/>\n&#8211; This intentionally does not attempt to set a project-wide policy.<br \/>\n  We have attempted to come to a consensus for upwards of a month without significant process.<br \/>\n  We are cutting our losses so we can have *something* rather than adhoc moderation decisions.<br \/>\n&#8211; This intentionally does not apply to subtrees of rust-lang\/rust.<br \/>\n  We don&#8217;t have the same moderation issues there, so we don&#8217;t have time pressure to set a policy in the same way.<\/p>\n<p>## Rationale and alternatives<br \/>\n(rationale-and-alternatives): #rationale-and-alternatives<\/p>\n<p>&#8211; We could create a project-wide policy, rather than scoping it to `rust-lang\/rust`.<br \/>\n  This has the advantage that everyone knows what the policy is everywhere, and that it&#8217;s easy to make things part of the mono-repo at a later date.<br \/>\n  It has the disadvantage that we think it is nigh-impossible to get everyone to agree.<br \/>\n  There are also reasons for teams to have different policies; for example, the standard for correctness is much higher within the compiler than within Clippy.<br \/>\n&#8211; We could have a more strict policy that removes the (threshold of originality)(https:\/\/fsfe.org\/news\/2025\/news-20250515-01.en.html) condition.<br \/>\n  This has the advantage that our policy becomes easier to moderate and understand.<br \/>\n  It has the disadvantage that it becomes easy for people to intend to<br \/>\n  follow the policy, but be put in a position where their only choices<br \/>\n  are to either discard the PR altogether, rewrite it from scratch, or<br \/>\n  tell &#8220;white lies&#8221; about whether an LLM was involved.<br \/>\n&#8211; We could have a more strict policy that bans LLMs altogether.<br \/>\n  It seems unlikely we will be able to agree on this, and we believe attempting it will cause many people to leave the project.<\/p>\n<p>## Prior art<br \/>\n(prior-art): #prior-art<\/p>\n<p>This prior art section is taken almost entirely from (Jane Lusby&#8217;s summary of her research)(rust-lang\/leadership-council#273 (comment)),<br \/>\nalthough we have taken the liberty of moving the Rust project&#8217;s prior art to the top.<br \/>\nWe thank her for her help.<\/p>\n<p>### Rust<br \/>\n&#8211; (Moderation team&#8217;s spam policy)(https:\/\/github.com\/rust-lang\/moderation-team\/blob\/main\/policies\/spam.md\/#fully-or-partially-automated-contribs)<br \/>\n&#8211; (Compiler team&#8217;s &#8220;burdensome PRs&#8221; policy)(rust-lang\/compiler-team#893)<br \/>\n### Other organizations<br \/>\n These are organized along a spectrum of AI friendliness, where top is least friendly, and bottom is most friendly.<br \/>\n&#8211; full ban<br \/>\n  &#8211; (postmarketOS)(https:\/\/docs.postmarketos.org\/policies-and-processes\/development\/ai-policy.html)<br \/>\n        &#8211; also explicitly bans encouraging others to use AI for solving problems related to postmarketOS<br \/>\n        &#8211; multi point ethics based rational with citations included<br \/>\n  &#8211; (zig)(https:\/\/ziglang.org\/code-of-conduct\/)<br \/>\n    &#8211; philosophical, cites (Profession (novella))(https:\/\/en.wikipedia.org\/wiki\/Profession_(novella))<br \/>\n    &#8211; rooted in concerns around the construction and origins of original thought<br \/>\n  &#8211; (servo)(https:\/\/book.servo.org\/contributing\/getting-started.html#ai-contributions)<br \/>\n    &#8211; more pragmatic, directly lists concerns around ai, fairly concise<br \/>\n  &#8211; (qemu)(https:\/\/www.qemu.org\/docs\/master\/devel\/code-provenance.html#use-of-ai-content-generators)<br \/>\n    &#8211; pragmatic, focuses on copyright and licensing concerns<br \/>\n    &#8211; explicitly allows AI for exploring api, debugging, and other non generative assistance, other policies do not explicitly ban this or mention it in any way<br \/>\n&#8211; allowed with supervision, human is ultimately responsible<br \/>\n  &#8211; (scipy)(https:\/\/github.com\/scipy\/scipy\/pull\/24583\/changes)<br \/>\n    &#8211; strict attribution policy including name of model<br \/>\n  &#8211; (llvm)(https:\/\/llvm.org\/docs\/AIToolPolicy.html)<br \/>\n  &#8211; (blender)(https:\/\/devtalk.blender.org\/t\/ai-contributions-policy\/44202)<br \/>\n  &#8211; (linux kernel)(https:\/\/kernel.org\/doc\/html\/next\/process\/coding-assistants.html)<br \/>\n    &#8211; quite concise but otherwise seems the same as many in this category<br \/>\n  &#8211; (mesa)(https:\/\/gitlab.freedesktop.org\/mesa\/mesa\/-\/blob\/main\/docs\/submittingpatches.rst)<br \/>\n    &#8211; framed as a contribution policy not an AI policy, AI is listed as a tool that can be used but emphasizes same requirements that author must understand the code they contribute, seems to leave room for partial understanding from new contributors.<br \/>\n        > Understand the code you write at least well enough to be able to explain why your changes are beneficial to the project.<br \/>\n  &#8211; (forgejo)(https:\/\/codeberg.org\/forgejo\/governance\/src\/branch\/main\/AIAgreement.md)<br \/>\n    &#8211; bans AI for review, does not explicitly require contributors to understand code generated by ai.<br \/>\n      One could interpret the &#8220;accountability for contribution lies with contributor even if AI is used&#8221; line as implying this requirement, though their version seems poorly worded imo.<br \/>\n  &#8211; (firefox)(https:\/\/firefox-source-docs.mozilla.org\/contributing\/ai-coding.html)<br \/>\n  &#8211; (ghostty)(https:\/\/github.com\/ghostty-org\/ghostty\/blob\/main\/AI_POLICY.md)<br \/>\n    &#8211; pro-AI but views &#8220;bad users&#8221; as the source of issues with it and the only reason for what ghostty considers a &#8220;strict AI policy&#8221;<br \/>\n  &#8211; (fedora)(https:\/\/communityblog.fedoraproject.org\/council-policy-proposal-policy-on-ai-assisted-contributions\/)<br \/>\n    &#8211; clearly inspired and is cited by many of the above, but is definitely framed more pro-ai than the derived policies tend to be<br \/>\n&#8211; (curl)(https:\/\/curl.se\/dev\/contribute.html#on-ai-use-in-curl)<br \/>\n  &#8211; does not explicitly require humans understand contributions, otherwise policy is similar to above policies<br \/>\n&#8211; (linux foundation)(https:\/\/www.linuxfoundation.org\/legal\/generative-ai)<br \/>\n  &#8211; encourages usage, focuses on legal liability, mentions that tooling exists to help automate managing legal liability, does not mention specific tools<br \/>\n&#8211; In progress<br \/>\n  &#8211; NixOS<br \/>\n    &#8211; NixOS\/nixpkgs#410741<\/p>\n<p>## Unresolved questions<br \/>\n(unresolved-questions): #unresolved-questions<\/p>\n<p>See the &#8220;Moderation guidelines&#8221; and &#8220;Drawbacks&#8221; section for a list of topics that are out of scope.<br \/>\n<br \/><br \/>\n<br \/><a href=\"https:\/\/github.com\/rust-lang\/rust-forge\/pull\/1040\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>## Summary (summary): #summary This document establishes a policy for how LLMs can be used when contributing to `rust-lang\/rust`. Subtrees, submodules, and dependencies from crates.io are not in scope. Other repositories in the `rust-lang` organization are not in scope. This policy is intended to live in (Forge)(https:\/\/forge.rust-lang.org\/) as a living document, not as a dead [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3508,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[676],"tags":[],"class_list":["post-3507","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech-ai"],"_links":{"self":[{"href":"https:\/\/daiilynews.cu.ma\/index.php?rest_route=\/wp\/v2\/posts\/3507","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/daiilynews.cu.ma\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/daiilynews.cu.ma\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/daiilynews.cu.ma\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/daiilynews.cu.ma\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3507"}],"version-history":[{"count":0,"href":"https:\/\/daiilynews.cu.ma\/index.php?rest_route=\/wp\/v2\/posts\/3507\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/daiilynews.cu.ma\/index.php?rest_route=\/wp\/v2\/media\/3508"}],"wp:attachment":[{"href":"https:\/\/daiilynews.cu.ma\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3507"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/daiilynews.cu.ma\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3507"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/daiilynews.cu.ma\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3507"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}