介绍
# CLAUDE.md Optimization Guide
编写 CLAUDE.md 文件,以最大化 Claude 的遵从度和性能。
## 核心原则:少即是多
CLAUDE.md 太长 = Claude 会忽略其中一半内容。关键规则会被淹没在噪音中。
**对每一行都要问:**“删除这行会导致 Claude 犯错吗?” - 如果否 → 删除它 - 如果 Claude 本来就能正确做到 → 删除它或将其转换为钩子
## 包含内容
### 必要(高价值)
| 章节 | 示例 | |---------|---------| | 项目上下文 | “带有 Stripe 的 Next.js 电商应用”(1 行) | | 构建/测试命令 | `npm run test`、`pnpm build` | | 关键陷阱 | “切勿直接修改 auth.ts” | | 非显而易见的约定 | “使用 `vi` 管理状态,而非 `useState`” | | 领域术语 | “PO = Purchase Order(采购订单),而非 Product Owner” |
### 仅在非标准时包含
- 分支命名(如果不是 `feature/`、`fix/`) - 提交格式(如果不是约定式提交) - 文件边界(需避免的敏感文件)
### 切勿包含
- Claude 已知的内容(通用编码实践) - 显而易见的模式(可从现有代码中检测) - 冗长的解释(保持简练) - 理想化规则(仅限你遇到过的真实问题)
## 结构
```markdown # Project Name
One-line description.
## Commands - Test: `npm test` - Build: `npm run build` - Lint: `npm run lint`
## Code Style - [Only non-obvious conventions]
## Architecture - [Brief, only if complex]
## IMPORTANT - [Critical warnings - use sparingly] ```
## 格式规则
- 优先使用**要点**而非段落 - 使用 **Markdown 标题**分隔模块(防止指令渗透) - **具体**而非模糊:写“2空格缩进”而非“格式正确” - 对关键规则使用 **IMPORTANT/YOU MUST**(少量使用,否则会失去效果)
## 文件位置
| 位置 | 范围 | |----------|-------| | `~/.claude/CLAUDE.md` | 所有会话(用户偏好) | | `./CLAUDE.md` | 项目根目录(可通过 git 共享) | | `./subdir/CLAUDE.md` | 在子目录中工作时加载 | | `.claude/rules/*.md` | 作为项目记忆自动加载 |
## 优化清单
在定稿前: - [ ] 是否在 50 行以内?(理想目标) - [ ] 每一行是否都解决你遇到过的真实问题? - [ ] 是否与其他 CLAUDE.md 位置的内容冗余? - [ ] 是否包含 Claude 默认遵循的指令? - [ ] 是否通过观察 Claude 的行为变化进行了测试?
## 维护
- 以 `/init` 为起点,然后进行大幅修剪 - 每隔几周:“审查此 CLAUDE.md 并建议删除内容” - 当 Claude 行为异常时:添加具体规则 - 当 Claude 忽略规则时:文件太长,修剪其他内容
## 反模式
| 不要这样做 | 原因 | |-------|-----| | 200+ 行的 CLAUDE.md | 会被忽略 | | “编写干净的代码” | Claude 已知此点 | | 跨文件重复规则 | 浪费 token,易冲突 | | 理论化考虑 | 仅针对真实问题添加 | | 长篇大论的解释 | 使用要点 |
## 示例:极简有效的 CLAUDE.md
```markdown # MyApp
React Native app with Expo. Backend is Supabase.
## Commands - `pnpm test` - run tests - `pnpm ios` - run iOS simulator
## Style - Prefer Zustand over Context - Use `clsx` for conditional classes
## IMPORTANT - NEVER commit .env files - Auth logic lives in src/lib/auth.ts only ```
约 15 行。涵盖 Claude 无法推断的内容。除此之外别无其他。