3步克制AI过度工程化:一份实用的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修一个空邮箱导致校验崩溃的bug,打开diff,它"顺手"加了用户名校验、换了引号风格,改动只有两行,diff却占半屏。andrej-karpathy-skills 这个项目就是冲着这类行为来的:用一份 CLAUDE.md 指南文件,克制AI过度工程化,让改动停在"要什么给什么"。
项目是什么:一份让AI编码助手更可靠的指南文件
andrej-karpathy-skills 的仓库很小,核心是根目录一个 CLAUDE.md 文件,内容是从 Andrej Karpathy 对 LLM 编码陷阱的公开观察里提炼出的四条行为准则:编码前思考、简洁优先、精准修改、目标驱动执行。每条各管一个问题——错误假设、臃肿抽象、无关编辑、缺验收标准。
Karpathy 是 OpenAI 创始成员、nanoGPT 的作者,他对这类问题的判断很直接:模型会替你做错误假设然后不假思索地执行,不管理自己的困惑、不寻求澄清、该提出异议时不反驳;还爱堆抽象,100 行能搞定的事写成 1000 行。这个项目做的事,就是把这些判断写成一份 AI 每次启动都会读的规则文件。
适合谁用:日常用 Claude Code 或其他 AI 编码助手写代码的开发者。文件放在项目根目录就生效,不需要部署任何服务。有一点要提前知道:指南偏向"谨慎"而非"速度",改个错字这种小事不必走完整流程。
AI常犯的四个错,这份指南文件怎么纠正
错一:猜中你的意图直接干
你说"加个导出用户数据的功能",AI 常常直接全量导出到 json 文件——格式、范围、字段全是猜的。对应的纠正要求:先声明假设、把多种解释摆出来、不确定就停下来问。类比:新同事接了需求不打电话确认就开工,等交付了你才发现"要 JSON 还是 CSV、全量还是当前页"从来没被问过。
错二:一行折扣计算写成策略模式
需求只是"算个折扣",AI 写出来抽象基类、策略实现、配置数据类,三十多行就为了做一次乘法。纠正要求:不加要求之外的功能、不为一次性代码建抽象、200 行能写成 50 行就重写。类比:煮一碗方便面,别先买齐一套法式厨具——真到需要的那天再买不迟。
错三:修一行bug顺手重构整个函数
只让修邮箱校验的 bug,AI 把整个函数重写、加类型注解、改注释风格。纠正要求:每一行改动都要能追溯到这次请求;发现无关的死代码,提一嘴,别删;写法匹配现有风格,哪怕你有更好的写法。类比:水管工修漏水只换那段管子,不掀你整个卫生间的地砖。
错四:没有验收标准就开工
给一句模糊的"修一下认证系统",AI 会说"我先 review、再改进、再测试",然后一路改下去,没人知道何时算完。纠正要求是目标驱动编码:把任务变成可验证目标——"先写一个能复现 bug 的测试,让它通过,再确认没有回归";多步任务给出"步骤 → 验证"的清单,标准清楚了 AI 可以独立循环。类比:厨师做菜,"好吃"不是标准,"盐不超过 5 克、肉全熟"才是。
三步上手:装、接、验证生效
第一步,装。用 Claude Code 的话,装插件即可让指南文件在所有项目生效:
/plugin marketplace add forrestchang/andrej-karpathy-skills /plugin install andrej-karpathy-skills@karpathy-skills不用 Claude Code 的话,直接克隆仓库:
git clone https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skills第二步,接。把仓库里的 CLAUDE.md 复制到项目根目录;已有同名文件就追加合并。用 Cursor 的,把.cursor/rules/karpathy-guidelines.mdc拷进项目的.cursor/rules/目录即可。
第三步,验证。给 AI 一句模糊指令,比如"让搜索更快"。它先列出几种解释(响应时间、并发、感知体验)再问你要哪种,说明生效了;上来就加缓存加异步,说明没读到。
diff变小了吗:生效自查清单
用上一两周,对照这五条看命中多少,命中多数就说明这份 Claude Code 指南文件在工作:
- diff 里只有请求的改动,没有顺带改格式、改注释
- 澄清问题出现在动手之前,不是犯错之后
- 第一次实现就是简单版,不用为过度工程返工
- 多步任务自带"步骤 → 验证"清单,而不是"我会改进代码"
- PR 变干净,无关重构消失了
其中最能体感的是让AI的diff变小:review 时你只需要盯和请求直接相关的那几行。
进阶与延伸:案例库、Cursor 与个人技能
- 想看更多错误与正确写法对照,EXAMPLES.md 里收了八个真实案例,覆盖导出、搜索、折扣、邮箱 bug、认证、排序重复项等场景。
- 用 Cursor 的看 CURSOR.md,里面讲了已提交的项目规则怎么在别的项目里用,以及它和 Claude Code 路线的区别。
- 想把同样内容当个人可复用技能,看 skills/karpathy-guidelines/SKILL.md,拷进个人技能目录即可。
- 团队使用时,可在 CLAUDE.md 里追加一节"项目特定指南",例如"TypeScript 严格模式、API 端点必须有测试",和现有规则合并存放。
另外记一句:指南的目的是降低非琐碎工作的代价,琐事照样随手改,别为每行改动都走完整流程。
Karpathy 的原话是:"LLM 非常擅长循环执行直到达成特定目标……不要告诉它该做什么,给它成功标准,然后看着它完成。" 这份文件做的就是把这句话说给 AI 听。今天就往你的项目里放一个 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),仅供参考