上下文与 CLAUDE.md
Claude Code 会在需要时自动读取项目文件,无需你手动「上传整个仓库」。但你可以通过 CLAUDE.md 主动告诉它:
- 技术栈与目录结构
- 编码规范与测试命令
- 禁止事项(例如「不要改
legacy/」)
CLAUDE.md 放哪?
Section titled “CLAUDE.md 放哪?”| 位置 | 作用范围 |
|---|---|
项目根目录 CLAUDE.md | 当前项目(可提交到 Git) |
项目子目录 CLAUDE.md | 子目录范围的补充说明 |
~/.claude/CLAUDE.md | 你所有项目的个人默认 |
Claude Code 会根据当前工作目录加载相关记忆。适合团队共享的内容放项目里,适合个人偏好的内容放用户级文件里。
# Project context
- Stack: Next.js 14, TypeScript, pnpm- Run tests: `pnpm test`- Do not modify files under `vendor/`应该写什么?
Section titled “应该写什么?”好的 CLAUDE.md 像一张项目地图,不像一本百科全书。
| 内容 | 示例 |
|---|---|
| 启动与测试命令 | pnpm dev、pnpm test、pnpm lint |
| 目录约定 | src/routes 放页面,src/lib/server 放服务端逻辑 |
| 编码规范 | 优先写集成测试,API 错误使用统一结构 |
| 安全边界 | 不要改 infra/prod,不要提交真实密钥 |
| 业务词汇 | tenant、workspace、account 在本项目里的区别 |
不建议写进去的内容:
- 大段复制官方文档。
- 经常变化的临时任务清单。
- 密钥、Token、数据库密码。
- 已经能从代码直接读出来的重复信息。
在对话中可用 @文件名 把特定文件拉进上下文(具体语法以当前版本为准)。
适合用 @ 的场景:
- 你已经知道问题和某个文件有关。
- 希望 Claude Code 优先阅读某份设计文档、日志或报错文件。
- 想减少它在仓库中搜索的范围。
不确定文件在哪时,直接描述目标,让 Claude Code 先搜索更自然。
上下文太多怎么办?
Section titled “上下文太多怎么办?”- 用
/clear开新上下文,再给出当前目标和关键文件。 - 把稳定规则沉淀到
CLAUDE.md,不要每次复制长提示词。 - 把偶尔使用的大流程放进 Skills 与 Hooks。
- 对复杂任务先让 Claude Code “只分析不修改”,确认范围后再动手。