graph-search について
graph-searchは、コードナレッジグラフから名前でコード要素を探す開発者向けスキルです。関数、クラス、型などを検索し、クエリ形式に応じた関連度と位置情報を表示します。
主な機能
- 01名前によるコード要素の検索
- 02関数またはクラスによる絞り込み
- 03命名形式に応じた関連度の調整
- 04完全修飾名、ファイルパス、行番号、スコアの表示
- 05最上位結果のソースを読む選択肢
活用シーン
- 01関数やクラスの定義位置の特定
- 02完全修飾パスによるコード要素の検索
- 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を使用します)
手順
-
クエリを受け取る:ユーザーから検索語を取得します。
-
クエリスクリプトを実行する:
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/graph_query.py \ --action search --query "<term>" --limit 20任意のフィルター:
--kind Functionで関数のみを検索します--kind Classでクラスのみを検索します
-
結果を表示する:各一致項目について、修飾名、ファイルパス、 行番号、関連度スコアを表示します。
-
読み取りを提案する:最上位の結果のソースファイルを読み取るか、 ユーザーに尋ねます。
クエリインテリジェンス
検索エンジンはクエリのパターンを検出します。
- 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 なしで構築されたグラフでは、 すべてのクエリがゼロを返すため、そのゼロからコードベースについては何もわからない
コメント
Markdown 対応