mcpField
G
graphify

graphify

github.com/howell5開発12.0k 回インストール11 週間前に更新
リポジトリ

graphify について

graphifyは、ソースファイル、シンボル、その関係を構造化して索引化する、コマンドラインベースのエージェントスキルです。開発者やコーディングエージェントは索引を検索してコードを特定し、編集後に手動で更新できます。

主な機能

  1. 01ASTベースのコード構造インデックス作成
  2. 02大文字と小文字を区別しないシンボル検索
  3. 03差分およびGit変更に基づく更新
  4. 0413種類のプログラミング言語に対応

活用シーン

  1. 01不慣れなコードベースでシンボルを探す
  2. 02広範なテキスト検索の前にコードを特定する
  3. 03コード編集後にインデックスを更新する

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/howell5/willhong-skills --skill graphify

インストール後、Claude Code で/graphifyを入力して読み込まれたか確認します。

詳細

graphify — コードナビゲーションレイヤー

コードベースの構造インデックスです。grep を使う前に、何があり、どこにあり、どのようにつながっているかを把握できます。

CLI が必要です: npm i -g graphify-ts(Bun ランタイムを使用します)。

更新は手動のみです。 グラフは自動では更新されません。最新のインデックスが必要なときは、ユーザー自身が graphify update または graphify build を実行します。これにより、git worktree やその他の複数セッション環境での書き込み競合を回避できます。

初回セットアップ(マシンごとに1回)

npm i -g graphify-ts    # install CLI

その後、プロジェクトごとに1回実行します:

graphify build .

以降、インデックスとコードにずれが生じたら、手動で更新します(下記の graphify update を参照)。

コマンド

/graphify build — インデックスを構築(初回、または全体を再構築する場合)
graphify build .

すべてのソースファイルをスキャンし、AST 構造を抽出して graphify-out/graph.json に保存します。

レポート:「{files} 個のファイル、{nodes} 個のシンボル、{edges} 個の関係をインデックス化しました」

/graphify query <name> — シンボルを検索
graphify query graphify-out/graph.json <name>

大文字と小文字を区別せずに検索します。一致するシンボルとファイルの場所を返します。

/graphify update <files...> — 編集後に増分更新
graphify update graphify-out/graph.json <file1> [file2...]

指定したファイルのみを再抽出します。同じセッション内で再度グラフを検索する場合は、コードを編集した後に実行してください。

/graphify auto-update — git diff から一括更新
graphify auto-update [dir]

git diff と未追跡ファイルを使って変更されたコードファイルを特定し、updateIndex を呼び出します。更新するものがない場合は何も表示しません。各ファイルを指定せずに、編集をまとめて行った後に更新できる便利なコマンドです。

使用するタイミング

コードを検索する前: graphify-out/graph.json がある場合は、Glob や Grep を使う前にクエリを実行してください。グラフを使うと、どのファイルにどのシンボルがあるかがわかります。これが主な利点です。手当たり次第のキーワード検索を、構造化された検索に置き換えられます。

編集した後: 同じセッション内で再びグラフを検索する場合は、graphify update <edited-files>(複数ファイルをまとめて更新する場合は graphify auto-update)を実行してください。それ以外の場合はそのままにしておきます。次回の graphify build または更新時に反映されます。

不慣れなコードを調べるとき: /graphify query <concept> を実行すると、ファイル名を推測せずにエントリーポイントを見つけられます。

対応言語

Python、JavaScript、TypeScript(JSX/TSX)、Go、Rust、Java、C、C++、Ruby、C#、Kotlin、Scala、PHP

グラフ出力

graphify-out/graph.json に保存されます:

{
  "nodes": [{ "id": "main::app", "label": "App", "sourceFile": "main.py", "sourceLocation": "main.py:5" }],
  "edges": [{ "source": "file::main", "target": "main::app", "relation": "contains", "confidence": "EXTRACTED" }],
  "metadata": { "files": 10, "nodes": 45, "edges": 62 }
}

エッジの関係:contains、method、imports、imports_from、calls(推論)、inherits

コメント