1 个 CLAUDE.md 让 Claude Code 不再放飞
【免费下载链接】andrej-karpathy-skillsA single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.项目地址: https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skills
"加个数据导出功能",AI 一口气写了 200 行,带策略模式、抽象基类、缓存层,一个都没人要求过。你打开 diff,发现还有 10 行跟需求无关的代码被顺手"优化"了。查得过来吗?如果你天天跟 AI 结对写代码,大概率被它干过。andrej-karpathy-skills干的就是治这种失控:把 Andrej Karpathy 观察到的大模型写代码毛病,浓缩成一个 CLAUDE.md 文件,让 AI 动手前先亮假设、少写代码、只改该改的地方。
🩺 它到底治什么病
这个项目不新增任何功能,只"管行为"。四种常见症状,对应四套约束:
- AI 悄悄挑一种理解就开干,交付完你才发现方向不对 → 动手前必须把假设摆到台面上,不确定就问。"把搜索变快"可以指响应时间、并发吞吐、感知速度,它要把几种理解和各自成本列给你挑,而不是闷头写 200 行异步代码。
- 100 行能解决的事写 1000 行,还顺手设计好"未来的灵活性" → 只许写最小代码,单一用途不加抽象,不为想象中的需求留接口。
- 改 bug 时顺手删掉它没完全理解的代码和注释 → 只碰必须碰的行。撞见无关死代码,只提示、不代删。判定标准很硬:每一行改动都得能指回你的需求。
- 含糊地说"我会改进它",没有验收口径 → 动笔前先把请求翻译成可验证目标:修 bug 先写一条能复现问题的失败测试,再让它转绿;加验证先定义"什么输入算无效"。
🧩 背后的工作原理
规则本身不神奇,关键在它怎么进 AI 的工作上下文。项目给了三条注入通道,按你的工具选一条:
- 项目根目录的
CLAUDE.md——Claude Code 会自动读取这个指令文件,规则对该项目即时生效; - Claude Code 插件——技能注册为全局可用,之后打开任何新项目都不用再装,技能实体在 skills/karpathy-guidelines/;
- Cursor 用户——同一套规则以项目 rule 文件或个人 skill 的形式复用,细节看 CURSOR.md。
落到具体行为上,对照关系是这样的:
| 你的请求 | AI 默认行为 | 规则生效后的行为 |
|---|---|---|
| 加个折扣计算 | 策略模式 + 抽象类,30 行起步 | 一个函数,4 行收工 |
| 修邮箱校验 bug | 顺手加用户名校验、重排整个函数 | 只动空邮箱那一个分支 |
| "让搜索变快" | 默默加缓存 + 异步 + 索引 | 列出 3 种解释和成本,先问你 |
反例
算个 10% 折扣,默认输出是抽象类、两个策略子类、一个配置对象,30 多行。看起来"很规范",但复杂度提前到岗,测试更难、理解更慢,而需求里根本没提过第二种折扣。
正例
def calculate_discount(amount: float, percent: float) -> float: """计算折扣金额,percent 为 0-100 的数""" return amount * (percent / 100)将来真需要多种折扣类型,再抽抽象不迟。完整的反例/正例对都在 EXAMPLES.md 里。
🚀 三步上手
第 1 步:装插件(推荐,全局生效)。在 Claude Code 里敲两行:
/plugin marketplace add forrestchang/andrej-karpathy-skills /plugin install andrej-karpathy-skills@karpathy-skills第 2 步:接入现有工程。只想给单个项目用时,克隆仓库拿那份CLAUDE.md:
git clone https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skills把它复制到目标项目根目录。已有CLAUDE.md的项目不要覆盖,把内容追加到末尾,让原有说明继续生效。
第 3 步:按项目定制。官方明确说这份文件就是设计来跟项目指令合并的。追加完在末尾补一节项目专属规则即可,例如:TypeScript 开严格模式、所有 API 端点必须有测试、错误处理沿用src/utils/errors.ts里的现有写法。之后 AI 会同时遵守"通用行为"和"项目规矩"。
用起来之后的变化
| 观察点 | 之前 | 之后 |
|---|---|---|
| diff 内容 | 混着格式变更、顺手"改进" | 只剩需求要求的行 |
| 澄清提问 | 出错之后,得返工 | 动手之前,还没写一行 |
| 新代码体量 | 为未来预留的抽象层 | 最小实现,用到再加 |
| PR 评审 | 大量关于无关改动的来回 | 评论少,能直接合 |
官方文档也给了验收口径:如果你观察到 diff 变小、重写变少、提问前移,说明规则正在起效。
一句话收尾
别教 AI 怎么做,教它什么时候别做。
适用:日常功能开发、bug 修复、老项目重构——出错代价越高的场景收益越大。不适用:改个错别字、挪一行这种琐碎操作,官方自己也标注这套规则偏"谨慎优先",琐事上凭手感跳过即可。别让它把每个动作都拖慢。
【免费下载链接】andrej-karpathy-skillsA single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.项目地址: https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skills
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考