关于 adr-verify
adr-verify 用于检查 ADR 导入后持久化图中的完整性问题,面向维护架构决策记录的开发团队。它可识别悬空引用、取代关系循环和状态不匹配,并可在严格模式下作为 CI 门禁。
主要功能
- 01检测悬空 ADR 引用
- 02检测取代关系循环
- 03检查 ADR 状态匹配
- 04支持 Markdown 或 JSON 输出
- 05严格模式返回失败状态
适用场景
- 01adr-index 后检查图完整性
- 02在 CI 中阻止有问题的记录
- 03发布 ADR 相关版本前验证
- 04区分需重建索引的删除记录
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ ruvnet/ ruflo --skill adr-verify安装后在 Claude Code 中输入/adr-verify确认已加载。
详细介绍
ADR 验证
adr-index 的配套工具。导入后,读取已持久化的图,并显示完整性问题:
- 悬空引用 — 边指向
adr-patterns中不存在的 ADR ID。常见原因:所引用的 ADR 位于同级仓库,或已被删除。 - 替代循环 —
ADR-A supersedes ADR-B且ADR-B supersedes ADR-A(或存在更长的循环)。这始终意味着数据已损坏。 - 状态不匹配 — 某个 ADR 是
supersedes边的起点,但其自身状态不是Superseded。通常是后继 ADR 晋升时遗漏了状态更新。
此技能无法检测的问题: 磁盘上已删除某个 ADR,但 adr-patterns 中仍有对应行,且没有任何边指向它或从它出发——上述所有检查都无法发现这一问题(issue #2666)。如果报告的 ADR 数量高于磁盘上实际数量,请运行 adr-reindex,不要再次运行 adr-verify。
适用场景
- 运行
adr-index后立即使用,以确认图状态正常 - 在 CI 中用作失败即关闭的门禁(
VERIFY_STRICT=1遇到任何问题时都会以状态码 1 退出) - 发布与 ADR 相关的版本前
步骤
node plugins/ruflo-adr/scripts/verify.mjs
可选环境变量:
VERIFY_FORMAT=json— 输出 JSON,而不是 MarkdownVERIFY_STRICT=1— 遇到任何问题时都以状态码 1 退出(默认:仅遇到循环时退出)
退出码
| 代码 | 含义 |
|---|---|
0 | 图状态正常(或在非严格模式下存在悬空引用/状态不匹配) |
1 | 检测到替代循环,或严格模式下存在任何问题 |
交叉引用
adr-index— 填充此技能要验证的数据scripts/import.mjs— 有自己的试运行验证;此技能是配套的回读工具adr-reindex— 修复adr-verify无法检测到的已删除 ADR
评论
支持 Markdown