CLAUDE.md 配置指南:让 Claude Code 永久记住你的项目规范

第六章. 项目记忆:CLAUDE.md 入门

本章摘要:每次打开项目都要重新介绍 “我们用的是 React + TypeScript”,累不累?CLAUDE.md 就是项目的 “说明书”,写一次,Claude 永远记得。本章教你用 /init 快速生成,并掌握基础写法。

本章学习路径

阶段内容解锁能力
第一阶段理解 CLAUDE.md知道它是什么、放在哪
第二阶段用 /init 生成一键创建项目记忆
第三阶段基础写法手动编写项目规则

6.1. 什么是 CLAUDE.md

上一章我们学会了用 Checkpoint 保护代码安全。但还有一个效率问题没解决:Claude 不记得项目的背景信息

6.1.1. 项目的 “说明书”

想象一下这个场景:

1
› 这个项目用的是什么技术栈?

Claude 回答完后,你开始写代码。过了一会儿:

1
› 帮我写一个用户登录的 API

Claude 写了一个 Express.js 的版本。但你的项目用的是 Koa…

“我不是刚告诉你用的什么技术栈吗?”

问题在于:Claude 的 “记忆” 是有限的。对话越长,早期的信息越容易被 “挤出” 上下文窗口。而且,每次新开对话,之前说过的话就全忘了。

CLAUDE.md 就是解决这个问题的——它是一份 持久化的项目说明书,Claude 每次打开项目都会自动读取。

6.1.2. 存放位置与加载顺序

CLAUDE.md 可以放在多个位置,Claude 会按照特定顺序加载它们:

位置作用范围典型用途
~/.claude/CLAUDE.md所有项目个人偏好(如 “我喜欢简洁的代码风格”)
项目根目录/CLAUDE.md当前项目项目规则(技术栈、编码规范)
项目根目录/.claude/settings.json当前项目高级配置(进阶篇讲)

“如果多个文件有冲突怎么办?”

越具体的配置优先级越高。项目级的 CLAUDE.md 会覆盖用户级的同名规则。

对于基础使用,你只需要关心一个位置:项目根目录的 CLAUDE.md


6.2. 用 /init 快速生成

手写 CLAUDE.md 当然可以,但有个更快的方法:让 Claude 帮你生成。

6.2.1. 一键初始化

打开你的项目目录,启动 Claude Code,然后输入:

1
› /init

Claude 会扫描项目结构,分析 package.jsonpom.xmlrequirements.txt 等配置文件,然后自动生成一份 CLAUDE.md

整个过程大概 10-30 秒,取决于项目大小。

6.2.2. 生成内容解读

生成的 CLAUDE.md 通常包含以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 项目概述

这是一个基于 React + TypeScript 的前端项目,使用 Vite 作为构建工具。

## 技术栈

- 前端框架:React 18
- 语言:TypeScript 5.x
- 构建工具:Vite
- 状态管理:Zustand
- UI 组件库:Ant Design

## 项目结构

- `src/components/` - 可复用组件
- `src/pages/` - 页面组件
- `src/hooks/` - 自定义 Hooks
- `src/utils/` - 工具函数

## 常用命令

- `npm run dev` - 启动开发服务器
- `npm run build` - 构建生产版本
- `npm run test` - 运行测试

“这些信息 Claude 自己分析出来的?”

是的。它会读取配置文件、扫描目录结构、甚至看看 README 里写了什么。当然,自动生成的内容不一定 100% 准确,你可以手动修改补充。

6.2.3. 本节小结

操作命令效果
初始化项目记忆/init自动生成 CLAUDE.md
查看生成结果打开项目根目录的 CLAUDE.md确认内容是否准确

6.3. 基础写法:告诉 Claude 项目规则

自动生成的 CLAUDE.md 是个不错的起点,但真正的威力在于你可以 自定义规则

6.3.1. 技术栈声明

最基础的用法:告诉 Claude 这个项目用什么技术。

1
2
3
4
5
6
## 技术栈

- 后端:Spring Boot 3.2 + Java 17
- 数据库:PostgreSQL 15
- 缓存:Redis 7
- 消息队列:RabbitMQ

有了这个声明,当你说 “帮我写一个缓存逻辑” 时,Claude 会自动使用 Redis 而不是 Memcached。

6.3.2. 编码规范

团队有自己的代码风格?写进去:

1
2
3
4
5
6
7
## 编码规范

- 使用 4 空格缩进,不用 Tab
- 变量命名使用 camelCase
- 常量命名使用 UPPER_SNAKE_CASE
- 每个方法不超过 50 行
- 必须编写单元测试,覆盖率不低于 80%

Claude 生成的代码会自动遵循这些规范。

6.3.3. 禁止事项

有些事情你绝对不想让 Claude 做:

1
2
3
4
5
6
7
## 禁止事项

- 禁止使用 var 声明变量,必须用 const 或 let
- 禁止直接操作 DOM,必须通过 React 状态管理
- 禁止在代码中硬编码密钥或密码
- 禁止删除 .env 文件
- 禁止修改 package-lock.json(除非明确要求)

“禁止” 比 “建议” 更有效。Claude 会认真对待这些红线。

6.3.4. 本节小结

规则类型作用示例
技术栈声明确定技术选型“后端用 Spring Boot 3.2”
编码规范统一代码风格“使用 4 空格缩进”
禁止事项设置红线“禁止硬编码密钥”

6.4. 用 # 快捷追加规则

“每次想加条规则都要打开文件编辑,太麻烦了。”

Claude Code 提供了一个快捷方式:用 # 开头直接追加内容到 CLAUDE.md

6.4.1. 随时记录灵感

在对话中,你突然想到一条规则:

1
› # 所有 API 响应必须包含 requestId 字段,用于链路追踪

按下回车,这条规则就会被追加到 CLAUDE.md 的末尾。不需要打开文件,不需要手动编辑。

“这也太方便了吧?”

是的。这个设计的初衷是:让你在工作流中随时记录想法,而不是打断思路去编辑文件。

6.4.2. 查看与编辑

想看看 CLAUDE.md 现在长什么样?

1
› 打开 CLAUDE.md 让我看看

Claude 会显示文件内容。如果你想修改,可以直接说:

1
› 把 CLAUDE.md 里的"4 空格缩进"改成"2 空格缩进"

或者,你也可以用任何文本编辑器直接打开 CLAUDE.md 进行编辑。它就是一个普通的 Markdown 文件。

6.4.3. 本节小结

操作方法适用场景
快捷追加规则# 规则内容工作中随时记录
查看内容让 Claude 打开文件确认当前规则
编辑内容直接编辑文件或让 Claude 修改调整已有规则

6.5. 本章总结与 CLAUDE.md 速查

本章我们学习了 CLAUDE.md——项目的 “说明书”。有了它,Claude 不再是 “金鱼记忆”,而是能够记住项目的技术栈、编码规范和禁止事项。

6.5.1. 场景速查:遇到这些情况,直接用

场景 1:第一次用 Claude Code 打开项目

1
› /init

让 Claude 自动生成 CLAUDE.md

场景 2:想添加一条编码规范

1
› # 所有函数必须有 JSDoc 注释

直接追加到 CLAUDE.md

场景 3:Claude 总是用错技术栈

打开 CLAUDE.md,在技术栈部分明确声明:

1
2
3
4
## 技术栈

- 本项目使用 Koa,不是 Express
- ORM 使用 Prisma,不是 Sequelize

场景 4:想禁止 Claude 做某些事

1
2
3
4
## 禁止事项

- 禁止删除任何测试文件
- 禁止修改 CI/CD 配置