我最近一直在看 Claude Code 的工程化配置,越看越觉得rules/这个目录很容易被低估。很多团队一开始都会把所有约定塞进CLAUDE.md,项目背景、目录结构、测试命令、代码风格、React 组件规范、API 错误格式、数据库迁移注意事项、安全红线,全都堆在一个文件里。刚开始这样做很省事,Claude Code 每次启动都能读到完整上下文,团队成员也知道去哪里改规则。问题会在项目变大之后冒出来。一个 monorepo 里同时有前端、后端、移动端、脚本、基础设施配置,CLAUDE.md很快就从几十行长到几百行。Claude Code 每一轮对话都背着这份大文件跑,里面很多内容和当前任务没有关系。比如我们正在改src/components/Button.tsx,它仍然看到了数据库 migration 的命名规则。我们正在修tests/payment.test.ts,它也看到了 UI 动画规范。上下文窗口不是免费的,噪声多了以后,模型不一定更聪明,反而更容易在无关规则之间摇摆。rules/解决的正是这个问题。官方文档建议,在较大的项目里,可以把项目指令拆成多个 markdown 文件放进.claude/rules/,这样规则更模块化,也更容易由团队维护。更关键的是,规则还能按文件路径做作用域限制,只有 Claude Code 正在处理匹配文件时才进入上下文,从而减少噪声并节省 context space。没有路径限制的 rule 会在启动时加载,带路径限制的 rule 则会在匹配文件进入上下文时加载。(