andrej-karpathy-skills 深度分析报告¶
项目地址:andrej-karpathy-skills Stars: 85,523 | Forks: 8,176 | License: MIT
项目概述¶
这是一个极其极简的项目——整个仓库只有 11 个文件,核心就是一个 CLAUDE.md 文件。它的价值不在代码,而在洞察的提炼和分发机制。作者 forrestchang 从 Andrej Karpathy 对 LLM 编码缺陷的观察中,提炼出四条行为准则,打包成 Claude Code 的 skill/plugin,让 Claude Code 在编码时自动遵循这些准则。
1. 架构分析¶
整体架构¶
这个项目的"架构"本质上是一个 Markdown 文件的多格式分发策略:
andrej-karpathy-skills/
├── CLAUDE.md # 核心内容(独立使用)
├── README.md # 项目说明
├── README.zh.md # 中文版说明
├── EXAMPLES.md # 使用示例
├── CURSOR.md # Cursor 适配说明
├── .claude-plugin/
│ ├── plugin.json # Claude Code 插件元数据
│ └── marketplace.json # 插件市场注册信息
├── .cursor/rules/
│ └── karpathy-guidelines.mdc # Cursor rules 格式
└── skills/
└── karpathy-guidelines/
└── SKILL.md # Claude Code skill 格式(含 YAML frontmatter)
设计模式:Write Once, Distribute Everywhere
同一个核心内容(四条准则)被适配到三种不同格式:
1. CLAUDE.md — Claude Code 项目级指令,放到项目根目录即生效
2. SKILL.md — Claude Code skill 格式,带 YAML frontmatter(name、description、license),可通过 /plugin 命令安装
3. Cursor rules (.mdc) — Cursor IDE 的项目规则格式
这种架构选择的 trade-off 很清晰: - 优势:零依赖、零运行时、零维护成本。一个 Markdown 文件就是全部,任何 LLM 都能理解和遵循 - 劣势:没有版本化验证机制,没有 metrics 来衡量准则的实际效果,没有自动化测试确保准则之间不矛盾
数据流¶
Karpathy 的 Twitter 观察 → 提炼为 4 条准则 → 多格式分发 → LLM 编码时作为 system/context 注入 → 影响输出质量
没有运行时数据流。这是一个纯静态的 prompt engineering 项目,通过改变 LLM 的 context 来改变行为。
2. 核心实现¶
CLAUDE.md 全文解读(CLAUDE.md)¶
整个文件只有 ~60 行,分为四个 section,每个 section 结构统一:标题 → 口号 → bullet points → 验证标准。
## 1. Think Before Coding
**Don't assume. Don't hide confusion. Surface tradeoffs.**
Before implementing:
- State your assumptions explicitly. If uncertain, ask.
- If multiple interpretations exist, present them - don't pick silently.
- If a simpler approach exists, say so. Push back when warranted.
- If something is unclear, stop. Name what's confusing. Ask.
关键设计: - 每条准则以一句加粗的 slogan 开头,便于 LLM 快速抓住要点(LLM 对加粗文本的注意力权重更高) - 使用祈使句("State"、"Present"、"Push back"、"Stop"),这是 prompt engineering 中已被验证有效的指令风格 - 最后一条准则附带验证模板(step → verify pattern),直接给 LLM 一个可执行的思维框架
SKILL.md 的 YAML Frontmatter(skills/karpathy-guidelines/SKILL.md)¶
---
name: karpathy-guidelines
description: Behavioral guidelines to reduce common LLM coding mistakes.
Use when writing, reviewing, or refactoring code to avoid overcomplication,
make surgical changes, surface assumptions, and define verifiable success criteria.
license: MIT
---
description 字段是 Claude Code 的 skill 匹配触发器——当用户的任务涉及"writing, reviewing, or refactoring code"时,Claude Code 会自动加载这个 skill。这个 description 的写法值得学习:它不描述 skill 是什么,而是描述什么时候该用。
Plugin 配置(.claude-plugin/plugin.json)¶
{
"name": "andrej-karpathy-skills",
"skills": ["./skills/karpathy-guidelines"]
}
skills 数组指向 skill 目录的相对路径。Claude Code 通过这个字段发现和加载 skill。
Marketplace 注册(.claude-plugin/marketplace.json)¶
{
"name": "karpathy-skills",
"plugins": [{
"name": "andrej-karpathy-skills",
"category": "workflow"
}]
}
category: "workflow" 将这个 skill 归类为工作流类而非工具类,这是一个准确的分类——它不提供新能力,只改变已有能力的使用方式。
3. 设计决策的 Trade-off 分析¶
决策一:纯文本 vs 代码实现¶
选择:全部用 Markdown 文本,没有任何代码逻辑。
Trade-off: - 选择文本意味着无法做运行时校验(比如"这次改动是否真的只涉及用户请求的代码") - 但 LLM 对自然语言指令的遵循能力已经足够好,代码实现的边际收益低 - 文本的另一个优势是跨模型通用——不依赖 Claude Code 特有的 API
为什么这是对的:Karpathy 说的核心问题是"behavior"而非"capability",用行为准则(文本)解决行为问题(behavior)是最直接的路径。
决策二:四条准则 vs 更细的规则集¶
选择:只有 4 条高层准则,没有细化为 20+ 条具体规则。
Trade-off: - 4 条准则占用 token 少(~500 tokens),不会挤占 coding context - 但抽象度高意味着 LLM 需要自行判断如何应用,可能因模型能力差异导致效果不一致 - 对比 OpenClaw 的 AGENTS.md,后者有几十条具体规则(heartbeat 间隔、回复格式、安全边界等),粒度差异明显
为什么这是对的:作为通用 skill,高抽象度保证了适用范围。细化规则应该由项目级的 CLAUDE.md 补充,而不是在一个通用 skill 里做。
决策三:"Goal-Driven Execution" 中的 step→verify 模式¶
选择:提供一个结构化的计划模板,强制每步附带验证条件。
1. [Step] → verify: [check]
2. [Step] → verify: [check]
Trade-off: - 强制验证增加了思考步骤,对简单任务来说可能过度 - 但 Karpathy 的核心洞察就是"LLM 擅长 loop until goal met",verify 条件就是 loop 的终止条件 - 这是整个 skill 中最有技术含量的设计决策——它不只是给 LLM 一个建议,而是给了一个可执行的算法模式
决策四:支持 Cursor 格式¶
选择:额外维护 .cursor/rules/karpathy-guidelines.mdc。
Trade-off: - 增加了维护负担(两份内容要同步) - 但 Cursor 和 Claude Code 是目前最主流的 AI coding 工具,覆盖两个平台 = 覆盖绝大多数用户 - .mdc 格式本质上也是 Markdown,内容完全相同,同步成本极低
4. 竞品对比¶
vs OpenClaw Skills(如 skill-creator)¶
| 维度 | andrej-karpathy-skills | OpenClaw skill-creator |
|---|---|---|
| 格式 | SKILL.md + YAML frontmatter | SKILL.md + YAML frontmatter |
| 内容 | 纯行为准则,无工具调用 | 包含工具调用指令(read/write/exec) |
| 触发机制 | description 字段语义匹配 | description + available_skills 列表 |
| 作用域 | 通用,跨项目 | 通用或项目级 |
| 复杂度 | ~60 行 | 通常 100-500 行 |
核心差异:OpenClaw 的 skill 是能力扩展(教 agent 做新事),而 karpathy-skills 是行为约束(约束 agent 的做事方式)。前者是 "how to do X",后者是 "how to think before doing anything"。
vs ClawHub 上的 skill¶
ClawHub 上的 skill(如 weather、openhue)都是工具型 skill——定义如何调用外部 API。karpathy-skills 没有任何工具调用,它是纯 prompt skill。
这说明 AI coding agent 的 skill 生态至少有两种范式: 1. Tool Skill:教 agent 使用新工具(API、CLI、设备) 2. Behavior Skill:改变 agent 的行为模式(编码风格、思考方式)
karpathy-skills 属于后者,且目前是这一类中最成功的例子(85k stars)。
vs Cursor Rules 社区规则¶
Cursor 社区有大量 rules(如 cursor.directory),但大多聚焦于特定技术栈(React、Python、Rust)。karpathy-skills 的独特性在于它是语言/框架无关的元规则——不管你用什么技术栈,这四条准则都适用。
5. 可借鉴模式¶
模式一:Slogan + Bullets + Verification 的三段式结构¶
## [Number]. [Slogan]
**[One-line motto]**
[Context]:
- [Action 1]
- [Action 2]
- [Action 3]
**The test:** [Verification criterion]
这个结构可以直接复用到任何行为约束类 prompt 中。关键要素: - Slogan:让 LLM 快速定位记忆锚点 - Bullets:具体可执行的行为指令 - Verification:让 LLM 能自我检查
模式二:Imperative → Declarative 任务转换¶
"Add validation" → "Write tests for invalid inputs, then make them pass"
这个模式不仅适用于 coding,任何 delegative task(给 agent 下任务)都可以用: - 不要说"帮我分析这个项目" - 要说"分析这个项目的架构、列出核心模块、给出可改进点,最终输出一份包含代码引用的报告"
把"做什么"变成"什么算做好了",这是让 LLM 自主 loop 的关键。
模式三:One File Distribution¶
同一个 Markdown 文件适配多个平台: - 放到项目根目录 → Claude Code 自动加载 - 包装成 SKILL.md → Claude Code plugin 安装 - 复制到 .cursor/rules/ → Cursor 自动加载 - 放到 .github/copilot-instructions.md → GitHub Copilot 加载
一次编写,四处生效。对于 prompt engineering 项目来说,这是最低成本的分发策略。
模式四:Caution over Speed 的显式声明¶
**Tradeoff:** These guidelines bias toward caution over speed. For trivial tasks, use judgment.
在 prompt 里显式声明 trade-off 是一种高级技巧——它让 LLM 知道什么时候该遵循规则、什么时候该灵活处理,避免了"规则太死导致简单任务也过度思考"的问题。
6. 质量评估¶
代码质量:N/A¶
这不是一个代码项目。评估对象是 prompt writing quality。
Prompt 质量:9/10¶
优点: - 极其精炼,60 行覆盖了 LLM 编码的核心痛点 - 每条准则都有明确的验证标准,不只是空泛的建议 - "Goal-Driven Execution" 的 step→verify 模式是原创性的、可操作的设计 - 显式声明了 trade-off(caution vs speed),体现了对边界条件的思考
扣分点: - 缺少具体的 bad/good 示例对比(只有原则没有 case) - 四条准则之间的优先级没有定义(当 Simplicity 和 Surgical Changes 冲突时怎么办?) - 没有 metrics 或评估方法——怎么知道准则真的起作用了?README 里只给了定性描述
实用性:10/10¶
85k stars 说明了一切。一个 curl 命令就能安装,零配置零依赖,效果立竿见影(至少在主观感受上)。这是 prompt engineering 项目能达到的最高实用性——安装成本为零,潜在收益极高。
创新性:7/10¶
核心洞察来自 Karpathy,作者的贡献是提炼 + 分发。创新不在于内容本身,而在于: - 识别出这四条准则恰好覆盖了 Karpathy 描述的四个痛点 - 设计了跨平台的分发机制 - 用 slogan + verification 的结构让准则可执行
总评¶
这是一个"少即是多"的典范。85k stars 的项目,核心文件只有 60 行 Markdown,没有一行代码。它证明了在 AI agent 时代,最有价值的东西可能不是代码,而是对行为模式的精确描述。
对于 mufans 来说,这个项目最大的启发是:如果你在 AI Agent 领域找差异化定位,行为准则类 skill 是一个被验证有需求但供给不足的方向。大多数人都在做"教 agent 用新工具",很少有人在做"教 agent 怎么思考"。