2.4 初识 CLAUDE.md:让它记住你的项目

一个让人抓狂的问题
用了几次 Claude Code 之后,你可能会发现一件烦人的事:
每次开新会话,它都不记得上次说过什么。
上次你花了五分钟告诉它"这个项目用 pnpm 不用 npm,测试用 vitest,提交前必须跑 lint"……新会话开起来,你又要说一遍。
这不是 bug,这是正常的——每个会话都有独立的上下文窗口,关掉就清空了。
但这个问题有解决方法,叫做 CLAUDE.md。
CLAUDE.md 是什么?
简单说:它是你写给 Claude Code 的"项目说明书",放在项目根目录里,每次会话开始时自动加载。
不需要你每次都说"这个项目用什么"、"提交前要做什么",写在 CLAUDE.md 里,它自动知道。
就像新员工入职第一天会看的那份内部文档——只不过 Claude Code 每次上班都会重新读一遍,不会忘。
用 /init 自动生成
不用从零开始写,Claude Code 可以帮你生成一份初稿。
在项目目录里启动 Claude Code,输入:
/init它会分析你的项目结构——读 package.json、扫描目录、找到测试配置、检测用的是什么包管理器……然后生成一份 CLAUDE.md。
在 express 项目里跑完 /init,生成的内容大概长这样:
# CLAUDE.md
## 项目概述
Express.js — Node.js Web 框架
## 开发命令
- 安装依赖:`npm install`
- 运行测试:`npm test`
- 运行单个测试:`npx mocha test/xxx.js`
## 代码规范
- 使用 CommonJS(require/module.exports)
- 2 个空格缩进
- 测试框架:Mocha + should.js
## 注意事项
- 不要修改 `History.md`(自动生成)
- PR 前请确保所有测试通过当然,自动生成的内容不会完全准确,需要你手动核对和补充——尤其是项目里的特殊约定、你的个人偏好这类 AI 猜不到的东西。
看懂 CLAUDE.md 的结构
一份好的 CLAUDE.md 一般包含几类信息:
常用命令——它怎么运行、怎么测试、怎么构建:
## 命令
- 启动开发服务器:`npm run dev`
- 运行测试:`npm test`
- 构建:`npm run build`代码规范——这个项目的风格约定:
## 代码规范
- 用 TypeScript,不用 any
- 组件文件用 PascalCase 命名
- 用 pnpm,不用 npm 或 yarn架构说明——关键目录和模块是做什么的:
## 目录结构
- `src/api/` — API 路由处理
- `src/db/` — 数据库查询层
- `src/utils/` — 工具函数特殊规则——那些只有在这个项目里才适用的要求:
## 注意事项
- 提交前必须跑 `npm run lint`
- 不要直接修改 `dist/` 目录下的文件
- 数据库迁移文件不要手动改先有个概念就行,详细的留到后面
CLAUDE.md 看起来简单,但写好它其实有不少门道——写太长会适得其反,写错了会让它产生误解,还有怎么拆分成多个文件、怎么让它只对某类文件生效……
这些我们放到第三章专门讲。
现在你只需要知道:/init 生成一份,大概看一眼,不报错就好。
第二章小结
安装好了,登录好了,跑了第一个会话,知道了 CLAUDE.md 是什么——你正式是 Claude Code 用户了。🎉
接下来,第三章我们深入讲上下文管理:CLAUDE.md 怎么写才有效,Auto Memory 是什么,以及为什么上下文窗口是你最应该关心的资源。
