Code Modernization — плагин Claude Code для модернизации старого кода

Плагин Anthropic для Claude Code помогает изучить старую кодовую базу, согласовать план модернизации и сравнить поведение старой и новой версий.

Code Modernization — плагин Anthropic для Claude Code, который помогает разобраться в старой кодовой базе и провести её модернизацию поэтапно. Сначала он собирает сведения о системе, её правилах и зависимостях, затем предлагает план и ждёт решения человека. После согласования плагин может обновить существующий стек, переписать отдельные части на другом языке или подготовить новую архитектуру.

Главная идея — проверить не только то, что новый код собирается и проходит тесты, но и то, что он сохраняет ожидаемое поведение старой программы. Плагин сравнивает результаты обеих версий на одинаковых данных и показывает, где проверка прошла, где остались пробелы, а где результаты различаются.

Сначала плагин разбирается в старой системе

Инвентаризация, карта связей и правила бизнеса

Работа начинается с оценки проекта: Code Modernization проверяет, готова ли среда к сборке и тестированию, изучает состав системы, её сложность и возможные проблемы безопасности. Затем строит карту модулей, зависимостей, потоков данных и основных сценариев.

Отдельный этап извлекает из кода правила в проверяемом виде: например, «если поступил такой запрос, система должна вернуть такой результат». У каждого правила есть ссылка на файл и строку, откуда оно выведено. Разработчик может подтвердить или поправить такие выводы до начала изменений.

План модернизации остаётся за человеком

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

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

Как проверяется поведение новой версии

Сравнение на одинаковых данных и дополнительные сценарии

Если старую систему можно запустить, проверка передаёт одинаковые входные данные старой и новой версиям, а затем сравнивает ответы. Поля, которые закономерно меняются — например, время или случайный идентификатор, — можно отдельно указать в правилах сравнения. Такие исключения попадают в отчёт, чтобы их можно было проверить.

Плагин также предлагает дополнительные случаи, которые могли не попасть в исходные тесты: пустые и очень большие значения, граничные условия, необычный порядок данных и некорректные записи. Чтобы проверить сами тесты, он намеренно вносит небольшое изменение в новую реализацию и убеждается, что тесты его обнаруживают.

Что означают PROVEN, PARTLY PROVEN и NOT PROVEN

Независимый этап повторно проверяет результаты и присваивает каждому модулю один из трёх статусов: PROVEN, PARTLY PROVEN или NOT PROVEN. В отчёте видно, какие тесты действительно запускались, где обнаружены расхождения и чего не хватило для полной проверки.

Эти статусы описывают доказательства по процедуре самого плагина и не являются математической гарантией отсутствия ошибок. Если старую систему невозможно запустить, сравнение может опираться на сохранённые результаты; в таком случае плагин указывает на ограничение и не выдаёт полную проверку за успешную.

Что получает команда

Отчёт и отдельная рабочая область

Результаты анализа, карту системы, найденные правила, согласованный план и итоги проверок плагин собирает в отчёт, который можно открыть как веб-страницу. Исходный проект подключается как материал для анализа, а результаты модернизации и рабочие документы размещаются отдельно — в каталогах analysis/ и modernized/.

Защита исходного кода основана на настройках разрешений Claude Code: плагин проверяет, что исходный каталог закрыт от редактирования, а рабочие результаты доступны для записи. Это не заменяет проверку настроек оболочки и скриптов сборки: README отдельно предупреждает, что собственный скрипт может обращаться к файлам вне тех же правил. Перед большим запуском разумно начать с одного модуля и проверить разрешения проекта.

Установка и ограничения

Плагин для Claude Code версии 1.0.0

Code Modernization устанавливается из официального каталога плагинов Anthropic командой:

/plugin install code-modernization@claude-plugins-official

После установки откройте папку проекта в Claude Code и запустите команду /code-modernization:modernize. Плагин задаст вопросы о цели и границах работы, после чего предложит начать с анализа или пройти этапы по порядку. Это расширение именно для Claude Code, а не самостоятельная программа или универсальный плагин для других агентов. Код и рабочие процессы распространяются по лицензии Apache 2.0.

Большой анализ может задействовать много агентов

Отдельные этапы запускают несколько агентов параллельно. При извлечении правил на крупных проектах их число может достигать десятков или сотен; перед большим запуском плагин показывает масштаб работы и запрашивает подтверждение. Поэтому лучше начать с небольшого модуля: так проще оценить требования к сборке, тестам и лимитам Claude Code.

Телеметрию можно отключить

По документации, плагин передаёт только счётчики использования через встроенную телеметрию Claude Code: исходный код, имена файлов, пути и запросы в неё не включаются. Передачу можно отключить в настройках плагина или переменной CODE_MODERNIZATION_TELEMETRY=0; также действует настройка отключения телеметрии самого Claude Code.

Кому подойдёт Code Modernization

Плагин рассчитан на команды, которым нужно обновить старую систему, но важно сохранить её рабочие правила: например, перенести приложение на новую версию платформы или постепенно заменить отдельные модули. Он особенно полезен, когда существующие тесты неполны и перед выпуском нужно сравнить поведение старого и нового кода. Для такого процесса всё равно необходимы люди, которые знают систему, проверят извлечённые правила, утвердят план и разберут найденные расхождения.