
相信大家用 AI 写代码时都遇到过以下类似的问题:
这些问题,其实 AI 大神 Andrej Karpathy 早就看在眼里了。
他之前在社交媒体上分享过对 LLM 编程陷阱的观察,每一条都精准踩中了大家的痛点。
最近逛 GitHub 时发现有位开发者把 Karpathy 的这些经验总结做成了一个 Claude Code 插件,直接把这些原则变成 AI 必须遵守的行为准则。
这个项目就是 andrej-karpathy-skills,GitHub 地址:
https://github.com/forrestchang/andrej-karpathy-skills

在介绍这个插件之前,我们先看看 Karpathy 总结的 LLM 编程三大痛点:
第一,盲目假设,不懂得提问
模型会自作主张地做出错误假设,然后一路走到黑。它们不管理自己的困惑,不寻求澄清,不指出矛盾,不展示权衡,在应该提出反对意见时也不会这样做。
第二,过度设计,代码臃肿
它们真的很喜欢把代码和 API 复杂化,过度使用抽象,不清理无用代码……用 1000 行代码实现一个 100 行就能搞定的功能。
第三,副作用太大,乱改代码
它们有时仍然会作为副作用更改/删除它们不太理解的注释和代码,即使这些与任务无关。
这三个问题,相信每一个用过 AI 写代码的人都深有体会。而 andrej-karpathy-skills 就是针对这三个问题,提炼出了四大编程原则。
这个插件本质上是一个专门优化 Claude Code 行为的系统指南,它通过一个 CLAUDE.md 文件,给 AI 设定了四条必须遵守的铁律:
不假设。不隐藏困惑。展示权衡。
这一条针对的就是 AI 盲目猜测的问题。它强制 AI:
用最少的代码解决问题。不做任何投机的事情。
这一条专门治过度设计的毛病:
只碰必须碰的。只清理你自己制造的混乱。
这一条约束 AI 的修改范围:
当你的改动产生了孤儿代码时:
测试标准:每一行改动都应该直接追溯到用户的需求。
定义成功标准。循环直到验证通过。
这一条把命令式任务转化为可验证的目标:
与其说……不如转化为…… "添加验证" → "为无效输入编写测试,然后让它们通过" "修复这个 bug" → "编写一个能复现它的测试,然后让它通过" "重构 X" → "确保测试在重构前后都通过"
对于多步骤任务,陈述一个简要计划:
正如 Karpathy 所说:"LLMs 异常擅长循环直到它们满足特定目标……不要告诉它做什么,给它成功标准,然后看着它去做。"
这个插件有两种使用方式,都非常简单:
在 Claude Code 中,首先添加插件市场:
/plugin marketplace add forrestchang/andrej-karpathy-skills然后安装插件:
/plugin install andrej-karpathy-skills@karpathy-skills这样就把指南安装为 Claude Code 插件,使其在你的所有项目中都可用。
对于新项目:
curl -o CLAUDE.md https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md对于现有项目(追加):
echo "" >> CLAUDE.md
curl https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md >> CLAUDE.md这些指南在起作用的标志是:
这些指南设计为可以与项目特定的说明合并。你可以将它们添加到现有的 CLAUDE.md 或创建新的。
对于项目特定规则,添加这样的部分:
## 项目特定指南
- 使用 TypeScript 严格模式
- 所有 API 端点必须有测试
- 遵循 `src/utils/errors.ts` 中现有的错误处理模式andrej-karpathy-skills 这个插件,把 Andrej Karpathy 对 LLM 编程陷阱的深刻观察,转化为 AI 可以直接遵循的四条原则。
它强制 AI 在动手前先理清思路,遇到不确定的地方主动提问,用最少的代码解决问题,只精准改动目标代码。
如果你经常用大模型写代码,这个插件绝对值得引入你的工作流。它能有效减少 AI 瞎改代码带来的返工成本,让 AI 真正成为你的得力助手。
GitHub:https://github.com/forrestchang/andrej-karpathy-skills