mcpField
G
graph-search

graph-search

github.com/athola開発34378 回インストール1 日前に更新
リポジトリ

graph-search について

graph-searchは、コードナレッジグラフから名前でコード要素を探す開発者向けスキルです。関数、クラス、型などを検索し、クエリ形式に応じた関連度と位置情報を表示します。

主な機能

  1. 01名前によるコード要素の検索
  2. 02関数またはクラスによる絞り込み
  3. 03命名形式に応じた関連度の調整
  4. 04完全修飾名、ファイルパス、行番号、スコアの表示
  5. 05最上位結果のソースを読む選択肢

活用シーン

  1. 01関数やクラスの定義位置の特定
  2. 02完全修飾パスによるコード要素の検索
  3. 03構築済みコードグラフ内の一致項目の探索

インストール

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

$npx skills add https://github.com/athola/claude-night-market --skill graph-search

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

詳細

コードナレッジグラフを検索する

.gauntlet/graph.db から、名前でコードエンティティを検索します。

使用しない場合

  • グラフが見つからない、または古くなっている場合(gauntlet:graph-build を使用します)
  • 変更の影響を評価する場合(pensive:blast-radius を使用します)

手順

  1. クエリを受け取る:ユーザーから検索語を取得します。

  2. クエリスクリプトを実行する:

    python3 ${CLAUDE_PLUGIN_ROOT}/scripts/graph_query.py \
        --action search --query "<term>" --limit 20
    

    任意のフィルター:

    • --kind Function で関数のみを検索します
    • --kind Class でクラスのみを検索します
  3. 結果を表示する:各一致項目について、修飾名、ファイルパス、 行番号、関連度スコアを表示します。

  4. 読み取りを提案する:最上位の結果のソースファイルを読み取るか、 ユーザーに尋ねます。

クエリインテリジェンス

検索エンジンはクエリのパターンを検出します。

  • PascalCase(例:UserService):Class と Type の結果を優先します
  • snake_case(例:get_users):Function の結果を優先します
  • ドット区切りパス(例:app.models.User):修飾名の一致を優先します

前提条件

グラフは事前に構築しておく必要があります。.gauntlet/graph.db が存在しない場合は、graph-build スキルの実行を提案します。

完了条件

  • .gauntlet/graph.db が存在しない場合、スキルは前提条件が不足している旨のエラーを表示し、 何も通知せずに失敗するのではなく、gauntlet:graph-build の実行を提案する
  • 各一致項目について、修飾名、ファイルパス、行番号、 関連度スコアが結果に表示される(--limit 件まで)
  • クエリインテリジェンスが適切な優先度を適用する:PascalCase は Class/Type の結果、 snake_case は Function の結果、ドット区切りパスは修飾名の一致を優先する
  • 結果の表示後、最上位の結果のソースファイルを読み取るかどうかをユーザーに尋ねる
  • count: 0 の結果を「グラフに存在しない」と報告するのは、graph_query.py --action status で node_count が 0 より大きいことを確認した後に限る。未構築のグラフ、または tree-sitter なしで構築されたグラフでは、 すべてのクエリがゼロを返すため、そのゼロからコードベースについては何もわからない

コメント