Легаси это код, который работает, но никто не знает почему. Агент здесь полезен, но только если не начинать с правок.
Шаг 1. Разведка без изменений
Первый запуск должен быть на чтение. Никаких правок, только карта.
Просите не пересказ файлов, а ответы на вопросы:
- какие есть точки входа
- где живёт бизнес-логика, а где обвязка
- что вызывается чаще всего
- какие есть внешние зависимости и что будет, если они отвалятся
Пересказ файлов бесполезен, вы можете прочитать их сами. Полезны связи.
Шаг 2. Найдите, что можно сломать безопасно
Перед любой правкой нужен ответ на вопрос, как вы узнаете, что сломали.
Если тестов нет, первое изменение это не рефакторинг, а тест вокруг того места, которое собираетесь трогать. Даже грубый, даже на один сценарий.
Агент неплохо пишет такие тесты, потому что задача формальная: зафиксировать текущее поведение, не улучшая его.
Шаг 3. Зафиксируйте текущее поведение, а не желаемое
Частая ошибка при работе с легаси: написать тест на то, как должно быть. Тогда он падает сразу, и вы не понимаете, это баг или ваше непонимание.
Сначала тест на то, как есть. Он должен проходить на неизменённом коде. Дальше можно менять.
Шаг 4. Правьте мелкими шагами
Диф на десять файлов в незнакомом проекте ревьюить невозможно. Пять дифов по два файла проходят.
Отдельно следите за удалёнными строками. Агент при рефакторинге склонен выбрасывать то, что выглядит лишним, а в легаси лишним часто выглядит именно защита от редкого случая, ради которой всё и писалось.
Что спрашивать, чтобы получить пользу
Плохо: «отрефактори этот файл».
Хорошо: «объясни, зачем здесь эта проверка, и что сломается, если её убрать».
Второй вопрос даёт понимание, первый даёт диф, который вы не сможете проверить.
Про расход
Разведка по большому репозиторию это большой контекст, а он оплачивается на каждом шаге. Поэтому разведку делайте один раз и записывайте результат в файл, а не переспрашивайте в каждой сессии.
Дальше работайте с нужными файлами, а не со всем проектом. Разница в счёте обычно на порядок.
Коротко
Сначала карта, потом тест на текущее поведение, потом мелкие правки. Спрашивайте про причины, а не просите рефакторинг. Результат разведки сохраняйте, чтобы не платить за неё дважды.