dependency-graph について
コードのモジュール、パッケージ、プラグイン間のインポートと依存関係を Mermaid のフローチャートにまとめるスキルです。依存関係の分析、循環依存の検出、リファクタリング計画に役立ちます。
主な機能
- 01Mermaid依存関係フローチャートの作成
- 02内部・外部インポートの区別
- 03重要・任意の依存関係の表示
- 04循環依存の検出と強調
- 05ファンインとファンアウトの集計
活用シーン
- 01コードベースの依存関係の確認
- 02モジュール間の循環依存の発見
- 03リファクタリングの影響評価
MCP 対応
生成したフローチャートの検証とレンダリングに Mermaid Chart MCP を呼び出します。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ athola/ claude-night-market --skill dependency-graphインストール後、Claude Code で/dependency-graphを入力して読み込まれたか確認します。
詳細
依存関係グラフ
モジュール、パッケージ、プラグイン間のインポートおよび依存関係を示す Mermaid フローチャートを生成します。
使用する場面
- 何が何に依存しているかを理解する
- 循環依存を見つける
- モジュール間の結合度を分析する
- 依存関係への影響を確認してリファクタリングを計画する
- 「これを変更したら何が壊れるか?」に答える
使用しない場面
- 実行時の呼び出し経路(
cartograph:call-chainを使用) - 型の階層(
cartograph:class-diagramを使用)
ワークフロー
ステップ 1:コードベースを調査する
コードベースエクスプローラーエージェントに処理を依頼します。
Agent(cartograph:codebase-explorer)
Prompt: Explore [scope] and return a structural model.
Focus on import statements and cross-module dependencies
for a dependency graph. Track both internal and external
imports.
ステップ 2:Mermaid 構文を生成する
構造モデルを、依存関係を表す有向エッジを含む Mermaid フローチャートに変換します。
依存関係グラフのルール:
- 依存関係の方向には
flowchart LR(左から右)を使用します - 各ノードはモジュールまたはパッケージです
- エッジは依存する側から依存先に向けます(A --> B は「A は B に依存する」という意味です)
- 依存関係の種類ごとに色分けします:
- 内部依存関係にはデフォルトの矢印を使用します
- 外部/オプションの依存関係には点線の矢印(
-.->)を使用します - クリティカルパスの依存関係には太い矢印(
==>)を使用します
- パッケージ/プラグインごとにサブグラフにまとめます
- 深さのパラメーターが指定されている場合は、推移的依存関係をその深さに制限します
- 循環依存は赤色のスタイルで強調表示します
出力例:
flowchart LR
subgraph sanctum[Sanctum]
commit[commit]
pr_prep[pr_prep]
workspace[workspace]
end
subgraph leyline[Leyline]
git[git_platform]
errors[error_patterns]
end
subgraph external[External]
subprocess[subprocess]
json[json]
end
commit --> git
commit --> json
pr_prep --> workspace
pr_prep --> git
workspace --> errors
workspace -.-> subprocess
ステップ 3:MCP 経由でレンダリングする
Mermaid Chart MCP を呼び出してレンダリングします:
mcp__claude_ai_Mermaid_Chart__validate_and_render_mermaid_diagram
prompt: "Dependency graph of [scope]"
mermaidCode: [generated syntax]
diagramType: "flowchart"
clientName: "claude-code"
レンダリングに失敗した場合は、構文を修正して再試行します(最大 2 回)。
ステップ 4:結果を提示する
レンダリングされた図を分析メモとともに表示します:
- モジュールの合計数と依存関係の数
- 最も多く依存されているモジュール(ファンインが大きいモジュール)
- 依存関係が最も多いモジュール(ファンアウトが大きいモジュール)
- 検出された場合は循環依存
完了条件
- 依存する側から依存先に向かう有向エッジを含む Mermaid の
flowchart LR構文が生成されている(A --> B は「A は B に依存する」という意味です) -
mcp__claude_ai_Mermaid_Chart__validate_and_render_mermaid_diagramが呼び出され、エラーなく返されている - 分析メモにモジュールの合計数、ファンインが最大のモジュール、ファンアウトが最大のモジュールが含まれている
- 循環依存が検出された場合、赤色のスタイルで強調表示され、分析メモに明記されている
- 外部依存関係には点線の矢印(
-.->)が使用され、内部依存関係の矢印と区別されている
コメント
Markdown 対応