--- created: "2026-06-27 06:25" type: zettel tags: [zettel, claude-code, memory, claude-md, context] source: "Anthropic memory 官方文档 (2026)" --- # CLAUDE.md 是目录树拼接加载而非覆盖 多个 `CLAUDE.md` 不是"最近的那个赢",而是**沿目录树向上发现、全部拼接(append)**。理解这点才能正确分层放置规则。 机制: - **向上遍历目录树发现**所有 `CLAUDE.md`。 - **祖先目录的文件启动时全量加载**;**子目录的嵌套文件在读取该目录时才按需加载**。 - 所有命中的文件**拼接而非覆盖** —— 个人(`~/.claude/CLAUDE.md`)、项目(`./CLAUDE.md`)、本地(`./CLAUDE.local.md`)叠加生效。 - monorepo 父目录会自动拉取;支持 `@path/import` 引入其它文件。 推论(分层放置策略): - **跨项目偏好** → `~/.claude/`(用户级)。 - **团队共享的项目规范** → `./CLAUDE.md`(入 git)。 - **个人临时覆盖** → `./CLAUDE.local.md`(入 `.gitignore`)。 - **某子模块专属规则** → 放该子目录的 `CLAUDE.md`,只在进入时按需加载,**省主上下文**。 - 单文件 **< 200 行**;过大拆到 `.claude/rules/` 的 path-scoped rules(带 `paths` frontmatter)。 因为是"拼接 + 全量加载祖先",所以越靠上、越大的文件,对每次会话的 token 成本越高 —— 这正是"保持简洁、按目录就近放置"的底层原因。 --- ## Related - [[20260308223000 Claude Code Memory 日常最佳实践]] —— 5 层 memory 全景与 Auto memory - [[20260319120200 MCP数量与上下文窗口的反比关系]] —— 同样是上下文预算权衡 - [[Claude Code 新项目开发最佳实践 (2026 调研)]] ## Source - https://code.claude.com/docs/en/memory - https://code.claude.com/docs/en/best-practices