Lum1104/Understand-Anything は、コードリポジトリをインタラクティブなナレッジグラフに変換するツールです。README のスローガンは明快です。Graphs that teach > graphs that impress。つまり、グラフは見た目を派手にするためではなく、コード理解を助けるためにあります。
Claude Code、Codex、Cursor、Copilot、Gemini CLI などに対応し、開発者と AI Agent の両方がリポジトリをより早く理解できるようにすることを目指しています。
なぜコードナレッジグラフが必要なのか
AI コーディングツールは強力になりましたが、大規模リポジトリの理解は今でも詰まりやすいです。
- ファイルが多く、入口がわかりにくい;
- 関数、クラス、モジュールの関係が複雑;
- 新しい参加者がどこから読み始めればよいかわからない;
- Agent が断片を見つけても、全体アーキテクチャ内の位置を理解できない;
- ドキュメントは古くなり、コードこそが真実になる;
- 複数言語、複数ディレクトリのプロジェクトは全体像を作りにくい。
コードナレッジグラフの価値はここにあります。「ファイルとシンボルの一覧」を「探索できる関係ネットワーク」に変えます。単に関数名を検索するだけでなく、それが何につながり、誰から呼ばれ、どのモジュールに属し、業務フローのどこにあるのかを見られます。
何ができるのか
プロジェクト紹介を見ると、Understand-Anything は主に次の点を重視しています。
- 任意のコードをインタラクティブなナレッジグラフに変換する;
- 探索、検索、質問に対応する;
- グラフを見た目ではなく理解のために使う;
- Claude Code、Codex、Cursor、Copilot、Gemini CLI などと連携できる;
- リポジトリ onboarding、コードレビュー、リファクタ前の整理、Agent のコンテキスト強化に使える。
この種のツールは、特に未知のリポジトリで役立ちます。初めてプロジェクトを引き継ぐとき、Agent にいきなり rg させるより、先に構造グラフを作り、重要ノードを中心に質問するほうがよい場面があります。
向いている利用シーン
まず使いたいのは次のような場面です。
- 新しいメンバーが古いプロジェクトを引き継ぐ;
- オープンソースリポジトリを読む;
- リファクタ前にモジュール依存を整理する;
- 主要な入口と重要な呼び出しチェーンを探す;
- AI Agent にリポジトリ構造のコンテキストを渡す;
- コードレビュー前に変更影響範囲を把握する;
- 技術文書やアーキテクチャ説明を作る。
小さなプロジェクトには少し重いかもしれません。数十ファイル程度なら直接コードを読めば十分です。リポジトリが数百、数千ファイル規模になると、グラフの価値が見えやすくなります。
RAG との違い
RAG は「関連する断片の検索」が得意です。ナレッジグラフは「関係の理解」が得意です。
たとえば、次のような質問です。
- 「決済フローはどこにある?」
- 「この関数は誰から呼ばれている?」
- 「このモジュールを変えるとどこに影響する?」
- 「なぜ似たサービスが 2 つある?」
通常の RAG はいくつかのコード片を返せますが、グラフは経路、依存関係、近接ノードを見るのに役立ちます。最適なのは二者択一ではなく、RAG でテキスト証拠を探し、グラフで構造をナビゲートすることです。
注意点
コードグラフは万能ではありません。
- 言語解析の品質がグラフ品質に影響する;
- 動的呼び出し、リフレクション、設定駆動ロジックは完全には捕捉しにくい;
- グラフが大きすぎると情報ノイズになる;
- 生成結果は実際のコードと照合する必要がある;
- Agent はグラフだけを見て直接コード変更すべきではない。
本番プロジェクトで使うなら、権威あるアーキテクチャ文書ではなく、読解補助として扱うのがよいです。最終的な根拠は、コード、テスト、実行時の挙動です。
まとめ
Understand-Anything の位置づけは明確です。コードリポジトリを探索、検索、質問できるナレッジグラフに変え、人間と Agent がより早く全体像を作れるようにします。
未知のリポジトリを読むことが多い人、大規模プロジェクトを保守する人、リファクタを行う人、または Codex / Claude Code に変更前にシステム構造を理解させたい人には、試す価値があります。コードを代わりに読んでくれるわけではありませんが、どこから読むべきかを見つけやすくしてくれます。