用途
ADR Review 用于对照已接受的架构决策记录(Architecture Decision Records,ADR)审查代码变更,以检测违规、架构偏移和不一致情况。它帮助团队确保代码变更遵守既定的架构决策。
适用时机
- 合并 PR 之前
- 进行重大代码更改之后
- 作为定期合规检查的一部分
主要能力
该工具能够识别代码变更是否与已接受的架构决策相矛盾,是否使用了 ADR 明确拒绝的技术或模式,是否以 ADR 后果所警告的方式修改模块,以及代码是否引用了已弃用或已被取代的 ADR。
使用方式
工作流程分为以下步骤:
1. 获取差异
运行 git diff main...HEAD --name-only(或指定分支)列出已更改的文件。然后运行 git diff main...HEAD 获取完整的差异内容。
2. 查找相关 ADR 对每个已更改的文件:
- 在文件中搜索 ADR 引用(
ADR-\d+) - 在
docs/adr/中搜索提及已更改文件路径或模块的 ADR - 调用
mcp__plugin_ruflo-core_ruflo__memory_search,传入文件路径和变更摘要,以查找语义相关的 ADR
3. 加载 ADR 内容 读取每个相关 ADR 文件,重点关注:
- Decision 部分(决定了什么)
- Status(仅执行 "accepted" 状态的 ADR)
- Consequences(预期约束)
4. 检查违规 针对每个已更改文件,结合其相关 ADR 进行分析:
- 代码变更是否与已接受的决策相矛盾?
- 是否使用了某个 ADR 明确拒绝的技术/模式?
- 是否以 ADR 后果所警告的方式修改了某个模块?
- 代码是否引用了已弃用或已被取代的 ADR?
5. 查询关系图
调用 mcp__plugin_ruflo-core_ruflo__agentdb_causal-query 检查所引用的 ADR 是否已被取代。如果是,则标记该代码引用了过时的决策。
6. 报告 以合规报告的形式呈现发现结果,格式如下:
## ADR Compliance Report
### Violations
- [ ] <file>:<line> — violates ADR-NNN: <reason>
### Warnings
- [!] <file> references superseded ADR-NNN (replaced by ADR-MMM)
### Compliant
- [x] <file> — consistent with ADR-NNN
### Unlinked Changes
- [?] <file> — no ADR coverage (consider creating one)
7. 建议操作 针对每项违规,建议是更新代码,还是提出新的 ADR 来取代被违反的 ADR。
限制
资料中未提供关于该工具具体实现平台、安装方式、收费模式或性能表现的说明。