让 AI 不再乱改你的代码:andrej-karpathy-skills 的 AI 编程守则实战指南
【免费下载链接】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 加个导出功能,它顺手把半个文件重构了一遍——这是很多开发者都想给 AI 找"刹车"的痛点。andrej-karpathy-skills 就是为此而生:它把大模型写代码的常见毛病总结成一套 AI 编程守则,用来约束 AI 编码行为。它通过 Claude Code 插件、或项目启动时自动读取的 CLAUDE.md 约定文件两种方式生效,面向所有用 AI 写代码的开发者,帮你省下返工和翻 diff 的时间。
🧰 一个文件,给 AI 立一套"职业守则"
这个项目本质上就是一份 Markdown 文件:CLAUDE.md,外加由它衍生的技能定义和 Cursor 规则文件。原理很朴素:Claude Code 在项目里开工前会先读这份文件,文件里的规则就成了 AI 本次会话的"工作纪律"。适合谁?用 AI 辅助写代码、又受够了它"自作主张"的任何开发者,尤其是有代码评审环节的团队。一句话卖点:它不给 AI 增加任何新能力,只是把它变成一个守纪律的打工人。
四条守则,管的是嘴、手、脑子和"验收标准"
守则内容其实是四条,但按"管住什么"来讲会更直观。
嘴:先问清楚再动手
AI 的老毛病是:你说"给表单加个日期校验",它自己就定了校验区间、报错文案和覆盖哪些字段,直接交付一整套。守则要求它开工前把假设摊开写,遇到多种理解不许默默选一个,必须把候选方案列出来问你。落到代码上:它先问"只校验历史日期,还是未来日期也要拦",再碰第一行代码,做完了再返工的概率肉眼可见地下降。
✂️ 手:不该碰的一律不碰
这个毛病在 diff 里最扎眼:修一个小 bug,它顺手"优化"了旁边注释的措辞、把单引号改成双引号,甚至重构了没人让它动的方法。守则的要求是,每一行改动都能追溯回你的请求;发现无关的死代码,只提一句、不许删;它唯一有权清理的,是自己改动产生的孤儿代码。装完之后你再打开 diff,只剩真正解决问题的几行,评审从"扫雷"变回"看逻辑"。
脑子:不搭没必要的架子
AI 偏爱"过度工程化"——说白了就是,今天的问题用不上,它偏先把明天的架构搭起来。比如一行就能算完的折扣,它偏要弄出抽象类加策略模式再加配置对象,写出一百多行(也就是把一个小功能拆成一整个类家族)。守则只允许写解决当前问题的最少代码:不加没被要求的推测性功能,不为一次性使用的逻辑加"灵活性"。判断标准也更直白:你团队里最资深的工程师会不会觉得这写复杂了?会,就砍。以后真要支持多种折扣,再重构也不迟。改动前后对比的例子仓库里 EXAMPLES.md 都有,值得翻一翻。
"验收标准":没有目标就不开工
你说"把这个 bug 修了",它手里没有"修好"的标准,就容易变成"看看代码顺手改改"。守则要求把模糊指令翻译成可验证的目标:先写一个能复现问题的测试,再动手修,修完让测试变绿;多步任务则把"每一步做什么、怎么验证"列出来再执行。大模型天生擅长"朝着目标循环到达成",一旦有了明确验收标准,它就能自己转起来,只有遇到真正的分岔路才回来问你。
【此处放:AI 修改代码前后 diff 对比图(横版,左侧改动前杂乱的大 diff,右侧守则生效后的小 diff)】
✅ 用下来,评审现场会发生什么
不用空口说白话,下面是你可以直接观察到的信号:
- PR 里只剩和本次任务相关的行,没有顺手重构和"顺手改进"
- 需求不明确时它先提问,而不是先做错一版再道歉
- 第一版代码就够简单,评审一次过的概率更高
- 它写的测试是为了验证修复,不是刷存在感
- 模糊指令变成"写测试→修→验证"的循环后,不用你反复确认"这样行不行"
提醒一点:这套守则偏向"稳"而不是"快",修个错别字这种小事不用走全套流程,留给你自己判断。
两种装法,插件或一份 CLAUDE.md
Claude Code 插件,两条命令装好
插件是从插件市场安装的扩展包,装一次对你所有项目生效,不用每个项目都塞文件。在 Claude Code 里依次输入:
/plugin marketplace add forrestchang/andrej-karpathy-skills /plugin install andrej-karpathy-skills@karpathy-skills项目级,把 CLAUDE.md 拷进项目
只想在单个项目生效,或者你用的工具只读项目根目录的约定文件,就克隆仓库再拷贝:
git clone https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skills cp andrej-karpathy-skills/CLAUDE.md 你的项目根目录/项目里已有 CLAUDE.md 就别覆盖,把守则追加到末尾即可,它就是为和你的规则合并而设计的。用 Cursor 的话,把仓库里.cursor/rules/下的规则文件拷过去,或参考 skills/karpathy-guidelines/SKILL.md 里的技能定义放到对应位置,原理一样。
把自己的项目规矩并进去
守则追加之后,你可以在同一份文件里补一节自己的硬性规定,比如:
## 项目规矩 - 新增接口必须配单元测试 - 错误处理沿用 src/utils/errors.ts 里的写法回到开头那个 diff
下次你再让 AI"加个导出功能",大概率会看到它先反问"导哪些范围、什么格式、包含哪些字段",而最终 diff 里只留下你要的导出逻辑,一个变量名都没多改。这就是被管住的 AI 该有的样子。现在就装上它,给你的 AI 立一套职业守则,把评审时间留给真正值得评审的东西。
【免费下载链接】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),仅供参考