
Claude Code 高级用法精读
2026/05/22 08:05:48@NeoDropユーザーqgkk
CLAUDE.md 深度指南:四层记忆架构、@ 导入与内容取舍原则
CLAUDE.md 不只是一个配置文件——它有四个加载层级(企业/项目/用户/本地)、支持递归 @ 导入把规则模块化、提供 # 快速写入和 /memory 编辑两种维护方式。本文完整拆解这些机制,以及哪些内容该写进去、哪些会拖慢 Claude 的表现。
CLAUDE.md 是 Claude Code 的项目记忆文件,在每次会话启动时自动载入上下文。大多数人知道它存在,但很少人知道它有四个加载层级、支持文件导入嵌套引用、有一套清晰的内容取舍逻辑,以及几个不当用法会让它从加速器变成拖累。
本文完整拆解这些机制。
四个加载层级,优先级从高到低
Claude Code 的记忆分四层,加载时按层级叠加,高层覆盖低层:
| 层级 | 文件位置 | 用途 | 共享范围 |
|---|---|---|---|
| 企业策略 | macOS: /Library/Application Support/ClaudeCode/CLAUDE.md | 公司级统一规范 | 组织内所有用户 |
| 项目记忆 | ./CLAUDE.md(项目根目录) | 团队共享的项目规范 | 通过 git 共享给团队 |
| 用户记忆 | ~/.claude/CLAUDE.md | 个人跨项目偏好 | 仅自己,所有项目生效 |
| 本地项目记忆 | ./CLAUDE.local.md(已废弃) | 个人项目专属偏好 | 仅自己,当前项目 |
企业层级由 IT/DevOps 通过 MDM 或 Ansible 统一部署,个人开发者一般不会用到。日常开发中最重要的是项目层(
./CLAUDE.md)和用户层(~/.claude/CLAUDE.md),前者提交进 git 供团队共享,后者配置个人编码习惯。Claude 读取记忆时有一个容易忽略的行为:不只加载当前工作目录的
CLAUDE.md,还会向上递归到根目录查找每一级父目录的 CLAUDE.md。这意味着,若你在 foo/bar/ 下运行 Claude Code,foo/CLAUDE.md 和 foo/bar/CLAUDE.md 会同时生效。对 monorepo 来说,在仓库根目录放全局规范、各子包目录放专属规范,是最自然的组织方式。子目录下的
CLAUDE.md 还有延迟加载特性:不在启动时全部载入,而是当 Claude 读取该子目录下的文件时才被加入上下文,避免一次性消耗过多 token。1@ 导入:把记忆拆成可组合的模块
CLAUDE.md 支持
@path/to/file 语法引入外部文件,这是应对规则增长的核心机制。# Project Setup
See @README.md for project overview and @package.json for available commands.
## Additional Rules {#additional-rules}
- Git workflow: @docs/git-workflow.md
- Testing conventions: @docs/testing.md
- Personal overrides: @~/.claude/my-project-overrides.md几条关键特性:
- 支持相对路径和绝对路径,也支持
~/家目录路径 - 可递归导入,最深 5 层(被导入文件可以再导入其他文件)
- 代码块内的
@不会被解析,即`@anthropic-ai/claude-code`这类包名不会触发导入 - 运行
/memory命令可查看当前会话实际加载了哪些记忆文件
~/.claude/ 路径在团队协作中的实际用法:把个人配置(sandbox URL、本地数据库连接、个人偏好)放在 ~/.claude/my-project.md,然后在项目的 CLAUDE.md 里加一行:# Individual Preferences
- @~/.claude/my-project.md团队成员各自维护自己的覆盖文件,文件本身不进 git,但引用语法进 git。这是取代已废弃的
CLAUDE.local.md 的正确方式。2对于规则数量超过 50 条的大型项目,社区实践中有两种主流结构:
方案 A:单文件分区导入(规则分类清晰,适合中型项目)
# CLAUDE.md
## Core Rules {#core-rules}
@docs/rules/core.md
## Security Rules {#security-rules}
@docs/rules/security.md
## Testing Rules {#testing-rules}
@docs/rules/testing.md方案 B:主文件导入规则索引文件,索引文件再导入具体规则(适合企业级多团队项目)
# CLAUDE.md
@docs/agent_rules/index.md两种方案都可行,选哪种取决于团队规模和维护习惯。3
# 快速写入和 /memory 编辑
在 Claude Code 会话中,两个操作可以直接修改记忆文件:
# 快速写入:在对话输入框里,以 # 开头发送一条消息,Claude 会提示你选择写入哪个层级的记忆文件,然后把内容追加进去。# Always use pnpm, not npm or yarn这是发现新约定后随手记录的最快路径,不需要打开编辑器找到文件再追加。这个功能由 Anthropic 工程师 cat 在 2025 年 3 月的一条推文里宣布 4:
コンテンツカードを読み込んでいます…
/memory 命令:在会话中输入 /memory,会在系统默认编辑器里打开记忆文件,适合做批量整理和大段修改。这两种操作的区别在于场景:
# 是边干活边记录,/memory 是专门整理时用。什么该写,什么不该写
这是 CLAUDE.md 最容易踩错的地方。文件越长,关键规则被遵守的概率越低——这不是比喻,是 LLM 处理长上下文时的实际表现。每一行都在和其他行竞争注意力。
官方最佳实践给了一个判断标准:对每一条内容问「删掉这条,Claude 会不会犯错?」如果不会,就删。5
リンクプレビューを読み込んでいます…
| 建议写入 | 建议删除 |
|---|---|
| Claude 无法从代码推断的 Bash 命令 | Claude 读代码就能推断的内容 |
| 和默认规范不同的代码风格规则 | 已经是行业共识的标准约定 |
| 测试运行器选择和测试命令 | 详细 API 文档(改用链接) |
| 分支命名、PR 约定等仓库规范 | 频繁变动的信息 |
| 项目特有的架构决策 | 逐文件的代码库说明 |
| 必须设置的环境变量 | 不言自明的内容(如「写干净的代码」) |
| 常见的非 obvious 错误和坑 | 冗长解释和教程 |
长度控制上,HumanLayer 的项目根
CLAUDE.md 不到 60 行,社区中有人的文件到了 20KB。业界没有强制标准,但多数实践者给出的建议是不超过 300 行,越短越好。一个检验方法:你能在 30 秒内扫读完主文件的所有规则吗?如果不能,它已经太长了。6リンクプレビューを読み込んでいます…
不要把代码风格规范全文塞进 CLAUDE.md。格式化和 lint 是静态工具的工作,Claude 不应该读着规范逐行检查你的代码缩进。正确做法:配 ESLint/Prettier,在
Stop hook 里触发自动格式化,或用 / 命令做风格检查,和开发流程分离。不要用
/init 直接生成然后不管。/init 能基于当前项目结构生成初始文件,适合作为起点,但生成结果需要人工审核删减。自动生成的 CLAUDE.md 往往包含大量 Claude 可以自己推断的冗余内容。进阶:用 CLAUDE.md 控制 /compact 保留什么
一个较少被提到的技巧:可以在 CLAUDE.md 里自定义上下文压缩行为。
当 Claude 执行
/compact 时,默认会压缩上下文以节省 token,但压缩过程可能丢失重要状态。在 CLAUDE.md 里加一条规则,可以明确要求保留特定信息:## Compaction Rules {#compaction-rules}
When compacting, always preserve:
- The full list of modified files
- Any pending test commands
- Current migration state if a database migration is in progress这样每次压缩后,Claude 不会丢失正在进行的工作状态。5
结合
/compact focus on [topic] 手动触发,比依赖自动压缩更可控。Boris Cherny 在多个场合建议在 KV 上下文用量达到 40-50% 之前主动压缩,避免进入「dumb zone」。7一个完整的项目 CLAUDE.md 结构示例
把以上内容整合成一个可直接参考的模板:
# [项目名]
## Project Overview {#project-overview}
[一句话说明项目是什么、用什么技术栈]
## Repository Structure {#repository-structure}
- `src/` — 主应用代码
- `packages/` — 共享库
- `docs/` — 详细文档(见下方导入)
## Common Commands {#common-commands}
- Install: `pnpm install`
- Dev: `pnpm dev`
- Test: `pnpm test`
- Build: `pnpm build`
- Lint: `pnpm lint` (auto-runs on Stop hook)
## Code Conventions {#code-conventions}
- 使用 TypeScript strict mode,禁止 `any`
- [与行业默认不同的约定才需要写]
## Architecture Decisions {#architecture-decisions}
@docs/architecture.md
## Git Workflow {#git-workflow}
@docs/git-workflow.md
## Individual Preferences {#individual-preferences}
@~/.claude/[project-name]-local.md
## Compaction Rules {#compaction-rules-2}
When compacting, preserve: modified file list, pending test commands.注意这个模板只写了项目级文件(提交到 git)。用户级
~/.claude/CLAUDE.md 单独维护个人偏好,两个文件共同作用,不要把个人配置混进项目文件。CLAUDE.md 的价值不在于刚建好的那一刻,而在于迭代维护。Anthropic 内部每个团队都维护一个,内容包含过去踩过的坑、项目最佳实践和 PR 模板。当你把遇到的问题随手用
# 记录下来,把调试中发现的坑整理进文件,它会随着项目积累越来越有用——这是 CLAUDE.md 和单次 prompt 的根本区别。
このコンテンツについて、さらに観点や背景を補足しましょう。