每次提编写要求都要和Claude Code 说明项目的技术栈,编程规范,这是件繁琐并让人抓狂的体验。所以这节课要学习CLAUDE.md ,它就像是给Claude的"项目入职手册",Claude 每次开始对话时,都会自动阅读这份手册,了解你的项目背景,明确它在干活时应该遵循的底层规则。

编写高效的CLAUDE.md

CLAUDE.md写得好不好,直接决定了Claude 是靠谱同事,还是每次都要重新培训的实习生。

所以我先给出CLAUDE.md编写要遵循的三核心原则,了解怎么写,才值得每次都被加载进上下文。

核心原则 1:少即是多(Less is More)

CLAUDE.md 的每一行,都会在每一次对话开始时被自动注入上下文,这意味着消耗更多的Token,花更多的钱。也就是说冗余不是无害的,而是持续消耗的。所以保持精简不是建议,而是必须。

核心原则 2:具体优于泛泛

先来看一个非常常见、但几乎没有任何效果的写法。

# 项目规范
## 代码质量
请写出高质量的代码。代码应该是可读的。使用有意义的变量名。
保持代码整洁。遵循最佳实践。不要写重复的代码。

这些可以叫做"正确的废话",因为他们都对,但Claude本身就知道这些。它们不会改变Claude的任何决策,只会白白占用上下文空间。这些话对于人类尚且含糊,对模型来说,更是几乎等于什么都没说。

真正有价值CLAUDE.md,应该是如下所示:

# 项目:技术胖的个人博客

## 技术栈
- html + css + javaScript

## 目录结构
src/
|—— pages/ # 页面
|—— style/ # css样式
|—— javascript/ #js脚本
|—— docs/ 规范文档放置位置

 ## 组件规范
 ## 常用命令
 ## 详细文档

可以看到这样写的差异非常明确。后者不是模糊的要求"要高质量",而是给出了如何做才算高质量;就是要简单明确的告诉Claude到底该如何作。

核心原则 3: 用引用实现渐进式规范

CLAUDE.md 的职责是定义默认决策,而不是承载全部知识。对于非核心、但可能被用到的内容,正确的做法是引用,而不是复制。

...
 ## 详细文档
 - 数据库设计: 见 `docs/database.md`
 - API 规范: 见 `docs/api-spec.md`
 - 部署流程: 见 `docs/deployment.md`

这样做有两个好处:

  1. CLAUDE.md 保持轻量,启动成本低。
  2. 当Claude需要进一步细节信息时,可以按需读取引用文件。

Claude Code 的五层记忆架构

这里你可以简单的学习一下,有印象即可,在实际项目中用到,再来看会有更深的理解

学到这里你一定对CLAUDE.md有了初步的了解,也可以自己写一些简单项目的CLAUDE.md了。那我们再来学一下Claude Code的五层记忆架构。其实你可以简单理解为放的位置和名称不同,所属的层级就不同。

五层记忆架构,其实可以用一张图就讲明白。

Claude Code 五层记忆结构图

这张图可以看出,层级越小,范围越大,但层级大的可以覆盖层级小的。

举个例子:企业策略里有一条生成伪静态连接,但我们在本地级策略里,写明了一条,这是 直接生成静态页面,最终结果是会覆盖掉企业成立里的,而采用直接生成静态页面

企业策略级记忆设定

企业策略级记忆设定的作用是组织范围内的指令,由 IT/DevOps 统一管理和部署组织。适合内容是,公司编码标准、安全策略、合规要求以及禁止使用的库或模式。通过配置管理系统(MDM、Group Policy、Ansible 等)部署,确保在所有开发者机器上一致分发。

位置:

  • Windwos:C:\Program Files\ClaudeCode\CLAUDE.md
  • macOS: /Library/Application Support/ClaudeCode/CLAUDE.md
  • Linux: /etc/claude-code/CLAUDE.md

示例:

# 公司开发策略

## 安全要求
- 禁止在代码中硬编码任何密钥或敏感信息
- 所有 API 调用必须使用 HTTPS
- 用户输入必须经过验证和清理

## 合规要求
- 所有日志必须排除 PII(个人身份信息)
- 数据库连接必须使用加密传输

## 禁止项
- 禁止使用未经审批的第三方库
- 禁止直接访问生产数据库

如果你是小团队,可以直接跳过企业级设定这一层,不影响任何使用。

用户级内容设定

用户级内容设定承载的是你的全局偏好,即跨所有项目生效的个人偏好,如个人代码风格,沟通语言设置,通用工作习惯等。比如说我希望所有的 PPT 都是 16:9,黑体字。这种设置就应该放在此处。

位置:~/.claude/CLAUDE.md

示例:

# 个人偏好

## 沟通方式
- 使用中文回复
- 代码注释使用英文
- 解释简洁直接,不要过多铺垫

## 通用代码风格
- 缩进使用 2 空格
- 优先使用 async/await
- 变量命名使用 camelCase
- 常量命名使用 UPPER_SNAKE_CASE

## 我的常用工具
- 包管理器: uv
- 编辑器: VS Code
- 终端: zsh

项目级团队共享规范

团队共享规范是团队共享的项目知识,应该提交到 Git。适合存放的内容包括项目架构和技术栈、团队编码规范、重要的设计决策和常用命令。

位置:项目根目录的 ./CLAUDE.md

本地级个人工作空间

个人工作空间用于记载个人工作笔记,不提交到 Git,适合内容包括本地环境配置、个人调试技巧、当前工作备注,敏感信息(测试账号等)。

位置:项目根目录的./CLAUDE.local.md

记得把 CLAUDE.local.md 加入 .gitignore!

规则目录:分类组织

最后说一下 rules,这是一个比较高阶的技巧,初学者可以作为知识了解一下,也可以先略过不看。Rules 是按主题组织的规则文件,支持条件作用域(也就是视情况来确定是否加载该记忆内容),适合场景包括 CLAUDE.md 变得太长时,不同文件类型需要不同规范时,以及前后端分离的项目。

位置:.claude/rules/*.md

这个类似我们的详细规范,比如如何测试、如何写js、如何写html代码

目录结构:

.claude/
└── rules/
    ├── typescript.md      # TypeScript 规范
    ├── testing.md         # 测试规范
    ├── api-design.md      # API 设计规范
    └── security.md        # 安全规范

好了,这就是本节课的所有内容了,内容很多。不要求你全部掌握,大多是理论。实际操作就是你自己会写一个CLAUDE.md就可以。