Clipping 微信公众号

还在往 CLAUDE.md 里堆规则?开发者翻出「.claude-rules」目录,Claude Code 项目治理已经细到文件路径级!

by 井底之硅 原文 ↗
Created: 2026-06-14

公众号名称:吉英说事

作者名称:井底之硅

发布时间:2026-06-14 14:17

导读
【导读】开发者 Xatacrypt 在 X 上分享了 Claude Code 里一个容易被忽略的能力——`.claude/rules/` 目录配合 `paths` frontmatter,可以让项目规则按文件路径按需加载,避免每次 session 都把整份 CLAUDE.md 塞进上下文。Anthropic 官方文档确认了这一机制,并将收益定义为”reducing noise and saving context space”。从全局 CLAUDE.md 到路径级规则文件,Claude Code 的项目治理正在悄悄升级。

一个 CLAUDE.md 扛全场,迟早要翻车

用过 Claude Code 的开发者对 `CLAUDE.md` 不陌生。项目根目录放一份,告诉 Claude 这个仓库该怎么写代码、遵守什么规范、注意哪些坑。

但它有一个始终存在的问题:每次 session 启动时整份加载。

前端规范、后端约束、测试要求、API 格式、基础设施配置……全部挤在一个文件里,每次对话开始都被完整读入上下文。哪怕你这次只是改一个 CSS 样式,Claude 照样会把 Terraform 规则、API 鉴权规范一并吞进去。

Xatacrypt 在 X 帖里直接点出了这个问题:

“A normal CLAUDE.md file is loaded completely at the start of every session - even the rules you don’t need right now.”

「普通 CLAUDE.md 会在每次 session 开始时整份加载,哪怕其中有些规则你当前根本不需要。」

▲ Xatacrypt 把 .claude/rules/ 称为 Claude Code 里”最容易被忽略的省 token 技巧之一”

对小项目来说影响不大。但当 monorepo 同时包含前端、后端、移动端、基础设施代码,每次对话都全量加载所有规则,上下文里就会塞满跟当前任务无关的噪音。

.claude/rules/ + 路径级规则:按需加载

Claude Code 其实早就给了另一条路。

从**2.0.64 版本(2025 年 12 月 10 日)**开始,changelog 正式写入了 `.claude/rules/` 支持。核心思路:把原本堆在一个 CLAUDE.md 里的规则,拆成多个按主题组织的规则文件,每个文件可以通过 YAML frontmatter 里的 `paths` 字段,限定自己只在特定路径下生效。

Anthropic 官方文档原文:

“Rules can also be scoped to specific file paths, so they only load into context when Claude works with matching files, reducing noise and saving context space.”

「规则可以限定到特定文件路径上,因此只有当 Claude 处理匹配文件时才会进入上下文,从而减少无关噪音并节省上下文空间。」

▲ Anthropic 官方文档中对 .claude/rules/ 目录的说明

具体怎么用?假设你的规则文件 `.claude/rules/api-conventions.md` 开头这样写:

```yaml


paths:

  • src/api/**/*.ts

  • src/backend/**


```

那这份规则只会在 Claude 处理 `src/api/` 或 `src/backend/` 下的文件时加载进上下文。你改前端组件的时候,后端 API 的规范压根不会出现。

官方文档还特别说明了触发时机:

“Path-scoped rules trigger when Claude reads files matching the pattern, not on every tool use.”

「路径级规则在 Claude 读取匹配文件时触发,而非每次工具调用都触发。」

▲ 官方文档展示了 paths frontmatter 的写法和目录结构示例

”省 token”?官方的说法更克制

Xatacrypt 原帖给出了更直给的总结:

“As a result, Claude gets only the context it needs and uses fewer tokens.”

「最终效果是 Claude 只拿到它此刻需要的上下文,因此会用掉更少 token。」

社区教程给出了类似的工程化解读:glob 模式比目录级 CLAUDE.md 更适合”同一种文件类型散落在整个代码库”的情况——测试文件 `/*.test.tsx`、Terraform 配置 `terraform//*`、API 源文件 `src/api/**/*.ts`,各管各的。

“Rules load only when editing files that match the glob patterns, reducing irrelevant context and token usage.”

「规则只会在编辑命中 glob 模式的文件时加载,因此会减少无关上下文和 token 消耗。」

▲ 社区教程列出了路径级规则的典型适用场景

不过,Anthropic 官方对这套机制的定义始终是”reducing noise and saving context space”。“省 token”来自用户的实战体感,方向一致,措辞精确度不同。

Claude 为什么有时像在”闹鬼”?

回复区里最值得玩味的评论来自开发者 Timur Yessenov:

“Path-scoped rules are the boring thing that makes Claude Code feel less haunted in a real repo.”

「路径级规则这种看似无聊的机制,反而能让 Claude Code 在真实仓库里不那么’闹鬼’。」

“闹鬼”——这个词戳中了很多 Claude Code 用户的真实体验。

你可能遇到过:Claude 改前端代码时突然冒出后端的命名规范,改测试文件时突然开始遵守 API 文档格式。你不知道它从哪吃进了这些指令,它也讲不出来。

Timur 进一步建议:在进行高风险修改前,应该要求 Claude 列出自己当前加载了哪些局部规则。如果它无法给出明确答案,就不应该动那个文件。

其他开发者的反馈指向了同一方向——有人评价 “Massive win for token efficiency”(token 效率的巨大收益),也有人把它定义为 “Smart context optimization in Claude Code”(Claude Code 里的智能上下文优化)。

从一锅粥到分层路由:规则体系已经分出三级

把视角拉远看,`.claude/rules/` 只是 Claude Code 规则治理升级的一个切面。

目前 Claude Code 的项目规则体系已经分成了三个层级

1.CLAUDE.md——全局常驻规则,每次 session 都会加载,适合放项目级的核心约束 2..claude/rules/——按主题和路径触发的规则文件,只在匹配文件被处理时进入上下文 3.Skills——按任务调用的能力模块,官方文档明确说”task-specific instructions that don’t need to be in context all the time”应该考虑用 skills

从全量加载到按路径触发,再到按任务调用——Claude Code 的规则加载逻辑,正在从一锅粥走向分层路由。

如果你的项目还在用一个越来越长的 CLAUDE.md 扛所有规则,现在可以做一次拆分:通用约束留在 CLAUDE.md,跟具体代码域绑定的规则迁移到 `.claude/rules/` 并加上 `paths` 限定,只在特定任务才需要的指令做成 skills。

Claude Code 的上下文管理,正从”全都装进去”进入”该装什么装什么”的阶段。


— END —

— END —


内容效果不满意?点此反馈

输入关键词开始搜索