跳到主内容
claude-codeclaude-md配置最佳实践工作流

CLAUDE.md 最佳实践:让 Claude Code 一次写对的关键

CLAUDE.md 2026 最佳实践:它如何在 Claude Code 启动时读取、一份好模板的结构(项目结构 / 命令 / 约定 / 禁忌)、长度 vs 效果实测、/init 自动生成 vs 手写 vs 混合,以及与 .cursor/rules 的同步。

发布 2026-08-02更新 2026-10-19核实 2026-10-19

一句话结论

CLAUDE.md 是 Claude Code 的「项目记忆」——每次启动自动读取,决定它懂不懂你的项目。写好了,成功率从约 60% 拉到 85%+;但写得太多(>2000 字)会污染上下文,反而抓不住重点。一份好的 CLAUDE.md 聚焦「项目结构 + 常用命令 + 编码约定 + 禁忌清单」四块,用 /init 生成初稿再手工精修最稳。

CLAUDE.md 在启动时如何被读取

Claude Code 进入项目时,会按以下优先级加载记忆:

  1. ~/.claude/CLAUDE.md — 用户级全局记忆(所有项目生效)
  2. 项目根/CLAUDE.md — 项目级(最常用)
  3. 子目录/CLAUDE.md — 局部覆盖(进入该目录时叠加)
  4. CLAUDE.local.md — 本地不提交版本(放敏感/个人偏好,gitignore)

所有层的内容会拼进系统提示,所以每一层都别太长,否则总 token 超标。

2026-09-20 更新:v2.1.277(2026-09-18)起,第 2 层有了回退——当项目根没有 CLAUDE.md 时,Claude Code 会改读根目录的 AGENTS.md 作为项目指令(可在 /config → Project instructions 关闭)。注意这是回退而非合并:只要存在 CLAUDE.md,AGENTS.md 就不会被读。

2026-09-28 更正(据官方 CHANGELOG 原文):初上线(v2.1.277)时该回退仅限直连 Anthropic API,本站曾写「Bedrock / Vertex / Foundry 暂不支持」。v2.1.281 已解除该限制——现已在 Amazon Bedrock、Google Vertex AI、Microsoft Foundry、LLM 网关,以及关闭遥测的会话上生效。已在用 AGENTS.md 的团队可据此少维护一份文件,但删除 CLAUDE.md 前请实测。来源:Claude Code Changelog。社区反馈称「空 CLAUDE.md 也会挡住回退」,该说法未见于官方表述。

AI 之家 观点:优先级 4 的 CLAUDE.local.md 是团队协作的隐藏利器——把「你的个人偏好 / 本地路径 / 私有密钥相关说明」放进去且不提交,既不污染仓库又能让本机 Claude Code 更懂你。

一份好的 CLAUDE.md 模板

# 项目概述
这是一个 Nuxt 3 全栈博客系统,前端 Vue + Tailwind,后端 Nitro server routes。

# 项目结构
- pages/        页面路由(文件即路由)
- components/   Vue 组件,用 <script setup>
- server/       API 路由(event handlers)
- composables/  复用逻辑(自动导入)
- content/      Markdown 内容源

# 常用命令
- pnpm dev        启动开发服务器
- pnpm test       跑 Vitest
- pnpm lint       跑 ESLint
- pnpm build      生产构建

# 编码约定
- TypeScript strict,禁止 any
- 组件用 <script setup> + Composition API
- API 调用走 server/ 层,禁止前端暴露密钥
- 提交前必须 pnpm lint && pnpm test 通过

# 禁忌
- 不要禁用 SSR
- 不要在客户端读取 runtimeConfig.secret
- 不要引入未列入 package.json 的依赖
- 不要改写 migrations/ 下的历史迁移文件

长度 vs 效果:太长会污染上下文

我们在 Claude Code 深度评测 里做过 A/B:CLAUDE.md 超过 ~2000 字,成功率从 87% 掉到 68%。原因不是「信息多」,而是模型在长文本里抓不住优先级——它会把「项目结构」和「一条无关紧要的注释习惯」同等对待。

甜区建议:

  • 核心项目:200-500 行,结构化、列表化
  • 局部子目录:50-100 行足够
  • 全局 ~/.claude/CLAUDE.md:只放跨项目通用习惯(<100 行)

/init 自动生成 vs 手写 vs 混合

方式优点缺点适合
/init 自动生成5 秒出初稿,覆盖结构冗余多、有错、抓不住项目精髓新项目快速起步
纯手写精准、无噪音费时、易遗漏核心长期项目
混合(推荐)快 + 准需 5-10 分钟 review大多数团队

混合流程:/init 生成 → 删冗余 → 补「禁忌清单」和「常用命令」→ 用 /memory 固化长期记忆。

AI 之家 观点:/init 生成后一定要 review。自动生成常把 node_modules 里的东西写进结构、把不重要文件当核心。花 5 分钟精修,比让它乱猜 10 次强。

子目录 CLAUDE.md 的妙用

大 monorepo 里,根目录 CLAUDE.md 管全局,子目录再覆盖:

packages/core/CLAUDE.md      # 「这是核心库,改这里要跑全量测试」
packages/cli/CLAUDE.md       # 「CLI 用 commander,命令注册看这里」
apps/web/CLAUDE.md           # 「前端用 Nuxt,禁止直连后端」

Claude Code 进入对应目录会自动叠加,避免全局文件无限膨胀。

与 .cursor/rules 的同步策略

同时用 Cursor 和 Claude Code 的团队,最怕「两套约定各写各的,最后 AI 听谁的」。

推荐做法:

  1. 单一事实源:把约定写在 CLAUDE.md(Claude Code 原生支持)。
  2. Cursor 侧引用:在 .cursor/rules/base.mdc 里写一行「项目约定见根目录 CLAUDE.md,遵循其规范」,让 Cursor 也读同一份。
  3. 或用 AGENTS.md 桥接:写一份 AGENTS.md,Cursor / Claude Code / Cline / Codex 都读它(详见 AGENTS.md 协议)。
  4. 进 git:CLAUDE.md 和 .cursor/rules 都提交,新人 clone 即一致。

常见问题

Q:CLAUDE.md 改了要重启吗? A:不用。Claude Code 每次启动重新读取;正在运行的会话用 /memory 编辑后下次对话生效。

Q:敏感信息能写进 CLAUDE.md 吗? A:绝对不要写密钥本身。写「密钥走环境变量 XXX,不要硬编码」这种说明。真正敏感内容放 CLAUDE.local.md(不提交)。

Q:和 AGENTS.md 冲突怎么办? A:让 AGENTS.md 作单一事实源,CLAUDE.md 引用它或保持同步(见 AGENTS.md 协议)。

进阶:把「项目约定」写成能被验收的规则

多数 CLAUDE.md 的问题是写了一堆偏好,但没有一条能被检查。下面这套写法把约定从「描述」升级成「判据」,AI 与人都知道什么算做到了。

三类内容,分开写

类别写什么示例
硬约束(必须满足)不可协商的事实:命令、目录、禁用项「测试一律用 pnpm test:unit,不要用 npx vitest」
判据(怎么算做对)可执行的验收步骤「改完必须跑 pnpm lint 且 0 error,把输出贴进总结」
偏好(尽量满足)风格类,不可强求「提交信息用中文,简洁祈使句」

关键是不要把偏好写成硬约束。 一条「所有函数都要写 JSDoc」的硬约束会让 agent 在明显不需要注释的地方硬塞注释;写成偏好它才知道可以让步。

把反例写进去,比写正例更有效

规则里最有信息量的往往是否定句。相比「用 TypeScript 严格模式」,更有用的是「不要出现 any,确实无法避免时在行内写 // eslint-disable-next-line 并说明理由」。 agent 对「不要做什么」的响应明显好于「要做什么」。

让规则可验证

# 在总结里给出这一步的输出,才算完成任务
pnpm typecheck && pnpm test:unit

凡是你能写出一条命令去检查的规则,都应该把那条命令写进 CLAUDE.md。 这样 agent 有自检手段,你验收时也不用读它的自述。

为什么这件事在 2026 年下半年变重要了

Anthropic 于 2026-10-16 发布的内部就业研究报告里有一个容易被忽略的数字:给 agent 的书面长期指令,从 2025 年 7 月的几百条增长到一年后的 8,500 条;同时**「元工作」(给 agent 写指令、让一个 agent 审另一个、搭监控面板)占员工交互式 Claude 会话的比例从 10% 涨到 22%**(详见 Anthropic 就业报告资讯)。

这两个数字说明:CLAUDE.md 这类指令文件已经从「技巧」变成「基础设施」。 当 agent 的运行时长达到人类的数倍量级,项目指令文件的质量就直接等于产能的乘数——一份含糊的 CLAUDE.md 会被放大成大量返工,一份清晰的则会被复用成千上万次。

本报告由 Anthropic 雇员研究其本人所在公司,属自评而非独立审计,引用时应连同该前提一并说明。

更新说明

日期变更
2026-10-19新增「进阶:把项目约定写成能被验收的规则」一节(硬约束 / 判据 / 偏好三类拆分、反例优先、可验证命令);新增「为什么这件事在 2026 年下半年变重要了」一节(引 Anthropic 就业报告的书面指令增长数据);新增本更新说明

相关阅读

来源说明:本文基于 code.claude.com 官方 Memory 文档、第三方 cheat sheet 及 AI 之家 编辑部实践归纳。命令与功能以最新官方文档为准。

相关对比

Aider vs Claude Code:终端 AI 编程双雄怎么选

Aider vs Claude Code 2026 选型对比:开源 BYOK 多模型 vs Anthropic 订阅长任务 Agent,从编程能力、多模型支持、价格、Git 集成、国内可用性和适合人群判断,帮你选对终端 AI 编程工具。

Claude Code vs Cline:CLI AI Agent 怎么选?2026 对比

Claude Code vs Cline 2026 选型对比:Anthropic 官方闭源 CLI Agent vs Apache-2.0 开源 VS Code 插件。从模型绑定、工作流、MCP 支持、价格、隐私和适合人群 6 个维度帮你选对 CLI AI 编程工具。

Claude Code vs Codex CLI:终端 AI Agent 双雄对比

Claude Code vs Codex CLI 2026 选型对比:Anthropic 与 OpenAI 两大官方终端 Agent 的模型、长任务、MCP 生态、Windows 支持、订阅打包价格和国内可用性全方位对比,帮你判断该用哪个终端 AI Agent,以及能不能两个一起用。

Claude Code vs Crush:Anthropic 官方 vs 多模型 TUI(2026 实测选型)

Claude Code vs Crush 怎么选:Anthropic 官方 CLI(长任务最稳),对上 Charmbracelet 开源 TUI(多模型切换 + LSP)。按模型、长任务、价格对比。

Cursor vs Claude Code:什么时候用哪个?(2026 实测选型)

Cursor 和 Claude Code 到底怎么选?一句话结论 + 决策树 + 价格实测 + 国内可用性对比。GUI 派选 Cursor,终端长任务派选 Claude Code,最优解其实是共存。

Devin vs Claude Code:AI 编程 Agent 怎么选?异步自主 vs 终端同步对比

Devin vs Claude Code 2026 选型对比:Cognition 异步自主 Cloud Agent vs Anthropic 终端同步 CLI Agent,从形态、工作模式、长任务能力、并发、价格、中文支持和适合人群 8 个维度判断,帮你选对 AI 编程 Agent。

相关评测