写好 CLAUDE.md,Claude Code 才会稳定像团队成员一样工作
Claude Code 里的 CLAUDE.md 很容易被误解成一个配置文件。很多团队一开始会把它当成 settings.json 的近亲,以为写进去的内容就会像编译器选项一样被严格执行。实际情况更接近团队内部的工程手册,它会在每个 Claude Code 会话开始时进入上下文窗口,和对话、项目状态、工具信息一起被模型读取。Anthropic 官方文档也把 CLAUDE.md 描述为启动时加载进 context window 的指令和上下文,而不是强制执行层,真正要阻止某些动作,需要靠 settings 或 PreToolUse hook 这类机制。这件事看起来只是一个小差别,落到工程实践里影响很大。配置文件强调确定性,写了就生效,冲突时按优先级覆盖。CLAUDE.md 强调可理解性,写得越具体、越短、越有结构,Claude Code 在复杂任务里遵守得越稳。写得像流水账、像会议纪要、像长篇团队 Wiki,它就会占用更多上下文,也更容易在长对话里被后面的任务细节冲淡。CLAUDE.md 不是保险柜,而是启动时塞进工作台的一张纸每次打开 Claude Code,会话都会从一个新的 context window 开始。CLAUDE.md 的内容会被加载进去,跟启动上下文里的其他信息一起排队占位置。这个机制听起来很自然,但很多问题都从这里开始。因为 context window 不是无限大的,CLAUDE.md 写得越长,留给对话、代码片段、测试输出、错误日志、设计讨论的位置就越少。官方建议单个 CLAUDE.md 控制在 200 行以内,超过这个规模会消耗更多上下文,也可能降低遵守效果。这里有一个很贴近日常开发的画面。我们维护一个 TypeScrip