Claude Code开箱即用效果很好,但一旦它了解你的项目约定并养成一些提示词习惯,效果会明显提升。本指南涵盖两方面内容。
第1部分 — CLAUDE.md:你的项目记忆
它是什么
CLAUDE.md是一个纯Markdown文件,Claude在该目录中的每个会话开始时会自动读取。把它想象成你会给一位能干的新队友在他们第一个早上所做的简报:团队如何做事、要避免什么,以及重要部分在哪里。
你不需要在提示词中引用它或手动附加它。如果文件存在,Claude已经读过了。
它在哪里
Claude在几个地方查找并合并发现的内容,从广泛到具体:
位置 | 范围 | 适用于 |
| 你机器上的每个项目 | 个人偏好(例如,"我使用pnpm,不是npm"或"总是建议测试")。 |
| 这个项目 | 架构、约定和命令。这是主要的。 |
| 该子目录(当Claude读取该目录中的文件时按需加载,不在会话开始时加载) | 模块特定规则(例如, |
大多数团队只需要项目根目录文件。将其提交到git,这样整个团队都能受益。
它如何被加载(以及成本是多少)
工作目录及其上方的文件在会话开始时被读取,并作为用户消息立即传递给Claude(不嵌入系统提示本身)。子目录CLAUDE.md文件在稍后按需加载,当Claude读取该子目录中的文件时。没有摘要或截断,也不会在每个回合从磁盘重新读取。如果你在会话中编辑文件,下次运行/compact或通过/memory打开时会获取更改;否则在你的下一个会话中生效。
对于Claude for Enterprise客户,成本情况比"在每个请求上加载"可能暗示的要好。Claude Code对CLAUDE.md应用Anthropic的提示缓存。会话中的第一个请求支付文件的完整输入令牌价格;大约五分钟内的后续请求命中缓存,按低得多的缓存读取率计费。缓存是内容寻址的,所以对CLAUDE.md的任何更改都会使其失效,下一个请求再次支付全价。
实际上,这意味着一个相当大的CLAUDE.md每个会话支付一次完整令牌,加上任何足够长的空闲间隙后一次(缓存过期),而不是每条消息一次。保持文件精简以节省上下文窗口空间和信噪比仍然值得,但你不需要仅为了控制每条消息支出而限制行数。在Enterprise使用仪表板中,文件的占用空间几乎完全显示为缓存读取令牌,而不是标准输入令牌。
入门:运行/init
在任何项目中,输入/init。Claude将探索代码库并为你起草一个CLAUDE.md,涵盖构建命令、测试命令、结构概览和它检测到的任何约定。审查草稿,删除任何不准确的内容,并提交。这需要大约五分钟,但永久值得。
实际上应该包含什么
目标是一个简短且信息密集的文件 — 大约200行以下。每一行都在每个请求上加载到上下文中,所以每一行都应该值得其成本。
值得包含:
命令 — 如何构建、测试、lint和本地运行。Claude会执行这些,所以准确性很重要。
约定 — 命名、错误处理、文件布局和"我们使用X,不是Y"的决定。
三句话的架构 — 主要部分是什么以及它们如何通信。
硬约束 — 例如,"永远不要从测试中写入生产数据库,""所有API路由都需要认证中间件,"或"不要编辑
generated/。"已知陷阱 — 每个新工程师都会遇到的问题。
不值得包含:
完整的API文档(Claude可以直接读取代码)。
更新日志或历史。
文件树中已经很明显的任何内容。
团队实际上不遵循的理想规则。
多久更新一次
把它当作一个活的入职文档,而不是规范。
在
/init之后 — 审查一次以清理生成的草稿。当Claude两次出错时 — 这是一个信号,说明缺少一条规则。添加一行来解决它。
当约定改变时 — 例如,新框架、测试运行器或一组新的lint规则。
季度浏览 — 删除任何过时的内容,因为过时的说明比没有更糟。
你也可以在会话中添加:打开/memory直接编辑文件,或只是要求Claude"记住"一条规则,它会为你将其附加到正确的CLAUDE.md。
第2部分 — 在Claude Code中值得的提示词习惯
这些不是通用的提示词工程技巧;它们是当Claude读取和编辑真实代码库时最重要的习惯。
1. 陈述结果,而不是步骤
Claude可以自己探索代码库。告诉它你想要什么和为什么,让它自己找出在哪里。
❌ "打开userService.ts,找到validate函数,在第42行添加空值检查。"
✅ "没有电子邮件的用户正在使验证步骤崩溃。让它优雅地处理这个问题并添加一个测试。"
2. 给它完整的错误
粘贴完整的堆栈跟踪,而不是总结它。确切的文件名、行号和消息是允许Claude快速找到正确位置的原因。
3. 用计划模式先确定大任务的范围
对于涉及多个文件的任何事情,按Shift+Tab两次以循环进入计划模式(第一次按进入acceptEdits)并询问:
"计划你如何向公共API添加速率限制。暂时不要改变任何东西。"
审查计划,在对话中调整它,然后切换模式并说"执行第1步。"这在误解变成十二文件差异之前就抓住了它。
4. 当你已经知道文件时指向它们
Claude可以自己搜索代码库,但如果你已经知道相关文件,就说出来 — 这样更快,使用更少的令牌。使用@引用路径,例如@src/auth/login.ts。
5. 说出"完成"是什么样子
例如"测试通过,""匹配其他处理程序的风格,"或"没有新的依赖项。"提前陈述验收标准比多轮修订更有效率。
6. 一个对话一个任务;在它们之间/clear
长会话会积累噪音。当你从"修复登录错误"切换到"重构计费模块"时,运行/clear并重新开始。你的CLAUDE.md携带持久上下文向前,所以聊天历史不需要。
7. 像对待同事一样纠正它,而不是搜索引擎
如果第一个答案不对,你不需要重新表述整个请求。只需说出什么是错误的 — 例如,"那改变了公共API;保持签名相同。"Claude会保留其他所有内容并仅调整该点。
快速参考
想要… | 做这个 |
生成起始 |
|
查看Claude正在使用什么记忆 |
|
在会话中添加规则 | 打开 |
重新开始但保留项目记忆 |
|
在提示词中引用特定文件 |
|
