#AI 工具
Claude Code 三层配置:身份 · 领域 · 项目
把身份、领域规则和项目快照分层拆开,Claude Code 才能既稳又轻。
用 Claude Code 写了几周工程计算工具后,我把原本臃肿的单体 CLAUDE.md 拆成了三层——L1 身份与通用规则、L2 领域细则、L3 项目快照。这篇记录一下为什么这样分,以及这套结构带来的改变。
单层配置的瓶颈
把所有规则塞进 ~/.claude/CLAUDE.md,问题很快就冒出来:
- 信息过载:每次会话都加载全部规则,代码风格、文档骨架、笔记结构混在一起
- 冲突频发:应用构建和方案设计的要求完全不同,硬堆在一个文件里互相干扰
- 改一处就虚:担心牵连别的场景,久而久之不敢动
三层是怎么切的
~/.claude/
├── CLAUDE.md # L1:身份 + 通用规则 + 路由表(始终加载)
└── docs/
├── app-development.md # L2-A:应用构建
├── technical-design.md # L2-B:技术方案设计
├── knowledge-notes.md # L2-C:知识笔记整理
└── project-template.md # L3 模板(新建项目时读取)
<project>/
└── CLAUDE.md # L3:项目快照(进入项目时自动加载)
- L1 只放「我是谁、怎么沟通、通用代码风格、路由表」,任何会话都加载
- L2 按工作类型拆:应用构建 / 方案设计 / 知识笔记,按需读取,不预加载
- L3 是项目级快照:目标、关键决策、文件结构、依赖、任务清单、已知坑;
cd进项目目录即加载
优先级 L3 > L2 > L1,越具体的层级越优先;L3 里还能显式 override 或 ignore L2 的某些规则。
路由表是关键
L1 里一张最小路由表,命中关键词才去读对应的 L2 文件:
| 工作类型 | 中文触发词 | L2 文件 |
|---|---|---|
| 应用构建 | 构建 / 修改 / 调试 Web 应用 | app-development.md |
| 方案设计 | 技术方案 / 方案对比 / 架构 | technical-design.md |
| 知识整理 | 整理 / 提炼 / 结构化知识 | knowledge-notes.md |
这张表干了两件事:避免预加载所有 L2,保证每个任务只带上最相关的上下文。
用下来的几点体感
- 启动更轻:L1 只有身份、沟通、路由几段,加载成本低
- 任务更准:命中哪条路由就带哪层上下文,没有无关规则干扰
- 项目更稳:关键决策、已知坑都写死在 L3,Claude 不会反复回到已经否掉的方案
- 改规则不慌:动 L1 不影响具体项目,动 L2 不牵连其他领域,动 L3 只在当前项目生效
如果你也在用 Claude Code 做一些有一定规范的工程任务,推荐试试这种分层结构。