К основному содержанию
скилл CX Codex

vulture-dead-code — скилл для Claude Code: поиск мёртвого Python-кода

Скилл учит агента искать неиспользуемые функции, классы, переменные и импорты в Python через vulture и deadcode. Пригодится при чистке старой кодовой базы.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add laurigates/claude-plugins --skill vulture-dead-code -a claude-code
Открыть на GitHub

Что делает vulture-dead-code

Скилл описывает два инструмента и разницу между ними. Vulture работает на статическом анализе и выдаёт оценки уверенности от 60 до 100%, поэтому часть находок придётся отсеивать вручную. deadcode разбирает AST, ложных срабатываний меньше, и он умеет находить недостижимый код. Внутри — таблицы, когда что брать, готовые команды и примеры конфигурации в pyproject.toml для обоих.

Ставится через uv add --dev vulture или uv add --dev deadcode. Для vulture есть порог --min-confidence, исключения по маскам и генерация whitelist-файла, куда попадают текущие находки. deadcode настраивается через TOML и поддерживает режим --dry-run, который ничего не удаляет, а только показывает кандидатов.

Если в проекте много динамики — getattr, exec, декораторы вроде @app.route — vulture будет ругаться на живой код. Это повод сразу заполнить ignore_decorators и ignore_names, иначе проверка в CI превратится в шум. Для нового проекта с жёсткими требованиями автор советует deadcode, для крупной старой базы — vulture с порогом 80.

Какие задачи решает

  • найти функции и классы, которые больше никто не вызывает
  • вычистить неиспользуемые импорты и переменные перед релизом
  • собрать whitelist из текущих находок, чтобы не тонуть в них потом
  • поймать недостижимый код после крупного рефакторинга
  • встроить проверку на мёртвый код в CI

Примеры запросов агенту

  • прогони vulture по проекту с порогом уверенности 80 и покажи, что нашлось
  • сгенерируй whitelist для vulture и сохрани его в файл
  • запусти deadcode с --show-unreachable и разбери недостижимые ветки

Как установить vulture-dead-code

1Через Skills CLI (Vercel)

npx skills add laurigates/claude-plugins --skill vulture-dead-code -a claude-code

2Вручную: положить файлы

~/.claude/skills/vulture-dead-code/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/vulture-dead-code/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора5

Похожие

dead-code parcadei Скилл находит неиспользуемые функции и недостижимый код через статический анализ TLDR. Запускается по запросу, когда нужно почистить проект. CX Codex +1 729установок fallow fallow-rs Анализирует проекты на TypeScript и JavaScript: ищет мёртвый код, дубликаты и архитектурные риски. Помогает подготовить кодовую базу к рефакторингу. CX Codex +1 9 600установок unused-code-cleaner davila7 Субагент ищет неиспользуемые импорты, функции и классы и удаляет их с проверкой после каждого шага. Пригодится после рефакторинга или перед выкладкой в прод. 1 990установок refactor-safely tirth8205 Строит план рефакторинга по графу зависимостей, показывает список правок перед переименованием и проверяет радиус влияния до крупных изменений. CX Codex +1 1 100установок codebase-refactoring kucherenko Скилл запускает аудит кодовой базы через утилиту jscpd. Помогает пошагово сократить дублирование, вычистить мёртвый код и упростить перегруженные файлы. CX Codex +1 613установок blast-radius michael-denyer Ищет, что изменение сломает в других местах, за пределами диффа. Полезен перед мержем и когда в задаче утверждают что-то про существующий код. CX Codex +1 889установок

Рядом в теме «Код-ревью и рефакторинг»

Всё по теме «Код-ревью и рефакторинг» →

Вопросы о vulture-dead-code

Как установить vulture-dead-code в Claude?

Выполните npx skills add laurigates/claude-plugins --skill vulture-dead-code -a claude-code. После этого файл скилла лежит в ~/.claude/skills/vulture-dead-code/SKILL.md.

Что делает vulture-dead-code?

Даёт агенту инструкции по двум инструментам поиска мёртвого Python-кода: vulture с оценками уверенности и deadcode на разборе AST. Плюс команды, флаги и примеры конфигурации.

Чем vulture отличается от deadcode?

Vulture старше и работает через оценки уверенности, поэтому находки надо фильтровать. deadcode новее, разбирает AST, даёт меньше ложных срабатываний и умеет искать недостижимый код.

Исходный текст

SKILL.md · MIT
---
created: 2025-12-16
modified: 2026-05-09
reviewed: 2025-12-16
name: vulture-dead-code
description: Vulture and deadcode tools for detecting unused Python code (functions, classes, imports). Use when cleaning up codebases or removing dead code. Triggers vulture, deadcode.
user-invocable: false
allowed-tools: Bash, Read, Grep, Glob
---

# 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

```bash
# 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

```bash
# 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)

```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

```bash
# 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)

```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

```bash
# 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](REFERENCE.md).

© laurigates · MIT · laurigates/claude-plugins

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой