vulture-dead-code について
Vulture と deadcode で未使用コードを調べる Python 開発者向けのリファレンススキルです。検出方式や設定、コマンド、CI でのチェック方法を解説します。
主な機能
- 01未使用の関数・クラス・変数の検出
- 02Vulture と deadcode の比較
- 03除外設定とホワイトリストの構成
- 04到達不能コードの検出
活用シーン
- 01プロジェクト内の未使用コードの整理
- 02CI でのコード衛生チェック
- 03動的コードによる誤検出のホワイトリスト作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ laurigates/ claude-plugins --skill vulture-dead-codeインストール後、Claude Code で/vulture-dead-codeを入力して読み込まれたか確認します。
同梱ファイルREFERENCE.md
詳細
Vulture と deadcode - デッドコードの検出
関数、クラス、変数、インポート、属性など、未使用の Python コードを検出するツールです。
このスキルを使用する場面
| このスキルを使用する場面... | 代わりに別のツールを使用する場面... |
|---|---|
| 未使用の関数、クラス、変数を検出する場合 | 未使用のインポートのみを検出する場合(ruff --select F401 を使用) |
| コードベース内のデッドコードを整理する場合 | 型の正しさを確認する場合(basedpyright を使用) |
| CI でコードの健全性を徹底する場合 | コードをフォーマットする場合(ruff format を使用) |
| 誤検出を除外するためのホワイトリストを生成する場合 | 一般的なリントを実行する場合(ruff check を使用) |
概要
Vulture(成熟した信頼度ベースのツール)と deadcode(新しい AST ベースのツール)はどちらも未使用コードを検出しますが、アプローチが異なります。
| 機能 | Vulture | deadcode |
|---|---|---|
| アプローチ | 静的解析 + 信頼度スコア | AST ベースの検出 |
| 精度 | 信頼度スコア(60~100%) | 高精度で、誤検出が少ない |
| 速度 | 高速 | 非常に高速 |
| 設定 | ホワイトリストファイル | TOML 設定 |
| 成熟度 | 成熟(2012 年) | 新しい(2023 年以降) |
| 最適な用途 | 大規模なコードベース、段階的な整理 | 新しいプロジェクト、厳格な適用 |
インストール
# Install vulture
uv add --dev vulture
# Install deadcode (newer alternative)
uv add --dev deadcode
# Install both for comparison
uv add --dev vulture deadcode
Vulture - 信頼度ベースの検出
基本的な使い方
# Check entire project
vulture .
# Check specific files/directories
vulture src/ tests/
# Minimum confidence threshold (60-100%)
vulture --min-confidence 80 .
# Exclude patterns
vulture . --exclude "**/migrations/*,**/tests/*"
# Sort by confidence
vulture --sort-by-size .
# Generate whitelist of current issues
vulture . --make-whitelist > vulture_whitelist.py
設定(pyproject.toml)
[tool.vulture]
min_confidence = 80
paths = ["src", "tests"]
exclude = [
"**/migrations/*",
"**/__pycache__/*",
".venv/*"
]
ignore_decorators = [
"@app.route",
"@pytest.fixture",
"@property",
"@staticmethod",
"@classmethod"
]
ignore_names = [
"test_*",
"setUp*",
"tearDown*",
]
deadcode - AST ベースの検出
基本的な使い方
# Check entire project
deadcode .
# Check specific files/directories
deadcode src/
# Verbose output
deadcode --verbose .
# Dry run (show what would be removed)
deadcode --dry-run .
# Show unreachable code
deadcode --show-unreachable .
# Generate configuration
deadcode --init
設定(pyproject.toml)
[tool.deadcode]
paths = ["src"]
exclude = [
"tests/*",
"**/__pycache__/*",
"**/migrations/*",
]
ignore_names = [
"test_*",
"setUp",
"tearDown",
"main",
]
ignore_decorators = [
"app.route",
"pytest.fixture",
"property",
"staticmethod",
"classmethod",
"abstractmethod"
]
show_unreachable = false
ツールの選び方
| Vulture を選ぶ場面... | deadcode を選ぶ場面... |
|---|---|
| 大規模で成熟したコードベース | 新しいプロジェクト |
| 信頼度ベースのフィルタリングが必要な場合 | 誤検出を減らしたい場合 |
| ホワイトリストファイル方式が必要な場合 | TOML 設定を使用したい場合 |
| 動的コード(getattr、exec)を使用する場合 | 到達不能なコードの検出が必要な場合 |
ハイブリッド方式
# Run both for comprehensive detection
vulture --min-confidence 80 .
deadcode .
エージェント向けの最適化
| 用途 | コマンド |
|---|---|
| Vulture の簡易チェック | vulture --min-confidence 90 . |
| deadcode の簡易チェック | deadcode . |
| ホワイトリストを生成 | vulture . --make-whitelist > vulture_whitelist.py |
| CI での適用 | vulture --min-confidence 80 . vulture_whitelist.py |
| 到達不能なコード | deadcode --show-unreachable . |
| 複合チェック | vulture --min-confidence 80 . && deadcode . |
クイックリファレンス
Vulture のフラグ
| フラグ | 説明 |
|---|---|
--min-confidence N | 最小信頼度(60~100%) |
--exclude PATTERN | glob パターンを除外 |
--sort-by-size | サイズ順に結果を並べ替え |
--make-whitelist | ホワイトリストファイルを生成 |
deadcode のフラグ
| フラグ | 説明 |
|---|---|
--verbose | 詳細な出力 |
--dry-run | 変更せずに表示 |
--show-unreachable | 到達不能なコードを検出 |
--init | 設定を生成 |
--strict | 厳格な適用モード |
詳しい例、高度なパターン、ベストプラクティスについては、REFERENCE.md を参照してください。
コメント
Markdown 対応