大数跨境

新书连载11|条件化规则系统-《Claude Code实战—Harness工程之道》

新书连载11|条件化规则系统-《Claude Code实战—Harness工程之道》 51Testing软件测试网
2026-07-21
4
导读:CLAUDE.md规则通过.claude/rules/目录按路径条件化加载,避免注意力稀释;多人协作时可分文件维护,降低冲突,实现精准按需激活。

点击蓝字

关注我们

第2章 温故知新:记忆系统工程实践


2.4 条件化规则系统

随着项目的演进,单一 CLAUDE.md 终将面临容量瓶颈。


当项目涵盖前端组件规范、后端 API 设计、数据库迁移流程、测试策略(覆盖率 /mock)以及基础设施(Docker 和 CI/CD)等全部规则时,如果将所有内容堆砌在一个文件中,将引发两大核心问题。


维护噩梦:文件变得极度冗长,查找和更新特定规则变得困难。


注意力分散:例如,当 Claude 编写一个简单的前端组件时,其上下文被迫加载了数据库迁移规范和 CI 配置要求等无关信息,这些噪声会稀释模型的注意力,导致其在处理当前任务时效率下降,甚至产生幻觉或忽略关键的前端约束。


这正是 .claude/rules/ 目录的核心价值所在。它将记忆系统从“一本大而全的厚重手册”进化为“一个按需取用的模块化知识库”。


该机制具备两大核心优势。


领域拆分:允许将庞大的规则集拆解为多个主题文件,每个文件专注于特定领域,极大地提高了可维护性。


智能激活:通过在文件头部添加 YAML Frontmatter,利用 paths 字段声明 Glob 模式;只有当 Claude Code 操作的文件路径匹配该模式时,对应的规则才会被激活并注入上下文;在不匹配的场景下,这些规则文件安静地存储在磁盘上,不消耗任何 token 或上下文空间。


来看一个示例。若需要规范测试文件的编写,可创建如下规则文件。


<!-- .claude/rules/testing.md -->---paths:"**/*.test.ts""**/*.spec.ts""tests/**"---# 测试规范- 采用 vitest 作为测试框架,禁用 jest- 每个测试文件必须包含 describe 代码块,且其名称需要与被测模块保持一致- 模块模拟统一使用 vi.mock(),禁止手动 Mock- 异步测试一律采用 async/await 语法,禁止使用 done 回调- 测试数据需要通过 factory 函数生成,严禁在测试中硬编码


在此配置下,当 Claude 编辑 src/services/order-service.ts 时,该测试规范不会被加载;而一旦转向编写 tests/order-service.test.ts,这些规则即刻自动生效。


这种“按需加载”的设计思路,与编程语言中的懒加载(Lazy Loading)理念一脉相承:不需要在启动时预载所有潜在资源,仅需要在真正需要时动态调用。


同样的思路可推广到其他开发领域。例如,数据库规范仅在操作Prisma 文件或数据访问层时加载,而 API 设计规范则仅在编辑路由或Schema 文件时生效。


<!-- .claude/rules/database.md -->---paths:"prisma/**""src/repositories/**"---# 数据库规范- 迁移文件一旦提交至 main 分支,严禁修改,仅运行创建新迁移- 所有查询必须经由 repository 层,service 层禁止直接调用 Prisma 客户端- 批量操作必须包裹在事务中,单次写入超过 100 条记录时强制分批处理<!-- .claude/rules/api-design.md -->---paths:"src/routes/**""src/schemas/**"---# API 设计规范- 每个路由必须配置对应的 Zod schema 以进行入参验证- 列表接口统一支持分页参数:page(从 1 开始计数)和 limit(默认 20,最大值 100- 错误响应结构必须包含机器可读的 code 字段与人类可读的 message 字段


小雪听罢,精辟地总结道:“这好比为企业不同岗位的员工量身定制了专属操作手册——前台遵循前台流程,仓库恪守仓库规范,不需要人人背诵全公司的制度。唯有当你步入仓库作业时,才需要翻开那本《仓库管理手册》。”


咖哥点头补充:“这种模块化的规则组织方式另有一大实效:在多人协作场景下,各领域专家可独立维护其专属规则文件,从而大幅降低 Git 合并冲突的概率。前端工程师专责 frontend.md,后端工程师维护api-design.md ,DBA 把控 database.md——各司其职,互不干扰。随着团队规模的扩张,这种‘分而治之’策略的价值将愈发凸显。”


若规则文件未配置 paths 前置元数据,系统将视其为全局无条件规则,在每次会话中强制加载 —— 其效果等同于直接写入 CLAUDE . md 主文件。


因此,务必为每个规则文件设定精准的 paths 限定, 方能真正发挥记忆系统“按需加载”的核心优势。



2.5 实战:3 种典型项目配置

理论阐述至此,让我们通过 3 种典型项目的 CLAUDE.md 实战写法来融会贯通。请留意它们在侧重点上的显著差异。


前端项目:围绕组件规范与状态管理策略展开。

后端项目:聚焦分层架构设计与 API 约定。

数据项目:强调数据处理流程严谨性与实验复现规范。


这些差异绝非偶然,它们精准反映了不同技术领域中“最高频出错点”的分布。优秀的 CLAUDE.md 应当像精确制导武器,将火力集中覆盖在那些最容易引发问题的关键地带。

本书作者:黄佳

点击阅读原文,查看独家连载

如果有小伙伴

想要分享技术、出版图书

欢迎进入公众号后台

发送“出书”联系我们~


【声明】内容源于网络
0
0
51Testing软件测试网
博为峰51Testing软件测试网提供各种线上招聘、线上课程等网络服务,出版软件测试系列丛书及电子杂志,组织线上技术交流活动;同时还举办多种线下公益活动,如软件测试沙龙、软件测试专场招聘会等。
内容 3909
粉丝 0
51Testing软件测试网 博为峰51Testing软件测试网提供各种线上招聘、线上课程等网络服务,出版软件测试系列丛书及电子杂志,组织线上技术交流活动;同时还举办多种线下公益活动,如软件测试沙龙、软件测试专场招聘会等。
总阅读2.0k
粉丝0
内容3.9k