3步让AI写出靠谱代码:andrej-karpathy-skills实战指南
【免费下载链接】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
andrej-karpathy-skills 是一套源于 Andrej Karpathy 对 LLM 编码缺陷观察的行为指南,核心就是一个CLAUDE.md文件,专门解决 AI 编程助手写代码时的老毛病:擅自做错误假设、过度设计、顺手乱改无关代码。装好之后,你会发现 Claude Code 的产出更接近一位谨慎的资深工程师,而不是一个盲目自信的实习生。
先看一个真实场景
你让 AI "给登录接口加参数校验",结果它交回来 1000 多行代码:除了校验逻辑,还"顺手"重构了相邻模块、改了一堆注释格式、加了一整套没人要求的配置项。diff 打开一片红,你还得逐行排查它到底动了什么。
这类问题不是模型能力不够,而是它默认的行为模式就有缺陷——Andrej 的原话是:模型会替你做错误假设、不澄清、不权衡、不push back。andrej-karpathy-skills 就是针对这些缺陷写的一组约束规则。
机制速览:一条文件,四个原则
整个方案的核心机制就一张表:
| 原则 | 针对的坏习惯 |
|---|---|
| 编码前思考 | 隐藏假设、闷头猜、不暴露歧义 |
| 简单优先 | 过度设计、抽象膨胀、写200行能50行解决 |
| 外科手术式修改 | 顺手改无关代码、乱删别人写的死代码 |
| 目标驱动执行 | 拿到模糊指令就硬做,无法自验证 |
四段规则加起来不到 60 行,轻到可以直接塞进任何项目的指令文件里,不会挤占模型的有效上下文。
分步操作:从零到生效
第1步:获取规则文件
你可以把仓库克隆到本地,或者直接在 Claude Code 里通过插件安装。建议先克隆一份,方便对照阅读:
git clone https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skills仓库里的CLAUDE.md就是完整规则,skills/karpathy-guidelines/SKILL.md是同内容的技能版,CURSOR.md则说明了 Cursor 用户的用法。
第2步:放进你的项目
- 新项目:直接把
CLAUDE.md复制到项目根目录即可,Claude Code 会自动加载。 - 老项目:把内容追加到你现有的
CLAUDE.md末尾,不要覆盖原有项目说明。 - Cursor 用户:Cursor 默认不读
CLAUDE.md,需要把.cursor/rules/karpathy-guidelines.mdc复制到目标项目的.cursor/rules/目录下。
第3步:学会用"目标驱动"的方式下任务
这是四条原则里收益最大的一条。把祈使句任务改写成可验证的目标,AI 才能自己循环到验证通过为止:
"加校验" → "为非法输入写测试,然后让它们通过" "修这个bug" → "写一个能复现它的测试,然后让它通过" "重构X模块" → "确保重构前后测试都通过"多步任务再附一个简表:每一步后面跟一个 verify 检查点。标准越具体,AI 越不需要中途反复问你。
第4步:叠加你的项目专属规则
这套指南被设计成可合并的底座。你可以在文件末尾追加项目段,让通用原则落地到你的技术栈:
## Project-Specific Guidelines - 使用 TypeScript strict 模式 - 所有 API 端点必须有测试 - 错误处理遵循 src/utils/errors.ts 的既有模式注意只加你自己能执行、能检查的规则,"代码要优雅"这种无法验证的条款没有约束力。
使用前后对比
装上规则前后,同一个任务"给订单模块加金额上限校验"的产出差异很明显:
- 之前:800 行 diff,包含重命名、格式化、"顺手优化"的相邻函数
- 之后:40 行 diff,只有校验逻辑 + 对应测试,且改动前会先说出它的假设
更直观的行为变化:
- 歧义需求下,它会先列出两种解释让你选,而不是默默挑一个
- 它发现更简单的实现路径时,会主动提出而不是照做
- 发现无关死代码时,只"报告"不"删除"
判断它是否生效的官方标准就三条:diff 里无关变更变少、因过度复杂导致的返工变少、澄清问题发生在动手之前而不是翻车之后。
踩坑提醒
- 别对小事上全套流程。这套指南偏向"谨慎优先于速度",改个错别字、加一行明显代码时,按直觉来即可,没必要逐条走。
- 覆盖而非合并,是最高频的失误。老项目已有
CLAUDE.md时直接覆盖,会丢掉项目说明,AI 反而更不懂你的代码库。 - Cursor 用户别只放
CLAUDE.md。Cursor 不读这个文件,只放它等于没装。 - 只复制不阅读。建议至少通读一遍四条原则,这样 AI 提问时你能快速判断它问得对不对。
收尾检查清单
- 规则文件已就位(Claude Code 根目录
CLAUDE.md或 Cursor 的.cursor/rules/) - 老项目是追加合并,不是覆盖
- 已按"目标 + 验证"的方式改写过至少一次任务描述
- 追加了 2~3 条你自己能执行的项目专属规则
- 观察了 2~3 个任务的 diff,确认无关变更在减少
现在就打开你正在用的 Claude Code 项目,把规则文件放进去,再丢给它一个真实任务——第一个干净的 diff 出现时,你会明白这套指南的价值。
【免费下载链接】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),仅供参考