项目概述
andrej-karpathy-skills 是今日 GitHub Trending 排行榜第一名,由开发者 forrestchang 维护,灵感直接来源于 AI 领域知名研究者 Andrej Karpathy 的推文。
这个项目的核心只有一个文件:CLAUDE.md。它通过向 Claude Code 注入一套严格的行为准则,系统性地解决了 LLM 编程助手在实际使用中最令人头疼的三类问题。
今日数据(2026-04-14):⭐ 28,330 stars | 今日新增 5,733 | Fork 2,328
为什么需要它?
Karpathy 观察到,LLM 在辅助编程时存在三个根深蒂固的问题:
1. 擅自假设——模型遇到不确定的地方,不会提问,而是自行脑补并直接执行。不呈现权衡取舍,不寻求澄清,悄悄做了你不想要的决定。
2. 过度复杂化——倾向于用 1000 行代码实现本可用 100 行完成的功能。臃肿的抽象层、不必要的"灵活性"设计、用不到的错误处理……代码越堆越厚。
3. 副作用编辑——修改一个函数时,顺手"优化"了旁边的注释和代码,删掉了它觉得没用但实际上有用的东西。每次 PR 都有意料之外的 diff。
这三个问题叠加在一起,导致 AI 辅助编程的实际体验往往令人抓狂:你说修个 bug,它给你重构了半个项目。
四大核心原则
原则一:编码前思考(Think Before Coding)
不要假设。不要隐藏困惑。呈现权衡取舍。
具体要求 Claude Code 做到:明确陈述自己的假设;存在多种解释时不要默默选择;遇到更简单方法时主动说出来;遇到困惑时停下来请求澄清,而不是硬着头皮猜。
原则二:简洁优先(Simplicity First)
用最少的代码解决问题。不做推测性开发。
不实现没被要求的功能,不为一次性代码创建抽象,不添加没被要求的"可配置性"。检验标准是:如果一个高级工程师看到这段代码会觉得过于复杂,就说明还需要简化。
如果 200 行能简化成 50 行,就重写。
原则三:精准修改(Surgical Changes)
只修改必须修改的部分。只清理自己造成的混乱。
编辑现有代码时,不要"顺手改进"相邻代码,不要重构没有问题的部分,匹配现有风格即使自己会有不同做法。如果注意到无关的死代码,提及但不删除。
验证标准很干脆:每一行变更都应直接追溯到用户请求。
原则四:目标驱动执行(Goal-Driven Execution)
定义成功标准。循环验证直到通过。
这是 Karpathy 最重要的洞察:LLMs 在"循环迭代直到满足特定目标"方面表现出色。因此,与其告诉模型做什么,不如给它成功标准,让它自己执行验证循环。
| 替代命令式指令 | 转换为目标导向 |
|---|---|
| “添加验证” | “为无效输入编写测试,然后使其通过” |
| “修复 bug” | “编写复现该 bug 的测试,然后使其通过” |
| “重构 X” | “确保重构前后测试都通过” |
安装方法
方案 A:Claude Code 插件(推荐,全局生效)
|
|
安装后这套规则在所有项目中自动生效。
方案 B:CLAUDE.md 文件(按项目生效)
|
|
如何验证是否生效
如果以下现象减少了,说明规则在起作用:
- PR 里不再有意料之外的变更——只有你请求的那些改动
- 代码第一次就是简洁的——不再需要让模型"重写,但简单一点"
- 澄清问题出现在实现之前——而不是犯错之后
- 没有"顺手重构"——模型不再擅自清理它认为不好的旧代码
一点额外说明
这套指南偏向谨慎而非速度。对于简单的拼写修正、明显的一行修复,不必每次都走完整流程。它的目标是在非琐碎工作上减少代价高昂的错误,而不是让简单任务也变得繁琐。
项目同时推荐了配套工具 Multica——一个用于运行和管理编码代理的开源平台,可与这套规则结合使用。
项目地址:https://github.com/forrestchang/andrej-karpathy-skills
许可证:MIT