mcpField
C
call-chain

call-chain

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

call-chain について

Call Chain Tracingは、コードベース内の実行経路を追跡するスキルです。gauntletのコード知識グラフがあれば利用し、なければ静的検索に切り替えて、呼び出しツリー、Mermaid図、重要度の内訳を示します。

主な機能

  1. 01コードグラフによる実行フロー追跡
  2. 02静的な呼び出し検索への切り替え
  3. 03インデント付き呼び出しツリーの表示
  4. 04Mermaidフローチャートの生成
  5. 05フローの重要度要因の提示

活用シーン

  1. 01指定した関数から呼び出しを追跡
  2. 02エントリーポイントの実行経路の把握
  3. 03セキュリティ上重要な箇所や未テストのノードの確認

インストール

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

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

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

詳細

呼び出しチェーンの追跡

コードナレッジグラフを使って、コードベース内の実行フローを追跡します。

使用しない場合

  • 静的なインポート関係を調べる場合(cartograph:dependency-graph を使用)
  • 変更によるリスクを評価する場合(pensive:blast-radius を使用)

前提条件

このスキルでは、グラフデータを利用するために gauntlet プラグインが必要です。インストール状況を確認します。

GRAPH_QUERY=$(find ~/.claude/plugins -name "graph_query.py" -path "*/gauntlet/*" 2>/dev/null | head -1)

gauntlet がインストールされていない場合:静的解析に切り替えます。grep を使って関数呼び出しを追跡し、インポート/呼び出しのパターンから Mermaid 図を手動で作成します。グラフ固有の手順は省略します。

インストール済みでも graph.db がない場合:ユーザーに /gauntlet-graph build の実行を案内します。

手順

  1. 対象を指定する:ユーザーから関数名またはエントリーポイントを取得します(または、すべてのエントリーポイントを追跡します)。

  2. フローを追跡する(gauntlet が必要です):

    python3 "$GRAPH_QUERY" --action flows --depth 15
    

    エントリーポイントで絞り込むには:

    python3 "$GRAPH_QUERY" --action flows --entry "main"
    

    代替手段(gauntlet がない場合):rg(または grep)で呼び出しを追跡します。

    # Prefer rg (ripgrep) for speed; fall back to grep
    if command -v rg &>/dev/null; then
      rg -n "function_name\(" --type py . | head -20
    else
      grep -rn "function_name(" --include="*.py" . | head -20
    fi
    

    検索結果から、呼び出しツリーを手動で作成します。

  3. インデント付きツリーとして表示する:

    main() [criticality: 0.72]
      -> validate_input()
        -> parse_config()
      -> process_data()
        -> db.execute_query()
        -> cache.store()
      -> send_response()
    
  4. Mermaid フローチャートを生成する:

    flowchart LR
      main --> validate_input
      main --> process_data
      main --> send_response
      validate_input --> parse_config
      process_data --> db.execute_query
      process_data --> cache.store
    
  5. 重要度の内訳を示す:

    • ファイルの広がり:フローが関係するファイル数
    • セキュリティ上の機密性:経路内の認証/暗号化コード
    • テストカバレッジの不足:フロー内の未テストノード

重要度のスコアリング

要素重み意味
ファイルの広がり0.30多数のファイルに関係する
セキュリティ0.25認証/暗号化コードを含む
外部呼び出し0.20未解決の依存関係
テスト不足0.15フロー内に未テストのノードがある
深さ0.10呼び出しチェーンが深い

終了条件

  • 対象関数のインデント付き呼び出しツリーを、[criticality: N.NN] 形式の重要度スコアとともに表示している
  • 追跡経路内の各呼び出し元から呼び出し先への関係をエッジで表した Mermaid flowchart LR を生成している
  • ファイルの広がり、セキュリティ上の機密性、外部呼び出し、テスト不足、深さを網羅した重要度の内訳表を表示している
  • gauntlet がインストールされていない場合、静的な rg/grep 解析に切り替え、グラフデータがないことを明記している
  • gauntlet がインストール済みでも graph.db がない場合、スキルを終了する前にユーザーへ /gauntlet-graph build の実行を案内している

コメント