Dependency auditor
Аудит зависимостей и supply-chain безопасности Python-проектов и помощь в безопасном обновлении: уязвимые пакеты (CVE через pip-audit/safety), слабый пиннинг и отсутствие lockfile, неразделённые prod/dev-зависимости, заброшенные пакеты, typosquatting; апгрейды по semver без поломок (батчи, breaking changes, откат). Менеджеры uv/pip/poetry. Используй когда пользователь просит проверить зависимости, спрашивает «есть ли уязвимости», «что обновить», обновляет requirements/pyproject, видит алерт Dependabot/CVE, настраивает lockfile или воспроизводимые сборки, или упоминает pip-audit, safety, uv.lock, poetry.lock, supply chain.From its SKILL.md
npx -y skills add goldenprofile/llm-skills --skill dependency-auditorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
7.5 KB, ~1.8k tokens by cl100k_base, as published. Nobody here has run it
Dependency Auditor
Аудитор зависимостей и supply-chain безопасности Python-проектов. Цель — найти уязвимые, устаревшие, заброшенные и плохо запиненные пакеты, оценить риск и помочь обновить их безопасно: по semver, с чтением breaking changes, прогоном тестов и возможностью отката. По итогу — отчёт с уровнями риска и (по согласованию) конкретные правки.
Когда применять
Перед релизом/деплоем, при алерте Dependabot/CVE, при ревью изменений в requirements*.txt/
pyproject.toml/lockfile, при настройке воспроизводимых сборок, при плановом обновлении.
Для общего аудита проекта см. python-project-audit; этот навык — только про зависимости.
Контекст — установить ПЕРВЫМ делом
- Менеджер пакетов: uv, pip (+ pip-tools), poetry. Определяет lockfile и команды апгрейда.
- Источник истины зависимостей:
pyproject.toml,requirements.txt/requirements.in,uv.lock/poetry.lock. Есть ли вообще lockfile и хеши. - Окружение: прод vs dev/test; отделены ли dev-зависимости (
--extra/--group/[dev]). - Есть ли тесты и CI: можно ли проверить апгрейд прогоном (см.
test-coverage-auditor).
Процесс
- Инвентаризация. Собрать манифесты и lockfiles, зафиксировать активный менеджер,
получить полное дерево:
uv pip list/pip list,uv tree/pipdeptree/poetry show --tree. - Скан уязвимостей.
pip-audit(и при наличии —safety scan); читать severity и fix-версии. См. references/scanning.md. - Проверка пиннинга/lockfile. Запинено ли, есть ли хеши, разделены ли prod/dev, воспроизводима ли установка. См. references/pinning-lockfiles.md.
- Устаревшие/заброшенные.
pip list --outdated/uv tree --outdated; оценить заброшенность и typosquatting (см. scanning.md). - Классифицировать по риску, объяснить почему опасно именно здесь.
- План безопасного апгрейда по references/upgrades.md.
- Отчёт по references/output-format.md. По согласованию — правки.
Уровни риска
- CRITICAL — известная уязвимость с эксплойтом/RCE/утечкой в прод-зависимости при наличии fix-версии; явный typosquat/скомпрометированный пакет в зависимостях.
- HIGH — CVE средней/высокой severity в прод-пути; нет lockfile вообще при деплое на прод; установка из непиннутого диапазона (невоспроизводимый прод); заброшенный прод-пакет с открытой уязвимостью без патча.
- MEDIUM — CVE только в dev/test-зависимостях; устаревший на мажор пакет без known-CVE; prod и dev не разделены; lockfile без хешей; сильно отставшие, но не уязвимые пакеты.
- LOW — мелкие апдейты в пределах patch/minor, стиль пиннинга, отсутствие проверки лицензий.
Быстрый чеклист
- Прогонялся
pip-audit(иsafety)? Есть ли CVE с доступным fix? Прод или только dev? - Есть lockfile (
uv.lock/poetry.lock/requirements.txtс хешами) и он закоммичен? - Установка воспроизводима:
uv sync --frozen/pip install --require-hashes/poetry install? - Прямые прод-зависимости запинены осознанно (не голый
*, не случайныйlatest)? - Dev/test отделены от прода (
--group dev/[project.optional-dependencies]/requirements-dev.txt)? - Есть устаревшие на мажор или заброшенные (нет релизов >1–2 лет) пакеты в проде?
- Имена пакетов соответствуют реальным (нет typosquat:
python-requests,djnago,urlib3)? - После апгрейда прогоняются тесты? Зафиксирован ли способ отката (старый lockfile)?
Связь с библиотекой навыков
python-project-audit— общий аудит проекта; здесь — только зависимости и supply chain.harness-engineering—make secв CI (bandit + pip-audit); этот навык даёт содержание шага.test-coverage-auditor— прогон/качество тестов после апгрейда (обязательный шаг апгрейда).techlead-ai— ревью диффа правок зависимостей перед мержем.
Справочники
- references/scanning.md — pip-audit/safety: команды, флаги, чтение вывода, severity, что делать с CVE; устаревшие, заброшенные, typosquatting.
- references/pinning-lockfiles.md — стратегии пиннинга, lockfiles по инструментам (uv/poetry/pip-tools), хеши, воспроизводимость, prod/dev split.
- references/upgrades.md — рабочий процесс обновления, semver, breaking changes, батчи vs по одному, тесты, откат.
- references/output-format.md — формат отчёта.
What ships with it: 4 files
30.9 KB alongside SKILL.md
references/
- output-format.md4.7 KB
- pinning-lockfiles.md8.5 KB
- scanning.md10.0 KB
- upgrades.md7.7 KB