3步告别AI过度工程化:用 andrej-karpathy-skills 引导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
andrej-karpathy-skills 是一个基于 Karpathy 观察的 AI 编程指南,用一份 CLAUDE.md 规则文件约束 AI 助手,避免过度工程化,让它写出只解决当前问题的简洁代码。
🤖 先说一个熟悉的场景
你让 AI 加一个折扣计算功能,它可能顺手给你搭出一套抽象基类、策略模式和配置系统,代码翻了几倍。这就是"过度工程化":用一大堆提前预留的复杂结构,去解决一个本来很简单的问题。
更麻烦的是,下次你只让它修一个小 bug,它还会"热心"地把旁边的注释、格式一起改了,review 代码时看得人头皮发麻。问题不在 AI 不会写代码,而在于没人教它"克制"。这个项目把 Karpathy 总结的四条原则写进一个规则文件,专门管住这件事。
📌 拆解四大原则:给 AI 立下的四条规矩
编码前先想
一句话:不假设、不装懂,有歧义就开口问。
场景:你说"加个校验",AI 默默选了其中一种理解就往下写。这条原则要求它先把假设摆出来,存在多种解释时全部列给你,拿不准的地方直接停下来问。
简单优先
一句话:用最少的代码解决当前问题,不为"假想需求"多写一行。
场景:你想加"保存用户偏好",AI 却给你造了个带缓存、合并、通知的管理器类。这条原则只允许它实现你点名的功能,真的用起来了再谈扩展。
外科手术式修改
一句话:只改必须改的行,风格跟着老代码走。
场景:修"空邮箱导致校验崩溃"的 bug,AI 却把整个函数的注释和格式都翻新了一遍。这条原则下它只会动那两三行相关代码,顺便发现的死代码只提一句,不擅自删。
目标驱动执行
一句话:把模糊任务翻译成可验证的目标,循环到通过为止。
场景:你说"让搜索更快",AI 上来就加缓存和索引。这条原则要求它先弄清"更快"指响应时间还是吞吐量,再把"修 bug"改写成"先写能复现的测试 → 修复 → 确认没有回归"。
🔧 3步把指南接入项目
第一步(推荐):安装 Claude Code 插件,一次配置,所有项目生效:
/plugin marketplace add forrestchang/andrej-karpathy-skills /plugin install andrej-karpathy-skills@karpathy-skills第二步:已有项目,把仓库里的 CLAUDE.md 内容追加到项目根目录规则文件的末尾。
第三步:新建项目,直接把 CLAUDE.md 放到根目录即可。想先看实际案例,翻一翻 EXAMPLES.md。
✅ 判断指南是否生效的4个信号
用几天之后,看这几个迹象:
- diff 变小:改动列表里只有你点名的功能,没有"顺手"的修改
- 重写变少:代码第一次交出来就是克制的,不用你说"太复杂了重写"
- 提问更早:AI 在动手前就把疑问抛出来,而不是做错之后才问
- PR 更干净:没有无关的重构和"我顺便优化了"
- AI 会主动劝简:发现更简单的做法时,它会主动提出来
🎯 让它写最合适的代码,而不是最复杂的
这个项目的本质,是把"下指令"换成"给目标"。Karpathy 有句话说得很准:"LLMs 非常擅长循环直到达到特定目标……不要告诉它做什么,给它成功标准,然后看着它行动。"
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辅助生成(AIGC),仅供参考