PR 不勾「无 AI 生成」直接关闭:Pop!_OS 给 AI 代码下了逐客令
💡 一句话总结:System76 在 Pop!_OS/COSMIC 的 PR 模板里加了一条强制清单——提交者必须自证「未包含任何 LLM 生成的代码、注释和描述」,不勾选的 PR 会被直接关闭。官方给的动机很朴素:评审负载爆了。但这件事真正值得看的,是它把「开源项目怎么面对 AI 贡献洪水」这个悬而未决的问题,变成了一个可以抄的模板。
导语:维护者的邮箱里发生了什么
先做个思想实验:你是一个开源桌面环境的核心维护者,团队不到二十个人,某天打开 GitHub,发现队列里躺着一堆「精心格式化、自信满满、但完全没搞懂项目架构」的 PR——注释比代码长,描述写得像营销文案,一问细节就没了下文。共同点:AI 生成的。
这不是思想实验,是 System76 工程负责人 Jeremy Soller 的日常。于是本周,Pop!_OS 和 COSMIC(他们用 Rust 从零写的桌面环境)做了一件 Linux 世界里还没人干过的事:把「无 AI 生成内容」写成了 PR 的强制自证项。
想核对原文?
- 📄 PR 模板原文:pop-os/pop · PULL_REQUEST_TEMPLATE.md (https://github.com/pop-os/pop/blob/master/.github/PULL_REQUEST_TEMPLATE.md)
- 📄 贡献指南原文:pop-os/pop · CONTRIBUTING.md (https://github.com/pop-os/pop/blob/master/CONTRIBUTING.md)
- 🗣️ 当事人声明:Jeremy Soller @ FLOSS.social (https://floss.social/@soller/117361274088588342)
新规到底说了什么
我们直接抓了一手仓库文本,规则比媒体报道的还要硬:
CONTRIBUTING.md 里新增的 AI Contributions 一节只有一句话,但没留任何口子——「任何 LLM 生成的内容,不得以 issue 或 PR 的形式贡献到 Pop!_OS 项目,包括代码、注释和描述。」
PR 模板则把执行机制写死了。现在的 PR 开头是一段新的固定话术:「阅读并确认下方清单。未完成勾选的 PR 将被关闭。」清单五条:
- 我没有在本 PR 中包含任何 LLM(也叫 AI)生成的内容,包括代码、注释和描述;
- 我完全理解这些改动,并能回应评审意见;
- 我的改动在 commit 信息中被准确描述;
- 我的贡献经过测试,可按描述工作;
- 我已阅读 DCO(开发者来源证书)并据此认证我的贡献。
注意第一条的措辞——它要求的不是「披露 AI 使用」,而是「自证清白」。这和项目自己几个月前的政策相比是一次急转弯:旧政策允许声明过的 AI 辅助,代价是被打上「不利信任基线」重点审查(社区引述的旧规则原文)。从「申报制」到「一刀切禁止」,中间没有过渡期。
唯一被媒体(Neowin)指出的例外是 cosmic-flatpak 仓库——这个仓库主要放打包配置而非核心代码,豁免逻辑说得通,但官方没有逐仓列出豁免清单(这一点标 uncertain)。
官方动机:三个「不想」
Soller 在 FLOSS.social 的声明值得全文细读,因为它几乎每句都在预防误读:「COSMIC 项目将不再接受 PR 中的 LLM 生成内容。原因有多种,我不想伤害任何人的感情。首要原因很简单——我们团队的评审负载。」
他给出的机制解释也很直白:团队想优先处理自己人和固定贡献者的工作,但来自首次贡献者的 LLM 改动越来越多,「这些改动往往缺乏规划,接受率很低」。换句话说,问题不是 AI 写的代码质量绝对低,而是 AI 把「随手一投」的成本降到了零——以前一个 outsider 提 PR 前至少要读懂项目,现在模板一填、提示词一跑,十分钟就能投出一份看起来像模像样的 PR。评审时间却是维护者自己出的。
这段声明里没有「AI 是邪恶的」这类表态。把它读成「开源界向 AI 宣战」,是对当事人立场最大的误读。
社区分裂成了两派
HN 上热榜之后,讨论迅速分成两个阵营,而且都有点道理。
支持派认为这是自卫:「读完背景你会发现他们理由充分,不是因为讨厌 LLM」——维护者的注意力才是开源世界最稀缺的资源,COSMIC 团队规模小、正在开发周期中,被 AI PR 淹没的代价比「吓跑几个潜在贡献者」大得多。
质疑派抓住一个逻辑漏洞,而且是 HN 高赞:「你的系统构建在上千个上游开源包之上,其中很多都含 AI 生成代码。你会逐个审计剔除吗?那些不剔除就会把系统搞坏的包呢?」——禁令管得住自家门口,管不住下水道。配套的批评是:自证式 checkbox 在技术上无法验证,实际约束的只有诚实的人。
还有一派在看热闹之余做对比:同为 desktop 生态的 KDE 采取了宽松立场,有人在 Mbin(Linux 社区)直言「KDE 的姿态让我很沮丧」、同时承认「禁令式政策很少奏效」。这场争论的本质是:开源治理到底是该筛质量,还是该设身份。
两个真正值得想清楚的问题
把情绪拿掉,这事件留下两个没有标准答案的问题。
第一,自证式禁令到底防住了什么? 它防不住恶意投毒者(人家会撒谎勾选),防不住上游依赖(不在管辖范围),防得住的只有「没想清楚就投稿的善意新手」——而这些人恰恰是每个开源项目的未来贡献者池。更合理的理解是:这条规则的实际功能不是过滤代码,而是过滤 intent——它把「愿意为贡献负责」重新变成投稿的前置条件。代价是新手门槛整体上移。
第二,这会不会成为模板? 这才是行业层面最值得盯的点。COSMIC 不是第一个禁 AI 代码的项目(Gentoo 等此前已禁),但它是第一个这么做的主流桌面环境——「checkbox + 不勾即关」这个组合,执行成本几乎为零,任何被 AI PR 淹没的维护者都可以周五下午直接抄。2026 年开源界已经从「讨论 AI 贡献规范」走到了「硬性设界」,缺的从来不是意愿,是一个被验证过的低成本方案。现在方案有了样本。
把话说回来
回到开头那个思想实验:维护者的邮箱还会继续被填满,AI 生成代码的上游渗透也只会加深。Pop!_OS 这纸禁令改变不了洪水,它只是在一小片自留地周围砌了墙——至于墙内能不能长出更健康的贡献生态、墙外会不会出现第三种方案(比如「AI 声明专属通道」或按模块分级的审查制),这是比「禁不禁」更有意思的后续。
对各方的意味也不同:给维护者,这是一个可直接抄的执行模板;给贡献者,用 AI 辅助之前先问自己能不能对每一行答辩;给 AI 工具厂商,「你的用户的产出正在被开源世界整仓拒收」——这可能是比任何评测榜单都真实的信号。
参考来源
- pop-os/pop · PULL_REQUEST_TEMPLATE.md(一手仓库文本)— https://github.com/pop-os/pop/blob/master/.github/PULL_REQUEST_TEMPLATE.md
- pop-os/pop · CONTRIBUTING.md(一手仓库文本)— https://github.com/pop-os/pop/blob/master/CONTRIBUTING.md
- Jeremy Soller @ FLOSS.social(当事人声明)— https://floss.social/@soller/117361274088588342
- Neowin:System76 bans AI-generated code across many of its COSMIC codebases — https://www.neowin.net/news/system76-bans-ai-generated-code-across-many-of-its-cosmic-codebases/
- XDA:COSMIC bans all AI-generated submissions because its maintainers were getting swamped — https://www.xda-developers.com/cosmic-bans-all-ai-generated-submissions/
- Linuxiac:COSMIC Stops Accepting LLM-Generated Content in Pull Requests — https://linuxiac.com/cosmic-stops-accepting-llm-generated-content-in-pull-requests/
- Hacker News 讨论帖(社区舆论切面)— https://news.ycombinator.com/item?id=49946321
浙公网安备 33010602011771号