用途
Merge Rules 用于把多个项目中的规则文件合并成一套统一、可移植的规则集。它读取各项目 .claude/rules/ 目录下的规则文件,输出合并后的 .md 与 .examples.md 文件,并将跨项目重复出现的 .local.md 模式提升为 Principles 格式。
主要能力
- 合并多个项目的 .claude/rules/ 为统一规则集(.md + .examples.md)。
- 将出现在达到阈值比例项目中的 .local.md 模式转换为 Principles 格式。
- 同步合并 .examples.md 示例文件。
- 归一化相似文件名(如单复数变体、同一概念的细微命名差异),并选定规范名称。
- 合并 Principles 时按名称去重、合并提示(hints)、合并 paths 前置元数据。
- 处理冲突:同名不同义保留两者并标记;矛盾原则保留两者并报告。
- 生成合并报告,包含来源、文件名归一化、合并结果、提升项、低于阈值项与跳过项。
使用方式
命令形式:
- /merge-rules:使用配置文件合并
- /merge-rules --config <path>:使用指定配置文件合并
- /merge-rules --dry-run:仅展示将要合并的内容,不写入
配置文件查找顺序:
- --config <path> 参数
- .claude/merge-rules.local.md(项目级)
- ~/.claude/merge-rules.local.md(用户级)
配置文件格式为仅含 YAML frontmatter(无 markdown 正文),与 extract-rules.local.md 约定一致。可配置字段包括:projects(源项目列表,至少 2 个)、output_dir(默认 .claude/rules/)、rules_dir(默认 .claude/rules/)、promote_threshold(默认 0.5,即多数)、language(默认 ja)。语言解析顺序为:技能配置 → Claude Code 设置(~/.claude/settings.json 的 language 字段)→ 默认 ja。
处理流程
- 加载配置:查找并解析配置文件,校验 projects 至少 2 个、每个路径存在且包含 rules_dir。
- 收集规则文件:递归查找 .md、.local.md、.examples.md;languages/frameworks/integrations 下的 .md 视为可移植原则,.local.md 视为提升候选,.examples.md 视为示例文件;project.md 与 project.examples.md 跳过。
- 归一化相似文件名:按单复数变体或同一概念分组,选定规范名(多数项目使用的名称优先,平局时优先符合 extract-rules 分层框架约定的名称)。
- 合并可移植规则(.md):按规范文件名收集各项目版本,合并 Principles(按名称去重、合并提示、保留独有原则),合并 paths 前置元数据。
- 提升 .local.md 模式为 Principles:收集 Project-specific patterns,先与已有 Principles 语义去重,再按内联代码签名匹配,统计跨项目出现次数,超过 len(projects) * promote_threshold 的项目数则转换为 Principles 追加;低于阈值则丢弃并在报告中列出。
- 合并示例(.examples.md):按章节标题合并 Principles Examples,同一原则标题采用最详细示例或合并 Good/Bad;为提升的模式纳入示例,标题使用转换后的 Principle 名称;无示例则跳过生成该文件。
- 写出输出:--dry-run 时跳过写入;输出目录存在且有文件时警告并确认;不存在则用 mkdir -p 创建。输出仅含 .md 与 .examples.md(不含 .local.md),保留目录结构。
- 报告摘要:以项目目录名作为标签,报告标题始终为英文,包含 Sources、File Name Normalization、Merge Results 表格、Promoted to Principles、Below Threshold、Skipped 等部分。
输出格式
合并后的 .md 文件包含 paths 前置元数据与 ## Principles 章节;若生成了对应 .examples.md,则在末尾追加引用章节(## Examples,指向 ./<name>.examples.md)。.examples.md 结构为 # <Category> Rules - Examples、## Principles Examples,以及各原则的 ### 标题与 Good/Bad 示例;### 标题必须与合并输出 .md 中的规则名一致,且不含 paths 前置元数据。
适用场景
- 多个代码库需要统一编码规范与 AI 规则集。
- 希望把在多个项目中反复出现的本地模式沉淀为组织级原则。
- 需要将分散的规则与示例合并为可移植、可复用的规则包。
限制
- 需要至少 2 个源项目,且每个项目路径必须存在并包含 rules_dir。
- 未找到配置文件时报错,需创建 .claude/merge-rules.local.md 或通过 --config 指定。
- project.md 与 project.examples.md 因项目特定性被跳过。
- 一旦模式被提升为 Principle,后续合并会通过原则去重保留它,即使原 .local.md 模式不再满足阈值;如需降级或移除已提升的 Principle,需手动编辑组织规则输出。
- 低于阈值的模式会被丢弃,仅在报告中列出供参考。
- 同名不同义或矛盾原则会保留两者并标记,需人工复核。
- 关于收费、价格、平台支持范围等具体信息,资料暂未提供。