메뉴
HN
Hacker News • 52일 전

Rust 프로젝트, LLM 기여 정책 도입

IMP
7/10
핵심 요약

프로그래밍 언어 Rust의 핵심 저장소인 rust-lang/rust에 코드를 기여할 때, 대형 언어 모델(LLM) 사용을 규제하는 새로운 정책이 도입되었습니다. 완성도 높은 코드의 무분별한 생성으로 인한 코드 리뷰어의 업무 과부하와 커뮤니티 유지보수 비용 증가를 막기 위한 조치입니다. 이는 오픈소스 생태계가 AI 생성 코드의 홍수 속에서 리뷰 자원을 보호하고 건전한 기여 문화를 유지하기 위해 마련한 중요한 선례가 될 것입니다.

번역된 본문

원문 제목: Rust-lang/rust가 LLM 정책을 도입하다 소스: hackernews 본문: 2026년 8월 5일 · Jynn Nelson

최근 Rust 프로젝트의 5개 팀이 rust-lang/rust 모노레포(monorepo)에 기여할 때 대형 언어 모델(LLM)을 어떻게 사용할 수 있는지를 규정하는 정책을 채택했습니다. 이 정책은 제가 처음 초안을 작성한 것입니다. 분명히 말씀드리자면, 이 새로운 정책은 LLM에 대한 공식적인 입장이 아니며 Rust 프로젝트 전체에 동일하게 적용되는 것도 아닙니다. 이는 아래에 설명된 매우 구체적인 목적을 위해 작성되었습니다. 이 글에서는 이 정책을 만든 이유, 정책의 내용, 그리고 기여자들에게 미칠 영향에 대해 이야기하고자 합니다. 이 정책은 다음과 같은 그룹의 사람들에게 영향을 미칩니다.

rust-lang/rust에서 PR(풀 리퀘스트)을 검토하거나 중재하는 사람. rust-lang/rust에 LLM으로 생성된 코드가 포함된 PR을 작성하는 사람. LLM을 사용하여 발견한 문제를 rust-lang/rust에 이슈로 등록하는 사람. rust-lang/rust에서 LLM의 답변을 직접 인용하여 이슈나 코멘트를 작성하는 사람.

만약 여러분이 이 그룹에 속하지 않는다면, 기존의 작업 방식을 바꿀 필요가 전혀 없습니다.

이 정책은 왜 만들어졌나? Rust 프로젝트는 기술적 결과물들의 집합이기도 하지만, 이를 구축하고 유지 관리하며 확장하기 위해 함께 일하는 사람들의 커뮤니티이기도 합니다. "Rust 프로젝트에 기여한다"는 것은 단순히 결과물에 대한 작업을 의미할 뿐만 아니라, 커뮤니티에 합류하여 기존 멤버들과 협업하는 것을 의미합니다. 이 정책이 만들어지기 전에도 사람들은 이미 LLM을 사용하여 rust-lang/rust에 기여하고 있었습니다. 그중 일부는 우리 커뮤니티를 존중하는 방식이었습니다. 사람들이 모국어로 초안을 작성할 수 있도록 메시지를 영어로 번역하거나, Rust에 처음 기여하는 사람이 작성할 법한 코드 조각에서 열악한 진단 메시지를 찾아내거나, RFC(의견 요청서)를 분석하여 디자인에 영향을 미칠 수 있는 언어의 다른 부분에 대한 논의가 누락되었는지 확인하는 방식 등입니다.

하지만 때로는 의도치 않게 커뮤니티를 존중하지 않는 방식으로 사용되는 경우도 있었습니다. 저는 LLM이 우리 커뮤니티에 주로 세 가지 문제를 일으키는 것을 보았습니다. 세련된 기술적 결과물이 더 이상 노력과 이해도를 나타내지 않습니다. 코드 작성이 쉬워지면서 기존에 있던 코드 리뷰 병목 현상(대역폭 부족)이 악화되었습니다. 사람들이 LLM과 기계적으로 복사해서 붙여넣는 행위는 리뷰어들의 시간을 낭비하게 만듭니다.

시간이 지나면서 이러한 문제는 점점 커졌고, 결국 이를 처리하기 위한 전용 채널과 중재 정책을 만들어야 했습니다. 하지만 새로운 기여자들이 규칙이 무엇인지 전혀 알지 못하기 때문에 이러한 채널은 투명하고 환영받는 분위기를 조성하려는 우리의 목표에 역행했습니다. 새로운 정책은 이러한 규칙을 공개적으로 명문화하여, 새로운 기여자들이 자신이 이해하지 못하는 이유로 PR이 닫히는 일 없이 우리 커뮤니티에 어떻게 합류할 수 있는지 알 수 있게 합니다. 또한 기존 리뷰어들이 규칙을 따르지 않는 PR을 닫을 때 그 이유를 명확히 제시할 수 있도록 해줍니다.

세련된 기술적 결과물이 더 이상 노력을 의미하지 않음 과거에는 오픈소스 프로젝트에 세련되고 철저히 테스트되며 상세한 PR이 도착했다면, 그것은 누군가 반대편에서 그 PR에 시간과 노력을 들이고 코드를 깊이 이해하고 있다는 것을 의미했습니다. 이는 여러 면에서 Rust의 문화에 영향을 미쳤습니다. 우리는 일반적으로 PR이 다른 사람의 노고를 나타내기 때문에 이를 닫는 것을 꺼립니다. 우리의 프로세스는 점진적인 논의를 강조하며, 코드 생성이나 리뷰 중에 새로운 사실을 발견하면 기존 디자인을 변경할 수 있도록 허용합니다. 우리는 PR을 누군가가 우리 커뮤니티에 합류하고 향후 PR 작업을 위해 멘토링을 받는 데 관심이 있다는 표시로 취급합니다.

LLM의 등장으로 이러한 신호들은 더 이상 신뢰할 수 없게 되었습니다. 세련된 PR은 더 이상 기여자의 노력을 나타내지 않으며, 세련된 PR의 작성자가 반드시 자신의 코드를 이해하고 있다고 볼 수도 없습니다. 자율 에이전트의 경우 아예 반대편에 사람이 존재하지 않기까지 합니다. 게다가 코드를 작성하는 것이 훨씬 쉬워졌기 때문에, 세련된 PR이 그 사람이 장기적으로 프로젝트에 남을 것이라는 의미도 더 이상 아닙니다.

코드 작성이 쉬워지면서 발생하는 리뷰 문제 글을 작성하는 현재 시점 기준으로 rust-lang/rust에는 1,281개의 열린 PR이 있습니다. 이는 작성자와 리뷰어 모두가 투자한 엄청난 양의 시간을 나타냅니다. 우리는 오랫동안 코드를 작성하려는 사람보다 이를 검토할 의향이 있는 사람이 더 많이 부족한 문제를 겪어왔습니다. 광고의 등장(또는 LLM 사용의 증가)으로 인해...

원문 보기
원문 보기 (영어)
Aug. 5, 2026 · Jynn Nelson Recently, five teams in the Rust project adopted a policy that I originally authored, governing how Large Language Models can be used when contributing to the rust-lang/rust monorepo. Notably, the new policy is not an official stance on LLMs, and does not apply everywhere in the Rust project. I wrote it for a very specific purpose, described below. This post talks about why we created that policy, what it says, and how this will affect contributors. The policy affects the following groups of people: People who review or moderate PRs on rust-lang/rust . People who author PRs with LLM-generated code on rust-lang/rust . People who discover issues using LLMs and post them on rust-lang/rust . People who write issues or comments that directly quote an LLM on rust-lang/rust . If you are not in one of those groups, you don't have to change anything about how you work. Why was this policy created? While the Rust project is a collection of technical artifacts, it is also a community of people who work together to build, maintain, and extend those artifacts. When we talk about "contributing to the Rust project", we partly mean work on those artifacts, but we also mean joining that community and collaborating with the people already there. Even before this policy was created, people were using LLMs to contribute to rust-lang/rust . Some of those uses respected our community: translating messages to English so people could draft them in their native language; finding poor diagnostics for code snippets that new contributors to Rust might write; analyzing RFCs to see if they were missing a discussion of other parts of the language that could affect the design. Some of those uses, sometimes unintentionally, did not. I've seen LLMs causing three main issues for our community: Polished technical products no longer indicate effort and understanding. Making code easier to write exacerbates our existing issues with review bandwidth. People mechanically copy-pasting to and from an LLM is a waste of our time. As time went on, these issues grew and grew, until we had to create dedicated channels and moderation policy for how to deal with them. However, those channels work against our goals of being transparent and welcoming, because new contributors have no idea what the rules are. The new policy formalizes those rules publicly, so that new contributors know how to join our community without getting their PRs closed for reasons they don't understand, and so that existing reviewers can easily point to the rules as an actionable reason when closing PRs that don't follow them. Technical products no longer indicate effort It used to be that if an open source project got a polished, well-tested, detailed PR, that indicated that there was someone on the other end who had put time, effort, and understanding into the PR. That influenced Rust's culture in several ways: We are generally reluctant to close PRs, since they represent someone else's hard work. Our process emphasizes incremental discussions, where PRs are allowed to change existing design if we discover new facts during creation or review. We treat PRs as an indication that someone is interested in joining our community and being mentored to work on future PRs. With LLMs, none of these signals are reliable. Polished PRs no longer indicate effort; authors of polished PRs no longer necessarily understand their code—and in the case of autonomous agents, there is no longer someone on the other end at all; and because it's become so much easier to write code, a polished PR no longer indicates that someone is likely to stick around for the long term. Making code easier to write causes review issues At the time of writing, there are 1,281 open PRs to rust-lang/rust . This represents a staggering amount of time invested by both authors and reviewers. We have long had the problem that there are more people who want to write code than people willing to review it. With the advent of LLMs, this problem only gets worse. Most of the work of reviewing is not simply catching bugs. A great deal of it is deciding whether this direction is a good approach , whether the PR is a good idea at all. In other words, reviewing is made of decisions . "Shotgunning" PRs at reviewers incurs a high mental cost for them. I think most authors of LLM PRs believe that they are sincerely helping, but from our perspective, the code itself is the smallest and in some ways least important part of the change. We care much more about authors understanding what the code does, planning how it will change in the future, and deciding what it should look like. The code itself cannot help with any of those. Mechanically copy-pasting LLM output is a waste of time We will often get people who respond to review comments by copy-pasting them into their LLM, then copy-pasting its response back onto GitHub. Bluntly: this is a waste of everyone's time . If we wanted an LLM's opinion, we could have asked it ourselves. We want to hear your thoughts, not a machine's. Moreover, this is a breach of trust between the reviewer and the author. Our assumption when we review is that we're talking to a real person who wants to do their best work. Pasting LLM text creates suspicion: does the author actually care? Is there a person here at all? So why a policy? Before this policy, we had a "wild west" approach to moderation. We had dozens of LLM PRs; no disclosure rules; people trying to add risky MIR optimizations as their first PR; and people posting "Verification: git diff --check " in their PR description as if that did something. While we had something for moderators to point to in the form of "Empower reviewers to reject burdensome PRs" , our enforcement was inconsistent and our rules were not published anywhere. In practice, the rule was "anything goes, as long as it's not obviously horrible". Compared to the previous situation, the new policy is both much more strict and much more clear. Regardless of your opinions on whether LLMs are good, bad, or a secret third thing, they can no longer be ignored . Our choices are not "no policy" or "policy". Our choice is whether to have the policy be an unofficial list of moderation notes or something we stand by publicly. Why not ban LLMs altogether, or allow any use of LLMs that we think are pro-social? Because Rust governance doesn't work that way. We do not have a benevolent dictator who can say "No LLM-generated content, whether it be code or prose." or "AI is a tool, just like other tools we use" . Rust operates by consensus. As the policy says: There is not a consensus within the Rust project—and likely never will be—about when/how/where it is acceptable to use AI-based tools. Many members of the Rust project and community find value in AI; many others feel that its negative impact on society and the climate are severe enough that no use is acceptable. Still others are working out their opinion. Despite these differences, there are many values we all share: Building a community of deep experts in our collective projects. Building an inclusive community where all feel welcome and respected. We want it to be possible to change the policy in the future. The policy has several provisions that make it easier to change than it was to originally adopt. The leadership council is also considering creating a sub-team that would handle LLM policy so we have fewer "nightmare" 30-person approval requirements. I do not think every rule in this policy is wholly good. I do think that writing our rules down is better than not writing them down, and that having a policy that everyone kinda dislikes pushes us to improve our governance structures. What does the policy say? The policy summarizes itself this way: It's fine to use LLMs to answer questions, analyze, distill, refine, check, suggest, review. But not to create . Uses in the first category are allowed, sometimes requiring disclosure. Uses in the second categor