如果你已经开始长期使用 Claude Code,你一定遇到过这种情况:新开一个会话, Claude 又开始不知道你的技术栈、忘了项目结构、重新猜代码规范、API 路由写错位置、Tailwind 不用又开始手写CSS、pnpm 项目给你输出 npm 命令……

于是你只能再说一遍:项目用的是 Next.js 15,不要写注释,统一使用Tailwind ,组件必须写 TypeScript 类型……

刚开始你会觉得还行,但重复几十次后你会发现,真正消耗你的,不是写代码,而是反复纠正 AI。而 CLAUDE.md, 就是解决这个问题的核心。

很多人以为它只是一个配置文件,但实际上它更像是 Claude 的“长期记忆系统”。

这一篇,我们就彻底讲清楚为什么 CLAUDE.md 是 Claude Code 最重要的功能之一,如何让 Claude 真正理解你的项目,什么是 Memory 分层,以及,高质量的 CLAUDE.md 应该怎么写。

为什么你需要给 Claude 装一个“外接大脑”?

默认情况下, Claude Code 每次启动其实都是新人入职,它需要重新扫描目录、重新理解项目结构、猜测技术栈、推断你的代码风格、尝试理解哪些功能已经存在等。

问题就在这里,因为猜测永远不稳定。例如,你项目明明使用Next.js App Router,它却生成 pages/api;你已经全项目使用 Tailwind ,它又开始 style.css ;你用的是 pnpm,它输出 npm install。

很多人会觉得 Claude 怎么忽聪明忽笨?其实不是它笨,而是它缺少长期上下文。

什么是 CLAUDE.md?

官方对它的描述其实非常准确:CLAUDE.md 会给 Claude Code 提供持久记忆(Persistent Memory)。

它本质上是一个 Markdown 文件,通常放在项目根目录: 

CODE
my-project/
├── src/
├── package.json
├── README.md
└── CLAUDE.md

Claude Code 每次启动时,都会自动读取它。

你可以把它理解成 AI 的项目说明书、AI 的团队规范、AI 的开发手册、AI 的长期记忆。它最关键的一点是,里面的内容会自动拼接进 Claude 的上下文。

也就是说,Claude 在开始工作之前,已经提前读过你的项目规则。

它真正解决的问题是什么?

很多人现在的使用方式其实是:每次重新教 Claude 一遍项目规则。例如,不要使用any,统一使用Tailwind API ,返回格式统一,提交前必须跑测试等。

时间久了之后,你会越来越疲惫。因为你不是在开发,你是在重复 onboarding AI。而 CLAUDE.md 的意义是把重复沟通,变成长期记忆。 

这也是 Claude Code 和普通 AI Chat 最大的区别之一。

三个最重要的 Memory 操作

Claude Code 的 Memory 系统其实非常简单。

核心只有三个命令:

命令
作用
/init
自动生成 CLAUDE.md
/memory
打开记忆管理器
#
快速追加规则

/init:一键生成 CLAUDE.md

这是新手最应该学会的命令。

进入项目目录后:/init ,Claude 会自动扫描项目,并生成一个初始版 CLAUDE.md。 

通常会包含: 

CODE
# 项目概览
# 技术栈
# 开发规范
# 常用命令

这其实相当于自动给 AI 写了一份新人入职文档。

很多人一直停留在聊天模式,但真正高效的 Claude Code, 核心其实是项目协作模式。

我最推荐的功能:#

这是一个很多人很容易忽略,但极其高频的功能。例如: 

CODE
# 所有组件必须使用 TypeScript 类型
# 默认使用 server actions
# 提交前运行 pnpm test
# 文件名统一 kebab-case

Claude 会自动把这些规则加入 Memory。

它最厉害的地方在于,你可以在开发过程中,持续“训练” Claude。 

你会越来越有一种感觉,自己不是在用聊天机器人,而是在训练一个长期协作的 AI 工程师。

高手真正的习惯:把“纠错”沉淀成规则

官方其实提到一个非常关键的建议:如果你反复纠正 Claude,就应该把它写进 Memory。

例如你已经连续说了五次不要使用 API Routes,优先使用 Server Actions。那正确做法就不是继续重复提醒,而是直接写进 CLAUDE.md。

因为高频纠错,本质上就是团队规范。

这其实是很多人效率低的根源,他们一直在临时沟通,而高手已经开始沉淀制度。

Memory 其实是有“层级”的

很多人以为只有一个 CLAUDE.md,实际上,Claude 的 Memory 是分层的。 

层级
作用
用户记忆
你的全局开发偏好
项目记忆
当前项目规则
目录记忆
某个模块的特殊规范
组织策略
企业统一规则

例如:

CODE
用户级:默认使用 TypeScript
项目级:当前项目统一使用 Next.js App Router
API目录:所有接口必须做参数校验,必须做限流

Claude 会自动组合这些规则,并且越具体的规则,优先级越高。也就是说,子目录规则,会覆盖全局规则。这其实已经非常接近真正的软件工程体系了。

大型项目里, 很多高手会继续往下拆: 

CODE
project/
├── CLAUDE.md
├── src/
│   ├── CLAUDE.md
│   └── api/
│       └── CLAUDE.md

为什么? 因为不同模块,本来就应该有不同规范。

例如:

CODE
根目录:全项目使用 TypeScript ,默认使用 pnpm
api目录:所有接口必须做鉴权,必须考虑限流,返回结构统一
AI模块:Prompt 必须版本化,输出必须记录日志

这时候, Claude 才真正拥有结构化工程上下文。

不要把 CLAUDE.md 写成垃圾桶

这是新手最容易犯的错误,什么都往里面塞:

CODE
README
产品文档
PRD
数据库设计
会议纪要
……

结果会导致 Claude 根本抓不到重点。真正好的 CLAUDE.md,只有一个原则:只写会影响 Claude 行为的内容。例如:

✅ 应该写:

CODE
- 使用 2-space indentation
- 禁止 any
- 默认使用 Tailwind
- 提交前必须运行测试

❌ 不应该写: 

CODE
公司成立于2021年

因为这些不会改变 Claude 的工作方式。

一个真正实用的 CLAUDE.md 模板

这是一个非常适合个人开发者的版本:

CODE
# 项目概览
本项目是一个基于 Next.js 15 的 AI 应用,
使用 Tailwind CSS 和 Drizzle ORM。

# 常用命令
- 启动开发服务器: `pnpm dev`
- 运行测试: `pnpm test`
- 代码检查: `pnpm lint`

# 代码风格
- 强制使用 TypeScript strict mode
- 禁止使用 any
- 使用 2 空格缩进
- 优先使用 Named Exports
- 文件名统一 kebab-case

# API 规范
- API Routes 必须放在 `app/api/`
- 优先使用 Server Actions
- 所有接口必须做错误处理
- 返回结构统一 Result<T>

# Git 工作流
- commit message 使用 conventional commits
- 提交前必须通过 lint 和 test

你会发现,它已经非常像一个成熟团队的工程规范。

因为 Claude 本质上,已经开始承担数字化团队成员这个角色。

一个非常容易忽略的高级技巧:引用文档

如果你已经有:

CODE
README
CONTRIBUTING
API 文档
架构说明

没必要全部复制进 CLAUDE.md。直接引用即可:

CODE
## 更多信息请参考:
@README.md

这样 Claude 会在需要时主动阅读对应文件。

这会让你的 Memory 更干净、更聚焦和更容易维护。

官方建议一开始先别写,以及学会共享

这个建议其实特别有意思。官方提到:最开始可以先裸跑 Claude Code。

为什么?因为你需要观察 Claude 最容易犯什么错,这些高频纠错, 才是真正应该沉淀进 Memory 的内容。否则很多人一上来就会写出一个巨大的规则垃圾桶,真正高质量的 CLAUDE.md,通常都很克制。 

因为它只保留真正影响 AI 行为的信息。

另外很多人会忽略的一点是,CLAUDE.md 应该提交进 Git。 

因为它不只是你的个人配置,而是团队共享上下文。这样团队里的每个人新开会话、切换设备、新建分支时,Claude 都能得到一致上下文,最终带来的效果是 AI 输出开始标准化。


很多人以为,AI 编程的未来,是谁更会写 Prompt。但真正长期使用 Claude Code 后,你会慢慢发现,Prompt 更像对话技巧, 而 Memory 才是真正的协作能力。 

因为软件工程从来都不是一次性的灵感爆发,而是长期积累下的规则、习惯、上下文与团队共识。真正成熟的工程体系,本质上都是“记忆系统”——代码规范是记忆,架构原则是记忆,团队流程也是记忆。

而 CLAUDE.md 的出现,本质上是第一次让 AI 开始参与这套长期记忆。它意味着,AI 不再只是一个回答问题的工具,而开始变成一个能够持续理解项目、理解团队、理解工作方式的协作者。

未来真正强大的开发者,也许并不是最会写代码的人,而是最会构建“人类 + AI”协作系统的人。因为当 AI 开始拥有记忆后,改变的就不只是效率,而是整个软件开发的组织方式。