2026年7月2日 周四晚上19:30,报名腾讯会议了解“如何构建自进化的动态知识库(Brain)”(限30人)
免费POC, 零成本试错
FDE知识库

FDE知识库

学习大模型的前沿技术与行业落地应用


收藏

网传 Karpathy 的 CLAUDE.md 曝光,10条铁律管住Claude Code!

发布日期:2026-06-30 07:12:08 浏览次数: 1520
作者:两克伴

微信搜一搜,关注“两克伴”

推荐语

一份疑似来自AI大牛Karpathy的Claude Code内部配置清单,10条铁律直击AI编程助手最常见的翻车现场。

核心内容:
1. 网传Karpathy配置文件的10条核心规则解析
2. 从4条到10条:规则从“防乱写”到“促自检”的演进
3. 如何将这些工程化约束应用到自己的项目中

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家


这两天有一份 CLAUDE.md 文件在 X 上流传,据说是 Andrej Karpathy 加入 Anthropic 之后,在内部使用的 Claude Code 使用配置。

目前为止,这个出处没有公开确认,Karpathy 本人也没认领。

但这份配置文件还是值得一看。

里面的 10 条规则,基本都不是“请你写出高质量代码”这种空话。

它写的是 Claude Code 在真实项目里最容易出问题的地方:没读代码就开写、顺手重构、过度抽象、乱加依赖、没有复现就修 bug、觉得自己修好了但没跑测试。

这些问题,只要你稍微多用几次 Claude Code,大概率都见过。

八卦先放一边。

这份东西最有用的地方,是可以拆开抄进自己的 Claude Code 项目配置。

先看完整 10 条。

规则
管什么
Read Before You Write
改代码前先读现有代码、相似实现、imports 和测试
Think Before You Code
写之前先说假设,模糊就停下来问
Simplicity
只写解决当前问题所需的最小代码
Surgical Changes
只改任务相关代码,不顺手重构、不顺手格式化
Verification
通过测试和验证证明代码真的工作
Goal-Driven Execution
开始前先定义可验证的完成标准
Debugging
先读错误、先复现、一次只改一个变量
Dependencies
新增依赖前先想清楚,并说明理由
Communication
说清楚改了什么、为什么、不确定什么
Common Failure Modes
识别大杂烩、错误抽象、乐观路径、知识幻觉、失控重构等模式

只看这个表,也能看出这份 CLAUDE.md 的底色:少一点自作主张,多一点工程约束。

从 4 条到 10 条,变化不只是变长了

这次流传的版本,和之前社区里已经传播过的 Karpathy 风格 CLAUDE.md 有一个明显区别:之前常见的是 4 条规则,现在这份截图里变成了 10 条。

之前那 4 条规则,大致解决的是 Claude Code 在“写代码前”和“写代码时”的问题:写之前先想清楚,不要猜;保持简单,不要过度设计;小范围修改,不要顺手重构;先定义完成标准,不要边做边想。

这 4 条规则已经很有用。很多 Claude Code 的失败,不是模型写不出来,而是它太快开始写。

但这次新增的 6 条,方向明显不一样。

它开始管代码写完之后的事情:怎么验证,怎么调试,怎么处理依赖,怎么沟通不确定性,怎么识别自己正在进入哪种失败模式。

旧版 4 条规则,是让 Claude Code 少乱写。新版 10 条规则,是让 Claude Code 开始自检。

这个变化很关键。

因为我们现在用 Claude Code,通常不是让它回一段代码就结束。它会读文件、改文件、跑测试、修报错,再继续迭代。任务越长,光要求它“写得好”越不够,还要让它知道什么时候验证,什么时候停,什么时候问。

这就是这份 10 条规则最值得看的地方。

别把 CLAUDE.md 写成许愿池

很多人写 CLAUDE.md,容易写成一堆愿望:

“你是一个资深工程师。”

“请写出高质量代码。”

“请遵循最佳实践。”

这些话不是完全没用,但太软了。

Claude Code 缺的不是鼓励。它缺的是边界。

好的 CLAUDE.md,应该把这些边界写清楚:动手前先读什么,遇到模糊需求怎么处理,哪些改动不能顺手做,修 bug 前要先证明什么,引入依赖前要问什么,范围扩大时什么时候必须停。

这份配置文件比较好的地方,就是它不写愿望,写约束。

它不说“请你遵循最佳实践”,而是直接说:先读文件,别乱改,别重构无关代码,先复现再修,新增依赖要说明理由。

下面按使用场景拆成 4 类。英文只摘截图里能看清、也值得复用的句子,不做完整搬运。

第一类:开工前,先阻止它凭感觉开写

这里对应的是 Read Before You WriteThink Before You Code 和 Goal-Driven Execution。这三条适合放在 CLAUDE.md 的最前面。

因为 Claude Code 最常见的第一反应,就是看到任务以后,立刻在训练数据里找一个相似模式,然后开始生成。

但真实项目不是面试题。真实项目有自己的目录结构、已有工具函数、测试习惯、命名风格、历史包袱。它没有读进去,就很容易写出一段“单独看没问题,放进项目里很奇怪”的代码。

截图里有一句话特别值得保留:

Read the files you're about to modify. Not skim. Read.

这句话很狠,也很适合放在第一条。

不是“浏览一下”,不是“看一眼”,是读。它管的是 Claude Code 的第一步:不要先写,先进入项目语境。

同一条规则里还有几个动作也很实用:

Look at how similar things are done elsewhere in the project.

Check the imports at the top of the file.

Look at the test files.

这几句放在一起,就是一个开工前检查清单:

先看相关文件,再看类似实现,再看项目已经在用什么库,再看测试怎么定义预期行为。

我建议你把这类句子放进所有项目的 CLAUDE.md。尤其是老项目、团队项目、或者已经有固定代码风格的项目。

第二条 Think Before You Code,管的是需求不清楚时不要猜。

截图里有一句很典型:

State your assumptions.

还有一句更关键:

If something is confusing, stop.

这就是很多人用 Claude Code 时最容易忽略的地方。

我们总是希望它快点动手。但在真实项目里,快不一定是好事。尤其是“加认证”“优化性能”“补一个校验”这种需求,背后可能有很多实现路径。

Claude Code 如果悄悄选了一个方案,后面就会把这个方案一路执行到底。等你发现方向不对,可能已经多改了十几个文件。

所以这条规则的价值,是让它先把隐含假设说出来。

第三条 Goal-Driven Execution,我认为是整份文件里最值得抄的一条。

它要求每个任务在开始前都要有清楚的成功标准。

截图里的表达很直接:

Every task should have a clear success criterion before you start writing code.

它还给了几个转换例子,比如把“Add validation”变成更具体的结果:哪些输入要被拒绝,返回什么错误,哪些测试要通过。

这才是 Claude Code 能稳定工作的前提。

因为“修一下 bug”“优化一下体验”“加个校验”这种话,人能靠经验补上下文,但模型很容易补错。你必须把“完成”定义成机器能验证的状态。

这一类规则,我建议在 CLAUDE.md 里这样保留原意:

## Before Writing Code

-
 Read the files you're about to modify. Not skim. Read.
-
 Look at how similar things are done elsewhere in the project.
-
 Check the imports at the top of the file.
-
 Look at the test files.
-
 State your assumptions before coding.
-
 If something is confusing, stop and ask.
-
 Every task should have a clear success criterion before you start writing code.

这段不花哨,但很管用。它会让 Claude Code 慢半拍。

对 AI 编程来说,很多时候慢半拍就是质量。

第二类:修改中,防止它把小任务做大

这里对应的是 SimplicitySurgical Changes 和 Dependencies。这三条规则,适合放在所有生产项目里。

Claude Code 很容易有一个倾向:为了把答案写完整,它会把问题做大。

你让它补一个函数,它可能抽一个服务类。你让它修一个边界条件,它可能顺手调整几个相邻模块。你让它处理一个日期格式,它可能加一个新依赖。

看起来积极,实际上危险。

截图里的 Simplicity 写得很直接:

Write the minimum amount of code that solves the problem.

后面还有一个判断标准也很值得记住:

"In case we need to" is not a requirement.

这句话我很喜欢。

很多 AI 写出来的过度设计,本质上都在回应一个未来可能存在的问题。但真实工程里,“以后可能需要”通常不是需求,只是猜测。

如果现在只需要发一封欢迎邮件,就不要先抽象出一套 EmailService、provider、template engine、retry policy。原文里的例子就是这个意思。

Surgical Changes 管的是另一个问题:不要顺手改。

截图里有几句非常适合直接抄:

Don't touch what you weren't asked to touch.

Match the existing style.

Clean up after yourself, not after others.

Don't reformat.

这几句话可以救很多代码评审。

AI 很喜欢“顺手”。顺手改命名,顺手调 import,顺手格式化,顺手把旧写法现代化。问题是,这些顺手修改会把 diff 变脏,让真正的改动被淹没。

所以这条规则不是反对你把代码改好。

它反对的是顺手改。

当前任务没有要求的变量名、import 顺序、格式化风格、旧代码清理,都先别碰。

原文还有一个非常好的 diff 检查:

Can you justify every single changed line?

这句话建议放进 CLAUDE.md。每一行改动都要能解释它和当前任务的关系。解释不了,就不应该出现。

再看 Dependencies

截图里这条规则的基本立场是:

Don't add dependencies without thinking about it.

它还提醒,每个新增依赖都是你不能控制、但会永久进入项目的代码。

这句话对 Claude Code 尤其重要。因为模型很容易为了省事加包。一个日期格式化、一个 UUID、一个简单 map 操作,它都可能联想到某个库。

但项目真正的成本不只是一行 package.json。还有维护、安全、体积、团队理解成本,以及未来升级时的兼容问题。

这一类规则,可以整理成这样:

## Keep Changes Small

-
 Write the minimum amount of code that solves the problem.
-
 "In case we need to" is not a requirement.
-
 Don't touch what you weren't asked to touch.
-
 Match the existing style.
-
 Clean up after yourself, not after others.
-
 Don't reformat.
-
 Can you justify every single changed line?
-
 Don't add dependencies without thinking about it.

这段适合所有“让 Claude Code 改现有代码”的场景,尤其是小修小改。它管的不是能力,是手别太长。

第三类:出错后,防止它自信瞎修

这里对应的是 Verification 和 Debugging。如果只能从这份文件里选两条放进自己的项目,我会优先选这两条。

因为 AI 修 bug 时,最危险的句子往往是:this should fix it

看起来像修好了,实际上没有证据。

Verification 这条规则开头就把这个差异说清楚了:

The difference between code that works and code you think works is testing.

后面还有一句更硬:

Write the test first when fixing bugs.

这里不是在推崇某种测试流派。

它只是给 Claude Code 加了一个很硬的约束:修 bug 之前,先证明 bug 存在。

如果它不能复现问题,就很容易修症状,而不是修原因。

截图里还有一条我建议保留:

Run existing tests before and after your changes.

这句话非常适合真实项目。

因为有时候测试本来就失败。如果 Claude Code 没有先跑一遍,它后面就分不清哪些失败是自己造成的,哪些是历史问题。最后总结时一句“测试失败”,你也不知道该怪谁。

Debugging 这条规则更像一套调试流程。

截图里几个关键动作是:

Read the error message.

Reproduce first.

Change one thing at a time.

Don't add workarounds without understanding the root cause.

这些句子都很朴素,但正好克制了 Claude Code 最容易犯的错:看到一个报错类型,就立刻生成一个看似合理的修复。

真实调试要先读完整错误和堆栈,要复现,要一次只改一个变量。

否则 bug 消失了,你也不知道是哪一处改动让它消失的。更麻烦的是,其他改动可能又埋了新问题。

这一类规则可以这样放:

## Debugging And Verification

-
 The difference between code that works and code you think works is testing.
-
 Write the test first when fixing bugs.
-
 Run existing tests before and after your changes.
-
 Read the error message.
-
 Reproduce first.
-
 Change one thing at a time.
-
 Don't add workarounds without understanding the root cause.

这段特别适合放在有测试体系的项目里。

如果项目测试很少,也不是没用。至少可以要求 Claude Code 提供最小复现、手动验证步骤,或者说明为什么暂时无法写测试。

重点就一句:不要让“感觉修好了”成为交付标准。

第四类:长任务中,让它知道什么时候该停

这里对应的是 CommunicationCommon Failure Modes,还有强化后的 Goal-Driven Execution。这部分是新版 10 条里最有进阶感的地方。

前面几条规则管的是怎么写。

这一类规则更狠一点:它管什么时候不能继续写。

Communication 里面有几句很适合放进配置:

Say what you did and why.

Flag concerns.

Be precise about what you're uncertain about.

这三句解决的是 Claude Code 交付时的沟通质量。

我不需要它写一大段“本次实现遵循了最佳实践”。我需要它告诉我:改了什么,为什么这样改,哪里还有不确定,哪些风险需要我知道。

尤其是不确定性。

原文里有个判断很实用:说“我不确定这个库是否支持 streaming”是有用信息;说“我觉得应该能工作”没什么用。

前者告诉人应该验证什么。后者只是安慰。

Common Failure Modes 是整份文件里最像“自检协议”的部分。

它把常见失败模式直接命名了:Kitchen SinkWrong AbstractionInvisible DecisionOptimistic PathKnowledge HallucinationStyle DriftRunaway Refactor

这些名字很重要。模式有了名字,就可以被写进停止条件。

比如 Kitchen Sink,就是让它做一件事,它顺手做了一堆事。

Wrong Abstraction,就是为了一个只出现一次的问题,做出一套漂亮但多余的抽象。

Invisible Decision,是它悄悄做了架构选择,比如数据库结构、API 形状、认证策略,但没有告诉你这是一个需要确认的决策。

Optimistic Path,是代码只处理 happy path,不管空输入、接口 500、文件不存在、用户乱填。

Knowledge Hallucination,是它自信地调用一个不存在的 API,或者使用一个早就被移除的参数。

Style Drift,是它写出自己偏好的风格,而不是当前项目的风格。

Runaway Refactor,是最危险的一种:修一个点,牵出另一个点,再牵出第三个点,最后改了十几个文件,已经忘了最开始要解决什么。

这类规则适合写成停止条件:

## Communication And Stop Conditions

-
 Say what you did and why.
-
 Flag concerns.
-
 Be precise about what you're uncertain about.
-
 If you notice a common failure mode, stop and reconsider.
-
 Watch for: Kitchen Sink, Wrong Abstraction, Invisible Decision, Optimistic Path, Knowledge Hallucination, Style Drift, Runaway Refactor.

这段尤其适合长任务。

比如你让 Claude Code 连续修测试、补实现、跑验证,或者配合 /goal 做目标驱动执行时,最需要的不是让它一路狂奔,而是让它在发现范围扩大时停下来。

能一直继续不稀奇。

知道什么时候该停,才是长任务里更稀缺的能力。

如果你只想抄作业,可以先抄这一版

下面这份是简化版。

不是原文件完整翻译,也不是我重新写的一套规则。它只保留原文件里最适合直接放进项目配置的句子。

你可以先复制进去,再根据项目实际情况增删。

# CLAUDE.md

## Before Writing Code


-
 Read the files you're about to modify. Not skim. Read.
-
 Look at how similar things are done elsewhere in the project.
-
 Check the imports at the top of the file.
-
 Look at the test files.
-
 State your assumptions before coding.
-
 If something is confusing, stop.
-
 Every task should have a clear success criterion before you start writing code.

## Keep Changes Small


-
 Write the minimum amount of code that solves the problem.
-
 "In case we need to" is not a requirement.
-
 Don't touch what you weren't asked to touch.
-
 Match the existing style.
-
 Clean up after yourself, not after others.
-
 Don't reformat.
-
 Can you justify every single changed line?
-
 Don't add dependencies without thinking about it.

## Debugging And Verification


-
 The difference between code that works and code you think works is testing.
-
 Write the test first when fixing bugs.
-
 Run existing tests before and after your changes.
-
 Read the error message.
-
 Reproduce first.
-
 Change one thing at a time.
-
 Don't add workarounds without understanding the root cause.

## Communication And Stop Conditions


-
 Say what you did and why.
-
 Flag concerns.
-
 Be precise about what you're uncertain about.
-
 If you notice a common failure mode, stop and reconsider.
-
 Watch for: Kitchen Sink, Wrong Abstraction, Invisible Decision, Optimistic Path, Knowledge Hallucination, Style Drift, Runaway Refactor.

我建议你不要无脑复制完就结束。

更好的做法是,把这份摘要当底座,然后继续补三类东西:

第一,补项目自己的技术栈和命令。比如用什么包管理器,怎么跑测试,怎么启动开发环境。

第二,补团队自己的代码约定。比如目录结构、命名习惯、提交格式、是否允许自动格式化。

第三,补你自己的停止条件。比如超过几个文件要先问,新增依赖必须确认,涉及数据库迁移必须先给方案。

到这一步,它才会从“网传配置”变成你自己项目里的配置。

最后叨叨几句

我看完这份文件,反而觉得它一点都不玄。

里面很多话都很朴素:读代码,少改动,先验证,不乱加依赖,不确定就说,不要重构失控。

这些本来就是好工程师每天该做的事。

但问题在于,Claude Code 不会天然继承你的工程习惯。你不写,它就只能按自己的方式猜。

所以 CLAUDE.md 里最没用的一句话,可能就是“你是资深工程师”。

太空了。

更应该写进去的是这些边界:

哪些事动手前必须读。

哪些事不能顺手做。

哪些结果必须验证。

哪些不确定性必须说出来。

哪些失败模式一出现就要停。

旧版 4 条规则,让 Claude Code 少犯写代码时的错。

新版 10 条规则,更像是在给它加一层自检协议。

Claude Code 越强,越不能只追求它“多做一点”。

真实项目里,更重要的是让它少做不该做的事,在该停的时候停下来,在该验证的时候拿出证据。

好的 CLAUDE.md,最后管的不是模型智商。

管的是工程习惯。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询

扫码登录
登录即表示您同意《53AI网站服务协议》
服务协议

欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。

在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。

一、 定义

本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。

会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。

知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。

二、 账号注册与登录

登录方式:本网站支持以下登录方式,您可根据实际情况选择:

微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。

手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。

账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。

实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。

未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。

三、 服务内容与规范

知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。

服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。

禁止行为:您在使用服务时不得实施以下行为:

利用技术手段批量爬取、下载、转存知识库内容;

将知识库内容用于商业目的或未经授权地向第三方传播;

干扰本网站正常运行或侵犯其他用户合法权益;

发布违法违规信息或从事违反公序良俗的活动。

四、 知识产权声明

权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。

有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。

侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。

五、 个人信息保护

我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。

您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。

您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。

六、 免责声明

内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。

不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。

第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。

七、 违约责任

如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。

如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。

八、 法律适用与争议解决

本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。

因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。

九、 其他

本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。

本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。

我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。


已查阅