mcpField
V
vulture-dead-code

vulture-dead-code

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

vulture-dead-code について

Vulture と deadcode で未使用コードを調べる Python 開発者向けのリファレンススキルです。検出方式や設定、コマンド、CI でのチェック方法を解説します。

主な機能

  1. 01未使用の関数・クラス・変数の検出
  2. 02Vulture と deadcode の比較
  3. 03除外設定とホワイトリストの構成
  4. 04到達不能コードの検出

活用シーン

  1. 01プロジェクト内の未使用コードの整理
  2. 02CI でのコード衛生チェック
  3. 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 ベースのツール)はどちらも未使用コードを検出しますが、アプローチが異なります。

機能Vulturedeadcode
アプローチ静的解析 + 信頼度スコア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 PATTERNglob パターンを除外
--sort-by-sizeサイズ順に結果を並べ替え
--make-whitelistホワイトリストファイルを生成
deadcode のフラグ
フラグ説明
--verbose詳細な出力
--dry-run変更せずに表示
--show-unreachable到達不能なコードを検出
--init設定を生成
--strict厳格な適用モード

詳しい例、高度なパターン、ベストプラクティスについては、REFERENCE.md を参照してください。

コメント