find-dead-code

Найти неиспользуемые функции, классы, импорты и недостижимые пути кода. Использовать, когда пользователь просит найти мёртвый код, неиспользуемый код, кандидатов на очистку или хочет…

npx skills add https://github.com/openshift/lightspeed-service --skill find-dead-code

Find Dead Code

Detect unused code that can be safely removed.

Rules

  • Report findings, do not delete. Removal is a separate task.
  • Focus on production code (ols/). Skip tests unless explicitly asked.
  • Vulture has false positives — classify each finding before recommending removal.
  • Code used only via dynamic dispatch (e.g. Pydantic validators, FastAPI dependencies) is not dead.

Step 1: Determine Scope

Ask the user:

  • Branch mode: only files changed in the current branch vs main.
  • Full mode: scan the entire ols/ directory.

For branch mode:

git diff --name-only origin/main -- 'ols/' | grep '\.py$'

Step 2: Run Vulture

uvx vulture <target> --min-confidence 80

--min-confidence 80 reduces noise. Lower confidence findings are more likely false positives.

Step 3: Run Pylint Unused Checks

uv run pylint --disable=all --enable=unused-import,unused-variable,unused-argument,unreachable <target>

Cross-reference with vulture findings to increase confidence.

Step 4: Filter False Positives

Common false positives in this codebase:

PatternWhy it's not dead
Pydantic model_validator, field_validatorCalled by Pydantic, not directly
FastAPI dependency functionsInjected via Depends()
__eq__, __hash__, __str__Called implicitly by Python
Constants used in config YAMLReferenced by config loader
Abstract method implementationsCalled via base class interface
Imports re-exported from __init__.pyUsed by external consumers

Step 5: Classify Findings

For each finding, classify:

CategoryCriteriaAction
RemoveClearly unused, no dynamic referencesSafe to delete
VerifyPossibly used dynamically or externallySearch for string references before removing
False positivePydantic/FastAPI/magic methodSkip

For "Verify" findings, search for string-based references:

rg "<function_or_class_name>" ols/ tests/

Step 6: Report

For each finding:

  1. File and line number
  2. What is unused (function, class, import, variable)
  3. Confidence level (vulture %)
  4. Classification (remove / verify / false positive)

Summary: total findings, how many safe to remove, estimated lines saved.

Больше skills от openshift

openshift-expert
openshift
Эксперт по платформе OpenShift и Kubernetes с глубокими знаниями архитектуры кластеров, операторов, сетей, хранилищ, устранения неполадок и CI/CD-пайплайнов. Используйте…
official
find-token
openshift
Найти скрытый верификационный токен. Запустите скрипт find-token, чтобы получить уникальный токен.
official
code-review
openshift
Проверить пул-реквест на качество кода, корректность и соответствие стандартам проекта. Используется, когда пользователь просит провести ревью PR, проверить код или изучить изменения в…
official
css-review
openshift
Проверка CSS на соответствие стилю кодирования, использование токенов PatternFly и лучшие практики. Используйте, когда пользователь просит проверить CSS, оценить стили или провести аудит CSS-файлов.
official
review-readmes
openshift
Проверить все файлы README.md в репозитории на опечатки, ошибки и устаревшую информацию. Использовать, когда пользователь просит проверить README, точность документации или…
official
review-skills
openshift
Проверка AI-навыков проекта на дублирование, устаревшие ссылки, ошибки и структурные проблемы. Используется, когда пользователь просит проверить навыки, провести аудит навыков, проверить на…
official
test
openshift
Запустить сквозные тесты, отфильтрованные по тегу. Используйте, когда пользователь просит запустить тесты, запустить Playwright или протестировать конкретный тег функции, например @core или @attach.
official
unused-exports
openshift
Находит экспортированные символы, которые никогда не импортируются другим файлом. Используется, когда пользователь говорит «проверить экспорт», «неиспользуемый экспорт» или просит очистить экспорт.
official