95% 的人使用 Claude Code 时都忽略了这个文件,看看你错过了什么

@Jouhatsu_ai
法语2个月前 · 2026年5月17日
851K
474
58
14
2.3K

TL;DR

本指南详细介绍了如何通过 CLAUDE.md 文件优化 Claude Code,以定义架构规则和工作流命令。文中解释了如何避免指令疲劳,并确保 AI 严格遵循特定的技术要求。

我已经测试过几十种 Claude Code 配置。

真正能改变我的输出质量的,只有一个东西:一个名为 CLAUDE.md 的 60 行文件。

记得收藏本文 🔖

下面我将详细说明它的工作原理、为什么大多数人完全错过了它,以及你现在就可以直接复用的完整模板。

没人告诉你的关于 Claude Code 的事

在你的第一个提示词之前。在你写第一行代码之前。在你的会话中发生任何事情之前。

Claude 会读取一个文件。就一个。

CLAUDE.md。

它会将这个文件视为整个会话的绝对真理。不是建议。不是众多上下文之一。而是作为定义它将要做出的每一个决策的最终简报。

这就是为什么这个文件是整个 Claude Code 体系中被严重低估的变量。

大多数人根本没有这个文件。而那些有的人,也犯了两个错误之一:要么文件内容空洞无物,要么就是写了 300 行的"做一个经验丰富、一步一步思考的高级工程师"。

这两种情况都没用。原因各不相同。

为什么大多数 CLAUDE.md 文件不起作用:真正的 3 个原因

原因 1:太长

Claude 在每个会话中能可靠地遵循大约 150 到 200 条指令。这是一个结构性限制,不是态度问题。

问题在于:Claude Code 的内部系统提示已经包含大约 50 条指令。这意味着在你的 CLAUDE.md 实际拥有的 100 到 150 个指令槽位之后,Claude 就会开始丢弃指令了。

如果你的文件有 200 行,Claude 不是故意忽略你的规则。它只是机械地忘记了。你不是有合规问题。你是有注意力预算问题。

原因 2:内容质量差

大多数 CLAUDE.md 文件里填满了 Claude 自己就能推断出来的东西,或者那些无法以可衡量的方式改变其行为的东西。

"像一个高级工程师一样行事。" → Claude 已经知道这是什么意思,而且它不会锚定任何具体行为。"一步步思考。" → 这就在它的训练数据里。你在浪费一行。"编写干净且可维护的代码。" → 没有具体标准。Claude 不知道在你特定的上下文中"干净"是什么意思。

每一行不能阻止某个具体、实际错误的内容,都是在从真正重要的指令那里"偷"行。测试方法很简单:如果你删掉这一行,Claude 会不会在某个具体事情上犯错?如果答案是否定的,那这行就不该存在。

原因 3:没有层级

大多数人忽略了 Claude Code 中有三个层级的指令,而他们把所有的东西都塞进了同一个地方。

~/.claude/CLAUDE.md → 全局(适用于你所有的项目)

.claude/CLAUDE.md → 项目(与团队共享,在 git 中)

./CLAUDE.local.md → 本地(个人覆盖,被 gitignore)

全局层级用于你会在每个项目中重复的规则。项目层级用于与你项目技术和团队相关的具体上下文。本地层级用于你的个人偏好,不需要与别人共享。

正确使用这三个层级才能让每个文件保持简短、专注和真正有效。把所有东西塞进一个文件,就像建造一个漏斗,用噪音淹没你的重要规则。

构成一个有效 CLAUDE.md 的 5 个部分

在仔细研究了数十个实际生产环境中的 CLAUDE.md 文件——包括开源项目、官方 Anthropic 文档、社区最佳实践仓库——之后,我发现所有有效的文件都有以下 5 个共同部分:

第 1 部分:关键命令

Claude 在每个会话开始时,都不知道如何构建你的项目、运行你的测试、或修复 lint 错误。它会猜测。而它的猜测会浪费你很多轮次的交互。

直接告诉它要输入什么:

Commands

  • Build: npm run build
  • Dev: npm run dev
  • Test single file: npm test -- path/to/file
  • Full test: npm test
  • Lint + fix: npm run lint:fix
  • Type check: npx tsc --noEmit

简短。精确。可以直接使用。

没有这部分,Claude 可能会尝试 npm test,而你的项目实际跑的是 pnpm vitest。它可能会花三轮来调试一个根本不会工作的命令问题。这三轮本可以用于真正的工作。

第 2 部分:架构地图

Claude 在每个会话开始时,对你代码库的了解为零。零。它不知道你的业务逻辑在哪里。它不知道你的组件应该是无状态的。它不知道你的 API 路由不应该包含业务逻辑。

给它一个地图:

Architecture

  • src/lib/services/ → 所有业务逻辑
  • src/components/ → 仅限无状态 UI 组件
  • src/lib/store/ → 全局状态 (Zustand)
  • src/app/api/ → API 路由,这里不要放业务逻辑
  • 仅通过 Server Actions 或 API 路由访问数据库

不要详尽列出你的目录树结构。只需要让 Claude 知道东西放在哪里,更重要的是,东西不应该放在哪里。

这个区别……哪里放,哪里不该放……正是防止最常见架构错误的关键。

第 3 部分:硬性规则

这是整个文件中最重要的部分。没有例外。

这里的每一条规则都必须回答一个单一问题:"如果我删掉这一行,Claude 会不会犯一个具体的错误?"

如果是 → 规则保留。如果不是 → 它就不该在这里。

高价值规则的例子:

Rules

  • 绝对不要提交 .env 文件或密钥
  • 所有异步调用必须用 try/catch 包裹
  • 仅使用函数式组件,零类组件
  • 强制提交前缀: feat:, fix:, docs:, refactor:, chore:
  • 每个 PR 在合并前必须通过 npm run verify
  • 仅静态导出,无 SSR(部署在 S3 上)
  • 重要:每次代码修改后运行类型检查

关于这个列表,需要注意两点。

首先,否定规则和肯定规则一样重要。"绝对不要提交 .env 文件"这条规则,只有等到 Claude 某天真的做了这件事,你才会觉得它显而易见。写上去。

其次,像 IMPORTANT 或 YOU MUST 这样的强调标记确实有效。

这不是道听途说。Anthropic 在他们的文档中确认过:在一条规则前加上 IMPORTANT 或 YOU MUST,可以显著提高 Claude 对该规则的遵从度。

要谨慎使用:只把它们留给那些一旦被忽略会产生最严重后果的规则。

这部分保持在 15 条规则以内。超过这个数,你就稀释了对重要规则的注意力。

第 4 部分:工作流偏好

你肯定遇到过这种情况。你让 Claude 修复一行代码。它重写了三个文件,重命名了你的函数,还重构了一个跟你的请求完全无关的类。

这部分就是为了防止这种情况:

Workflow

  • 在开始复杂任务前,先问清楚问题
  • 做最小改动,不要重构不相关的代码
  • 每次更改后运行测试,修复失败后再继续
  • 每个逻辑变更创建单独的提交,不要做一个巨型提交
  • 在两个方法之间不确定时,解释两者并让我选择

这里的每一行都对应一个具体的痛点。那个改了 47 个文件的巨型提交。那个未经请求的完全重写。那个 Claude 本该问你却自己做出的架构决策。

第 5 部分:不应该放进 CLAUDE.md 的东西

这部分和其他部分一样重要。甚至可能更重要。

Do NOT include: ### 不要包含:

  • 性格指令("做一个高级工程师")
  • 你的 linter 已经能处理的格式化规则
  • 将整个文档导入每个会话的 @ 导入
  • 重复的规则(如果全局文件说了"运行测试",项目文件就不要重复)
  • 任何 Claude 通过自动记忆自己学到的东西

最后一点被严重低估了。

Claude 在 ~/.claude/projects/<project>/memory/ 中维护着自己的笔记。在会话中运行 /memory 可以看到它已经学到了关于你项目的哪些信息。经过几次会话后,你经常会发现 Claude 已经记录了你本来打算手动写入 CLAUDE.md 的信息。

不要把你有限的指令浪费在 Claude 已经自己记住的事情上。

完整的 60 行以内模板,随时可用

Jouhatsu | AI Influence Operator - inline image

删除那些不适用于你项目的部分。目标不是填满所有内容。目标是只保留那些能切实改变 Claude 行为的内容。

对我的输出影响最大的那些行:具体成果

在测试了数十种配置之后,以下是带来最明显差异的五条规则:

重要:每次代码修改后运行类型检查 → 防止 Claude 交付带有类型错误的代码(如果不明确提示检查,它自己不会检测到)。

做最小改动,不要重构不相关的代码 → 防止对整个文件进行未经请求的完全重写。

每个逻辑变更创建单独的提交,不要做一个巨型提交 → 防止产生无法阅读、包含 47 个混杂文件的巨型提交。

在两个方法之间不确定时,解释两者并让我选择 → 防止 Claude 独自做出本应由你决定的架构决策。

仅静态导出,无 SSR → 防止 Claude 向部署在 S3 上的静态项目中添加服务器端代码。

这五条规则的共同点是:每一条都防止了一个具体的、频繁出现的、且调试成本高昂的错误。

这就是检验你 CLAUDE.md 中每一行内容的终极标准。

根本错误及其普遍的原因

人们把自己的 CLAUDE.md 当作愿望清单或者性格提示词。

"要资深。""要全面。""像专家一样思考。"

这不是简报。这是魔法思维。

你的 CLAUDE.md 应该是一个技术文档,而不是励志演讲。技术栈、命令、架构、具体规则、工作流。其他一切都是噪音,和那些真正重要的指令争夺注意力。

保持文件在 80 行以内。每当 Claude 犯了一个你本可以预防的错误时,就修订它。

最重要的是:理解这个文件会随着时间推移变成什么。

一个好的 CLAUDE.md,在第一个月就能为你节省每次会话的时间。到第三个月,它已经足够精确地捕捉了你的规范和项目技术栈,让 Claude 几乎像一个团队成员一样工作。

到第六个月,它包含了 Claude 在这个项目上犯过的每一个错误,并自动防止它们再次发生。

这个文件会增值。它会随着每一次修正而改进。它会逐渐成为你写过的最好的项目入职简报。

不是为 Claude 写的。是为你自己。

存到 YouMind

使用 YouMind 深度阅读爆款文章

保存原文、追问细节、总结观点,并在一个 AI 工作空间里把爆款文章沉淀成可复用笔记。

了解 YouMind
写给创作者

把你的 Markdown 变成干净的 𝕏 文章

图片上传、表格、代码块,往 𝕏 上手动重排太痛苦。YouMind 把整篇 Markdown 一键转成干净、可直接发布的 𝕏 文章草稿。

试试 Markdown 转 𝕏

更多可拆解样本

近期爆款文章

探索更多爆款文章