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 采取了宽松立场有人在 MbinLinux 社区直言「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.mdpop-os/pop · CONTRIBUTING.md一手仓库文本— https://github.com/pop-os/pop/blob/master/CONTRIBUTING.mdJeremy Soller FLOSS.social当事人声明— https://floss.social/soller/117361274088588342NeowinSystem76 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/XDACOSMIC bans all AI-generated submissions because its maintainers were getting swamped — https://www.xda-developers.com/cosmic-bans-all-ai-generated-submissions/LinuxiacCOSMIC 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?id49946321