Claude Code 不听 CLAUDE.md 时,我们该从哪里下手

Claude Code 不听 CLAUDE.md 时,我们该从哪里下手 Claude Code 项目里最容易让人困惑的场景之一,就是我们明明把规则写进了 CLAUDE.md,Claude 却还是偶尔不按规则来。前一天刚强调过使用 pnpm,第二天它又顺手写了 npm install。团队已经在 CLAUDE.md 里写了所有测试必须带上 Redis,本地调试时它仍然直接跑单元测试。代码风格写了 2 空格缩进,它有时候却按照已有文件附近的风格继续生成 4 空格。这种问题不是单纯的模型变笨,也不是 CLAUDE.md 完全没生效。更准确地说,CLAUDE.md 在 Claude Code 里属于上下文指令,而不是不可违背的强制配置。Anthropic 官方文档明确说明,CLAUDE.md 是写给 Claude 的持久化项目说明,Claude Code 会在每个会话开始时读取它,用来放项目规则、编码标准、架构背景和常见工作流。与此同时,官方也强调这些内容会消耗上下文,并且因为它们是上下文而不是强制配置,写法会直接影响 Claude 的遵循稳定性。这里的关键差别很像团队里的新人 onboarding 文档。文档可以告诉新人代码提交前要跑测试、接口返回必须遵循统一错误格式、销售订单模块不要直接访问底表。但文档不是门禁系统。新人认真读了,通常会照做,可一旦文档写得含糊、前后矛盾,或者手头任务压力很大,他仍然可能漏掉一条。真正能硬性拦住错误提交的,不是 onboarding 文档,而是 Git hook、CI pipeline、lint rule、权限策略这些自动化机制。CLAUDE.md 对 Claude Code 的作用也类似,它是高质量上下文,不是操作系统级的 enforcement。CLAUDE.md 不是 sys