code-to-diagram について
code-to-diagramは、ソースコードのインポートと依存関係を解析してMermaid図を作成するPythonスキルです。プロジェクト構造の把握や依存関係の確認、ドキュメント作成に使え、SVGへのレンダリングも選択できます。
主な機能
- 01アーキテクチャ図、フローチャート、組織図
- 025言語の構文解析
- 03Mermaid出力とオプションのSVG出力
- 04JSON形式の解析結果
- 05スキャン範囲の設定
活用シーン
- 01未知のコードベースの構造把握
- 02コードレビューでの依存関係確認
- 03アーキテクチャドキュメントの作成
- 04リファクタリング前の結合度確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ zebbern/ claude-code-guide --skill code-to-diagramインストール後、Claude Code で/code-to-diagramを入力して読み込まれたか確認します。
同梱ファイルLICENSEscripts/analyze_codebase.py
詳細
コードから図を生成
AST 解析を通じてコードベースからインポートと依存関係を抽出し、次の 3 種類の図を自動生成します。
- アーキテクチャ図 — モジュール/ディレクトリレベルの依存関係
- フローチャート — ファイルレベルのインポート呼び出しチェーン
- 組織図 — ディレクトリ/ファイルの階層構造
対応言語:Python、JavaScript、TypeScript、Go、Java
出力形式:Mermaid テキスト(.mmd)または SVG 画像(システムへの mmdc のインストールが必要)
使い方
基本:プロジェクト全体を解析
python3 scripts/analyze_codebase.py /path/to/project
3 つの Mermaid 図を標準出力に出力し、.mmd ファイルを現在のディレクトリに書き込みます。
図の種類を指定
# Architecture diagram only
python3 scripts/analyze_codebase.py /path/to/project --type architecture
# Flowchart only
python3 scripts/analyze_codebase.py /path/to/project --type flowchart
# Org chart only
python3 scripts/analyze_codebase.py /path/to/project --type org
出力ディレクトリと形式を指定
# Output to a specific directory
python3 scripts/analyze_codebase.py /path/to/project --output /tmp/diagrams
# Output as SVG (requires mmdc)
python3 scripts/analyze_codebase.py /path/to/project --format svg
# Output both Mermaid and SVG
python3 scripts/analyze_codebase.py /path/to/project --format both
解析結果を JSON で出力
python3 scripts/analyze_codebase.py /path/to/project --json
パラメーター
| パラメーター | 説明 |
|---|---|
directory | 解析するコードディレクトリ(必須) |
--type, -t | 図の種類:architecture、flowchart、org、all(デフォルト:all) |
--output, -o | 出力ディレクトリ(デフォルト:現在のディレクトリ) |
--format, -f | 出力形式:mermaid、svg、both(デフォルト:mermaid) |
--max-files | スキャンするファイルの最大数(デフォルト:500) |
--max-depth | 組織図の最大階層(デフォルト:4) |
--json | 解析結果を JSON 形式で出力 |
仕組み
- スキャンフェーズ:ディレクトリを再帰的にたどり、
node_modules、.git、__pycache__などをスキップします。 - 解析フェーズ:
- Python ファイル:
astモジュールを使ってimport文とfrom ... import文を解析します - JS/TS ファイル:正規表現を使って
import、require、export fromに一致させます - Go ファイル:正規表現を使って
import文に一致させます - Java ファイル:正規表現を使って
import文に一致させます
- Python ファイル:
- 内部依存関係の解決:インポートパスをプロジェクト内の実際のファイルに対応付けます
- 図の生成:依存関係を Mermaid の図構文に変換します
- レンダリング(任意):
mmdc(Mermaid CLI)を呼び出して、.mmdファイルを SVG としてレンダリングします
ユースケース
- 不慣れなプロジェクトのモジュール構造をすばやく把握する
- コードレビュー中に依存関係を可視化する
- 技術ドキュメント用のアーキテクチャ図を作成する
- 循環依存や過度な結合を検出する
- リファクタリング前にプロジェクト構造を解析する
依存関係
- Python 3.7+(標準ライブラリのみ。追加パッケージは不要)
- SVG 出力には
@mermaid-js/mermaid-cliが必要(任意)
注意事項
- 静的なインポート関係のみを解析します。動的インポートは追跡されません
- 大規模なプロジェクトでは、
--max-filesを使ってスキャン範囲を制限してください - ノードが多すぎる Mermaid 図はレンダリングが難しくなる場合があります。
--typeを使って図を個別に生成してください
コメント
Markdown 対応