200 тысяч строк Python-кода — и ни одного инструмента, который реально помогает

У меня есть большой непубличный Python-проект. Несколько лет разработки, около 200 тысяч строк, чистая архитектура с первого дня. Я относился к нему как к эталону того, каким код должен быть.

В какой-то момент я заметил, что кодовая база начинает расползаться. Не катастрофически - постепенно и почти незаметно. Дублирование появляется там, где его не ждёшь. Сложность растёт в неожиданных местах. На проекте такого размера это уже невозможно удерживать на глаз.

Я пошёл искать инструменты, которые умеют отслеживать структурные изменения - клоны, архитектурное давление, рост сложности - и при этом не тонут в шуме из старых проблем, которые существовали всегда. Хотелось простой вещи: вот что было раньше, вот что изменилось, вот что стало хуже именно сейчас.

Не нашёл ничего.

Есть линтеры - они про стиль. Есть статические анализаторы - они про отдельные паттерны. Есть coverage-инструменты. Но отдельного слоя, который даёт структурный контроль над изменениями в Python-коде, не оказалось.

Так появился CodeClone.

Первый прогон по родительскому проекту дал 39 баллов - F. Честно говоря, было неприятно. Но именно так и должен работать инструмент, которому можно доверять.

А дальше AI-разработка вышла на новый уровень.

Пока я разрабатывал CodeClone, AI-инструменты для кодинга стали массовыми и удивительно точными — Cursor, Claude Code, Codex. И внезапно проблема стала общей.

Потому что AI меняет не только скорость написания кода — он меняет сам характер изменений. Диффы становятся больше. PR — плотнее. Исторический шум смешивается с новыми проблемами. Линтеры видят всё подряд. Агент получает огромный отчёт без нормального приоритета и начинает чинить всё сразу.

Именно эту проблему CodeClone и решает.

Один раз фиксируется текущее состояние проекта как baseline — и дальше CI реагирует только на то, что реально ухудшилось. Исторический долг остаётся виден, но не блокирует работу. Новые структурные регрессии — блокируют.

Те же самые факты используются в CLI, HTML-отчёте, IDE и MCP-интерфейсе для AI-агентов. Человек и агент смотрят на одну и ту же картину.

Я просто хотел нормально контролировать деградацию собственного Python-проекта. В итоге оказалось, что AI-разработка очень быстро делает эту проблему общей.

Начать дискуссию