call-chain について
Call Chain Tracingは、コードベース内の実行経路を追跡するスキルです。gauntletのコード知識グラフがあれば利用し、なければ静的検索に切り替えて、呼び出しツリー、Mermaid図、重要度の内訳を示します。
主な機能
- 01コードグラフによる実行フロー追跡
- 02静的な呼び出し検索への切り替え
- 03インデント付き呼び出しツリーの表示
- 04Mermaidフローチャートの生成
- 05フローの重要度要因の提示
活用シーン
- 01指定した関数から呼び出しを追跡
- 02エントリーポイントの実行経路の把握
- 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 の実行を案内します。
手順
-
対象を指定する:ユーザーから関数名またはエントリーポイントを取得します(または、すべてのエントリーポイントを追跡します)。
-
フローを追跡する(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検索結果から、呼び出しツリーを手動で作成します。
-
インデント付きツリーとして表示する:
main() [criticality: 0.72] -> validate_input() -> parse_config() -> process_data() -> db.execute_query() -> cache.store() -> send_response() -
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 -
重要度の内訳を示す:
- ファイルの広がり:フローが関係するファイル数
- セキュリティ上の機密性:経路内の認証/暗号化コード
- テストカバレッジの不足:フロー内の未テストノード
重要度のスコアリング
| 要素 | 重み | 意味 |
|---|---|---|
| ファイルの広がり | 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の実行を案内している
コメント
Markdown 対応