4条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
你可能遇过这种坑:AI写完了代码,却顺手塞进来一堆用不上的抽象,还把旁边没让动的代码"顺手改进"了。andrej-karpathy-skills 是一套基于 Karpathy 对 LLM 编码毛病观察整理的 AI 编码行为准则,装成一个文件:它不教模型怎么写代码,只约束它写代码时的行为。
下面先装好,再讲 4 条准则怎么对应到你的日常阶段,最后走一遍完整小案例。
🛠️ 五分钟装好
两种方式,二选一:
# 方式一:装成 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已有 CLAUDE.md 的老项目,把这份文件内容追加到末尾即可,它的设计就支持与项目专属规则并存。用 Cursor 的话,仓库里另有 CURSOR.md 说明同样的准则怎么搬进规则里。
这些准则治哪些AI毛病
| AI常见毛病 | 对应准则 | 它要求什么 |
|---|---|---|
| 默默做出错误假设就开干 | Think Before Coding(先想后写) | 说出假设,不懂就问,卡住就停 |
| 200行的活非要上200行抽象 | Simplicity First(简单优先) | 最小代码,不加臆测功能 |
| 修bug时"顺手"改注释、格式、旁边代码 | Surgical Changes(外科手术式修改) | 只碰必须碰的,只清理自己弄出的垃圾 |
| 目标模糊,"让它跑起来"就算完成 | Goal-Driven Execution(目标驱动执行) | 先定成功标准,循环到验证通过 |
整套准则偏向"谨慎高于速度"。改个错字这种活,不用走全套流程。
按阶段用起来
动手前:接到模糊需求时
你收到"导出一份用户数据"这样的需求 → 别让 AI 直接开写。让它列假设:全部用户还是子集?导成文件、API 还是发邮件?AI 拿不准时应该停下来,把"我不确定的是X"明说,等你回答。
写代码时:只需要一个小功能时
你要"算个九折" → 交付物就应该是几行函数,别要策略类、别要配置对象、别要缓存钩子。写完自问一句:资深工程师会说这过度设计吗?会,就重写。
改已有代码时:修一个老bug
你要修邮箱校验器空值崩溃 → 只改和 bug 相关的行。别改引号风格、别加类型标注、别动旁边用户名逻辑。看到不相关的死代码?提一句就行,别删。判断标准:每行改动都能追溯到这次需求。
交付前:想说"完成了"时
"修好 bug 了"不算完成 → 改成"写了复现 bug 的测试,修完测试通过,老测试也通过"。多步任务把计划写成一行行:1. [步骤] → 验证:[检查点]。Karpathy 的观察是,LLM 很擅长"循环到目标达成",给它强成功标准就能自己跑,弱标准只会反复回来问你。
准则的完整措辞在仓库的 SKILL.md 里,可以对照看。
✅ 完整小案例:修一个空邮箱崩溃的bug
任务:项目里的邮箱校验器,email 为空时直接崩溃。
- 动手前——和 AI 确认 bug 定义:是崩溃还是校验报错?期望是空邮箱抛"必填"错误。不让它猜。
- 测试先行——让 AI 写一个复现测试,跑一遍,确认崩溃,此时测试应当是红的。
- 外科手术式修改——只改判空逻辑,保留原有注释和风格:
def validate_user(user_data): # Check email format - if not user_data.get('email'): + email = user_data.get('email', '') + if not email or not email.strip(): raise ValueError("Email required")- 交付前验证——复现测试变绿、老测试全过、diff 就是上面几行,收工。用户名逻辑一个字符都没动。
这条准则偏谨慎,像这种一行能修完的改动,可以省掉测试步骤直接验证。它拦的是非琐碎任务上的昂贵错误。
📋 交付前对照这份Checklist
- 动手前让 AI 说清了假设,并回答了模糊点
- 交付的代码是最小够用,没有臆测功能
- diff 里每一行都能追溯到这次需求
- 原有风格、注释、无关代码没被动过
- 有测试证明"完成"(复现测试或验收测试)
- 老测试仍然全绿
六条勾中五条,AI 写的就是代码,你交出去的就是一个干净的 PR。
【免费下载链接】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),仅供参考