教程

写好 CLAUDE.md 的 10 个最佳实践:让 Claude 更准确地遵循你的规则

CLAUDE.md 10 个最佳实践:只写 Claude 不能自己推断的内容(新同事测试法);写具体可验证的规则;把常用命令写进去;控制文件长度 200 行以内(遵从度 vs 规则数量的经验估算);用路径限定规则(.claude/rules/ 示例);分清 CLAUDE.md/Hooks/Skills 职责;用 CLAUDE.local.md 放个人专属配置;在重要规则前加触发条件;用 @import 拆分大文档;定期维护删除过时规则(含快速检查清单 8 项)。

2026/5/137分钟 阅读ClaudeEagle

CLAUDE.md 是建议性的,不是强制性的——Claude 会"尽量遵守",但不是每次都完美执行。理解这个前提,才能写出真正有效的 CLAUDE.md,而不是写了一堆规则 Claude 却视而不见。本文结合官方 Best Practices 和社区实践,给出 10 个可以立即改善遵从度的建议。


为什么 Claude 有时"忽视" CLAUDE.md?

首先澄清两个误解:

误解 1:Token 太多了所以没读到 事实:100 行 CLAUDE.md ≈ 500-2000 Token,Claude Code 有 200K 上下文窗口,Token 不是问题。

误解 2:规则需要更强调,多写几遍 事实:重复本身没用,问题在于规则的质量,而不是数量。

真实原因

研究表明,LLM 可以可靠遵循约 150-200 条独立指令。Claude Code 内置系统 Prompt 已占用约 50 条配额,你的有效预算约为 100-150 条。超过这个数量,不是 Token 溢出,而是注意力降级——Claude 在众多规则里"忘记"了一些。

另外,Claude Code 系统 Prompt 明确说 CLAUDE.md 内容"可能相关,也可能不相关",Claude 有权根据任务判断哪些规则适用。这是设计行为,不是 Bug。


10 个最佳实践

1. 只写 Claude 不能自己推断的内容

最常见的浪费:写 Claude 读代码就能知道的事。

markdown
# ❌ 写了也没用(Claude 能从代码结构推断)
- 这是一个 TypeScript 项目
- 我们使用 React 进行前端开发
- 代码在 src/ 目录里

# ✅ 真正有价值(Claude 无法从代码猜到)
- 构建命令:npm run build(不是 npm build)
- 测试需要在 CI 环境变量下运行:MOCK_PAYMENTS=true npm test
- 不要修改 src/legacy/ 目录(外部团队维护,有单独 Review 流程)

测试方法:让一个新同事看代码,他能自然发现的事,不用写;他要问你的事,写进去。


2. 具体到可以验证

markdown
# ❌ 模糊(Claude 不知道怎么执行)
- 写好测试
- 保持代码整洁
- 遵循最佳实践

# ✅ 具体(可以验证是否执行了)
- 每个新函数必须有对应的单元测试,测试文件放在 __tests__/ 同名目录
- 函数长度不超过 40 行;超过则拆分
- 使用 `npm run lint` 检查代码,确保 0 错误

原则:如果你无法判断 Claude 是否"执行"了这条规则,那这条规则太模糊。


3. 把常用命令写进去

markdown
# ✅ 构建和测试命令(这类信息价值很高)
## 常用命令
- 开发服务器:`npm run dev`(端口 3000)
- 测试:`npm test`(需要 `.env.test` 文件)
- 全量测试含覆盖率:`npm run test:coverage`
- 类型检查:`npx tsc --noEmit`
- Lint:`npm run lint`
- 构建:`npm run build`
- 数据库迁移:`npx prisma migrate dev`
- 数据库重置:`npx prisma migrate reset`

Claude Code 首次进入项目时不知道你的命令结构。与其每次会话都重新告诉它,不如一次写进 CLAUDE.md。


4. 控制文件长度在 200 行以内

长 CLAUDE.md 的问题不是 Token,是遵从度下降

规则数量 vs 遵从率(经验估算): 50 条规则 → ~95% 遵从 100 条规则 → ~85% 遵从 200 条规则 → ~70% 遵从 400 条规则 → ~50% 遵从(实际上和没有差不多)

解决方案

对每条规则问:"去掉这条,Claude 会犯什么具体的错?"

  • 能说出具体错误 → 保留
  • 说不上来 → 删掉
  • 规则很重要但很长 → 用 .claude/rules/ 路径限定,只在相关文件上加载

5. 用路径限定规则(.claude/rules/

不需要在所有文件上生效的规则,不要放在主 CLAUDE.md 里:

.claude/ └── rules/ ├── testing.md # 测试规范(无 paths,全局) ├── code-style.md # 代码风格(无 paths,全局) ├── api-security.md # API 安全(paths: src/api/**) ├── react-patterns.md # React 规范(paths: src/components/**/*.tsx) └── sql-safety.md # SQL 安全(paths: **/*repository*.ts)
markdown
---
paths:
  - "src/api/**/*.ts"
---

# API 开发规范
- 所有请求体必须用 Zod Schema 验证
- 禁止在 SQL 查询里拼接用户输入(必须用参数化查询)
- 返回 4xx 错误时,记录 warn 级别日志

这个规范只在 Claude 读取 src/api/ 下的 TypeScript 文件时加载,不占用处理前端代码时的上下文空间。


6. 分清 CLAUDE.md、Hooks 和 Skills 的职责

三者分工清晰,不要混淆

markdown
# 把以下内容放哪里?

"每次修改 .ts 文件后自动运行 ESLint"
→ Hooks(PostToolUse),不是 CLAUDE.md
  原因:这是"每次都必须发生"的操作,用确定性的 Hook

"代码风格要遵循 Airbnb 规范"
→ CLAUDE.md,然后 ESLint 用 Hooks 强制检查
  原因:风格是建议性的,ESLint 是强制性的

"如何部署到 staging 环境"
→ Skills(/deploy-staging),不是 CLAUDE.md
  原因:这是一个步骤化流程,不是常驻规则

CLAUDE.md 里有 Hooks 已经处理的规则 = 发出矛盾信号

Claude 认为"我应该运行 ESLint"(CLAUDE.md 说的),Hook 已经自动运行了 ESLint,Claude 又手动运行一次。有时 Claude 会问"ESLint 已经通过了(Hook 运行的),我还需要再运行吗?"——这种混乱来自规则重复。


7. 利用 CLAUDE.local.md 放个人专属配置

markdown
# CLAUDE.local.md(加入 .gitignore,不提交)

## 我的本地环境
- 数据库:postgresql://localhost:5432/myapp_dev
- Redis:redis://localhost:6379
- 本地 Stripe 测试密钥:sk_test_...(实际上不要把密钥放进文件!)
- 跳过需要 Stripe 的测试(本地没有真实密钥)

## 调试偏好
- 遇到问题先看 src/utils/logger.ts 里的日志
- 本地环境的测试账户:admin@local.dev / test1234

## 我正在处理的功能
- 当前分支:feature/search-v2
- 相关文档:docs/search-architecture.md(正在更新)

团队成员共享 CLAUDE.md,你的个人专属环境信息放 CLAUDE.local.md,互不干扰。


8. 在重要规则前加触发词

有些规则要在特定情况才生效,明确触发条件:

markdown
# ❌ 无条件规则(Claude 可能每次都遵守,哪怕不必要)
- 使用错误边界包裹组件

# ✅ 有条件规则(只在相关时才生效)
- 创建新的 React 页面组件时,必须用 ErrorBoundary 包裹
- 修改 src/api/ 时,务必检查是否需要更新 openapi.yaml
- 提交数据库变更时,确认 prisma/migrations/ 已更新

9. 用 @import 拆分大文档

markdown
# CLAUDE.md(保持精简,作为索引)

# 项目概述
我们是一个 B2B SaaS 平台。主要模块见下方链接。

## 详细规范(按需查看)
- 代码规范:@.claude/docs/code-standards.md
- 数据库约定:@.claude/docs/database-conventions.md
- API 设计规范:@.claude/docs/api-design.md
- 测试策略:@.claude/docs/testing-strategy.md

## 常用命令
(少量最重要的命令...)

## 关键约定
(最重要的 10-15 条规则...)

注意@import 的文件在启动时内联展开,不是懒加载。如果导入的文件总 Token 量很大,还是要控制。用 .claude/rules/ 的路径限定规则才是真正的懒加载。


10. 定期维护:删除过时规则

CLAUDE.md 容易只增不减。设置一个定期审查节奏(比如每个 Sprint 末):

审查问题

  1. 这条规则现在还有效吗?(技术栈变了吗?)
  2. 我们真的还在执行这个约定吗?
  3. 有没有新的规则需要加进来?(Claude 在上周犯了什么新错误?)
markdown
# CLAUDE.md 文件头部(可选)
<!--
最后审查:2026-05-13 | 下次审查:2026-06-13
维护人:@your-github-username
行数:87 / 200 目标
-->

这个注释在 CLAUDE.md 里不会被 Claude 读取(HTML 注释会被 Claude Code 过滤),但帮助人类维护者知道什么时候该审查。


快速检查清单

写完 CLAUDE.md 后,用这个清单验证:

  • 每条规则:删掉它,Claude 会犯什么具体的错?(说不出来就删)
  • 总行数 < 200 行
  • 构建/测试/Lint 命令是否写了?
  • 有没有把 Hooks 应该做的事写进来?(重复了就删 CLAUDE.md 里的)
  • 有没有把 Skills 应该做的流程写进来?(移到 Skills)
  • 个人专属配置(本地数据库、测试账户)是否在 CLAUDE.local.md 而不是 CLAUDE.md
  • Monorepo 场景:子包是否有各自的 CLAUDE.md?
  • 有没有 6 个月以上没更新的规则?

来源:Claude Code 官方文档 - Memory | morphllm - CLAUDE.md Best Practices | Claude Code Best Practices | 整理:ClaudeEagle

相关文章推荐

教程Claude Code 官方最佳实践完全指南:Anthropic 工程团队总结的 25 条黄金法则Anthropic 官方 Best Practices 完整整理:核心约束(上下文管理);给 Claude 可验证标准(最高杠杆);探索→规划→实现→提交四步流程;精准提示 4 策略;丰富上下文输入方式;CLAUDE.md 有效写法(含 ✅/❌ 清单和 @ 引入语法);权限预设;CLI 工具配置;MCP 服务器选择;Hooks 自动化;Skills vs CLAUDE.md 选择;高效沟通技巧;会话管理(提前纠正/激进 /compact/Subagent 调研);以及非交互模式和多 Session 并行的规模化技巧。2026/5/8教程Claude Code 完整开发指南 2026:从安装到生产级工作流的终极参考Claude Code 2026 完整开发者指南:安装配置(CLI/VS Code 扩展);Checkpoints 和 Rewind 双击 Escape 回退;增强型 Plan Mode(Opus 4.7 主动提问);ultrathink 等关键词触发扩展推理;CLAUDE.md 5 层加载顺序和高效模板;MEMORY.md 跨会话持久知识;内置 Slash 命令全览;自定义 Slash 命令创建;MCP 服务器配置;Subagents 编排;Hooks 自动化;Git Worktree 并行开发;TDD 工作流。含 40+ 专家技巧。2026/5/3教程Claude Code 上下文窗口管理完全指南:防止 Token 浪费的 7 个核心策略Claude Code 上下文管理完整指南:7 个核心策略——主动 /compact(70% 时机)、一 Session 一任务、.claudeignore 源头控制、临时 Markdown 文件传递上下文、Subagent 隔离探索、Plan Mode 减少探索消耗、精炼 CLAUDE.md。按优先级排序,附优先级矩阵。2026/4/21教程CLAUDE.md 10 段黄金模板:让 Claude Code 每次启动都像资深开发者一样了解你的项目CLAUDE.md 完整指南:10 段黄金模板(项目概述/技术栈/核心命令/项目结构/代码规范/禁止修改区域/测试规范/数据库规范/代码风格/当前工作)逐段详解,以及会话级动态更新、.claude/rules/ 领域规则拆分、废弃代码标记等高级技巧。2026/4/21教程Claude Code Plan Mode 深度指南:用「先想再做」模式彻底消灭 AI 蝴蝶效应Claude Code Plan Mode 完整指南:蝴蝶效应是什么以及为什么危险、Plan Mode 工作原理、什么时候用什么时候不用的详细清单、采访模式大功能必用流程、Plan Mode + 新 Session 黄金组合,以及完整的限流功能实现案例演示。2026/4/18教程Claude Code 10x 生产力完全指南:上下文工程、Plan Mode 到多 Agent 并行的高阶技法Claude Code 高阶实践完全指南:CLAUDE.md 写什么不写什么的黄金规则、.claudeignore 节省 Token、任务边界控制防蝴蝶效应、Plan Mode 使用时机、Session 卫生管理、Subagent 隔离上下文、多 Agent 团队按任务分模型、Hooks 确定性护栏,以及委托 vs 监督决策矩阵。2026/4/18