mcpField
K
kg-extract

kg-extract

github.com/ruvnet開発80.0k730 回インストール今日更新
リポジトリ

kg-extract について

kg-extractは、ソースコードやドキュメントからエンティティと関係を抽出し、AgentDBに保存するスキルです。コード構造や依存関係、変更の影響を分析でき、TypeScriptの型専用インポートも値のインポートと区別します。

主な機能

  1. 01コードとドキュメントのエンティティ抽出
  2. 02インポート、継承、呼び出し、依存関係のマッピング
  3. 03型専用インポートと値のインポートの区別
  4. 04エンティティと関係のAgentDBへの保存
  5. 05エンティティ数と関係数の報告

活用シーン

  1. 01ソースファイルからナレッジグラフを構築
  2. 02コード構造と依存関係の分析
  3. 03コード変更の影響評価

MCP 対応

RufloのMCPツールを使い、エンティティと因果エッジをAgentDBに保存します。

インストール

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

$npx skills add https://github.com/ruvnet/ruflo --skill kg-extract

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

詳細

KG Extract

ソースファイルからエンティティ(クラス、関数、モジュール、型、概念)とその関係(インポート、継承、実装、依存、呼び出し)を抽出し、AgentDB にナレッジグラフとして保存します。

使用する場面

ソースコードやドキュメントからナレッジグラフを構築または更新する必要がある場合に使用します。コードベースの構造、依存関係の分析、影響評価の把握に役立ちます。

手順

  1. ファイルをスキャンする -- Glob と Read を使用して、指定されたパスにあるソースファイルを列挙し、読み込みます

  2. エンティティを特定する -- 各ファイルからクラス、関数、モジュール、型、設定参照を抽出します

  3. 関係をマッピングする -- 各エンティティについて、他のエンティティとの関係を特定します。重要:TypeScript の import type とインラインの type 指定子(import { type Foo, bar })はコンパイル時に消去されるため、値のインポートとして数えてはなりません。これらは別個の、より弱い関係です。誤分類すると、実行時には存在しない循環依存が生じます(ruvnet/ruflo#2049 を参照)。

    • imports:値のインポート(import { x } from '...'、require(...)) -- 重み 0.9
    • type-depends-on:TypeScript の型のみのインポート(import type { Foo } from '...' と import { type Foo, value } from '...') -- 重み 0.1、循環検出や実行時の影響分析には決して使用しません
    • extends:クラスの継承 -- 重み 0.9
    • implements:インターフェースの実装 -- 重み 0.7
    • depends-on:コンストラクターの依存関係、注入されたサービス -- 重み 0.8
    • calls:関数/メソッドの呼び出し -- 重み 0.7
    • references:ドキュメント内の言及、コメント -- 重み 0.3

    TS インポートを分類するための正規表現のヒント(単純な from '...' の grep で両者を混同しないため):

    ^\s*import\s+type\s+               → type-depends-on (entire import is type-only)
    ^\s*import\s*\{[^}]*\btype\s+\w+   → split: type specifiers → type-depends-on, value specifiers → imports
    ^\s*import\s+[^{]*\bfrom\s+        → imports (value)
    
  4. AgentDB に保存する -- メタデータ(name、type、file、line、description)を指定して、各エンティティについて mcp__plugin_ruflo-core_ruflo__agentdb_hierarchical-store を呼び出します

  5. エッジを作成する -- 各関係について、source、target、relation type、weight を指定して mcp__plugin_ruflo-core_ruflo__agentdb_causal-edge を呼び出します

  6. 報告する -- エンティティのタイプ別合計数、関係のタイプ別合計数、スキャンしたファイルを要約します

CLI の代替手段

npx @claude-flow/cli@latest memory store --namespace knowledge-graph --key "entity-NAME" --value "METADATA_JSON"
npx @claude-flow/cli@latest memory search --query "entities in auth module" --namespace knowledge-graph

コメント