是什么
Claude Code 通过两套机制跨会话传递知识:CLAUDE.md(用户编写的指令文件)和 Auto Memory(Claude 自动记录的学习内容)。两者都在每次会话启动时加载,但性质不同——CLAUDE.md 是规则,Auto Memory 是经验积累。
核心机制
CLAUDE.md 层级结构(从宽到窄,全部叠加进上下文):
| 层级 | 位置 | 作用 | 共享范围 |
|---|---|---|---|
| 组织策略 | /Library/Application Support/ClaudeCode/CLAUDE.md(macOS) | IT 管理的全局规则 | 所有用户 |
| 用户指令 | ~/.claude/CLAUDE.md | 个人偏好,所有项目 | 仅自己 |
| 项目指令 | ./CLAUDE.md 或 ./.claude/CLAUDE.md | 团队共享的项目规范 | 团队(通过 git) |
| 本地指令 | ./CLAUDE.local.md | 个人项目偏好(gitignored) | 仅自己 |
加载规则:从工作目录向上遍历目录树,所有层级的 CLAUDE.md 叠加加载(不覆盖)。子目录的 CLAUDE.md 在 Claude 读取该目录文件时按需加载。
路径规则(.claude/rules/):带 paths: frontmatter 的规则只在 Claude 读取匹配文件时加载,节省上下文:
---
paths:
- "src/api/**/*.ts"
---
# API 规范
- 所有端点必须验证输入Auto Memory:存储在 ~/.claude/projects/<project>/memory/MEMORY.md,每次会话加载前 200 行或 25KB。Claude 在发现新模式或用户纠正时自动更新,无需手动干预。同一 git 仓库的所有 worktree 共享同一个 Auto Memory 目录。
@path 导入:CLAUDE.md 可以用 @path/to/file 语法导入其他文件,导入内容在会话启动时展开加载。
关键细节
- 运行
/init自动生成项目 CLAUDE.md(分析代码库后填充构建命令、测试指令、项目规范) - 运行
/memory查看当前会话加载了哪些记忆文件,并可切换 Auto Memory 开关 - CLAUDE.md 建议控制在 200 行以内,超出后遵从度下降
- 压缩后项目根 CLAUDE.md 会重新注入,嵌套 CLAUDE.md 需等下次读取对应目录文件
- 用
<!-- 注释 -->在 CLAUDE.md 中写维护者注释,不会消耗上下文 tokens - 大型 monorepo 可用
claudeMdExcludes设置跳过其他团队的 CLAUDE.md
关联
- context-window — CLAUDE.md 在上下文中的位置和压缩后行为
- claude-directory — CLAUDE.md 文件的存储位置
- extend-claude-code — CLAUDE.md vs Skills vs Rules 的选择
- best-practices — 编写有效 CLAUDE.md 的技巧
实践要点
- 触发添加 CLAUDE.md 的信号:Claude 犯了同一错误两次、代码审查发现 Claude 应该知道的规范、新成员需要的上下文
- 好的 CLAUDE.md 内容:构建/测试命令、代码风格规则、架构决策、常见陷阱
- 不要放的内容:Claude 能从代码推断的内容、频繁变化的信息、详细 API 文档(链接即可)
- 规则越具体越好:「使用 2 空格缩进」优于「格式化代码」
- 用
IMPORTANT:或YOU MUST强调关键规则,提高遵从度 - 定期审查 CLAUDE.md,删除过时或 Claude 已经默认遵守的规则