cat CLAUDE.md
andrej-karpathy-skills
一个 CLAUDE.md 文件,14 万 Star。把 Karpathy 对 LLM 编程陋习的吐槽编译成四条可执行的行为规范——Think / Simple / Surgical / Goal-Driven。不是又一个技能包,是 AI 编程的底色校准器。
// 目录
// 概览
// 为什么需要它
你们有没有这种感觉——让 Claude Code 帮你改个小 bug,结果它顺手把整个函数重写了、加了类型注解、换了引号风格、还「顺手」删了几行它觉得「没用」的注释?你说改一行,它给你改了三十行,其中只有一行是你真正要的。
Karpathy 也有同感。他在一条推文里原话是这么说的:"The models make wrong assumptions on your behalf and just run along with them without checking. They don't manage their confusion, don't seek clarifications, don't surface inconsistencies, don't present tradeoffs, don't push back when they should."
翻译一下:AI 会替你做假设,然后沿着错误假设一路狂奔;它不管理自己的困惑,不求澄清,不展示取舍,该反驳时不反驳。更过分的是——"They really like to overcomplicate code and APIs, bloat abstractions… implement a bloated construction over 1000 lines when 100 would do."一千行能搞定的事,它非给你整一千行,还顺便加一堆你根本没要求的抽象。
andrej-karpathy-skills 就是针对这些问题的处方。它不教你写什么,它教 AI 不该做什么。整个项目就一个 CLAUDE.md 文件,四条原则,每条直击一个痛点。
// 四条军规
这四条原则,我逐条用了三天,说说真实体感。
原则一:Think Before Coding — 别猜,别装懂
这条是我受益最多的。之前让 AI "加一个导出功能",它二话不说就写了个 200 行的 export_users(),默认导出全部用户、默认 JSON 格式、默认存到本地文件。但我想过没有?我可能只是要一个 API endpoint 返回分页数据。
开了这条规则后,AI 会在动笔之前先把假设摊开:"你说导出——是浏览器下载文件?后台任务发邮件?还是 API 返回数据?哪些字段?大概多少用户量?" 不是它变笨了,是它变诚实了。不确定就问,别替我做主。
实测下来,加了这条之后,我返工的次数少了一大半。以前是 AI 做完我发现方向错了,现在是做之前方向先对齐。
原则二:Simplicity First — 能 50 行搞定别写 200 行
这条就是专门治 AI 的"架构师病"的。你说"算个折扣",它给你整出抽象工厂 + 策略模式 + 配置对象 + 校验器,30 行 setup 才能算出 100 × 10% = 10。
开了这条后,AI 会写:
def calculate_discount(amount, percent): """Calculate discount. percent = 0-100.""" return amount * (percent / 100)
完事。等到真需要多种折扣类型的时候,再重构不迟。这个思路跟我做产品的感觉是一样的——先跑通再说,别一上来就搞通用框架。
原则三:Surgical Changes — 只改该改的,别顺手"优化"
这条是让我最解气的。之前让 AI "修个空邮箱的 bug",结果它不光修了 bug,还顺手改了邮箱验证逻辑、加了用户名校验、换了引号风格、加了 docstring、重命名了变量……diff 一看,绿油油一片,我只想要一行 fix。
这条规则的测试标准特别硬:每一行改动都要能追溯到你的原始需求。改了注释?不行,你没让我改。加了类型注解?不行,你没让我加。发现旁边有死代码?提一嘴,别删,等我说了再删。
我用了之后 PR 的 diff 大概缩短了 60-70%,code review 的来回也少了。不是因为 AI 写得少了,是它终于只写该写的了。
原则四:Goal-Driven Execution — 先定成功标准,再动手
Karpathy 的原话大意是:LLM 特别擅长循环直到达成目标,关键是你要给它明确的目标,而不是模糊的指令。
"修一下认证系统" — 模糊,AI 会满地跑。"密码修改后旧 session 失效" — 明确,AI 会先写个失败的测试,然后修到它通过,最后跑全量回归。
这条规则要求把任务转成可验证的目标,多步任务还要列出验证检查点:
# 多步任务的规划格式 1. [写测试:密码修改 → 旧 session 失效] → verify: 测试失败(复现 bug) 2. [实现:密码修改时清除 session] → verify: 测试通过 3. [检查边界情况:多设备并发] → verify: 附加测试通过 4. [跑全量回归] → verify: 全绿
我自己用了之后最大的感受是:AI 不再"做完了等我来验",而是它自己验完了给我看结果。省心不少。
// 安装
安装方式简单到离谱——毕竟就一个文件。三种方式按场景选:
方式一:Claude Code 插件(推荐)
# 从 Claude Code 内添加 marketplace /plugin marketplace add forrestchang/andrej-karpathy-skills # 安装插件 /plugin install andrej-karpathy-skills@karpathy-skills
方式二:直接丢 CLAUDE.md(最通用)
# 新项目,直接下载 curl -o CLAUDE.md https://raw.githubusercontent.com/multica-ai/andrej-karpathy-skills/main/CLAUDE.md # 已有项目,追加到现有 CLAUDE.md echo "" >> CLAUDE.md curl https://raw.githubusercontent.com/multica-ai/andrej-karpathy-skills/main/CLAUDE.md >> CLAUDE.md
方式三:Cursor Rules
# 复制规则文件到项目 cp .cursor/rules/karpathy-guidelines.mdc /your-project/.cursor/rules/
我自己的用法是在全局 CLAUDE.md 里直接粘了那四条规则,所有项目自动生效。想针对特定项目微调的,就在项目目录里加一份覆盖。
// 架构
架构图?不存在的。这项目没有架构,它就是架构。一个 CLAUDE.md 文件决定了 AI 的行为方式,它的"技术架构"就是四条原则如何映射到四个 AI 陋习:
// 竞品对比
AI 编程行为规范这个赛道,现在有三个代表性项目放一起看才清楚。它们不是竞品,更像三个层次:
| 项目 | Stars | 核心定位 | 内容形式 | 哲学 | 适合谁 |
|---|---|---|---|---|---|
| andrej-karpathy-skills | 140.8k | 行为底色校准 | 1 个 CLAUDE.md,4 条原则 | 不做不该做的 | 所有 AI 编程用户 |
| mattpocock/skills | 76k | 工程纪律包 | 18 个斜杠命令 | 反 vibe coding | 日常开发工作流 |
| addyosmani/agent-skills | 33k | Google 工程规范 | 20 个 SKILL.md + 7 条命令 | 工程实践模板 | 团队规范 |
| obra/superpowers | 200k | 能力增强框架 | 技能框架 + 方法论 | 让 AI 更强 | 高级用户 |
我的理解是这样的:karpathy-skills 是底层校准,管的是 AI 的行为方式——别乱猜、别乱改、别乱加。mattpocock/skills 是中层纪律,管的是你的工作流——需求怎么对齐、代码怎么测试、架构怎么维护。addyosmani/agent-skills 是上层模板,管的是团队协作——代码规范怎么统一、Review 怎么做、部署怎么管。
三层可以叠加使用,不冲突。我自己的配置就是 karpathy-skills 当底色 + mattpocock/skills 做日常纪律。
// 热度数据
今天 GitHub Trending AI 类 Star 增速排行,karpathy-skills 排在新项目第二位:
// 博主观点
+ 极简——一个文件,四条规则,5 分钟上手,零学习成本
+ 背后有 Karpathy 的真实观察支撑,不是闭门造车
+ 跨工具兼容:Claude Code / Cursor / Codex / OpenCode
+ MIT 开源,可以自由定制和合并到项目
+ EXAMPLES.md 里的正反对比案例非常直观,一看就懂
− 偏保守:对于简单任务(改个 typo),四条规则略显冗余,需自行判断
− 项目极简也意味着维护周期不确定——28 个 commit,4 个月,最后 push 是 4 月 20 日
− 68 个 Open PR,社区贡献响应速度一般
− 插件安装命令引用了 forrestchang 的仓库,跟主仓库 multica-ai 有 fork 关系,容易混淆
说了这么多,我的结论很简单:如果你用 AI 写代码,不管用什么工具,这个 CLAUDE.md 都值得粘一份。 它不会让你的代码变好,但它会让 AI 少给你捣乱。在 AI 编程这个领域,"少犯错"有时候比"写得好"更重要。
另外一个有意思的观察:这个项目出自 multica-ai 组织,他们同时在做 Multica——一个 30K Star 的开源 AI Agent 管理平台。karpathy-skills 更像是 Multica 生态的"校准基准"——先让 AI 守规矩,再谈能力增强。这个思路跟做产品是一个道理:先做减法,再做加法。
最后一点:这个项目 4 个月 14 万 Star,是今年 AI 编程赛道增速最快的项目之一。但这不意味着它完美——14 万 Star 里有多少是真用了、有多少是"先 fork 了再说",是另一回事。我的建议是别光 fork,真粘到你的 CLAUDE.md 里试一周,diff 的变化你自己看得到。