一份 CLAUDE.md 驯服 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 修一个空邮箱崩溃的 bug,它顺手把整个函数的引号换成了双引号、补上一堆没人要的类型注解,还删了一段"看起来没用"的死代码。代码是修好了,你的 code review 却要翻两倍的量,确认它没顺手改坏别的。这类糟心事的根源不是模型不行,而是没人告诉它"边界在哪"。andrej-karpathy-skills 就是为这件事做的一个开源项目:它把 Andrej Karpathy 对 LLM 编程坑位的观察,压缩成一份 核心指南文件,给 AI 编程行为加上一套约束,让 diff 变干净、返工变少。
三步跑起来:从 clone 到验证生效
- 拿到核心文件。仓库地址:https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skills
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用 Cursor 的话,把仓库里的.cursor/rules/karpathy-guidelines.mdc复制到你项目的.cursor/rules/目录下,它带了alwaysApply: true,打开项目即生效,详见 Cursor 使用说明。其他只认根目录说明文件工具的话,把 CLAUDE.md 拷到项目根目录即可;已有该文件就追加合并,别覆盖。
- 验证准则真的生效了。装完别急着干正事,丢一个故意模糊的小任务,比如"帮我把搜索变快一点"。AI 先反问是响应时间、并发量还是体验问题,说明准则在工作;它直接闷头开始加缓存、加索引,说明没接上,回头检查安装步骤。
它到底改变了什么:四条准则逐条拆解
这份准则就四句话能概括完的东西,核心是把模糊指令转成可验证目标。逐条看它怎么管住 AI 的手:
| 准则 | 管住什么 |
|---|---|
| 编码前思考 | 场景:一句"导出用户数据",范围、格式、字段全是没说清的信息。做法:AI 先列出自己的假设、把多种解释摆出来、没把握就停住提问,而不是挑一个解释闷头跑完。效果:方向性错误在动手前被拦下,而不是交付后你才发现它导出了不该导出的东西。 |
| 简单优先 | 场景:一个百分比折扣计算,AI 爱给你整出策略模式加配置类的抽象。做法:只写解决当前问题的最小代码,没被要求的"灵活性"一概不加,200 行能压到 50 行就重写。效果:代码第一次提交就够简洁,不用等你喊"这也太复杂了"再返工。 |
| 外科手术式修改 | 场景:修一个校验 bug,AI 习惯"顺手"重排格式、改注释、补注解。做法:只动与任务直接相关的行,匹配现有代码风格,发现无关死代码只报告不删,自己改动产生的孤儿代码才负责清理。效果:diff 里每一行变更都能追溯回你的原始请求,review 一眼看完。 |
| 目标驱动执行 | 场景:"修好认证系统"这种话没有验收标准,AI 只能靠猜。做法:把任务转成"为非法输入写测试再让它通过""先写复现 bug 的测试再修""重构前后测试全绿"。效果:AI 能自己循环到验证通过,你不用全程盯着逐条确认。 |
这里有个值得记住的洞察:LLM 特别擅长朝着明确目标循环迭代。所以别告诉它"做什么",给它成功标准,然后看着它自己跑。示例文档 里按这四条准则整理了十几组真实代码正反例,比如"加速率限制"任务被拆成"每步一个验证点"的渐进计划,比通读规则更能帮你建立直觉。
同一个需求,装没装准则的差别
说个典型的下午:你让 AI 加个计算折扣的小函数。没上准则时,它给你端回来一个 30 多行的策略模式——抽象基类、枚举、工厂方法齐活,仿佛你明天就要支持八种折扣。第二天你让它修个邮箱校验的 bug,它顺手把整个函数的引号统一了、加了类型注解,还删掉一段它"判断为无用"的旧逻辑。代码确实修好了,但 PR 里混进了你根本没授权的变更。
装上准则后,同样的两件事:折扣函数是三行就完事的写法,真要多种折扣时再抽象不迟;修 bug 的 diff 只剩邮箱校验那两行的痕迹,旁边那段可疑的死代码,它只在回复里提了一句"这个函数从没被调用过",没有擅自删。最明显的变化是 AI 开始先问:你丢一句"导出用户数据",它先问哪些字段、什么格式、大概多少条,再动手——假设被摆上了台面,而不是埋进代码里等你踩雷。
# 没装准则:策略模式 + 配置类,30 行起 class DiscountStrategy(ABC): @abstractmethod def calculate(self, amount): ... # 装上之后: def calculate_discount(amount, percent): return amount * (percent / 100)新手容易踩的坑
这份指南是万能的吗?不是。它把高频失误压下去,不保证零失误。测试、代码审查该有还是要有的,它解决的是"AI 自己给自己挖的坑",替代不了验收环节。
是不是每个任务都得走全套流程?不用。修个拼写错误不需要列假设、写验证计划。指南开头就写了它的取舍是"谨慎优先于速度",琐碎任务用你自己的判断就行,别为了仪式感拖慢简单活。
我用的是 Cursor,还需要 CLAUDE.md 吗?各走各的配置:Claude Code 认根目录的 CLAUDE.md,Cursor 读.cursor/rules/下的规则文件,两者内容一致、互不冲突。团队项目建议根目录放一份 CLAUDE.md,让每个人的 AI 都受同一套约束。
下一步就一件事
这份指南的价值一句话能说完:它不教 AI 写代码,而是约束 AI 的行为,让 diff 更干净、返工更少、提问出现在动手之前而不是事故之后。把 CLAUDE.md 放进你手头项目的根目录,明天第一个任务丢一个故意模糊的需求进去,看它是先动手还是先问——答案会告诉你这套准则值不值。
【免费下载链接】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),仅供参考