关于 adr-index
adr-index 是将代码库中的 ADR 文档及其关系写入存储的技能,适用于初始化 ADR 跟踪或使图数据与文件保持同步。它识别 Ruflo monorepo 中的两种 ADR 格式,并支持试运行和语义搜索。
主要功能
- 01扫描 ADR 文件
- 02解析两种 ADR 格式
- 03写入 ADR 与关系边
- 04刷新记录而不重复边
- 05汇总状态与悬空引用
- 06支持试运行和 JSON 输出
适用场景
- 01从其他项目导入 ADR
- 02修复 AgentDB 图与文件不同步
- 03为现有代码库初始化 ADR 跟踪
- 04按主题语义搜索已导入 ADR
MCP 相关
该技能使用 MCP memory_search 在 adr-patterns 命名空间中进行语义搜索;导入脚本负责持久化 ADR 记录和关系。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ ruvnet/ ruflo --skill adr-index安装后在 Claude Code 中输入/adr-index确认已加载。
详细介绍
ADR 索引
将 */docs/adr/ 或 */docs/adrs/ 下的每个 ADR 持久化到 adr-patterns 命名空间,并将每条关系(supersedes / amends / related / depends-on)持久化到 adr-edges。支持 Ruflo monorepo 中的两种 ADR 格式:
- v3-style:标题为
# ADR-097: Title,并包含**Status**: Proposed行 - plugin-style:YAML frontmatter(
id: ADR-NNNN、status: Proposed)
实现位于 scripts/import.mjs(一次 Bash 调用),而非数十次逐条 ADR 的 MCP 工具调用——功能效果相同,但速度明显更快,支持双格式,并能避免将 issue 编号误判为 ADR。
使用时机
- 从其他项目导入 ADR 后
- AgentDB 图与磁盘上的 ADR 文件不同步时
- 在现有代码库中初始化 ADR 跟踪
步骤
-
运行导入器:
node plugins/ruflo-adr/scripts/import.mjs可选环境变量:
IMPORT_FORMAT=json— 输出 JSON,而非 MarkdownIMPORT_DRY_RUN=1— 解析并汇总,跳过持久化ADR_ROOT=/path— 扫描其他根目录(默认为:cwd)
-
检查摘要 — ADR 总数、已存储数量、按状态分类的明细、边数量、悬空引用、状态不匹配。
-
验证图完整性(可选,但建议)——使用同级
adr-verify技能,该技能运行scripts/verify.mjs,遇到循环时以状态码 1 退出。 -
通过
mcp__plugin_ruflo-core_ruflo__memory_search对已填充的命名空间进行语义搜索:memory_search --query "federation budget" --namespace adr-patterns
存储结构
adr-patterns 命名空间,键为 <ADR-id>::<basename>,值(文本):
<title> — <first paragraph of Context>
file: <relative path>
status: <Proposed|Accepted|Superseded|...>
date: <ISO date>
tags: <comma-separated>
adr-edges 命名空间,确定性键为 <relation>:<FROM>__<TO>,值:
{ "from": "ADR-097", "to": "ADR-086", "relation": "related", "capturedAt": "<ISO>" }
ADR 记录和关系边都采用显式 upsert 语义存储。重新运行 adr-index 会原地刷新变更的元数据,不会为未变更的语义边创建重复副本。
误报防护
在正则提取前,会从 ADR 正文中剔除 #1697 / commit abc123 / PR 1234 引用,避免将其误读为 ADR-1697 等内容。参见 scripts/import.mjs 中的 extractAdrRefs()。
此技能无法执行的操作
adr-index 只会添加或 upsert。如果 ADR 文件被删除(或某个仍存在的文件中删除了关系行),它写入的记录会永久保留——adr-verify 也无法检测到,因为孤立记录没有悬空引用,也不会形成循环。请使用同级 adr-reindex 技能来协调已删除的记录(issue #2666)。
交叉引用
adr-create— 生成此技能处理的 ADR 文件adr-review— 基于adr-patterns执行合规性检查adr-verify(同级技能)— 运行scripts/verify.mjs,用于图完整性门禁adr-reindex(同级技能)— 对已删除的 ADR 文件执行删除后重建协调(此技能只能添加,不能删除)