mcpField
C
CompareGraph

CompareGraph

ローカル
github.com開発ツール

CompareGraph について

CompareGraph は、チームやコーディングエージェント向けのローカル実行型 Rust CLI・MCP サーバーです。機能分類に基づいて複数のクローンリポジトリを比較し、ファイルと行番号の引用付きで判定を記録します。リポジトリを実行せず、モデルも呼び出しません。

主な機能

  1. 01複数リポジトリから共有 SQLite グラフを構築
  2. 02機能分類に沿ってクローンを比較
  3. 03ファイルと行番号の引用付きで判定を記録
  4. 04引用を検証し、主張の履歴を保持
  5. 05CLI と 18 個の MCP ツールを提供
  6. 06モデル呼び出しなしでローカル実行

活用シーン

  1. 01複数リポジトリ間で製品機能を比較
  2. 02複数プロジェクトのデューデリジェンス
  3. 03ソフトウェア分野の機能を整理
  4. 04引用付きのリポジトリ情報をコーディングエージェントに提供

MCP 対応

`comparegraph mcp` は標準入出力で 18 個のツールを提供します。17 個は読み取り専用で、1 個は主張の書き込み用です。セットアップコマンドは、マシン上で検出した対応エージェントに MCP サーバーを登録できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

CompareGraph

すでにインストール済みですか? comparegraph doctor を実行してください。

Claude Code、Codex、Cursor、Gemini CLI、Windsurf、OpenCode、その他6つのエージェントで複数のリポジトリを比較

複数のクローンをまとめた1つのグラフ · すべてのセルに根拠付きの判定 · 29言語 · 100%ローカル、モデル呼び出しなし
Rust製の単一バイナリ

CI リリース npm ライセンス:Apache-2.0 チェックサム付きリリース Rust 1.85+ MCP ツール:18 言語:29 エージェント:12 100%ローカル、モデル呼び出しなし

Linux x64 Linux arm64 macOS arm64 macOS x64 Windows x64

Claude Code Codex Cursor Gemini CLI OpenCode Hermes Windsurf Antigravity Kiro GitHub Copilot Copilot CLI Qwen Code

使い方 · コマンド · MCP ツール · よくある質問 · トラブルシューティング · ロードマップ · レポート


CompareGraph は、クローンした複数のリポジトリを 1 つの SQLite グラフに解析します。各クローンを分類体系(機能の「ファミリー」)に照らしてスコアリングし、クローンと機能ごとに、ファイルと行範囲への引用を添えた判定を記録します。CLI と MCP サーバーを備えた単一の Rust バイナリです。クローンを読み取りますが、実行はしません。モデルを呼び出すこともありません。


はじめに

ランタイムのインストールは不要です。必要なのは 1 つのバイナリだけです。Node ユーザーは、npx -y @massrelay-ai/comparegraph から同じバイナリを実行できます。

1. バイナリをインストールする
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/massrelay-ai/comparegraph/main/scripts/install.sh | sh

# Windows x64 (PowerShell)
irm https://raw.githubusercontent.com/massrelay-ai/comparegraph/main/scripts/install.ps1 | iex

リリースの SHA256SUMS(linux-x64、linux-arm64、darwin-arm64、darwin-x64、win32-x64。v0.1.2 以降は gh attestation verify <asset> -R massrelay-ai/comparegraph による証明も確認)と照合したうえで、~/.local/bin に書き込みます(Windows の場合は %LOCALAPPDATA%\Programs\comparegraph に書き込み、ユーザーの PATH に追加します。その後、新しいターミナルを開いてください)。COMPAREGRAPH_VERSION=v0.1.1 でリリースを固定できます。COMPAREGRAPH_INSTALL_DIR でバイナリの配置先を変更できます。

その他の方法:npm、Homebrew、手動、ソースから

npm:Node 18 以降を搭載した 5 つのプラットフォームすべてで利用できます(パッケージは同じリリースバイナリをラップします)。npx -y @massrelay-ai/comparegraph --version を実行するか、npm i -g @massrelay-ai/comparegraph を実行してください。

Homebrew:macOS および Linux の場合:brew install massrelay-ai/comparegraph/comparegraph。

手動:最新リリースから comparegraph-<platform> と SHA256SUMS を取得してください。Rust 1.85 以降が動作する環境でソースからインストールする場合:cargo install --locked --git https://github.com/massrelay-ai/comparegraph comparegraph(--locked が重要です。crates.io にある Perl 文法の最新リリースは yank されており、Cargo.lock でのみ解決できます)。

2. エージェントを設定する
comparegraph setup --apply      # omit --apply for the plan; --scope project for an entry you commit
comparegraph doctor             # each client's state: aligned, stale, conflict, missing, plugin

マシン上で見つかったすべてのエージェント(12 個:Claude Code、Codex、Cursor、Gemini CLI、OpenCode、Hermes、Windsurf、Antigravity、Kiro、Copilot、Copilot CLI、Qwen Code)に MCP サーバーを登録し、ワークスペースの指示ファイルに短いルールブロックを書き込みます。また、Claude Code にはセッション開始フックを設定します。エージェントの設定のみを行い、インデックス作成は行いません。

Claude Code をプラグインとして使う場合、またはエージェント独自のコマンドを使う場合

Claude Code をプラグインとして使う場合:7 つのスキル、サーバー、フックをまとめて 1 回でインストールします(Claude Code 2.1.275 以降が必要です。シェルから claude plugin install … を実行しても同じです)。

/plugin install comparegraph --marketplace massrelay-ai/comparegraph

プラグインを有効にすると、setup --apply は Claude Code のサーバーとフックをプラグインに任せます(それらの行には plugin と表示されます)。ルールブロックは引き続き書き込みます。

エージェント独自のコマンドをワークスペースで実行します。各コマンドは、setup が書き込むユーザースコープのエントリを書き込みます(Claude Code のデフォルトスコープである local は doctor が読み取らないため、doctor はエントリが一致していると判定します)。

エージェントコマンド
Claude Codeclaude mcp add --scope user comparegraph -- comparegraph --root "$PWD" mcp
Codexcodex mcp add comparegraph -- comparegraph --root "$PWD" mcp
Gemini CLIgemini mcp add -s user comparegraph comparegraph -- --root "$PWD" mcp

サーバーは MCP Registry に io.github.massrelay-ai/comparegraph として登録されています。表には、すべてのクライアントの設定ファイルが記載されています。

3. クローンを追加してビルドする
comparegraph add ../some-clone --name some
comparegraph build some

クローンは読み取られますが、実行されることはありません。ワークスペースごとに 1 つのストアが .comparegraph/ の下に作成されます。再ビルドは増分的に行われ、build --full と同じハッシュになります。

4. 比較
comparegraph family add families/example-code-graph-tools   # the taxonomy
comparegraph map some example-code-graph-tools              # ranked candidates per feature, writes nothing
comparegraph claim some symbols.extraction has --author me --at <path>:<start>-<end>
comparegraph matrix example-code-graph-tools                # features x clones, prevalence, gaps

ファミリーパックはバイナリには含まれず、このリポジトリに収録されています。そのため、このリポジトリをクローンして実行してください。以下のサンプルでは、収録されているサンプルを使い、実際の出力とともにこれらすべての手順を紹介しています。

収録サンプルですぐに始める

サンプルパックとサンプルリポジトリは、バイナリではなくリポジトリに収録されています。使用方法では、fixtures/typescript を10個の機能を含むサンプルパックと照合し、add から export vault まで、すべての手順の実際の出力を紹介しています。

アンインストールについては、エージェント、プラットフォーム、アンインストールを参照してください。


CompareGraph を選ぶ理由

6つのプロジェクトには106.1 MBのソースコード(約2,650万トークン、推定値)があり、6つすべてについて30個の機能の候補をランク付けすると336 KB(約8万4千トークン)、マトリックスは6 KBです。候補は読むべき箇所であり、結論ではありません。

6つの調査用コピーと30個の機能で測定したバイナリ0.1.1の数値はdocs/assets/cost.json、手法と注意事項は回答サイズレポートに記載されています。

リポジトリが多数あり、知りたいことは1つです。各リポジトリに何があるのでしょうか。すべてを手作業で読むのは現実的ではありません。行番号のない要約は検証できず、コードが移動するとメモも古くなります。以下は、それぞれ検証可能な5つの特性です。

  1. 決定論的です。 同じクローンとバージョンであれば、同じ store_hash が得られます。comparegraph check は再構築して比較し、インクリメンタルビルドの結果は build --full と一致する必要があります(Plan 6 レポートにある大規模な2つのツリーで一致)。
  2. すべての回答に証拠クラスがあります。 各エンベロープには observed、derived、inferred、unknown のいずれかと、エンジンが確認できない内容を示す limitations[] リストが含まれます。
  3. 主張には、現在解決可能な引用が必要です。 has と partial には、保存済みノードと一致する --at path:start-end が必要です。一致しない場合、エンジンは拒否します。コード移動後に引用が無効になると、check の後で unknown* と表示されます。
  4. none には不在の証明が必要です。 何も見つからない検索語を指定する --searched、または同じ検索語を指定し、見つかった各項目を開いて却下したものとして --read-hits に列挙する方法、あるいはグラフチェックが必要です。グラフチェックでは4つの経路(シンボル、パス、コミュニティ用語、ノード種別)のすべてが空であることを確認します。--searched を指定した none では、absent-check --searched が返す上位10件の候補を、読み取り済みとして列挙する必要があります(read_set)。上限を超えた候補は read_capped の制限として記録されます。上位10件に未読の候補がある場合、主張は拒否され、その候補が示されます。
  5. エンジンにモデルはありません。 スコア、評価区分、説明、候補は、保存済みの事実から計算されます。読み取りはエージェントが行えますが、エンジンは保存、検証、拒否のみを行います。
単一リポジトリのコードグラフとの比較
必要な機能単一リポジトリのコードグラフCompareGraph
複数のリポジトリを1つの機能リストで比較するいいえ。インデックスごとにリポジトリは1つですfamily、relate、matrix
判定とともに証拠を保持するいいえ主張に path:start-end とコンテンツハッシュを保存します
裏付けられない主張を拒否するいいえhas と partial には有効な引用、none にはエンジンが実行した検索が必要です
コード移動後の変更を示すいいえcheck は移動した引用を古いものとしてマークし、マトリックスには unknown* と表示されます
誰が何を述べたかの履歴を保ついいえ主張と決定は追記のみです

対象:自社製品を業界内で比較するチーム、複数プロジェクトのデューデリジェンス、業界の全体像を把握する新規参入者(family propose で分類体系のドラフトを作成できます)、MCP を通じて簡潔な事実を必要とするコーディングエージェントです。


動作の仕組み

ワークフロー:リポジトリをクローン、1つのグラフ、分類体系、引用付き判定、決定、マトリックス

### 3 つのルール
  1. エンジンはモデルを呼び出しません。 すべてのスコア、バンド、説明、候補は保存済みの事実から計算されます。
  2. 主張には、現時点で解決できる引用が必要です。 has と partial には、保存済みノードと一致する --at path:start-end が必要です。 none には、何も見つからない検索語を指定する --searched、またはグラフチェックが必要です。それ以外の場合、エンジンは拒否するか、unknown を記録します。
  3. 主張と決定は追記専用であり、データベースによって強制されます。 変更は、置き換える対象の行を指定した新しい行として記録します。 最新の行が優先され、履歴はそのまま残ります。

search または map による候補には candidate とラベルが付けられ、has にはなりません。設計: docs/design.md。

フローとコードリングの図については、docs/design.md を参照してください。

グラフ内のファミリー

グラフ内のファミリー:10 グループに属する 30 個の機能、6 つのクローン、両方の読み手が同意した判定付きセル 121 個(has が 93 個、partial が 9 個、none が 19 個)を、機能からクローンへの判定別に色分けしたエッジで表示

ファミリーは分類体系です。機能のグループで構成され、それぞれに定義と、その機能を備えていると見なす条件のテストがあります。セルは、1 つのクローンと 1 つの機能の組み合わせで、判定(has、partial、none)と、has および partial の場合は引用を保持します。この図は、マッピングのゴールドにおいて合意されたセルを使って、ファミリー code-graph-tools を描画したものです。Obsidian では comparegraph export vault を実行すると、同じグラフをライブで表示できます。

プラグインと第 2 のエンジン

外部プロバイダーとは、stdin と stdout で JSON 行をやり取りする実行可能ファイルです。ホストはリクエスト行を 1 行書き込んで stdin を閉じ、最初の ok 応答が届くまで応答行を読み取ります。プロバイダーが出力する内容はすべてデータとして扱われ、独自の型に解析されます。comparegraph.toml に登録するか([providers.mine] command = "tools/my-provider")、comparegraph-provider-<name> として PATH に配置し、その横に comparegraph-plugin.toml マニフェスト(kind、name、protocol = "1"、languages、network)を置きます。マニフェストがない場合は、--allow-unverified を指定した場合にのみ実行されます。

完全なプロトコル、ガード、25 行の Python プロバイダー、code-review-graph アダプター(build --providers reference,crg の背後にある第 2 のエンジン)については、docs/dev/plugin-protocol.md を参照してください。

ファミリーと 7 つのスキル

ファミリーは rows.md を含むディレクトリです。2 つのパックが同梱されています。クイックスタート用の 10 個の機能を含む families/example-code-graph-tools と、マッピングのゴールドとなる 30 個の機能を含む families/code-graph-tools です。列のルール、同義語、family propose については、使い方を参照してください。

この手法は、どのエージェントでも読める skills/ 内の 7 つのプレーンな Markdown スキルで構成されています。それぞれに、動詞を使う場面、正確なコマンド、エンジンが拒否する内容、確認方法が記載されています。Claude Code では、スキルと MCP サーバーが 1 つのプラグインとして一緒に提供されます(はじめに)。他のエージェントは、クローン内の skills/ ディレクトリを読み込みます。

スキル概要
using-comparegraph入口:適用するスキル、ワークフローの順序、判定の信頼性を保つための習慣。
adding-a-cloneクローンを比較対象またはルートとして登録し、解析して、ビルドを検証します。
defining-a-familyパックを作成し、family propose でひな形を作り、安全に再読み込みします。
mapping-features候補となる証拠を見つけ、関連性をスコアリングします。候補は手がかりであり、判定ではありません。
writing-a-claim現時点で解決できる引用を添えて、has、partial、none、または unknown を記録します。
recording-a-decision採用、却下、保留の決定を、決定した人の名前と理由とともに記録します。
reading-the-vaultマトリックス、ボールト、JSON エクスポートを読み、欠落を正しく解釈します。

使用方法

docs/ 以下の4ページにリファレンスがあります。いずれもここから数クリックで開けます。

得られるもの

4つのレベルがあり、それぞれが「どのように把握しているか」に答えます。リポジトリの概要、モジュールのコミュニティ、シンボル(呼び出し元、呼び出し先、影響範囲、テスト、エントリーポイント、デッドコードの候補)、そして主張(判定、引用、作成者、経緯)です。各回答は、エビデンスクラスを含む1つのJSONエンベロープです。使用方法に表と実際のshowの回答があります。

CLI リファレンス

グローバルオプションの--rootと--prettyに続いて、動詞は4つのグループに分かれています。ビルドと調査、グラフクエリ、ファミリーと主張、エクスポートとエージェントです。コマンドには、重要なフラグとともにすべての動詞が記載されています。

MCP ツール

comparegraph mcpは、標準入出力経由で18個のツールを提供します(読み取り専用が17個、書き込みが1個:comparegraph_claim)。意図的にdecideツールはありません。MCP ツールに表があり、docs/catalog.jsonが機械可読な情報源です。catalog --checkがCIで内容を検証します。

Vault、設定、ライブラリ

comparegraph export vault --out ./vaultは、生成された説明を含むObsidian形式のMarkdown Vaultを書き出します。設定には--rootとCOMPAREGRAPH_*環境変数を使い、クレートは各動詞を関数として公開します。この3項目はすべて使用方法に記載されています。


精度はどのくらいか

以下の数値はすべて、このリポジトリ内のレポートから引用しています。引用する前に、各レポートの注意事項を確認してください。いずれも2026-10-13に1台の共有ホストで測定されました。

750か所を手作業でラベル付けしたゴールドデータにおける、エンジン別の呼び出しエッジの適合率と再現率:CompareGraph 0.995 / 0.834(全件合算)、アダプター経由のcode-review-graph 0.956 / 0.736、codegraph 0.708 / 0.506。

スケール:4つのツリーで解析したファイル数とノード数、エッジ数、ビルド秒数、および1.29Mエッジのopenclawグラフでのクエリ時間。

手作業でラベル付けした呼び出し箇所のゴールドデータでは、CompareGraphの全件合算の適合率は0.995、再現率は0.834です。アダプター経由のcode-review-graphは0.956 / 0.736、codegraphは0.708 / 0.506です。38,258ファイルのリポジトリを499.6秒でビルドし、1.29Mエッジのグラフでimpactに2.5秒で回答します。以下の表に注意事項を記載しています。データ: accuracy.json、scale.json;パリティレポート:エンジンのパリティ。

手作業でラベル付けしたゴールド標準に対する呼び出しエッジ

ゴールドデータは、各プロジェクトのソースから無作為に選んだ呼び出し箇所(1プロジェクトあたり150か所、合計750か所)を、2人の読み手が同じ基準に基づいて独立にラベル付けしたものです(どちらも言語モデルエージェントであり、エンジンに対して盲検ではありません)。finalには、両者の意見が一致した行だけを含めています。ゴールドデータの作成方法: fixtures/gold/README.md。適合率は回答済みの箇所を対象とし、再現率はリポジトリ内を対象とする箇所を対象とします(括弧内に表示)。カッパ係数は、2人の読み手の呼び出し先に関するCohenのカッパ係数です。

プロジェクト(箇所数)読み手間のカッパ係数CompareGraph 適合率 / 再現率アダプター経由のcode-review-graph 適合率 / 再現率codegraph 適合率 / 再現率
graphmind (48)0.980.973 / 0.7500.963 / 0.5420.650 / 0.813
srclight (50)0.961.000 / 0.7801.000 / 0.7401.000 / 0.320
code-review-graph (53)1.001.000 / 0.9251.000 / 1.0000.913 / 0.396
hono (36)0.891.000 / 0.6670.880 / 0.611回答なし / 0.000
caddy (48)0.921.000 / 1.0000.897 / 0.7290.623 / 0.896
全件合算 (235)0.950.995 / 0.8340.956 / 0.7360.708 / 0.506
集計件数:CompareGraph は回答済み 197 件中 196 件が正解、235 サイト中 196 件です。codegraph は回答済み 168 件中 119 件が正解、235 サイト中 119 件です。
出典:docs/reports/2026-10-12-engine-parity.md の「After Plan 6」と
「codegraph head-to-head」の各セクション。κ については「After Plan 5」の評価者間一致度(集計した is_call の κ は 0.94)を参照してください。
再現方法:scripts/gold-score.sh <project-copy> fixtures/gold/<project>/calls.jsonl --binary <comparegraph>、
scripts/compare-engines.sh(全エンジン)、scripts/h2h-codegraph.sh(codegraph)。

以下の制約を踏まえてご覧ください。プロジェクトごとのサイト数は 36~53 件のため、プロジェクトごとの誤差は約 0.1 です。caddy の 1.000 は「ラベル付けされたすべてのサイト」を意味します(Go 対応前に抽出した 48 サイト)。hono の適合率は回答済み 24 サイトに基づいています。codegraph は --graph-only モードで実行し、サイトごとに get_callees を 1 回呼び出しています。同じ名前のターゲットを複数列挙する場合、正解がその中にあれば、スコアラーはそのサイトを正解と数えます。hono では、検出したノードのうち最も絞り込まれたものが、呼び出しエッジのない無名のアロー関数であるため、回答されたサイトはありません。最も近い名前付き祖先を介した検索は実行していません。fixtures/gold/FLOORS.json の下限値は crates/comparegraph/tests/gold.rs でアサートされており、引き上げることはあっても引き下げることはありません。

ビルドとクエリの所要時間

数値は docs/assets/scale.json に記載されています。proof report(最終セクション)と Plan 6 report に基づいています。

指標結果出典セクション
5 つの調査対象プロジェクトのコールドビルド各 0.8 秒~6.4 秒。codegraph との比較では、codegraph の固定 12 秒の埋め込みモデル読み込み時間を除外した場合、4 プロジェクトで所要時間の比率は 0.50~1.29、hono では 5.12head-to-head
code-review-graph と比較したコールドビルド1.6~3.4 倍高速。比率のみ(ホスト負荷 37~73)After Plan 5
hermes-agent、10,288 ファイルフルビルド 93.2 秒、変更なしでの再ビルド 2.0 秒、1 ファイル編集後 47.5 秒。ストアのハッシュは --full と一致After Plan 6, build time and scale
openclaw、38,258 ファイルフルビルド 499.6 秒(8 分の目標に 20 秒届かず)、変更なしでの再ビルド 7.5 秒、1 ファイル編集後 289.7 秒、最大 RSS 3.54 GBAfter Plan 6, build time and scale
1.29M エッジの openclaw グラフに対するクエリimpact 2.5 秒、traverse 3.6 秒、dead-code 1.6 秒。RSS は 12~15 MBAfter Plan 6, query bounds

レポートに記載された注意事項:ビルド時間は 40 コアで負荷 6~15 の状態で計測しているため、秒数ではなく比率を参考にしてください。hermes-agent のビルドは Plan 6 のレーン B1 終了時点より 1.40 倍遅くなっています。このリグレッションは計測されていますが、原因は特定されていません。クエリの上限値は、ハブシンボル 1 つ(呼び出し元 3,156 件)、デフォルト設定で、それぞれ 1 回実行した結果です。4.4k ファイルの非公開製品モノレポは 103 秒でビルドされ(53k ノード)、そのハーネス比較対象 3 件のビルド時間は 25 秒、81 秒、436 秒です(proof report の最終セクションを参照)。12 個の機能に対するランキング付き map は、製品で 1.2 秒、454k ノードの比較対象で 12.1 秒かかります。 再現方法:scripts/compare-engines.sh、scripts/h2h-codegraph.sh、および COMPAREGRAPH_PROFILE=1 comparegraph build <repo>。

code-review-graph との重複(シンボルとエッジ)

3 つのプロジェクトにおけるノードと解決済みエッジのジャッカード係数(パリティレポートの「After the review fixes」、シンボルと継承については「After the precision and recall pass」):

指標graphmindsrclightcode-review-graph
シンボル(関数、メソッド、クラス、型)0.9460.9880.939
呼び出し(解決済み)0.7130.9690.963
インポート(ファイル間)0.6470.9040.901
テスト(テストからテスト対象のシンボルへ)0.1190.6050.513
継承と実装0.9380.6670.730

テストリンクは、3 つすべてのプロジェクトで弱点となっています。再現方法:scripts/compare-engines.sh。

適合性フィクスチャ(リファレンスエンジン)

comparegraph conform reference は fixtures/ にあるゴールデンフィクスチャを実行します。基準値(ノード 0.95、エッジ 0.85、 再現率と適合率)を下回るプロバイダーは拒否されます。このコミットでの出力:

フィクスチャノードの再現率 / 適合率エッジの再現率 / 適合率
go1.00 / 1.001.00 / 1.00
java1.00 / 1.001.00 / 1.00
python1.00 / 1.000.952 / 1.00
rust1.00 / 1.001.00 / 1.00
typescript1.00 / 1.000.955 / 1.00

5 つのフィクスチャは、それぞれ小規模なリポジトリです。手作業で確認したグラフに対して抽出器を検証するものであり、あらゆる言語機能を検証するものではありません。

機能マッピングのゴールドスタンダード

2 つ目のゴールドスタンダードでは、map(機能からコードへのマッピング)とグラフを利用した不在チェックを評価します。対象は families/code-graph-tools/rows.md の 30 の機能と、コードグラフツールの調査用コピー 6 件で、計 180 組を 2 人の独立した評価者が読み、121 組で合意しました。59 件の不一致はスコアから除外しています(合意した場所のうち 13 件には、エンジングラフ内にノードがありません)(手法とカッパ係数: fixtures/gold-map/README.md)。ランキングはクローン 3 件で調整し、残りの 3 件で 1 回測定しました。ツールがこれまで見たことのないリポジトリに対する実質的な数値は、ホールドアウト列に示されています。

precision@5recall@5注記
map、ホールドアウトクローン(CodeGraph、codanna、ripwire)0.0380.149確認すべき数値
map、調整用クローン(graphmind、srclight、code-review-graph)0.1610.523調整済み
map、6 件すべてを統合0.1130.393ランキング前の 0.046 / 0.141 から改善
同じ語句での単純な全文 OR 検索、統合0.0460.141ランキングなしの自前エンジン
同じ語句での codegraph symbol_search、統合0.0360.118同じルールで評価
不在チェック、統合1.00(1 回の呼び出し)0.05(19 件中 1 件)誤りはないが、ほとんど回答しない

目標(ホールドアウトの recall@5 が 0.50 以上、precision@5 が 0.30)は未達です。ホールドアウト機能のうち、ゴールドの場所が最初の 200 件の候補に含まれるのは 3 分の 1 にとどまります。ストアにあるのはシンボル名、パス、コミュニティキーワードであり、ドキュメント本文はないためです。次の改善策はロードマップに記載されています。relate の帯域は既知の弱いシグナルです。このファミリー以外のリポジトリも 0.5 を超えるスコアになります(docs/decisions.md、「Plan 7 IMP」)。relate が実行されるまでは、マトリックスにそのクローンの結果として not run と表示され、limitations[] にもその旨が記載されます(matrix --relate は未実行の項目を先にスコアリングします)。参照資料: docs/reports/2026-10-14-mapping-gold-first-measurement.md と、 パリティレポートの「Feature-mapping baselines」。再現方法:scripts/map-score.sh、scripts/map-baselines.sh。

回答サイズ

調査用コピー 6 件の 30 機能について、map の回答の合計は 336 KB(推定で約 84 k トークン)で、ソースの 106.1 MB(約 26.5 M トークン)に対して 316 対 1 です。回答は読むべき場所をランキングしたもので、判定ではありません(前述のホールドアウト recall@5 は 0.149)。そのため、読者は引き続きファイルを開く必要があります。手法、クローンごとの数値、注意点: docs/reports/2026-10-14-answer-size.md。 再現方法:scripts/answer-size.sh を実行し、続けて node scripts/readme-assets.mjs を実行します。

## 言語

29 言語を解析します。そのうち5言語は詳細に解決され、4言語には測定済みのゴールドスタンダードがあります。見出しだけでなく、各ティアを確認してください。 すべての文法(tsx、jsx、mjsを別々に数えて32 ID)には、コミット済みのグラフダイジェストを含むフィクスチャが fixtures/languages/にあります。そのため、文法の更新でグラフが少しでも変わるとCIが失敗し、意図的にゴールドデータを更新する必要があります。

ティア言語エンジンが抽出する内容
解析済み(29)typescript(+tsx)、javascript(+jsx、mjs)、python、rust、go、java、ruby、php、swift、kotlin、dart、scala、c、cpp、csharp、objc、perl、r、bash、powershell、sql、yaml、toml、hcl、dockerfile、graphql、css、scss、htmlシンボル、ファイル、包含関係、インポート、および抽出器が報告する直接呼び出し。設定ファイルとマークアップ(yamlからhtmlまで)からはシンボルのみを抽出します。比較する際はノイズとして扱ってください。
解決済み(5)typescript/javascript、python、rust、go、javaファイルに解決されたインポート、宣言された型、型付きレシーバー、バレル再エクスポート、継承(extends、implements)、テストリンクを追加します。goには設計上、継承エッジがありません
測定済みtypescript(hono、graphmind、code-review-graph)、python(srclight、code-review-graph)、rust(graphmind)、go(caddy)には呼び出しエッジのゴールドデータがあります。解決済みの5言語すべてに適合性フィクスチャがありますゴールドデータの表。javaにはフィクスチャのみあります
制限事項、既知の不足点、スキップされるファイル

レジストリには32個の識別子があります(tsx、jsx、mjsはそれぞれの言語とともに数えます)。未解決の言語では、同じ言語ファミリー内に限り、名前だけで信頼度0.5の呼び出しをバインドします。既知の不足点:Javaのnew T()には呼び出しサイトがなく、Rustではトレイトメソッドとそのimplが同じ修飾名を共有し、Goではメソッドの戻り値に対する呼び出し、range変数、ジェネリクスはまだ何にもバインドされません (Plan 7 candidates)。すべてのビルドでスキップされるもの:ディレクトリ node_modules、target、dist、build、.git、vendor、__pycache__、.venv、venv、.gitignoreまたは .ignoreで除外されたファイル、ミニファイ済みファイル。スキップ数は実行時のlimitationsに記録されます。


エージェント、プラットフォーム、アンインストール

comparegraph setup はエントリーを書き込みます。comparegraph doctor は各クライアントの状態(aligned、stale、conflict、 missing、unverified、plugin)を報告します。--client all は、インストール済みと見られるクライアントのみを対象にします。plugin:comparegraph@comparegraph が有効で --client all が使用されている場合は、Claude Code プラグインに任せます。エントリーを強制的に書き込むには、--client claude を指定します。PATH 上で登録済みのバイナリに解決される単独の comparegraph コマンドは、整合しているものとして扱われます。setup --apply は既存の設定に追加し、<file>.bak-<unix-seconds> という名前のバックアップを残します。異なるエントリーは、--force を指定しない限りそのまま残されます。

setup は、エージェントの指示ファイルにルールブロックも書き込み、Claude Code の場合は SessionStart フックも書き込みます。詳しくは使い方をご覧ください。

12 のクライアント、そのファイルと削除するもの
エージェント--client設定(ユーザー/プロジェクト)ルールファイルアンインストール時に削除するもの
Claude Codeclaude~/.claude.json / .mcp.jsonCLAUDE.mdmcpServers.comparegraph
Codexcodex~/.codex/config.toml / .codex/config.tomlAGENTS.md[mcp_servers.comparegraph] テーブル
Cursorcursor --scope project.cursor/mcp.json(ユーザースコープは未検証のためスキップ)AGENTS.mdmcpServers.comparegraph
Gemini CLIgemini~/.gemini/settings.json / .gemini/settings.jsonGEMINI.mdmcpServers.comparegraph
OpenCodeopencode~/.config/opencode/opencode.json / opencode.jsonAGENTS.mdmcp.comparegraph
Hermeshermes~/.hermes/config.yaml(プロジェクトスコープなし)AGENTS.mdmcp_servers.comparegraph
Windsurfwindsurf~/.codeium/windsurf/mcp_config.json(プロジェクトスコープなし)AGENTS.mdmcpServers.comparegraph
Antigravityantigravity~/.gemini/antigravity/mcp_config.json(プロジェクトスコープなし)GEMINI.mdmcpServers.comparegraph
Kirokiro --scope project.kiro/settings/mcp.json(ユーザースコープなし)AGENTS.mdmcpServers.comparegraph
GitHub Copilot (VS Code)copilot --scope project.vscode/mcp.json(ユーザースコープなし).github/instructions/comparegraph.instructions.mdservers.comparegraph
GitHub Copilot CLIcopilot-cli~/.copilot/mcp-config.json(プロジェクトスコープなし)AGENTS.mdmcpServers.comparegraph
Qwen Codeqwen~/.qwen/settings.json(プロジェクトスコープなし)GEMINI.mdmcpServers.comparegraph

ルールブロックをアンインストールするには、から までの行を削除します。フックをアンインストールするには、コマンドが comparegraph doctor --brief である SessionStart エントリーを削除します。

プラットフォーム:各リリースでは、linux-x64、linux-arm64、darwin-arm64、darwin-x64、win32-x64 向けのビルドをそれぞれ専用のランナーで行い、SHA256SUMS に記載されたリリースアセットとして配布します。Homebrew tap はリリースに追随します。テストスイートは linux-x64 のみで実行されます。Rust 1.85+ が動作する環境であれば、ソースからビルドできます。ローカル環境のみで動作します。エンジンはネットワークへの接続を行わず、MCP サーバーは stdio 経由で通信し、ストアはユーザーが所有する 1 つの SQLite ファイルです。

アンインストール:上記のエントリーを削除し(プラグインを使用している Claude Code では /plugin uninstall comparegraph)、次にバイナリ(~/.local/bin/comparegraph、brew uninstall comparegraph、または cargo uninstall comparegraph)を削除して、各ワークスペースで rm -r .comparegraph を実行します。


FAQ とトラブルシューティング

  • FAQ:code-review-graph や codegraph との違い(および、それらにあって comparegraph にない機能)、モデルを使用するかどうか(使用しません)、コードを代わりに採用するかどうか(しません)、一部の呼び出しエッジが 0.5 になる理由、対応していないことについて説明します。
  • トラブルシューティング:no workspace や拒否された none の申告から、無反応のセッション開始フックまで、12 の症状とその原因を説明します。
  • まず comparegraph doctor を実行してください。ストア、すべてのプロバイダー、各クライアントの登録状態が報告されます。

ロードマップ

以下はまだ何も実装されておらず、順序はメンテナーが決定します。各項目の測定結果を含む全リストはこちらです:docs/roadmap.md。

  • 次に測定する有効策:ストア内のテキストチャネル(ドキュメントコメントとシグネチャのトークン)およびファミリーごとの同義語を追加し、見たことのないクローンに対する map の精度を高めます。
  • 採用済み機能向けの Port-kit エクスポート、機能統計のエクスポート、クレームのインポート、family import/export。
  • グラフ同等性クエリ、C/C++/C# リゾルバー、ファイルごとの分析キャッシュ、対応クライアントの追加(Zed、Continue)。

ドキュメント

ドキュメント内容
docs/reports/README.md各測定の判定とステータスを含むインデックス
docs/dev/scripts.md各数値を再現するスクリプト
docs/dev/release.mdリリースの作成方法:タグ、ワークフロー、レジストリエントリー、タップ、リリース後の確認事項
docs/dev/plugin-protocol.md外部エンジン向けの JSON Lines プロトコル、制限、適合性、25 行の例
docs/dev/pid-namespaces.mdテストを PID 名前空間で実行する理由と有効化の方法
docs/dev/language-fixtures.md文法ごとのフィクスチャ、コミット済みダイジェスト、文法の更新後にゴールドを再生成する方法
docs/usage.md利用できる機能、設定、ボールト、ライブラリの使用方法
docs/commands.mdCLI リファレンス
docs/mcp-tools.md18 個の MCP ツール
docs/faq.md, docs/troubleshooting.mdよくある質問と解決方法
docs/catalog.json18 個の MCP ツールと 9 個のエラーコード。自動生成され、CI でチェックされます
docs/decisions.md暫定的な決定事項、その代替案、および決定を変更する条件
docs/design.md設計
docs/roadmap.md今後の予定と、各計画で残された課題。すべての項目に測定結果が記載されています
docs/THIRD_PARTY_NOTICES.md改変したコードの出所とライセンス
skills/7 つのメソッドスキル
fixtures/gold/README.md呼び出しエッジのゴールドの描画方法とラベル付け方法
fixtures/gold-map/README.md機能マッピングのゴールドの作成方法
families/サンプルパックと、30 機能を収録した code-graph-tools パック
CHANGELOG.mdリリースごとの変更点
CONTRIBUTING.md, AGENTS.md, CODE_OF_CONDUCT.md貢献に関する情報:リング、不変条件、禁止事項

貢献、ライセンス、サードパーティコード

セキュリティに関する報告は [email protected] または非公開のアドバイザリー(SECURITY.md)へ、行動規範に関する報告は同じアドレス(CODE_OF_CONDUCT.md)へお送りください。

まず CONTRIBUTING.md と AGENTS.md をお読みください。バグ修正では、まず失敗するテストを追加します。抽出処理の変更では、適合性フィクスチャを拡張します。また、エンジンにモデル呼び出しやネットワーク呼び出しを持ち込んではなりません。CI では clippy、テストスイート、適合性チェックと言語ダイジェストの検証、および cargo-deny(ライセンス、アドバイザリー、ソース;deny.toml)を実行します。ベンダー化されたパーサーレイヤーは graphmind から取得しています(MIT)。docs/THIRD_PARTY_NOTICES.md をご覧ください。ライセンスは Apache-2.0 です。詳しくは LICENSE をご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。