主题
02 - 上手演练:CLAUDE.md 实战
上一讲讲了记忆系统的原理、五层架构与编写原则。这一讲只做一件事:把 CLAUDE.md 真正配起来。
建议先读完 02 - 过目不忘:记忆系统,再按下面三个场景动手。配套示例见课程仓库 02-Memory 目录。
本讲要掌握什么
| 场景 | 你会练到什么 |
|---|---|
| 场景一:新项目 | 从零创建 CLAUDE.md、CLAUDE.local.md 与条件规则 |
| 场景二:已有项目 | 给臃肿的 CLAUDE.md 瘦身:精简 → 拆分 → 条件规则 |
| 场景三:日常维护 | 用 /memory 查看、编辑与自然语言更新记忆 |
场景一:为新项目创建记忆
假设你刚接手一个 React + TypeScript 前端项目,从零配置记忆。
Step 1:创建基础 CLAUDE.md
先通过 /init 命令自动初始化 CLAUDE.md,或在项目根目录手动创建:
bash
touch CLAUDE.md然后写入如下内容:
markdown
# 项目:电商平台前端
## 技术栈
- React 18 + TypeScript
- Vite 构建
- TanStack Query(数据获取)
- Zustand(状态管理)
- Tailwind CSS
## 目录结构
```text
src/
├── components/ # 组件
│ ├── ui/ # 基础 UI
│ └── features/ # 功能组件
├── pages/ # 页面
├── hooks/ # 自定义 Hooks
├── stores/ # Zustand stores
├── api/ # API 调用
└── types/ # 类型定义
```
## 组件规范
- 函数组件 + Hooks
- Props 接口命名: `XxxProps`
- 一个组件一个目录: `Button/index.tsx`
## 状态管理
- 服务端状态: TanStack Query
- 客户端状态: Zustand
- 本地状态: useState
## 常用命令
- `pnpm dev` - 开发服务器
- `pnpm build` - 构建
- `pnpm test` - 测试要点:只放「每次对话都需要知道」的内容——技术栈、目录约定、常用命令。详细 API 文档不要塞进来。
Step 2:创建本地记忆
个人任务、本地环境地址等不应进 Git 的信息,放在 CLAUDE.local.md:
bash
touch CLAUDE.local.md
echo "CLAUDE.local.md" >> .gitignore示例内容:
markdown
# 本地笔记
## 环境
- API: http://localhost:8080
- Mock: 使用 MSW
## 当前任务
- 重构购物车组件
- 截止: 本周五要点:团队共享规范 → CLAUDE.md;个人临时上下文 → CLAUDE.local.md。
Step 3:添加条件规则(可选)
测试规范只在改测试文件时需要加载,用 .claude/rules/ + paths 条件:
bash
mkdir -p .claude/rules创建 .claude/rules/testing.md:
markdown
---
paths:
- "src/**/*.test.tsx"
- "src/**/*.test.ts"
---
# 测试规范
- 使用 Vitest + React Testing Library
- 测试文件放在同目录: `Button.test.tsx`
- 优先测试用户行为,而非实现细节
```typescript
// ✅ 好
expect(screen.getByRole('button')).toBeEnabled();
// ❌ 不好
expect(component.state.isLoading).toBe(false);
```要点:条件规则 = 渐进式披露的工程化落地。默认不加载,命中路径才注入。
场景二:优化已有的 CLAUDE.md
假设你的 CLAUDE.md 已经有 500 行,Claude 开始变慢——该给它瘦身了。三步走:
Step 1:识别核心内容
问自己:哪些内容是每次对话都需要的?
目标结构:让 CLAUDE.md 保持简单清晰。

Step 2:拆分成独立文件
API 文档、数据库表结构、部署流程虽然重要,但不必每次读入上下文。移到单独文件,在 CLAUDE.md 里只留引用:
markdown
## 核心规范
[精简内容]
## 详细参考
- API 端点清单: @docs/api.md
- 数据库 Schema: @prisma/schema.prisma
- 部署配置: @docs/deploy.md要点:CLAUDE.md 做索引,细节按需 @ 引用读取。
Step 3:使用条件规则
进一步把测试规范、前端规范、后端规范拆到 .claude/rules/,并设置 paths 条件——与场景一 Step 3 同一套路。
场景三:记忆管理命令
查看当前记忆
在 Claude Code 中输入:
/memory会显示当前加载的所有记忆内容和来源。
编辑记忆
/memory edit # 编辑项目级 CLAUDE.md
/memory edit user # 编辑用户级记忆
/memory edit local # 编辑本地级记忆自然语言更新
你也可以直接告诉 Claude 帮你改记忆:
你:请记住,我们项目使用 pnpm 而不是 npm
Claude:好的,我可以将这个信息添加到项目的 CLAUDE.md 中。要我现在更新吗?要点:/memory 管查看与编辑入口;日常小改动用自然语言即可,大结构调整回到场景二的瘦身三步法。
本讲小结
| 操作 | 放哪里 | 何时加载 |
|---|---|---|
| 团队共享规范 | CLAUDE.md | 每次对话 |
| 个人/临时上下文 | CLAUDE.local.md | 每次对话(仅本机) |
| 领域专项规范 | .claude/rules/*.md | 命中 paths 时 |
| 详细参考文档 | docs/ 等 | Claude 按需 @ 读取 |
记住上一讲的核心原则:CLAUDE.md 定义默认决策,不承载全部知识。 这一讲的三场景,就是把那条原则落成可复制的操作步骤。
思考题
- 对照场景一,你的项目
CLAUDE.md还缺哪三块(技术栈 / 目录 / 常用命令)? - 场景二的瘦身三步里,你最容易跳过的是哪一步?为什么?
- 有没有内容误放在
CLAUDE.md、其实应该进CLAUDE.local.md或.claude/rules/?
下一讲进入 03 - 分而治之:Sub-Agents 核心概念——当单一记忆不够时,如何把任务拆给专职子代理。