adr-index について
adr-indexは、リポジトリ内のADR文書とその関係を保存するスキルです。ADR管理の初期導入やグラフデータとファイルの同期に使え、Ruflo monorepoで使われる2種類の形式を解析し、ドライランとセマンティック検索にも対応します。
主な機能
- 01ADRファイルのスキャン
- 022種類のADR形式を解析
- 03ADRと関係エッジの保存
- 04エッジを重複させずに更新
- 05ステータスと未解決参照の集計
- 06ドライランとJSON出力
活用シーン
- 01別プロジェクトからADRをインポート
- 02AgentDBグラフとファイルの不整合を修正
- 03既存コードベースでADR管理を開始
- 04インポート済みADRをテーマで検索
MCP 対応
adr-patterns名前空間でのセマンティック検索にMCP memory_searchを使います。インポートスクリプトが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 モノレポにある両方の ADR 形式に対応しています。
- v3 形式:
# ADR-097: Titleの見出しと**Status**: Proposedの行 - プラグイン形式:YAML フロントマター(
id: ADR-NNNN、status: Proposed)
実装には、ADR ごとに多数の MCP ツール呼び出しを行うのではなく、scripts/import.mjs(Bash 呼び出し 1 回)を使用します。動作は実質的に同じで、はるかに高速であり、両形式に対応し、課題番号の誤検出を防ぎます。
使用するタイミング
- 別のプロジェクトから ADR をインポートした後
- AgentDB グラフがディスク上の ADR ファイルと同期していない場合
- 既存のコードベースで ADR の追跡を開始する場合
手順
-
インポーターを実行します:
node plugins/ruflo-adr/scripts/import.mjs任意の環境変数:
IMPORT_FORMAT=json— Markdown の代わりに JSON を出力しますIMPORT_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 ファイルを照合するため、データを削除して再構築します(このスキルは追加のみ可能で、削除はできません)