一个乱写的 CLAUDE.md 比没有更糟糕——它会让模型在大量"规则"里迷失,执行率反而下降。
推荐结构(四层):
## 项目上下文
# 一句话说清楚这是什么项目、什么语言、什么阶段
## 绝对禁止
# 不允许做的事情(最重要,最先读到)
- 不允许修改 /auth 目录下的文件,除非明确要求
- 不允许安装新依赖,没有讨论过的
## 技术规范
# 代码风格、命名、架构决定
- 函数名用 camelCase,文件名用 kebab-case
- API handler 必须有错误处理,不允许 catch 后静默
- 测试文件放在 __tests__/ 目录
## 当前任务上下文
# 这次 session 的焦点是什么
- 当前在做:payment 模块重构
- 不动:user 认证逻辑
几个关键原则:
1. "绝对禁止"放最前面
Claude 读 CLAUDE.md 时权重是前段高于后段。最重要的约束要放在最前面,不要把它埋在第三节第五条。
2. 用"不允许"替代"应该"
"代码应该有注释"→ 模型可能忽略。"不允许提交没有注释的函数"→ 更强的约束。
3. 任务上下文动态更新
每次开始新的 session,更新"当前任务上下文"那一节。这比在对话里反复说"我现在在做 X"效率高得多。
CLAUDE.md 不是文档,是给模型的操作手册。简洁、可操作、有优先级。