Skip to content

02 - 上手演练:CLAUDE.md 实战

上一讲讲了记忆系统的原理、五层架构与编写原则。这一讲只做一件事:把 CLAUDE.md 真正配起来

建议先读完 02 - 过目不忘:记忆系统,再按下面三个场景动手。配套示例见课程仓库 02-Memory 目录。

本讲要掌握什么

场景你会练到什么
场景一:新项目从零创建 CLAUDE.mdCLAUDE.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 定义默认决策,不承载全部知识。 这一讲的三场景,就是把那条原则落成可复制的操作步骤。

思考题

  1. 对照场景一,你的项目 CLAUDE.md 还缺哪三块(技术栈 / 目录 / 常用命令)?
  2. 场景二的瘦身三步里,你最容易跳过的是哪一步?为什么?
  3. 有没有内容误放在 CLAUDE.md、其实应该进 CLAUDE.local.md.claude/rules/

下一讲进入 03 - 分而治之:Sub-Agents 核心概念——当单一记忆不够时,如何把任务拆给专职子代理。