59.8 MB的TypeScript源码,512,000行生产代码,因为一个npm包的配置失误,在3月31日那天被公之于众。这不是什么黑客攻击,是Anthropic自己把Claude Code的"骨架"打包进了安装包。

6小时后,开发者Sigrid Jin用OpenAI的Codex完成了反向操作:把整套agent架构从TypeScript"翻译"成Python,CLI、查询引擎、工具执行、会话管理——一个不落。新项目claw-code两小时内冲上GitHub 50,000星。Anthropic的DMCA下架通知只瞄准了原始泄露的TypeScript镜像,对claw-code只字未提。

他们为什么不碰?因为Jin用的手法,法律上可能真的拿他没办法。

干净 room 的古老设计,遇上AI的一键清空

干净 room 的古老设计,遇上AI的一键清空

这种手法叫"clean-room reverse engineering"(洁净室逆向工程),中文圈常叫"净室工程"或"清洁室设计"。1980年代就有了:Phoenix Technologies靠它克隆IBM的BIOS,一队人看原版写规格书,另一队从没见过原版的人按规格书重写代码。版权保护的是"表达"不是"想法",所以IBM告不赢。

这个逻辑在1992年Sega v. Accolade案和2000年Sony v. Connectix案都被法院确认过。哪怕逆向工程过程中存在"中间复制",只要最终产品是独立撰写的,就可能构成合理使用。

但老派clean-room有个前提:人是可追踪的。规格书写手、代码实现者、文档化的交接链条——法院能指着具体的人说,"这确实是独立劳动"。

Jin的玩法保留了形式,却抽掉了地基。他用oh-my-codex(OmX)做编排,并行审查、持续执行循环,全程自动化。claw-code仓库明确声明:不包含一行原始TypeScript。架构功能等效,代码完全不同。按clean-room的字面条款,这看起来合规。

问题是,传统clean-room的成立条件全建立在"人类劳动"上,而没人预设过重写能在"一夜之间"完成。

当机器成为"第二队人"

当机器成为"第二队人"

传统clean-room的三根支柱,AI正在逐个松动。

第一根:真正的独立性。人类团队A和团队B物理隔离,沟通仅限于规格书。但Jin的"第二队"是Codex,它和"第一队"(也是Codex,或者Jin本人)之间没有墙。AI的上下文窗口可以塞进整个代码库,"见过原版"和"没见过原版"的界限变得模糊。Jin声称claw-code没有直接复制,但AI的训练数据里有没有Claude Code的遗迹?这本身就是黑箱。

第二根:实质性的创造性劳动。法院过去看重的是:重写者做了多少自己的设计选择,而不是机械翻译。但AI的"创造性"归属谁?Jin的prompt工程算创造性输入,还是只是触发器?claw-code的Python代码里,有多少是Codex的"风格",多少是Jin的意图?这个比例法律从未定义过。

第三根:可追责的人类主体。这是最根本的。clean-room doctrine的存在,依赖于法院能指着某个具体的人说"这是你的作品"。现在"第二队"是一个API调用的返回结果,责任链条断在模型权重和训练数据里。Anthropic如果想起诉,被告栏里填谁?Jin?OpenAI?还是Codex的某个版本号?

版权法的"表达/想法"二分法,正在失效

版权法的"表达/想法"二分法,正在失效

现行版权法的核心假设是:代码是人类的表达,保护的是那种特定的"写法"。但AI重写产出的代码,可能和原版在抽象语法树层面完全不同,却在功能层面完全等价——而功能属于"想法",不受保护。

这创造了一个灰色地带:如果AI能在6小时内生成"功能等效但表达迥异"的代码,且无法证明它"复制"了原版的表达,那么原版代码的版权价值还剩多少?

更微妙的是,claw-code的存在本身就在稀释Claude Code的稀缺性。Anthropic的DMCA策略很说明问题:他们只打泄露的原始代码,不打重写版。可能是因为律师评估后认为打不赢,也可能是不想给claw-code更多曝光。无论哪种,都暴露了一个尴尬现实——当AI成为clean-room的"第二队人",法律武器的选择余地正在收窄。

开源社区的反应:星星比律师函跑得快

开源社区的反应:星星比律师函跑得快

claw-code的50,000星不是技术投票,是信号投票。开发者在用star表达一种态度:AI辅助的clean-room重写,应该被允许存在。

这种情绪和当年DeCSS案、AACS加密密钥泄露案时的技术社区反应类似:法律试图封锁信息流动,但技术本身成为对抗工具。区别在于,当年的工具是人类的智慧和勇气,现在的工具是API调用和GPU算力。门槛低了,规模大了,速度快了。

Jin在仓库README里写了一句值得玩味的话:"This is a demonstration of what happens when you ship source maps to production."(这就是把source map发到生产环境的后果。)语气不像挑衅,像陈述。但50,000星把这种陈述变成了宣言。

Anthropic的困境:告赢的代价可能更大

Anthropic的困境:告赢的代价可能更大

有知识产权律师私下分析,Anthropic如果硬告claw-code,可能触发一场他们不想打的辩论:AI生成代码的版权归属。如果法院裁定Codex的输出不受版权保护(因为缺乏人类作者性),那么claw-code就是"无主代码",任何人都能用。如果法院裁定Jin拥有prompt工程带来的版权,那么AI辅助clean-room的合法性就被确立。两种结果对Anthropic都不是好消息。

所以他们选择沉默。DMCA只打原始泄露,是安全的;碰claw-code,是冒险的。

但这种沉默本身就在改写预期。下一次有公司泄露代码,AI重写工具会更成熟,社区反应会更快,法律的不确定期会更长。版权法花了四十年建立的clean-room框架,可能在几个GitHub star的累积中被架空。

claw-code的最后一个commit停在4月2日,Jin没有再更新。但Issues区有人提问:如果我用Claude 4重写claw-code,算clean-room的clean-room吗?

没人回答。但这个问题本身,可能比任何律师函都更接近未来的常态。