如果您总是要跟 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,这样同事拿到项目时能收到同样的指示。
怎样创建并检查文件
先从已经知道的规则开始。不必等错误攒成一长串,也不必提前把所有可能的情况都写一遍。
- 看看项目里是不是已经有一个现成的
CLAUDE.md。如果有,读一下再补充。新建文件就选在项目根目录;.claude/CLAUDE.md这个位置也支持,但没必要两份都建。 - 手写几行,或者在项目文件夹里启动的 Claude Code 中输入
/init。这条命令会研究一下项目,准备出一份草稿;如果文件已经存在,就给出改进建议。 - 读一遍结果。把命令和路径跟项目本身对一对,删掉猜测的内容。比如智能体写了一条您根本没有的测试命令,就删掉它。只有您自己知道的限制,自己补上。
- 保存文件,在项目文件夹里开一个新会话。输入
/context:Memory files 那一节应该能看到您的 CLAUDE.md 路径。
然后试一次小改动:比如让它加一张卡片,看看颜色有没有保留下来,有没有出现检查报告。如果列表里看不到这个文件,先检查它的名字和启动所在的文件夹。如果能看到,但结果跟规则对不上,就检查一下措辞,看看是不是哪里互相矛盾了。
文件出现在列表里,说明它被加载了,但不保证规则真的会被遵守。智能体给出正确答案本身也不能证明文件被加载过:信息可能来自别的文件。指示能引导工作方向,但不会对某个动作形成技术上的禁止。
其余的内容记在哪里
第一个项目有一份 CLAUDE.md 就够了。等到出现个人指示,或者共用规则越来越多的时候,下面这张图能帮您选对存放的地方:
一条共用规则可能只涉及一个文件夹,却依然是整个团队都需要的。.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 里加一条,删除已完成的模块之前需要我确认"。之后读一遍改动:它应该原样传达您的约定,而不是自己额外加限制。很多时候一行就够了。
如果规则被违反了,先弄清楚原因,而不是把它再重复三遍。删掉过时的记录,只留下对下一个任务真正有帮助的内容。
GO TO FULL VERSION