日记:2026/05/29

·5 min read·

阴雨,26℃,Friday

原文:《CLAUDE.md 超过 200 行后,最该做的事》— 高级前端进阶 https://mp.weixin.qq.com/s/eg9AayL0r6U9CGlwfIXAdA 学习日期:2026-05-29


核心原则

根文件做薄、按关注点拆分、不假设生效、用 /memory 验证


知识点详解

  1. 为什么要控制长度

官方建议:200 行以内,兜底线:300 行

长度不是关键,关键是两个叠加问题:

问题 说明 | 上下文空间挤压 | CLAUDE.md 每次对话都注入上下文窗口,文件越长占用越多,留给实际工作的空间越少 | | 注意力稀释 | 规则越多,Claude 对每条规则的执行精准度下降,类似同时打开 50 个标签页 |

补充理解: 官方用"行数"作为标准,是给人用的代理指标,实际消耗的是 Token(中文约 1 字 = 1 token)。一行 200 字比一行 10 字消耗多得多,行数只是经验参考,不是精确计量。

真正该拆的信号:改一条规则后,不小心把别处也改错了。


  1. 按 concern 拆分,不按文件大小拆

拆分标准:一个文件管一个关注点

推荐的关注点分类:coding-style / testing / frontend / backend / security / docs

两层好处:

  • 对人:编辑测试规则不会误碰代码风格规则,维护边界清晰
  • 对模型:同一文件内规则主题一致,Claude 执行时目标更明确,干扰更少

根 CLAUDE.md 只保留三类内容:项目目标、协作原则、规则索引。


  1. 目录结构与命名规范

your-project/ ├── CLAUDE.md # 薄主文件 └── .claude/ └── rules/ ├── 0-global.md ├── 1-coding-style.md ├── 2-testing.md ├── 3-git-commit.md ├── 4-security.md └── 5-docs.md

文件名加数字编号的作用:固定阅读顺序(不依赖文件系统的字母排序),同时让目录结构一眼可读。

多包仓库:让各子包各自有一份 .claude/rules/,目录结构本身提供自动作用域,不需要额外配置。


4.paths frontmatter:写但别当主线


paths: src/api/**/*.ts

设计意图:让规则只在指定路径下生效(按需加载)。

为什么不能当主线:社区反馈有写法不生效、或触发后在同一 session 持续生效的问题,行为不稳定。

正确姿势:用 paths 表达规则的适用范围意图,但把结构组织(目录 + concern 分离)作为核心依赖,paths 只作辅助。


  1. /memory 验证,不假设生效

官方原话:"If a file isn't listed, Claude can't see it"
没列出来 = 没生效。

三个验证动作:

  1. 进对应目录触发一次真实任务,敲 /memory 看加载列表
  2. 同样的请求在根目录和子目录各跑一次,对比 rules 加载差异
  3. 故意造一个同时涉及两类规则的任务,看响应有没有冲突

实测发现(文章未明说)

通过实际运行 /memory 命令,发现全局与项目级 rules 行为可能不同:

目录 实测结论 ~/.claude/rules/(全局) ✅ 自动加载,/memory 已证实 项目/.claude/rules/(项目级) ⚠️ 另一个 Claude 实例表示不会自动加载,需进一步验证

文章将两者混在一起描述,实际行为可能存在差异。使用前必须针对自己的项目实测。


一图总结

CLAUDE.md 膨胀问题 ↓ 根文件做薄(只留目标 + 原则 + 索引) ↓ 按 concern 拆到 .claude/rules/ ↓ paths frontmatter 表达适用范围(可选,需实测) ↓ /memory 验证实际加载了什么


当办公套件遇上 AI Agent:开源项目飞书 CLI 介绍


AI 是怎么回事 https://wmyskxz.cn/wiki/whats_ai/

Twitter