Agent Skills: Vulture and deadcode - Dead Code Detection

|

UncategorizedID: laurigates/claude-plugins/vulture-dead-code

Install this agent skill to your local

pnpm dlx add-skill https://github.com/laurigates/claude-plugins/tree/HEAD/python-plugin/skills/vulture-dead-code

Skill Files

Browse the full folder contents for vulture-dead-code.

Download Skill

Loading file tree…

python-plugin/skills/vulture-dead-code/SKILL.md

Skill Metadata

Name
vulture-dead-code
Description
|

Vulture and deadcode - Dead Code Detection

Tools for finding unused Python code including functions, classes, variables, imports, and attributes.

When to Use This Skill

| Use this skill when... | Use another tool instead when... | |------------------------|----------------------------------| | Detecting unused functions, classes, variables | Finding unused imports only (use ruff --select F401) | | Cleaning up dead code in a codebase | Checking type correctness (use basedpyright) | | Enforcing code hygiene in CI | Formatting code (use ruff format) | | Generating whitelists for false positives | Running general linting (use ruff check) |

Overview

Vulture (mature, confidence-based) and deadcode (newer, AST-based) both detect unused code but with different approaches:

| Feature | Vulture | deadcode | |---------|---------|----------| | Approach | Static analysis + confidence scores | AST-based detection | | Accuracy | Confidence scores (60-100%) | High accuracy, fewer false positives | | Speed | Fast | Very fast | | Configuration | Whitelist files | TOML configuration | | Maturity | Mature (2012) | Newer (2023+) | | Best For | Large codebases, gradual cleanup | New projects, strict enforcement |

Installation

# Install vulture
uv add --dev vulture

# Install deadcode (newer alternative)
uv add --dev deadcode

# Install both for comparison
uv add --dev vulture deadcode

Vulture - Confidence-Based Detection

Basic Usage

# 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

Configuration (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-Based Detection

Basic Usage

# 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

Configuration (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

Choosing Between Tools

| Choose Vulture when... | Choose deadcode when... | |------------------------|------------------------| | Large, mature codebases | New projects | | Need confidence-based filtering | Want fewer false positives | | Need whitelist file approach | Prefer TOML configuration | | Dynamic code (getattr, exec) | Need unreachable code detection |

Hybrid Approach

# Run both for comprehensive detection
vulture --min-confidence 80 .
deadcode .

Agentic Optimizations

| Context | Command | |---------|---------| | Quick vulture check | vulture --min-confidence 90 . | | Quick deadcode check | deadcode . | | Generate whitelist | vulture . --make-whitelist > vulture_whitelist.py | | CI enforcement | vulture --min-confidence 80 . vulture_whitelist.py | | Unreachable code | deadcode --show-unreachable . | | Combined check | vulture --min-confidence 80 . && deadcode . |

Quick Reference

Vulture Flags

| Flag | Description | |------|-------------| | --min-confidence N | Minimum confidence (60-100%) | | --exclude PATTERN | Exclude glob patterns | | --sort-by-size | Sort results by size | | --make-whitelist | Generate whitelist file |

deadcode Flags

| Flag | Description | |------|-------------| | --verbose | Verbose output | | --dry-run | Show without modifying | | --show-unreachable | Detect unreachable code | | --init | Generate configuration | | --strict | Strict enforcement mode |

For detailed examples, advanced patterns, and best practices, see REFERENCE.md.