4 条 AI 编码行为约束,如何管住 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 改个报错,结果 diff 里混进了 40 行你没要的改动:引号全换了,注释重写了,还顺手加了没人点的类型提示。问题不在模型不够聪明,在于没人约束它动手前的习惯。andrej-karpathy-skills 就是干这个的:一个装进 Claude Code 的 AI 编码规范插件,用 4 条行为准则管住 LLM 的编码行为。
它是什么:单文件 AI 编码行为约束,治“手抖”
把 Andrej Karpathy 对 LLM 编码毛病的观察,压缩成一个文件,塞进 Claude Code 当全局指令。它不教技术栈、不绑定语言,只管模型动手前的 4 个习惯。适合用 Claude Code 或 Cursor、受够了 AI 顺手乱改代码的人。判断标准一句话:你烦的是“AI 写错”,还是“AI 乱碰”——这套治的是后者。
4 条核心规则,按行为拆着看 📌
先给张对照表,这 4 条规则各自改变一种行为,不是简单对应一个毛病:
| 你观察到的行为变化 | 背后的规则 |
|---|---|
| 动手前先来问问题 | Think Before Coding |
| 第一版代码就够短 | Simplicity First |
| diff 里没有顺带改动 | Surgical Changes |
| 每步都带验证标准 | Goal-Driven Execution |
先问清楚再动手。把假设摆到台面上,有歧义就列出两种理解让你选,有困惑就停下说清楚哪里不懂,而不是默默挑一种解释闷头做。判断标准:模型开口第一句是问句,不是开始写码。
只写够用的代码。不加没要的功能,不为只用一次的逻辑造抽象,也不为想象中的场景兜底。判断标准:换个资深工程师来看,会不会说这写复杂了——会,就让它重写。
外科手术式修改。只碰必须碰的行,沿用现有风格,没坏的东西不重构;自己改动弄出来的孤儿变量要删,别人留下的死代码只提一嘴、不动手。判断标准:diff 里每一行改动,都能直接追溯到你的需求。
目标驱动执行。把模糊指令翻译成可验证的目标:不说“修复登录”,说“先写一条能复现问题的测试,再让它通过”。多步任务就列个带检查点的计划:
1. 修判空 → 验证:测试通过 2. 跑全量 → 验证:无回归判断标准:你说完目标就能走开,模型自己循环到验证通过。
装上前后,同一个需求的两种表现 🔍
先看翻车现场:你说“修一下空邮箱导致的报错”。没装约束的 AI 改出 40 行——校验逻辑整个重写,引号风格换了,还加了没人点的类型提示。
装上之后,同样的需求,它的反应变了。先确认“判空是指空字符串还是纯空格也算”,动手前问清楚;确认完只改判空那两行,diff 里其他代码一字未动:
- if not user_data.get('email'): + email = user_data.get('email', '') + if not email or not email.strip():验收点就一个:翻遍 diff,找不到一行和需求无关的改动。
3 分钟装好 Claude Code 插件 ⚡
装完算不算生效,看两条插件命令能不能跑通、文件是否出现在仓库根目录。
第一步,把仓库拉下来(里面有那份规则文件):
git clone https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skills第二步,在 Claude Code 里加插件源,再安装插件,装完所有项目通用:
/plugin marketplace add forrestchang/andrej-karpathy-skills /plugin install andrej-karpathy-skills@karpathy-skills第三步,如果某个项目想单独用,把仓库里的 CLAUDE.md 拷到项目根目录即可;它设计成可追加,不会覆盖你已有的指令。
边界与避坑:这 3 种场景别硬套 ⚠️
先说清它不擅长什么,免得装完怪工具。
这套规则偏向“谨慎”而不是速度。改个错别字、加一行 print,走全套确认流程纯属浪费,多数项目里这类小事直接跳过即可。
别把它当项目文档。它只管行为,不管技术栈;“接口必须带测试”这类项目规范,写在你自己的指令文件里,两份合并着放,别替换。
也别指望规则能 100% 拦住模型。它是概率约束不是硬围栏,任务越复杂越要自己盯 diff。判断标准:一次改动超过 50 行却没有解释,就停下来追问。
验收信号:对照这 4 条,能打勾才算生效 ✅
别凭感觉判断有没有用,用行为打勾。
- 澄清问题出现在动手之前,不是改砸之后
- diff 里只有你要的改动,没有顺带的“改进”
- 代码第一版就够短,没有因为过度设计返工
- 复杂任务被拆成带验证步骤的短计划
把最后一句话转述给队友就能算上手了:别告诉 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),仅供参考