
CLAUDE.md 不只是一个配置文件——它有四个加载层级(企业/项目/用户/本地)、支持递归 @ 导入把规则模块化、提供 # 快速写入和 /memory 编辑两种维护方式。本文完整拆解这些机制,以及哪些内容该写进去、哪些会拖慢 Claude 的表现。
| 层级 | 文件位置 | 用途 | 共享范围 |
|---|---|---|---|
| 企业策略 | macOS: /Library/Application Support/ClaudeCode/CLAUDE.md | 公司级统一规范 | 组织内所有用户 |
| 项目记忆 | ./CLAUDE.md(项目根目录) | 团队共享的项目规范 | 通过 git 共享给团队 |
| 用户记忆 | ~/.claude/CLAUDE.md | 个人跨项目偏好 | 仅自己,所有项目生效 |
| 本地项目记忆 | ./CLAUDE.local.md(已废弃) | 个人项目专属偏好 | 仅自己,当前项目 |
./CLAUDE.md)和用户层(~/.claude/CLAUDE.md),前者提交进 git 供团队共享,后者配置个人编码习惯。CLAUDE.md,还会向上递归到根目录查找每一级父目录的 CLAUDE.md。这意味着,若你在 foo/bar/ 下运行 Claude Code,foo/CLAUDE.md 和 foo/bar/CLAUDE.md 会同时生效。对 monorepo 来说,在仓库根目录放全局规范、各子包目录放专属规范,是最自然的组织方式。CLAUDE.md 还有延迟加载特性:不在启动时全部载入,而是当 Claude 读取该子目录下的文件时才被加入上下文,避免一次性消耗过多 token。1@ 导入:把记忆拆成可组合的模块@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~/ 家目录路径@ 不会被解析,即 `@anthropic-ai/claude-code` 这类包名不会触发导入/memory 命令可查看当前会话实际加载了哪些记忆文件~/.claude/ 路径在团队协作中的实际用法:把个人配置(sandbox URL、本地数据库连接、个人偏好)放在 ~/.claude/my-project.md,然后在项目的 CLAUDE.md 里加一行:# Individual Preferences
- @~/.claude/my-project.mdCLAUDE.local.md 的正确方式。2# 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# CLAUDE.md
@docs/agent_rules/index.md# 快速写入和 /memory 编辑# 快速写入:在对话输入框里,以 # 开头发送一条消息,Claude 会提示你选择写入哪个层级的记忆文件,然后把内容追加进去。# Always use pnpm, not npm or yarn/memory 命令:在会话中输入 /memory,会在系统默认编辑器里打开记忆文件,适合做批量整理和大段修改。# 是边干活边记录,/memory 是专门整理时用。| 建议写入 | 建议删除 |
|---|---|
| Claude 无法从代码推断的 Bash 命令 | Claude 读代码就能推断的内容 |
| 和默认规范不同的代码风格规则 | 已经是行业共识的标准约定 |
| 测试运行器选择和测试命令 | 详细 API 文档(改用链接) |
| 分支命名、PR 约定等仓库规范 | 频繁变动的信息 |
| 项目特有的架构决策 | 逐文件的代码库说明 |
| 必须设置的环境变量 | 不言自明的内容(如「写干净的代码」) |
| 常见的非 obvious 错误和坑 | 冗长解释和教程 |
CLAUDE.md 不到 60 行,社区中有人的文件到了 20KB。业界没有强制标准,但多数实践者给出的建议是不超过 300 行,越短越好。一个检验方法:你能在 30 秒内扫读完主文件的所有规则吗?如果不能,它已经太长了。6Stop hook 里触发自动格式化,或用 / 命令做风格检查,和开发流程分离。/init 直接生成然后不管。/init 能基于当前项目结构生成初始文件,适合作为起点,但生成结果需要人工审核删减。自动生成的 CLAUDE.md 往往包含大量 Claude 可以自己推断的冗余内容。/compact 保留什么/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/compact focus on [topic] 手动触发,比依赖自动压缩更可控。Boris Cherny 在多个场合建议在 KV 上下文用量达到 40-50% 之前主动压缩,避免进入「dumb zone」。7# [项目名]
## 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.~/.claude/CLAUDE.md 单独维护个人偏好,两个文件共同作用,不要把个人配置混进项目文件。# 记录下来,把调试中发现的坑整理进文件,它会随着项目积累越来越有用——这是 CLAUDE.md 和单次 prompt 的根本区别。docs.anthropic.com
docs.anthropic.com
humanlayer.dev
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.

Tips and patterns for getting the most out of Claude Code, from configuring your environment to scaling across parallel sessions.
CLAUDE.md is a high-leverage configuration point for Claude Code. Learning how to write a good CLAUDE.md is a key skill for agent-enabled software engineering.