如果您总是要跟 Claude Code 反复解释同一批项目规则,就把它们写进 CLAUDE.md。这是一个普通的 Markdown 文本文件。Claude Code 在会话开始时读取它,把您的约定和其余上下文一起拿到手。

一开始有几条验证过的规则就够用:在哪里工作、怎样检查结果,以及改动时必须保留什么。

CLAUDE.md 示例

拿一个简单的卡片页面来说。HTML 标记、样式和 JavaScript 都在同一个 index.html 里,页面可以直接在浏览器里打开。对这样的项目,指示文件可能长这样:

# CLAUDE.md

## 项目
- 页面、样式和 JavaScript 都在 `index.html` 里。

## 检查
- 在浏览器里打开 `index.html`。
- 在宽屏和窄屏上检查页面。

## 规则
- 保留卡片当前的颜色和样式。
- 未经确认不要删除已完成的模块。
- 完工后列出改动和检查结果。

这里分三组:项目结构、结果检查和约定。现在遇到"再加一张卡片"这样的要求,就不用把所有规则再列一遍了。页面可以由您自己检查:如果智能体本来没有浏览器工具,有了这份指示也不会让它能访问浏览器。

这只是单个文件的例子,不是通用模板。您的项目里可能有专门的文件夹和启动命令。写下您真正用到的那些;如果没有测试,就不要为了凑齐内容编一条出来。

值得记下来的内容

主要的判断标准是:下次任务还会用到这条记录吗? 有用的东西包括验证过的命令、重要路径,以及智能体没法从代码里可靠推断出来的约定。尤其是那些您已经重复过好几次的。

规则要写得让智能体明白该做出什么动作:

  • "什么都检查一遍" → "改完卡片之后,在宽屏和窄屏上检查页面";
  • "别动重要的东西" → "未经确认不要删除已完成的模块:里面的内容已经谈妥了"。

第一条说清了要检查什么,第二条说清了限制的范围和原因。这比"仔细点干活"这种长长一串愿望清单更有用。

README.md 是给人看的,说明这是个什么项目、怎样上手。CLAUDE.md 收集的是给智能体的指示。没必要把整个 README 再复述一遍。至于"卡片标签好像因为宽度问题错位了"这类猜测,留在当前任务的笔记里就好,比如 PROJECT_NOTE.md。这就是一个普通文件,名字您自己定;继续做这个任务时,请智能体读一下它。

不要把猜测当成已确定的事实记下来,也不要在这里存密码或访问密钥。团队共用的 CLAUDE.md 一般会提交到 Git,这样同事拿到项目时能收到同样的指示。

怎样创建并检查文件

先从已经知道的规则开始。不必等错误攒成一长串,也不必提前把所有可能的情况都写一遍。

  1. 看看项目里是不是已经有一个现成的 CLAUDE.md。如果有,读一下再补充。新建文件就选在项目根目录;.claude/CLAUDE.md 这个位置也支持,但没必要两份都建。
  2. 手写几行,或者在项目文件夹里启动的 Claude Code 中输入 /init。这条命令会研究一下项目,准备出一份草稿;如果文件已经存在,就给出改进建议。
  3. 读一遍结果。把命令和路径跟项目本身对一对,删掉猜测的内容。比如智能体写了一条您根本没有的测试命令,就删掉它。只有您自己知道的限制,自己补上。
  4. 保存文件,在项目文件夹里开一个新会话。输入 /context:Memory files 那一节应该能看到您的 CLAUDE.md 路径。

然后试一次小改动:比如让它加一张卡片,看看颜色有没有保留下来,有没有出现检查报告。如果列表里看不到这个文件,先检查它的名字和启动所在的文件夹。如果能看到,但结果跟规则对不上,就检查一下措辞,看看是不是哪里互相矛盾了。

加载不等于遵守

文件出现在列表里,说明它被加载了,但不保证规则真的会被遵守。智能体给出正确答案本身也不能证明文件被加载过:信息可能来自别的文件。指示能引导工作方向,但不会对某个动作形成技术上的禁止。

其余的内容记在哪里

第一个项目有一份 CLAUDE.md 就够了。等到出现个人指示,或者共用规则越来越多的时候,下面这张图能帮您选对存放的地方:

指示和笔记该记在哪里只对当前任务有意义的记录留在任务笔记里。项目专属的长期个人指示写进 CLAUDE.local.md,共用规则写进 CLAUDE.md。规则多起来之后,部分共用规则可以移到 .claude/rules/ 里。自动记忆单独展示:这是 Claude 自己保存的笔记。以后的任务还用得上这条记录吗?当前任务的笔记这个项目的个人指示?CLAUDE.local.mdCLAUDE.md部分共用规则.claude/rules/Auto memoryClaude 自己保存的笔记否是是否如果规则很多,或者需要按路径区分另一套机制
先想清楚这条记录是干什么用的,再选文件。

一条共用规则可能只涉及一个文件夹,却依然是整个团队都需要的。.claude/rules/ 能帮您按主题拆分这类指示;限定到具体路径是单独配置的。就为了一两条规则,没必要把结构搞复杂。

CLAUDE.local.md 适合放这个项目里的个人指示,比如希望回答简短一点。把它加进 .gitignore,这样就不会被提交。智能体照样会读这个本地文件,所以密钥也不该放在这里。

自动记忆(auto memory)是另外一组笔记,如果这个机制开着,Claude 会在工作过程中自己保存进去。重要的规则不要只交给它自己判断:直接明说,请它把这条加进 CLAUDE.md。临时的 bug 猜测,留在任务笔记里就行。

如果项目里已经有一份 AGENTS.md,不要把它的内容再搬到第二个文件里。在 CLAUDE.md 里可以用一行 @AGENTS.md 引入旁边这份文件。加 CLAUDE.local.md 的时候这一点特别有用:个人文件可能会影响到 AGENTS.md 是不是被直接读取。其他做法见官方文档。

什么时候更新规则

让文件跟着项目一起改。把样式从 index.html 拆到单独的文件里了 - 改一下关于结构的那一行。检查方式变了 - 换掉旧的指示。不要把新规则叠在一条互相矛盾的旧规则上面。

重复出现的修改,可以交给智能体去做:"在 CLAUDE.md 里加一条,删除已完成的模块之前需要我确认"。之后读一遍改动:它应该原样传达您的约定,而不是自己额外加限制。很多时候一行就够了。

如果规则被违反了,先弄清楚原因,而不是把它再重复三遍。删掉过时的记录,只留下对下一个任务真正有帮助的内容。