Python Project Audit
Проверка заявленной готовности против фактической: проект выглядит законченным — разобраться, так ли это. Полный pipeline: статический анализ → ручной review → отчёт с баллами и вердиктом.
Это статический аудит: код только читается и анализируется инструментами.
НЕ запускай тесты, python manage.py или приложение — не нужно для аудита.
Шаг 0. Разведка
Собери контекст перед анализом. Используй инструменты Grep/Glob/Read вместо POSIX-утилит — они не зависят от оболочки на машине пользователя:
- Структура и размер:
Globпо**/*.py— посчитай количество файлов. - Фреймворк:
Grepпоfastapi|FastAPI,django|Django,flask|Flask(output_mode: files_with_matches). - Зависимости:
Readдляrequirements.txt,pyproject.tomlилиPipfile. - Инфраструктура:
GlobпоDockerfile,docker-compose.yml,.github/workflows/*,.gitlab-ci.yml,Jenkinsfile. - Тесты:
Globпо**/test_*.py,**/conftest.py. - Конфиги/ENV:
Globпо.env*,*.ini,*.cfg,alembic.ini.
Определи: фреймворк (FastAPI / Django / Flask), размер (файлы, строки),
зрелость (тесты, CI, Docker, миграции). Затем прочитай ключевые файлы:
точка входа (main.py / app.py / manage.py), конфигурация, роутинг, модели.
Шаг 1. Автоматический статический анализ
Запусти анализаторы: pylint, bandit, mypy, radon, vulture, safety.
Каждый инструмент — отдельное «испытание».
Установка — только с согласия пользователя. Никогда не используй
pip install --break-system-packages (ломает системный Python). Предпочитай:
- запуск через
uvx(uvx pylint ...,uvx bandit -r .) — без установки; - или
pipx run <tool>; - или установку в venv проекта (
.venv), если он есть.
Подробные команды (PowerShell + cross-platform) и разбор вывода — в references/static-analysis.md.
Если инструмент не установился или упал — не останавливайся, отметь в отчёте и двигайся дальше.
Шаг 2. Ручной review — 8 испытаний
Прочитай код и оцени каждую категорию по шкале 0-10. Для каждой находки указывай: файл, строку, что не так, как исправить.
Категории: Архитектура, Обработка ошибок, Безопасность, Производительность/Highload, Тестирование, Инфраструктура/деплой, Качество кода и стиль, Документация/DX.
Полный чек-лист по каждому испытанию с антипаттернами — в references/manual-review-checklist.md.
Для оценки тестового покрытия (Испытание 5) полезен связанный навык test-coverage-auditor.
Шаг 3. Подсчёт баллов
| Испытание | Вес | Баллы (0-10) | Взвешенный |
|---|---|---|---|
| Архитектура | 15% | ? | ? |
| Обработка ошибок | 10% | ? | ? |
| Безопасность | 20% | ? | ? |
| Производительность | 15% | ? | ? |
| Тестирование | 15% | ? | ? |
| Инфраструктура | 10% | ? | ? |
| Качество кода | 10% | ? | ? |
| Документация | 5% | ? | ? |
| ИТОГО | 100% | ?/10 |
Градации
- 9-10 — Production-ready, можно деплоить под нагрузку
- 7-8 — Хороший проект, нужны точечные улучшения
- 5-6 — MVP-уровень, серьёзная доработка перед продом
- 3-4 — Прототип, много работы впереди
- 0-2 — Нужен рефакторинг с нуля
Шаг 4. Генерация отчёта
Сохрани в docs/audit-YYYY-MM-DD.md. Шаблон отчёта — в
references/report-template.md.
Шаг 5. Презентация результатов
После генерации отчёта:
- Покажи итоговый балл и таблицу прямо в чате.
- Выдели топ-3 критичных проблемы с конкретными решениями.
- Предложи: «Хочешь, чтобы я исправил критичные проблемы прямо сейчас?»
Адаптация под фреймворки
Дополнительные проверки для FastAPI / Django / Flask — в references/framework-specifics.md.
Важные принципы
- Конкретика: «В файле X, строка Y, вот проблема, вот решение» — не «улучшите безопасность».
- Приоритизация: критичное → важное → nice-to-have.
- Контекст: учитывай стадию проекта (MVP vs зрелый прод).
- Баланс: обязательно отмечай сильные стороны, не только проблемы.
- Actionable: каждая находка = конкретное действие, которое можно выполнить.