各位老哥,今天这个瓜有点东西。
我一开始以为是那种老套的「AI 写代码被拒」。写完才发现完全不是。
同一个作者,同一个晚上,连着往两个项目各提了一个 AI 补丁。
第一个被拒了,理由5 个词。
第二个也被拒了,理由3 段话,而且写得很客气。
相隔 14 小时。
先看第三件更离谱的,它能把上面两件的对比彻底点亮。
现场
先把料摆出来。全部是 GitHub 上公开的页面,不用登录就能翻。
什么时候 2025 年 11 月 19 日,一个晚上。另一个案例在 2026 年 6 月 25 日。
在哪儿 三个开源项目:Zig 编译器、OCaml 编译器、Ghostty 终端。
他干了什么 三次,都被当成 AI 生成的补丁。其中两次是同一个作者。
结果 三次全被拒。
拒的理由,三次都不一样。
大白话讲一遍
只留三句:
- 有人一天晚上往两个开源编译器各投一份 AI 补丁,全被拒了。
- 第一个,维护者回了5 个词 。第二个写了3 段,还特意声明「这不是在挑刺」。
- 还有一次,一个 PR 17 秒 就被关了------关它的是机器人,理由跟 AI 一点关系都没有。
一、5 个词
先看最轻的那个。
2025 年 11 月 19 日 03:32:37 UTC,一份补丁进了 Zig 编译器。
标题:Fix integer underflow in
Unit.resizeHeader()
作者是 joelreymont。
这个项目的 wiki 里有一份成文政策,标题就叫 Strict No LLM/AI Policy。
拒了
管这块的 jacobly0 提了个技术问题,问得很正常:
How is this change related to an integer underflow?
这跟整型下溢有什么关系?
没人回答。
作者没回。别的人也没回。居然没人接。
隔了一天,偏偏 又来了位老哥。他不回答问题------他把那个问题原样抄了一遍,后面加了一句:
It's an AI generated PR but this doesn't show the full reasoning why it's an integer underflow either.
(这是 AI 生成的 PR。它同样没给出为什么是整型下溢的完整推理。)
他还贴了作者自己那条推特的链接。
这条评论底下,6 个困惑脸。
问题从「这代码对不对」,被换成了「这是 AI 写的」。
22 小时 3 分 23 秒后,jacobly0 把 PR 关了。
另一个人补了一句回复,全文就一句:
Strict No LLM/AI Policy
5 个词,连个句号都没有。
那条技术问题从头到尾没人答过。关 PR 那条评论下面,7 个赞,5 个爱心。
二、3 段话
同一个晚上,OCaml 那边也收到一份。
这次他倒是很客气,写了 3 段。
时间线几乎重合:
- 11 月 19 日 03:32:37 提给 Zig
- 11 月 19 日 17:37:34 提给 OCaml
中间隔了 14 小时。
万行老哥
好家伙 ,OCaml 那个是个大活儿:DWARF 调试支持,13000 多行。
作者自己的描述(逐字):
Claude Sonnet 4.5 (Claude Code) wrote most of it with ChatGPT 5 (Codex) reviewing... I did not write a single line of code but carefully shepherded AI over the course of several days.
(一行代码都不是我写的。我花了几天时间把 AI 牵着手走完。)
各位老哥注意这句:「一行都不是我写的」。
他如实写了。
拒了
15 小时 17 分 35 秒后,管 OCaml 的 Gabriel Scherer 把这个 PR 关了。
不过关之前,他先甩了一条 4000 个字符的长批评。关他的那条评论很短,就 3 段,逐字:
I will go ahead and close this PR. There is nothing wrong with further discussion of this topic, closing does not prevent that. (I would rather avoid large AI-generated comments if you can, please.) On the other hand, none of the people who could plausibly be interested in reviewing and supporting a DWARF-support PR seem willing to consider doing the work for that one iteration, so I think that this has no chance of being merged. This is not a value judgment of the code that is being proposed (I haven't looked at it in enough details to comment), nor on the usefulness of the feature.
拆开看,他给了三条理由:
- 没人愿意做那一轮评审
- 「不是在挑刺。而且我还没细看到能评论的程度。」
- 这个开发方式对别的项目可能有用
注意第二条。他明确说了:代码好不好,我还没看。
那他到底在看什么?
版权链断了
那条 4000 字符的长批评里,有这么一段,逐字:
The fact that the tool that produced the code attributes its copyright to a real human is a clear sign that something is an issue. (You might also wonder if that human agrees with being described as the author of code that you yourself introduce in the compiler.) At this point, merging the code in the compiler would be a legal liability.
(把版权署给了一个真人,这件事本身就说明有问题。
你也可以想想------那个人同不同意被描述成作者?
到这个地步,合进编译器就是一个法律责任。)
老哥们,这个才是重点。
AI 写出来的代码,头顶上挂着一个真人的名字。
那个「真人」是谁?是 Jane Street 的 Mark Shinwell。
最先看出这件事的是 OCaml 的 yallop,他直接问作者:
Here's my question: why did the files that you submitted name Mark Shinwell as the author?
(一个问题:你交的这些文件,为什么把 Mark Shinwell 写成作者?)
作者的回答,逐字:
Beats me. AI decided to do so and I didn't question it. I did ask AI to look at the OxCaml implementation in the beginning.
(我也不知道。AI 自己决定这么写的,我没质疑。 我确实让 AI 一开始去看了 OxCaml 的实现。)
一句「我也不知道」,版权链当场就断了。
同一段长批评里,他还写了另一句:
We would appreciate people discussing design before they dump 13K-lines PRs on us.
(希望能先讨论设计,再往我们这儿丢 13000 行的 PR。)
11 月 21 日,项目把 PR 讨论锁了。 争论搬到开发者论坛去。
三、两个拒法,差在哪儿
把两个放一起看,很有意思。
/ Zig / OCaml
- 存续 ------ 22 小时 3 分 ------ 15 小时 17 分
- 拒的理由 ------ 5 个词 ------ 3 段话
- 技术问题 ------ 提了,没答,就拒了 ------ 从头到尾没提
- 有没有先看代码 ------ 没进到技术讨论 ------ 「我还没细看」
- 依据 ------ 一条成文规则 ------ 法律风险 + 评审产能
说白了,一个是援引条文,一个是掰扯人力。
两个 PR,愣是都没活过 24 小时。 但结果一样:都不给合并。
四、17 秒
第三个案例发生在七个多月后,2026 年 6 月 25 日。
这个更有意思。
一条 AI 声明
有个叫 colinre 的人,给 Ghostty 终端提了个 PR,加的功能是「让链接的匹配模式可配置」。
PR 描述的第一行,他自己写了:
AI Generated by Codex, and briefly human reviewed though I'm pretty unfamiliar with this codebase
(**AI 用 Codex 生成的,我顺手人工扫了一眼。**这代码库我还不太熟。)
又是如实披露。
然后 17 秒
提交时间 22:29:37 ,关闭时间 22:29:54。
17 秒。
关它的是个机器人,ghostty-vouch Bot。它留的话是:
Hi @colinre, thanks for your interest in contributing! This project requires that pull request authors are vouched, and you are not in the list of vouched users. This PR will be closed automatically.
(你好 @colinre,感谢你对本项目的贡献兴趣。本项目要求 PR 的作者在信任名单里, 而你不在这个名单上。这个 PR 会被自动关闭。)
各位,看清楚了吗。
这事跟 AI 没有半点关系。
机器人根本没看代码,也没看那行 AI 声明。它顶多 确认一件事:这个人是不是在名单上。
所以问题来了
同样是被当成 AI 补丁递上去,Zig 拒了,OCaml 拒了,Ghostty 也拒了。
- Zig 说:政策不允许
- OCaml 说:版权链断了,还有没人审
- Ghostty 说:你不在名单上
三种拒绝,只有一种真的问了「这代码好不好」。
五、一个更扎心的事实
先把「有没有写明」这件事摆平。三次里作者自己写没写,答案不一样:
- OCaml:写了。「一行都不是我写的。」
- Ghostty:写了。「AI Generated by Codex」
- Zig :一个字都没写。 是另一个人翻出他一条推特,才点破「这是 AI 写的」
写了的两家,照拒。没写的那家,也照拒。
那披露到底有没有用?
没用。真正决定结局的,是另外一件事。
写没写明,也就这么点区别:OCaml 那次他如实写明,最后被追问的是版权。
关 OCaml 那个 PR 的 Gabriel Scherer,后来在讨论区说了全文最实在的一句,逐字:
the uncertainty here is in part caused by our lack, on the upstream side, of a clear policy for what we expect regarding AI-assisted code contributions.
(这份不确定,一半是因为我们上游这边,压根就没有一份关于 AI 辅助代码贡献的明确政策。)
他自己承认了:他们手里没有政策。
把三家并排看一眼,答案自己就冒出来了:
/ 项目手里当时有什么 / 于是发生了什么
- Zig ------ 一份成文政策 ------ 援引条文,5 个词,关
- Ghostty ------ 一份信任名单 ------ 机器判定,17 秒,关
- OCaml ------ 啥也没有 ------ 只能按「谁有空评审」来判断,3 段话,关
有没有那行「这是 AI 写的」,不决定结局。
决定结局的是:这个项目有没有提前把话写下来。 至少这三家是这样。
附:本文引用
都是公开地址,不用登录。
- 那个被 5 个词拒掉的 →
github.com/ziglang/zig/pull/25974 - Zig 那条不许用 LLM 的规则 →
github.com/ziglang/zig/wiki/Contributing#strict-no-llm--no-ai-policy - 那个 13000 行的 →
github.com/ocaml/ocaml/pull/14369 - 那个 17 秒被关的 →
github.com/ghostty-org/ghostty/pull/13097 - Ghostty 的信任名单制度 →
github.com/ghostty-org/ghostty/blob/main/CONTRIBUTING.md
时间戳全部取自 GitHub 页面上的原始记录,精确到秒,都是 UTC。