AI 写代码为什么越改越乱?andrej-karpathy-skills 四步治理 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 编程工具的人大概都挨过这一下:让它加个小功能,它顺手给你改出一堆没要的东西;说修个 bug,它把半页代码都重排了。andrej-karpathy-skills 就是为治这个毛病变出来的开源项目:一份 CLAUDE.md,把 Andrej Karpathy 总结的四个原则直接变成 AI 的行为规则。读完这篇,你不仅知道装它,还知道怎么判断它有没有真正生效。
接手任务前先问清楚
常见翻车现场
你说"加个导出用户数据的功能",模型不会停下来确认,而是直接开工:全量导出、落到本地文件、字段自己挑。范围、格式、敏感字段,它全替你做了主,等你发现时功能已经歪了。
推荐做法
动手前把假设摊在桌面上,不确定的直接问。你可以让它先回答三个问题:导出是全量还是按筛选条件?文件给谁用、走浏览器还是后台任务?包含哪些字段?有几种理解就把几种都列出来让你选,而不是自己拍一个。拿不准就停,问清再继续。
判断标准
澄清问句出现在写代码之前,说明这条规则在工作;翻出代码之后才来问,说明规则没管住它。
只写够用的代码
常见翻车现场
需求只让算个折扣,模型可能还给你一套抽象基类加策略模式,三十多行起步。这不是风格问题,是复杂度写早了。
推荐做法
写能跑通需求的最短实现,下面这段就是完整答案:
def calculate_discount(amount: float, percent: float) -> float: """计算折扣金额,percent 取 0-100""" return amount * (percent / 100)别加没被要的功能,也别为只出现一次的代码搭抽象。复杂度等它真需要的那天再加:哪天要支持"满100减10",再把抽象拆出来不迟。
判断标准
写完问自己一句:一个资深工程师看了会不会嫌复杂?嫌就回去删,删到只剩解决问题的部分。
改老代码时少动手
常见翻车现场
修一个空邮箱导致崩溃的 bug,模型的 diff 里除了真正的修复,还夹着单引号改双引号、补类型注解、顺手加的用户名校验。diff 看着像有人重构了半个文件。
推荐做法
改法要像外科手术:只动和空邮箱相关的行,原代码什么风格就保持什么风格。三条纪律——修完自查 diff,每一行改动都能对上你的原始需求;因为这次改动而失效的导入或变量,删掉;发现无关的死代码,只在回复里提一句,别动它。
判断标准
diff 里出现一行对不上需求的改动,就退回重来。
先定验收标准再开工
常见翻车现场
"把认证系统修好"这种指令,模型没有验收标准,只能自由发挥:改改这改改那,最后没人说得清修好了没有。
推荐做法
把指令改写成能验证的目标:"写一个测试,证明改完密码后旧会话必须失效;先跑出失败,再修复,最后确认原有测试全绿。"目标明确后,模型很擅长自己循环迭代直到达标,你只在边上验收。
多步骤任务就写成每步配验证的清单:先在单个接口上加限流并跑测试通过,再抽成中间件并确认已有用例不挂,最后才上 Redis 后端并验证重启后计数还在。一步一验,坏了也好回退。
最短路径:把规则装进项目
最快安装方法
在 Claude Code 里装插件,两条命令搞定:
/plugin marketplace add forrestchang/andrej-karpathy-skills /plugin install andrej-karpathy-skills@karpathy-skills装完所有项目都能用这套规则。
只给当前项目用
一行 curl 把规则放进项目根目录的 CLAUDE.md 文件:
curl -o CLAUDE.md https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md想团队共用、自己挑规则,就 clone 整个仓库:git clone https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skills。用 Cursor 的读者看项目里的 CURSOR.md,里面有配置说明。
项目文件都在哪
项目文件不多,认准三个:CLAUDE.md 是核心规则文件,EXAMPLES.md 存着四个原则各自的正反案例,skills/karpathy-guidelines/SKILL.md 是插件形态的技能定义。
怎么判断规则有没有生效
装完之后不用猜,对照这份清单逐条打勾:
- diff 自查:里面只剩你要求的改动,没有顺手重构和"优化"
- 问句前置:澄清问题出现在动手之前,不是翻车之后
- 一次成型:功能代码写出来就能用,不需要二改瘦身
- 死代码隔离:发现无关死代码时只汇报,不动手
- 步骤带验证:多步任务的每一步都挂着验证动作
全勾上,就说明规则在干活。
andrej-karpathy-skills 的全部价值就一句话:把 AI 的猜测变成先确认,把顺手大改变成小 diff,把"我修好了"变成测试能证明。建议先把 CLAUDE.md 放进你常用的项目跑一两周,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),仅供参考