前 OpenAI 大牛 Karpathy 吐槽了 AI 写代码常翻车的几个地方,被一个开发者压成一份 CLAUDE.md,GitHub 上7万多人收藏。
事情是这样的。
吐槽的是 Andrej Karpathy——前 OpenAI 创始团队成员、特斯拉前 AI 总监,AI 圈最有影响力的几个人之一。今年年初他在网上发了段话,把自己用 AI 写代码时反复遇到的几个毛病拎出来吐了一遍。
吐得太精准,海外开发者集体共鸣。然后有个叫 Forrest Chang 的开发者,干脆把 Karpathy 这段话整理成了一份65行的 CLAUDE.md,扔到了 GitHub 上。
这里要插一句背景。(主要给对代码不太熟悉的朋友)
CLAUDE.md 不是普通的小文件,是 AI 编程工具会自动读取的一种「项目规则文件」。你把它放进自己的项目文件夹,Claude Code、Cursor 这些工具一打开项目就会读它,然后按里面写的规则给你写代码。所以它能直接影响 AI 的行为,相当于给 AI 上岗前签的一份「行为守则」。
到今天,这份65行的 CLAUDE.md 已经被7万多人收藏。最高一天涨了9000多,登上了 GitHub 当日热门第一。
为什么火?因为它真有用。
海外开发者社区有人做过前后对比——加上这份 CLAUDE.md 之后,AI 写代码「按你的预期完成」的比例,从65-70%提到了91-94%。
接入也特别简单。文件下下来,扔进你正在写的项目文件夹里,前后30秒。
所以如果你最近在用 AI 写代码——或者身边搞技术的朋友在用——这东西真的值得花点时间看一下。
先看 Karpathy 那段话扎心在哪。
他举了两个例子。
一个是:AI 写代码的时候,明明心里不确定也不问,自己默默假设一个版本就跑下去了。
另一个是:本来100行能搞定的事,非要做成1000行,加一堆花里胡哨的结构,最后还要你自己来收拾。
用过 AI 写代码的人应该一眼就懂——这是 AI 最常翻车的两个场景。
Forrest Chang 把这些观察提炼成了四条原则,正好对应 AI 最常见的几个毛病。
第一条,叫别瞎猜。
你跟 AI 说「写一个登录功能」,AI 其实心里有好几种理解——用密码登还是用验证码?网页版还是手机 App?它不问你,自己挑一个就开始写。等你看到结果不对,时间已经浪费了。
这条规则要求 AI 把不确定说出来——心里没底就问你一句,有几种解读就摆出来让你挑,别闷头猜一个。
第二条,叫最小代码。
AI 总爱「过度发挥」——你让它写个100行能解决的小功能,它给你写1000行,外加一堆「以后好扩展」的复杂结构。问题是那个「以后」可能永远不会来,但你今天就要对着一堆用不上的代码头疼。
这条规则压住它的手脚——让它写最少能跑的版本,别给你准备一堆明天可能根本用不上的东西。
第三条,叫只动该动的。
你让 AI 改一个小问题,它顺手把旁边好好的代码也「优化」了——美其名曰「顺便重构」。结果原来能跑的地方反而被改坏了。
这条规则要求每一行改动都精准对应你的需求,无关的代码一个字也别动。
第四条最有意思,叫给目标,别给步骤。
它的意思是:你别给 AI 一步一步的指令,给它一个能验证对错的目标。
举个例子。你说「修这个 bug」,AI 不知道改完算不算修好;你换个说法:「先写一段能让这个 bug 重新出现的测试,然后让这段测试通过」——AI 就有了一个明确的「合格线」。它会自己反复试,直到达成。
AI 写代码这件事有个特点:你给它一个能验证的目标,它会自己跑循环试错;你只给它单步指令,它就只执行一次,对不对全靠运气。
那为什么这件事值得关注?
过去这一年,Cursor、Claude Code、Codex 这些工具,搞技术的人多多少少都在试。用过的人有同一个体感——AI 是真能写代码,但写得不够专业。需要你不断盯着、不断改,不然就跑偏。
Karpathy 这段话的价值在于:他不是讲那些虚的「调教 AI 的技巧」,而是把一个超级高频用户遇到的所有翻车场景,归纳了一遍。
而且 Karpathy 不是普通用户。他做过 AI 模型本身——这意味着他看 AI 翻车的视角,比一般使用者更深一层。他知道 AI 为什么会这样错,所以指出来的问题特别准。
Forrest Chang 这一步也巧——他没写一篇长文让大家「参考」,而是直接做成了一份 AI 能读懂的 CLAUDE.md。你不用动脑,扔进去就能用。
项目放在 GitHub 上,作者叫 forrestchang,仓库名就叫 andrej-karpathy-skills。
发布于 北京
