CLAUDE.md 文件:项目级与全局级完全解析
CLAUDE.md 是 Claude Code 提供的简化版规则配置文件(对比多文件的 rules 文件夹),核心作用是定义 AI 需遵循的代码规范、项目要求等。而「项目根目录的 CLAUDE.md」和「用户主目录的 ~/.claude/CLAUDE.md」的核心区别在于作用域和优先级,这里的关键在于理清这两个维度的差异。
核心区别(作用域 + 使用场景)
| 维度 | 项目根目录 CLAUDE.md | 用户主目录 ~/.claude/CLAUDE.md |
|---|---|---|
| 作用域 | 仅对当前项目生效(项目内所有文件) | 对当前用户下的所有项目生效 |
| 使用场景 | 定义当前项目的专属规则(如项目特有编码规范、业务约束、依赖版本) | 定义跨项目的通用规则(如个人编码习惯、全项目通用安全规范、多项目复用的基础规则) |
| 维护主体 | 项目团队/项目负责人(随项目代码仓提交) | 个人用户(仅本地生效,不随项目同步) |
| 内容特点 | 针对性强,仅包含当前项目需要的规则 | 通用性强,仅包含所有项目共用的规则 |
直观来看,两者的配置内容通常长这样:
全局级 ~/.claude/CLAUDE.md(个人通用规则):
# 个人通用开发规范
1. **必须**为所有函数/方法添加文档注释
2. **禁止**硬编码密钥、密码等敏感信息
3. **必须**处理所有异常,避免暴露堆栈信息
4. **建议**代码单行不超过 120 个字符
项目级 CLAUDE.md(比如一个电商后端项目):
# 电商订单服务开发规范
1. **必须**使用 Spring Boot 3.2.x 版本
2. **必须**遵循项目的订单状态枚举(UNPAID/PAYED/SHIPPED/COMPLETED)
3. **禁止**直接修改订单表数据,必须通过订单服务接口
4. **建议**所有接口响应时间不超过 200ms
优先级规则(核心重点)
Claude Code 加载规则时遵循「项目级 > 全局级」的核心优先级,具体分为两种场景:
无冲突规则:叠加生效
如果项目级和全局级 CLAUDE.md 的规则无冲突(内容互补),则所有规则都会生效。例如:全局规则要求「添加文档注释」,项目规则要求「使用 Spring Boot 3.2.x」→ 两个规则都会被 Claude 遵守。

