我不再想要你的 PR 了
文章摘要
dpc 在博客里宣布:作为他自己开源项目的维护者,他不再欢迎陌生人提交 PR。这是一篇在 HN 引发激烈讨论的”反潮流”声明,核心论据有三条。
第一是安全风险:他不认识贡献者,必须始终假设对方可能尝试夹带恶意代码,每次都得做一次”是否在偷渡 supply chain attack”的判断。第二是主观摩擦:代码风格、目录结构、依赖选择、设计取向因人而异,PR 评审本质上是把双方的偏好硬碰硬,反复来回耗时巨大。第三是协调开销:跨时区、异步沟通的反复修改让”合并一个 PR”经常拖几周,对维护者是纯成本。
但真正让他改变立场的是 LLM。在 LLM 之前,写代码是稀缺动作,所以一个高质量 PR 即便审起来很烦,也是值得的交换;现在生成代码近乎免费,但“理解、设计、评审”这些工作并没有变快,反而成为整条流水线的瓶颈。换句话说,如果代码本身的边际成本趋近于零,那么”陌生人写好代码丢给我合”其实没怎么帮我节省时间——我自己用本地 LLM 跑一遍同样的需求往往更快、更可控、更符合我的风格。
他建议的替代协作方式是:
- 反馈与测试:报告什么能用、什么坑了你;
- 讨论:交流想法、设计偏好、用例;
- 细致的 bug 报告:包括复现步骤、最小复现仓库;
- 代码作为参考:写了原型 PR 也行,但定位是示例而非”求合并”;
- 代码评审:帮维护者审别人的工作;
- 直接 fork:如果你的需求与项目主线分叉,自己维护一个 fork 才是干净答案。
总主题被他概括为”协作思考比协作写代码更重要”——LLM 正在让这一点显式化。
HN 评论精华
-
stavros 的支持立场被频繁引用:”当代码生成的成本低于评审成本时,与其试图理清陌生人 PR 的细节、判断它有没有微妙的逻辑或架构错误,不如让作者写好 bug 报告,我自己生成代码。我现在也是这样:我要 bug report 和 feature request,不要 PR。如果功能符合产品愿景,我会很快实现并发布。代码本身在这种情境下没什么价值。”
-
xantronix 把这上升到边界问题:”只是因为代码以宽松协议公开,并不意味着维护者有义务合并别人的修改。GitHub 直到 2026 年 2 月才允许仓库关闭 PR,这件事本身就很荒谬。很多人误以为 GitHub 把 PR 当默认值就等于开源契约里包含 PR。”
-
lou1306 提出了反对意见:作者所说的 95% 主观偏好,其实可以靠一句”不通过 lint 不收 / 不引入新依赖”的告示解决;这等于在拒绝免费劳动力,转而押宝 BDFL 模式 + 自家 LLM。
-
OkayPhysicist 反驳 lou1306:lint 解决不了高层次的架构差异,比如把命令式循环改成
.filter().map()风格的取舍——这超出了任何 linter 的能力。well_ackshually 顺势抓出 lou1306 给的代码片段里有真实的 bug(+5写成+3),间接证明”PR 评审不是橡皮图章”。 -
jerkstate / acedTrex / sfjailbird 一系强调:现在重新实现某个功能的成本几乎为零,”prompt diff”(共享生成代码所用的提示词)也许比 PR 更有价值。porphyra 提出”提交 prompt diff”的设想——交给维护者用他自己熟悉的 agent 去重新生成;rebolek 反讽这本质上就是 wish/feature request,没必要包装成 prompt。
-
alxhslm 把这套实践推广到了团队工作场景:”PR review 的第一阶段已经变成了’对 spec 达成一致’,写代码与审代码反而成了相对琐碎的部分。”
-
_verandaguy 是少数明确站到对立面的:把”我不要 PR,自己 fork 去吧”的态度称为”在道德上站不住脚,长期、规模化看也不可持续”,认为这种取向会带来工具碎片化、信任侵蚀、整体软件质量下降。GaryBluto 顶嘴:”那意思是 fork 开源软件本身就不道德?”_verandaguy 强调他反对的是”懒得合 PR 又表现得很傲慢”的姿态,而不是 fork 本身。
-
torvoborvo 描绘了一种反乌托邦图景:未来一堆”95% 兼容、5% 幻觉”的库分叉散落各处,安全更新变得无从追踪。Lerc 略乐观一些——如果接口规范取代了”大而全的库”,分叉的影响会被限定在边缘。但 torvoborvo 反驳”低成本写代码”恰恰让大家更不愿意坐下来谈 spec。
-
eschneider / nopointttt / mactavish88 给出了温和的中间立场:在自己依赖的项目里发现 bug、修了顺手交个 PR 是基本礼貌,但维护者关掉 PR 也是合理边界,”开源社区在慢慢自愈”。
-
dpc_01234(作者本人) 在评论区简短补充:”一个能产出期望结果的 prompt,比对应 PR 里的代码更有用。代码越来越具有’产物(binary 副产品)’的性质。”——把整篇博客的论点压缩到了一句话:源代码正在贬值,意图与方法论才是新的硬通货。