type
status
date
slug
summary
tags
category
icon
password
notion image
之前在用 Claude Code 做一个 Spring Boot 项目,每次打开终端,第一件事就是花几分钟跟 Claude 解释:"我们用的是 JPA 不是 MyBatis,DTO 和 Entity 要分开,接口返回一律用 Result<T> 包装……"
每次都这样,就很烦人。
现在我知道这是方法错了。正确的方式是要充分利用好 CLAUDE.md 这个规则。

CLAUDE.md 是什么

一句话:Claude Code 的"项目宪法"
每次启动 Claude Code session,它会自动读取项目根目录下的 CLAUDE.md,把里面的内容当作初始上下文加载进来。相当于你雇了一个新员工,入职第一天就给他看了一遍完整的岗位手册——从此以后,你不用再重复解释,他按规矩办事。
没有它,你每次都在从零培训一个"失忆的员工"。
有了它,Claude 知道你的项目结构、你的代码规范、你踩过的坑,以及你最不想看到的操作。它是持久化的,跨会话的,永远在线的记忆文件。
notion image

最快的起步:/init 命令

不要从空白文件开始写。打开终端,进入你的项目根目录,然后输入:
Claude 会扫描你的 package.json、配置文件、目录结构,自动生成一个初版 CLAUDE.md。通常两分钟内就能拿到一个像样的框架,你在此基础上删改就行了。
有一个细节要注意:文件名大小写敏感,必须是 CLAUDE.md,写成 claude.md 不会被识别。

应该写什么,不应该写什么

这是最容易踩错的地方。
很多人第一次写 CLAUDE.md,恨不得把所有规范都塞进去:代码格式、缩进风格、注释要求、命名规范……结果写了两三百行,Claude 遵守的反而比以前更差。
原因很反直觉,但逻辑上说得通:LLM 对上下文开头和结尾的注意力最高,中间内容会均匀衰减。指令堆得越多,平均注意力越低。
记住这个核心原则:少而精,胜过多而全
值得写进去的内容:
  • 运行项目的 CLI 命令(启动、测试、构建)
  • 关键目录结构(哪里是业务代码,哪里是配置文件)
  • 项目特定的规范(不是通用规范,是这个项目特有的约定)
  • 你踩过的坑("永远不要用 @Autowired 字段注入,用构造器注入")
  • 需要 Claude 在操作前先确认的高危行为
  • Workflow 步骤(比如新增 API 的标准流程)
不值得写进去的内容:
  • 代码格式规范(交给 ESLint、Prettier、Checkstyle 处理,别让 AI 做确定性工具能做的事)
  • 通用编程最佳实践("写清晰的变量名"、"单一职责原则"……Claude 本来就知道这些)
  • 过时的信息(会造成混乱,定期清理比不断添加更重要)
notion image

一个真实的例子

下面是一个 Spring Boot + Vue 项目的 CLAUDE.md 样本,大概长这样:
这个文件只有二十几行,但每一行都是信息密度极高的项目规范。Claude 读完,基本就能上手干活了。

多层级架构:从个人偏好到团队规范

Claude Code 支持多文件层级的 CLAUDE.md,从全局到项目再到子目录,按层叠加:
我自己在 ~/CLAUDE.md 里只写了几条个人习惯:
  • 回复语言用中文
  • 代码解释简洁,不要废话
  • 修改文件前先说明打算怎么改
这些是跨所有项目的全局设定。项目级别的具体规范,放在项目根目录的 CLAUDE.md 里。如果 repo 里不同子模块有不同规范,就在对应子目录各放一个。
层级越具体,优先级越高。局部规则覆盖全局规则,非常符合直觉。

实时更新:用 # 命令写入记忆

Claude Code 有一个很少人注意到的用法。
在对话过程中,如果你想立刻把某条规则固化进 CLAUDE.md,直接在消息开头加 #
Claude 会自动把这条规则写入 CLAUDE.md。不用退出对话,不用手动编辑文件。
这就把 CLAUDE.md 变成了一个随着使用不断进化的活文档。踩了个新坑,记录进去。发现了一个更好的约定,更新进去。下一次对话,规则已经在那里了。
知行合一,从配置文件开始。

写作项目也能用,不只是代码

说到这里,很多非程序员可能会觉得这跟自己无关。
未必。
我的写作仓库也有一个 CLAUDE.md,里面写着我的文章风格规范:用短句打节奏,用长句做解释;哪些词不能用(首先其次最后);文章结构怎么定(钩子开头、三层正文、行动收尾);图片放哪个目录、用哪个图床。
每次在写作仓库里启动 Claude Code,它就直接按这套规范工作,我不用解释任何背景。CLAUDE.md 的本质是结构化的项目记忆,代码项目能用,写作项目、设计项目、研究项目同样能用。

注意事项

几个容易忽略的细节:
文件名大小写。必须是 CLAUDE.md,不是 claude.md,不是 Claude.md。在 macOS 上文件系统可能不区分大小写,但 Claude Code 的识别逻辑区分——用大写,没有例外。
保持简短。文件超过两三百行,就该审视一下哪些内容可以删掉了。不要让它变成一个"什么都往里塞"的垃圾桶。
定期清理。项目迭代了,旧规范还留着,会造成混乱。每隔一段时间过一遍,删掉过时的内容,补上新的约定。
不要把 linter 能管的事交给 Claude。缩进、空格、括号风格,这些交给 Prettier 或 ESLint 处理,不要写进 CLAUDE.md。AI 做确定性工具能做的事,是浪费。
敏感信息不要写进去。API Key、数据库密码、内网地址,这些不属于 CLAUDE.md 的范畴。这个文件通常会提交到 Git,当成源代码来管理。

写在最后

设置 CLAUDE.md 后,就可以不用再每次与 AI 对话时都重复解释背景了。节省出来的时间,可以变成生产力。
这就是 CLAUDE.md 的价值所在。它并不神奇,它就是一个文本文件。但它把你的经验、你的偏好、你踩过的坑,变成了可以复用的结构化记忆。
打开终端,进入 claude 后,/init 一下,删掉多余的,补上重要的,这就开始自定义 CLAUDE.md 吧!
从今天起,让 Claude 按你的方式工作。
 
2026.02.23 18:56 沪 · 赵巷KFC