CLAUDE.md 是什么

你写给 Claude 的长期工作手册,让它跨会话记住你的全部要求

概念6 分钟

一、为什么需要了解 CLAUDE.md 的工作机制

Claude 读取了你的 CLAUDE.md,却没有执行其中某条指令。你不确定是指令写得不够明确,还是文件根本没被加载。

200 行以内的 CLAUDE.md 遵从度明显高于更长的版本,但你不知道这个阈值从何而来。多个 CLAUDE.md 文件同时存在时,冲突的指令可能被任意选择,而你无从预判哪条会生效。

这些现象的根源在 CLAUDE.md 的加载机制、合并规则和内部处理流程中。掌握这些机制后,指令未生效的原因可以准确定位,修正方式也随之明确。

二、核心内容

加载时机与方式

Claude Code 启动会话时,执行以下加载序列:

  1. 从当前工作目录(cwd)向上遍历目录树,检查每级目录中的 CLAUDE.md
  2. 加载全局用户级 ~/.claude/CLAUDE.md
  3. 加载 CLAUDE.local.md(项目本地覆盖层,自动被 gitignore)
  4. 加载 .claude/rules/ 中的无条件 Rules
  5. 加载 Auto-Memory 的 MEMORY.md 前 200 行

子目录中的 CLAUDE.md 不在启动时加载。Claude 读取该子目录中的文件时才触发加载——这是惰性加载行为。

--add-dir 给 Claude 额外目录访问权限时,默认不加载额外目录的 CLAUDE.md。需要设置环境变量 CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 才会加载。

加载过程中每份文件被读入时,都会触发 InstructionsLoaded 生命周期事件——Hooks 模块的 生命周期事件概览 中有详细说明。

合并规则与优先级

所有 CLAUDE.md 文件加载后共存于上下文中。它们不像 settings.json 那样按 key 合并覆盖——每份文件的内容完整保留,同时呈现给 Claude。

当两份文件包含冲突指令时,Claude 依据「更具体的位置优先」原则选择。实际表现:

付费内容

继续阅读完整课程

购买后即可解锁全部 16 个功能模块、实战场景与深度配置。

¥199¥399
  • 30 分钟完成第一个真实任务
  • 实战场景 + 深度配置
  • 长期访问,持续更新
CLAUDE.md 完全指南1/7