AI Deep Dive

Karpathy CLAUDE.md Rules + 8 More: The 12-Rule Template Tested Across 30 Codebases

Karpathy's January 2026 complaint became a 4-rule CLAUDE.md file. The repo hit 120K stars. After six weeks of testing across 30 codebases, @mnilax added 8 more rules — cutting Claude's mistake rate from 41% to 3%. Here's the full template, the gaps it closes, and what it means for Antigravity users running GEMINI.md.

2026 年 1 月下旬:Andrej Karpathy 在 X 上发帖吐槽 Claude 写代码的方式。总结了三种失败模式 — 隐蔽的错误假设、过度复杂化、以及对本不该触碰的代码造成“正交损伤”。Forrest Chang 读完帖子后,将这些吐槽整理成 4 条行为准则,放在一个 CLAUDE.md 文件中,并发布到了 GitHub。 第一天获得 5,828 个 star。两周内获得 60,000 个书签。到 2026 年中期,star 数达到 120,000 个。 这是年度增长最快的单文件仓库。2026 年 5 月 9 日,一位认证开发者,账号名为 @mnilax (Mnimiy) 在 X 上发布了一篇长文,提出了当年最犀利的工程观点之一:他们在 6 周内针对 30 个代码库测试了该模板,随后又增加了 8 条规则来弥补不足。该文获得了 270 万次浏览和 18,800 个书签。以下是详细拆解 — 以及如果你在 Antigravity(或任何其他 agent IDE)中配合 GEMINI.md or AGENTS.md 文件运行 Claude 时的意义。

Get the latest on AI, LLMs & developer tools

New MCP servers, model updates, and guides like this one — delivered weekly.

本文剖析的 @mnilax 原始 X 帖子 — 270万浏览,1.88万收藏,2026 年 5 月 9 日。

1. 爆火时刻

Karpathy's 最初的推文并非指导性的,而是一种吐槽 — 就像资深工程师在经历了一个糟糕的下午后会发的那种。他指出了三种具体的失败模式:

  1. 隐蔽的错误假设。 Claude 推测你的意图,基于错误的推论进行构建,且从不告知你。
  2. 过度复杂化。 Claude 倾向于使用抽象、分层和通用辅助函数。原本 4 行代码就能搞定的修复变成了 40 行。
  3. 正交损伤。 Claude "改进"了它本不该触碰的代码 — 包括空格、命名、格式,以及未被要求的相邻函数。

Forrest Chang 读了这篇推文,并完成了别人没做的工作:他写下了 Karpathy 隐含的要求。四条简短的指令式规则。一个文件。65 行。公开仓库。节奏感很重要 — Forrest 没有添加评论,没有将其变成框架,也没有变现。只有规则。

这触动了人们的神经。每天都在与 Claude 较劲的开发者们突然有了一个一行式安装方案:将此文件粘贴到仓库根目录。数据说明了一切 — 一个没有任何代码的文件获得了 120,000 个 star。直到今天,大多数开发者仍然只运行这四条规则。

2. 原始的 4 条规则(Karpathy 提出,Forrest Chang 整理)

这是基础 — 规则的原始版本。如果你现在还没有 CLAUDE.md,请从这些开始:

规则 1 — 编码前先思考。 不要进行无声的假设。陈述你的假设。明确权衡利弊。在猜测之前先询问。如果存在更简单的方法,请提出异议。

规则 2 — 简单至上。 用最少的代码解决问题。不要添加投机性的功能。不要为单次使用的代码进行抽象。如果资深工程师认为它过于复杂,请简化。

规则 3 — 精确修改。 只触碰必须修改的部分。不要"改进"相邻的代码、注释或格式。不要重构没有损坏的部分。保持与现有风格一致。

规则 4 — 目标驱动执行。 Define success criteria. Loop until verified. Don't tell Claude what steps to follow; tell it what success looks like and let it iterate.

Mnimiy's 的数据:这四条规则解决了 无人值守的 Claude Code 会话中约 40% 的失败模式。剩下的约 60% 存在于原始模板未涵盖的空白中。

3. 为什么需要扩展

该模板编写于 2026 年 1 月。2026 年 5 月的 Claude Code 生态系统已截然不同。文章指出了原有的 4 条规则未涵盖的 1 月之后的四个现实情况:

  • Agent 冲突。 在多 Agent 设置中,两个 Agent 编辑同一个文件并互相干扰。Karpathy's 的规则假设的是单个自动补全循环。真实的 多 Agent 编排 需要所有权规则。
  • Hook 级联。 Claude Code 的 hook 在每次工具调用时都会触发。如果没有预算限制,一个啰嗦的 hook 会将 200 token 的请求变成 8,000 token。
  • 技能加载冲突。 多个 技能 描述重叠的技能会使基于描述匹配的分发器产生混淆。原始模板中没有关于如何消除歧义的内容。
  • 多步工作流。 一个包含 6 个步骤的重构如果在第 4 步出错,意味着第 5 步和第 6 步将建立在错误的状态之上。原始模板将 Claude 的每一次轮次都视为 one-shot。

Mnimiy's 的论点: 最初的 4 条是基础性的,并没有错,但它们是不完整的。

4. 8 条新规则(每条都附带其产生的契机)

每一条规则都源于对 30 个代码库研究中的特定事件。文章先展示契机,再引出规则。以下是相同的结构,但经过了精简。

规则 5 — 不要让模型执行非语言类工作

确定性的决策应当由确定性的代码来完成。重试策略、路由、升级阈值等 — 而非通过 LLM 调用。模型的决策每周都在变化。

契机: 一个 "decide whether to retry on 503" 的 LLM 调用正常运行了两周,随后开始出现故障,因为模型开始将请求体作为决策上下文。由于 prompt 实际上变得随机,重试策略也随之变得随机。

规则 6 — 严格的 token 预算,绝无例外

每一个循环都有可能演变成 50,000-token 的上下文堆积。模型不会自动停止。预算为你提供了一个硬性的底线。

契机: 一个长达 90 分钟的调试过程,一直在处理同一个 8KB 的错误消息。到最后,Claude 建议的修复方案竟然是用户在 40 条消息前就已经拒绝过的。如果设置了 token 预算,这个循环在第 12 分钟就会被终止。

规则 7 — 暴露冲突,而非折中处理

当代码库的两个部分存在冲突时,Claude 会试图同时满足两者。结果就是产生不连贯的代码,它结合了两种模式,但在任何一种模式下都无法正常工作。

契机: 一个代码库有两种错误处理模式 — 使用 try/catch 的 async/await 和全局错误边界。Claude 写的代码同时用了这两种。错误被吞掉了两次。花了 30 分钟才查出来。

规则 8 — 先读后写

Karpathy 的 "Surgical Changes" 告诉 Claude 不要触碰相邻的代码。但它没告诉 Claude 要理解相邻的代码。如果不加上这一点,Claude 写的代码可能会与 30 行之外的现有代码发生冲突。

那个瞬间: Claude added a function next to an existing identical function it hadn't read. The new one won by import order. The original had been the source of truth for 6 months.

规则 9 — 测试不是可选的,但也不是终极目标

目标驱动执行(Goal-Driven Execution)将“测试通过”视为成功。但在实践中,Claude 写的代码可能通过了浅层测试,却破坏了生产环境的行为。

那个瞬间: 一个身份验证函数有 12 个测试,全部通过,但生产环境中的身份验证却挂了。测试只检查了函数是否返回了 某些内容,而不是它是否返回了正确的内容。函数通过测试是因为它返回了一个常量。

规则 10 — 长时间运行的操作需要检查点

原始模板假设的是单次交互。实际的 Claude Code 工作是多步骤的 — 跨越 20 个文件的重构、一个会话中的功能开发、跨提交的调试。如果没有检查点,一步走错就会前功尽弃。

那个瞬间: 一个包含 6 个步骤的重构在第 4 步出了问题。Claude 在错误的状态下继续执行了第 5 步和第 6 步。理清这些混乱所花的时间比重新做一遍重构还要长。

规则 11 — 惯例优于创新

在一个已有既定模式的代码库中,Claude 喜欢引入自己的模式。即使它的方式“更好”,引入第二种模式也比只使用其中任何一种模式更糟糕。

那个瞬间: Claude 在一个类组件(class-component)代码库中引入了 React hooks。Hooks 运行正常,但它们破坏了代码库的测试模式,因为这些模式假设了 componentDidMount。花了半天时间才移除并重写。

规则 12 — 显式失败,而非静默失败

最代价高昂的 Claude 失败往往伪装成成功。一个函数 "运行正常" 但返回了错误数据;一次迁移 "已完成" 但跳过了 30 条记录;一个测试 "通过" 但断言逻辑是错误的。

典型案例: Claude 报告数据库迁移 "成功完成"。但它静默地跳过了 14% 违反约束条件的记录。跳过操作被记录在日志中但未被显现。直到 11 天后报表数据出现异常才被发现。

5. 数据统计

Mnimiy 在 6 周内追踪了 30 个代码库中的 50 个代表性任务,并对比了三种配置:无 CLAUDE.md、原始 4 条规则、完整 12 条规则。错误率是指需要修正或重写以符合意图的任务占比 — 统计涵盖了七种不同的失败类型(静默错误假设、过度工程、正交破坏、静默失败、违反约定、冲突平均化、遗漏检查点)。

30 个代码库、50 个任务、6 周的测试结果

无 CLAUDE.md:    错误率 ~41%,无基准合规性
4 条规则:           错误率 ~11%,合规率 78%
12 条规则:          错误率 ~3%,  合规率 76%

核心指标的下降(41% → 3%)是显而易见的结果。而 有趣的 结果是,从 4 条规则增加到 12 条 几乎没有增加合规开销 (78% → 76%),同时将错误率又降低了 8 个百分点。新规则涵盖了原始 4 条规则未涉及的失败模式 — 它们不会争夺相同的注意力预算。

这是超越 4 条规则的实证案例。如果增加规则会成比例地牺牲合规性,你可能会止步于 4 条。但事实并非如此。

6. 原始模板在何处静默失效

Karpathy's 4 条规则不足以应对的四个场景 — 甚至在添加新规则之前。文章明确指出,原版规则并没有错,它针对的是 January 2026's 的问题空间:

  1. 长期运行的 Agent 任务。 这些规则针对的是 Claude 编写代码的时刻。它们对多步流水线保持沉默。没有 budget 规则。没有 checkpoint 规则。没有 fail-loud 规则。流水线会发生偏移。
  2. 多代码库一致性。 "Match existing style" 假设只有一种风格。在一个拥有 12 个服务的 monorepo 中,Claude 必须选择哪种风格。原始规则没有告诉它如何选择。它会随机选择或取平均值。
  3. 测试质量。 Goal-Driven Execution 将 "tests pass" 视为成功。它没有规定测试必须有意义。结果就是测试了一些毫无用处的东西,却让 Claude 信心满满。
  4. 生产环境 vs 原型。 保护生产代码免受 over-engineering 困扰的这 4 条规则,同样也会拖慢原型的进度,而原型确实需要 100 行推测性的 scaffolding 代码来确定方向。"Simplicity First" 在早期代码阶段会 overfires。

7. 哪些行不通(失败的实验)

这可能是文章中最有用的部分 — 不是那些最终入选的规则,而是那些明确被排除的模式:

  • 从社交媒体收集的规则。 大多数规则要么是用不同措辞对 Karpathy's 4 的重述,要么是无法推广的特定领域规则("always use Tailwind classes")。删掉。
  • 超过 14 条规则。 Mnimiy 测试了多达 18 条。超过 14 条后,合规率从 76% 下降到 52%。Anthropic 文档中提到的 200 行上限是真实存在的 — 超过这个限制,Claude 只会进行 pattern-matches 以确认 "rules exist",而不会真正阅读它们。
  • 依赖工具的规则。 当没有安装 eslint 时,"Always use eslint" 会静默失败。取而代之的是与能力无关的表述:"match the codebase's enforced style"。
  • 用示例代替规则。 三个示例消耗的上下文与约 10 条规则相当,而且 Claude 会对它们产生 over-fits。规则是抽象的,示例是具体的。请使用规则。
  • 模糊的修饰词。 "小心点"、"努力思考"、"保持专注"。执行率仅约 30%,因为这些指令都无法量化测试。应替换为具体的祈使句,例如"明确陈述假设"。
  • 身份提示词。 告诉 Claude 要表现得像个"资深工程师"并没用。Claude 已经自认为很资深了。执行力的差距在于"认知"与"行动"之间。祈使句能弥补这一差距,而身份提示词做不到。

8. 心智模型

剥离文章的冗余,只保留最核心的一句话,就是:

CLAUDE.md 不是愿望清单。它是一份行为契约,旨在消除你观察到的特定失败模式。

每条规则都应该回答: 这能防止什么错误?

这改变了看待问题的方式。大多数开发者将 CLAUDE.md 视为个人偏好文件 — 一个随时间不断增加的风格喜好列表。文章认为,偏好文件的形式是错误的。正确的形式应该是你实际遇到的失败模式列表,针对每种模式制定一条规则。

这也解释了为什么文章以一个违反直觉的建议结尾:

一个针对真实失败模式调优的 6 条规则的 CLAUDE.md,优于一个包含 6 条冗余规则的 12 条规则的文件。

不要因为 X 上有人推荐就盲目粘贴全部 12 条。阅读它们,保留那些能解决你实际犯过错误的规则,其余的全部删掉。

9. 将其映射到 Antigravity (GEMINI.md / AGENTS.md)

虽然文章侧重于 Claude,但这种抽象逻辑是通用的。Antigravity 会从两个相同形式的文件中读取流程规则:

  • GEMINI.md — Gemini 特有的系统提示词文件。查看我们的 GEMINI.md 指南
  • AGENTS.md — 跨工具格式(适用于 Claude Code, Cursor, Antigravity)。查看我们的 AGENTS.md 指南.

两者都是建议性而非强制性的,上限都在 200 行左右,超过后遵循度会下降,且都遵循相同的 "陈述规则、不举例、不使用模糊修饰语" 准则。这 12 条规则基本上可以无缝迁移。针对 Antigravity 的特定考量:

  1. 规则 6(token 预算)变得至关重要,不再是可选项。 Antigravity 的配额消耗比 Claude Code 更快。请将此规则与我们的 token 削减指南.
  2. 规则 10(检查点)对应 Antigravity's Agent Manager。 如果多智能体运行在第 4 步出错,你会希望能够终止该智能体并从之前的 artifact 恢复,而不是从头开始。
  3. 规则 7(暴露冲突)有助于模型切换。 如果你在会话中途在 Gemini 和 Claude Opus 之间切换(正如我们的 模型切换分析)中所述,新模型通常会继承旧模型的陈旧上下文,并尝试调和不兼容的模式。
  4. 规则 12(显式失败)是 Autopilot 中最被低估的一项。 如果你运行 auto-accept,静默失败会在你察觉之前,在多次 Cmd-Enter 循环中不断累积。强制智能体显式展示每一个跳过的步骤。

同样的模板,不同的运行时,同样的逻辑。

Get the latest on AI, LLMs & developer tools

New MCP servers, model updates, and guides like this one — delivered weekly.

10. 完整的 12 条规则模板(可直接复制使用)

将此保存为 CLAUDE.md (或 GEMINI.mdAGENTS.md) 位于你的仓库根目录。原文章指出:请将总文件大小保持在 200 行以内(包括下方任何项目特定的补充内容),超过这个限制后,遵循度会大幅下降。

# Coding Behavior Contract (12 Rules) ## Core (Karpathy via Forrest Chang) 1. Think before coding. State your assumptions. Surface tradeoffs. Ask before guessing. Push back when a simpler approach exists. 2. Simplicity first. Minimum code that solves the problem. No speculative features. No abstractions for single-use code. 3. Surgical changes. Touch only what is asked. Do not "improve" adjacent code, comments, or formatting. Match existing style. 4. Goal-driven execution. Define success criteria. Loop until verified. Do not narrate steps; tell me what success looks like. ## Extended (Mnimiy, May 2026) 5. Do not make the model do non-language work. Retry policies, routing, escalation thresholds belong in deterministic code. 6. Hard token budgets, no exceptions. Stop and ask if a task is trending past its budget. 7. Surface conflicts, do not average them. If two parts of the codebase disagree, flag the disagreement and ask which to follow. 8. Read before you write. Understand adjacent code (the file and nearby siblings) before adding new code. 9. Tests are required but are not the goal. A passing test that tests nothing useful is a failure. Tests must check behavior. 10. Long-running operations require checkpoints. After every significant step, summarize what was done and confirm before proceeding. 11. Convention beats novelty. In an established codebase, match the existing pattern even if a "better" one exists. 12. Fail visibly, not silently. Surface every skipped record, every rolled-back transaction, every constraint violation. Never report success when something was bypassed. ## Project-specific rules below this line # (Add stack, test commands, error patterns specific to this repo.) # Total file should stay under 200 lines.

这就是那个文件。你需要对它做两件事:

  1. 诚实地阅读这 12 条规则。 哪些规则对应你本月实际犯过的错误?保留这些,删掉其余的。一个针对你的错误模式定制的 6 条规则文件,效果远好于一个包含你永远不会触发的规则的 12 条规则文件。
  2. 在下方追加项目特定的规则。 Stack-specific ("always use the Repository pattern"), test-runner ("run pnpm test:unit before reporting done"), error patterns. Keep the total under 200 lines.

11. FAQ

什么是 CLAUDE.md 12 条规则模板?

它是对 Forrest Chang 基于 Andrej Karpathy 在 2026 年 1 月关于 Claude 失败模式的推文所构建的 4 条 CLAUDE.md 规则文件的扩展。Mnimiy (@mnilax) 在 30 个代码库中对原版进行了为期 6 周的测试,并于 2026 年 5 月发布了额外的 8 条规则,以涵盖原版编写后出现的问题——智能体冲突 (agent fights)、钩子级联 (hook cascades)、技能加载冲突以及多步工作流漂移。

谁是 Karpathy?又是谁封装了原始的 4 条规则?

Andrej Karpathy 是著名的 AI 研究员(曾任职于 Tesla 和 OpenAI)。他在 2026 年 1 月底发布了一系列推文,列举了他在 Claude 代码生成中经常看到的三个失败模式:隐性错误假设、过度复杂化和正交破坏。Forrest Chang 阅读了这些推文,将这些抱怨整理成一个 CLAUDE.md 文件中的 4 条行为准则,并将其发布在 GitHub 上。该仓库在第一天就获得了 5,828 颗星,到 2026 年中期已达到 120,000 颗星 —— 成为当年增长最快的单文件仓库。

这些规则究竟能在多大程度上减少错误?

Mnimiy 对 30 个代码库和 50 个代表性任务进行了测量:在没有 CLAUDE.md 的情况下,错误率约为 41%。使用原始的 4 条规则后,错误率降至约 11%。而使用完整的 12 条规则后,错误率仅为约 3%。遵循率(Compliance)—— 即 Claude 显式应用相关规则的频率 —— 在 4 条和 12 条规则之间基本保持持平(78% → 76%),这表明新规则涵盖了原始 4 条规则未解决的失败模式,而不是在争夺同样的注意力预算。

这是否适用于 Antigravity?毕竟 Antigravity 使用的是 Gemini 而不是 Claude。

是的。Antigravity 以同样的形式从 AGENTS.md 和 GEMINI.md 文件中读取程序规则:位于仓库根目录的 Markdown 文件,是建议性的而非强制性的,在遵循率下降前上限约为 200 行。这 12 条规则几乎可以逐字迁移。我们在下方链接的 Antigravity AGENTS.md 和 GEMINI.md 指南中介绍了实际的映射方法。

为什么是 12 条规则,而不是更多?

Mnimiy 测试了多达 18 条规则。超过 14 条后,遵循率从 76% 骤降至 52%。Anthropic 文档中提到的 200 行上限是真实存在的:超过这个限制,Claude 就会开始对“规则存在”进行模式匹配,而不再实际阅读它们。该模板的约束力在于保持足够精简,确保每条规则在每次会话中都能被读取。

我应该使用全部 12 条规则,还是只选择其中一部分?

挑选使用。文章明确指出:“一个针对你实际失败模式调整的 6 规则 CLAUDE.md,优于一个包含 6 条你永远不需要的规则的 12 规则版本。”阅读这 12 条规则,保留那些对应你实际犯过错误的规则,删掉其余的。如果你不运行多步流水线,规则 10(checkpoints

Where does the original Karpathy template silently break?

Mnimiy identifies four gaps: (1) long-running agent tasks — no budget, no checkpoint, no fail-loud rules; (2) multi-codebase consistency — 'match existing style' assumes one style, fails in monorepos with multiple services; (3) test quality — 'tests pass' as the only goal means Claude writes tests that test nothing; (4) production vs prototype — 'Simplicity First' overfires on early-stage code that legitimately needs speculative scaffolding.

What approaches did Mnimiy try that didn't work?

Five things failed: (1) collecting rules from social media — mostly restatements or non-generalizable; (2) more than 14 rules — compliance crash; (3) tooling-dependent rules like 'always use eslint' — fails silently when tool is missing; (4) examples instead of rules — heavier, model over-fits; (5) vague rules like 'be careful' or 'think hard' — compliance ~30% because they're not testable; (6) identity prompts like 'act like a senior engineer' — Claude already thinks it's senior. Imperative rules close the gap; identity prompts don't.

获取 12 条规则的 CLAUDE.md / GEMINI.md / AGENTS.md 模板包

下载完整模板以及三个预调优变体 — 适用于独立开发者、monorepo 团队和 Antigravity Autopilot 用户。包含即插即用的 CLAUDE.md、GEMINI.md 和 AGENTS.md 文件,以及规则选择工作表。

    We respect your privacy. Unsubscribe at any time.

    Sponsored AI assistant. Recommendations may be paid.