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