GitHub 地址:https://github.com/forrestchang/andrej-karpathy-skills
简介
Andrej Karpathy Skills 是一套针对 Claude Code 等 AI 编程助手的工程约束规则集。它源于 OpenAI 创始成员 Andrej Karpathy 对当前 AI 编程痛点的深刻洞察——AI 常常“过度自信地犯错”:它们会擅自假设、过度抽象、删除不理解但关键的代码。
这个项目不是新的 AI 模型,而是一套“防呆”指南。它将资深工程师的审慎思维编码成 AI 能理解的规则,强制 AI 在“写代码”和“改代码”时遵循最小化、可验证、非侵入性的原则,从而将 AI 从“容易闯祸的实习生”转变为“严谨的工程伙伴”。
主要功能
1. 四大核心原则(防“AI 式”犯错)
这套技能通过四条铁律,直接针对 AI 编程的四大顽疾:
不假设、不隐藏困惑(Don't assume. Don't hide confusion)
痛点:AI 常会 silently pick an interpretation( silently 选择一个错误的理解并跑下去)。
规则:强制 AI 在遇到歧义时显式化推理(Surface tradeoffs),列出所有可能的理解路径,并要求用户澄清,而不是自作主张。
最小化代码(Minimum code that solves the problem)
痛点:AI 酷爱过度工程(overcomplicate),用 1000 行抽象的“架构”去解决 100 行脚本就能搞定的问题。
规则:引入“Senior Engineer Test”(资深工程师测试)——如果资深工程师认为这过于复杂,就必须简化。禁止 speculative code( speculative 代码)。
仅触碰必须项(Touch only what you must)
痛点:AI 在修改代码时,常会“顺手”删除或修改它不理解但实际在用的注释或代码,造成隐性破坏。
规则:只清理自己的烂摊子(Clean up only your own mess)。每一行被更改的代码都必须能直接追溯到用户请求,绝不产生孤儿代码(orphans)。
目标驱动执行(Define success criteria. Loop until verified)
痛点:AI 往往“做完了事”,缺乏自测闭环。
规则:将指令从“做这个”(imperative)转变为“达到这个状态”(declarative)。AI 必须先定义明确的成功标准,然后循环测试直到达标,否则自动重试。
2. 多模态集成
Claude Code Plugin:作为插件安装后,这些原则会成为 AI 的底层思维框架,在所有项目中生效。
CLAUDE.md:作为项目级配置文件,可与现有的工程规范(如代码风格、架构约束)无缝合并。
安装与配置
方案 A:Claude Code 插件(推荐)
这是最便捷的方式,让技能全局生效:
在 Claude Code 界面中,首先添加插件市场(如果尚未添加):
/plugin marketplace add安装 Andrej Karpathy Skills:
/plugin marketplace install forrestchang/andrej-karpathy-skills
安装后,AI 在思考时会自动加载这些约束规则,无需在每个项目中重复配置。
方案 B:项目级配置 (CLAUDE.md)
如果你希望规则仅对特定项目生效,或与团队规范结合:
新项目:将仓库中的
CLAUDE.md文件内容复制到项目根目录的CLAUDE.md中。现有项目:将规则内容追加到你现有的
CLAUDE.md文件末尾。
配置建议:对于核心库或遗留系统,建议采用方案 B 并叠加项目特定规则(如“禁止使用某些已弃用的 API”),实现双重约束。
如何使用
1. 识别“生效”信号
当你正确安装后,AI 的行为会发生明显变化,你可以通过以下信号判断规则是否生效:
话变多了:AI 会开始问你 clarifying questions(澄清问题),而不是直接开干。
先给计划:对于复杂任务,AI 会先输出一个 Step-by-Step Plan( step-by-step 计划)让你确认。
代码变短:生成的代码会明显更简洁、更“直给”,少了层层封装。
2. 工作流:从“指令”到“验证”
下达目标指令:不要只说“修复这个 Bug”,要说“确保函数在输入为 null 时返回默认值,并添加一个测试用例验证它”(符合 Goal-Driven 原则)。
等待澄清与计划:AI 会列出它理解的任务边界和可能的风险点,等你确认。
接收最小化代码:AI 只提交与任务直接相关的代码变更,且会附上验证结果(如测试通过截图)。
安全迭代:如果验证失败,AI 会基于成功标准自动循环,而不是等你手动说“再试一次”。
应用场景实例(无代码)
场景一:重构“屎山”时的安全网
痛点:你让 AI 重构一个古老的支付模块。通常 AI 会兴奋地引入现代框架,把代码全部重写,最后导致依赖它的十几个未知模块全部报错。
Andrej Skills 介入后:
AI 首先会列出风险:“我注意到这个模块被 A、B、C 三个服务导入。重构可能破坏它们的兼容性。你需要我:
a) 只重构内部逻辑,保持接口不变?
b) 先为旧接口创建适配器?”
你选择 a) 后,AI 会仅修改内部实现,并生成接口调用对比测试,确保输入输出行为 100% 一致。
结果:重构安全完成,没有引爆周边地雷。
场景二:杜绝“过度设计”的 API
痛点:你让 AI 写一个简单的配置文件读取函数。通常它会给你返回一个抽象工厂模式 + 建造者模式 + 依赖注入的“企业级”代码,让你读起来想哭。
Andrej Skills 介入后:
AI 会应用“Minimum code”原则,直接生成一个 20 行的纯函数。
它甚至会备注:“Senior Test:这里不需要设计模式,因为需求是稳定的,且只有一处调用。”
结果:你得到了可读性极高、维护成本极低的代码,而不是一个“未来可能有用”的架构负担。
场景三:修复 Bug 时的“外科手术”
痛点:你让 AI 修复一个条件判断的 Bug。它修复了,但“顺手”把旁边一段看似无用(实则关键)的日志代码删了,导致线上监控失效。
Andrej Skills 介入后:
AI 会严格遵守“Touch only what you must”原则。
它只修改那个错误的 if 条件语句,并明确告诉你:“我没有动第 45-50 行的日志代码,虽然它们未被测试覆盖,但可能在生产环境中使用。”
结果:Bug 被精准修复,且没有引入任何隐性回归。
总结
Andrej Karpathy Skills 的本质是将“工程纪律”注入到 AI 的决策循环中。它不增加 AI 的智力,但极大地提高了 AI 产出的确定性和安全性。它特别适合用于核心业务逻辑、遗留系统维护和团队协作场景,在这些场景中,代码的“可预测性”比“聪明度”更重要。
正如 Karpathy 所言:“Don't tell it what to do, give it success criteria and watch it go.” 这套技能正是教你如何为 AI 设定成功的标准,然后放手让它去循环验证。
GitHub 地址:https://github.com/forrestchang/andrej-karpathy-skills