Главная сложность ревью AI-кода в том, что он выглядит хорошо. Ровное форматирование, осмысленные имена, аккуратная структура. Всё то, что обычно служит сигналом качества, здесь бесплатно.
Значит привычные быстрые эвристики не работают и нужен другой порядок проверки.
Проверяйте сначала границы, а не логику
Основная логика у моделей обычно верная. Дефекты живут по краям:
- пустой массив, пустая строка, ноль
- отрицательные числа там, где ожидались положительные
- очень большие значения и переполнение
- одновременный доступ и повторный вызов
- что происходит при ошибке во внешнем вызове
Именно эти случаи модель чаще всего не проверяет, потому что вы про них не сказали.
Смотрите, что удалено, а не только что добавлено
Опасная привычка агентов при рефакторинге это тихо выбросить то, что показалось лишним. Проверка, которая казалась избыточной, но защищала от редкого случая. Обработка ошибки, которая никогда не срабатывала в тестах.
В дифе смотрите на удалённые строки не менее внимательно, чем на добавленные.
Требуйте падающий тест до правки
Если агент чинит баг, порядок должен быть такой: сначала тест, который воспроизводит проблему и падает, потом правка, потом тот же тест проходит.
Это единственное доказательство, которое нельзя подделать объяснением. Модель хорошо описывает, что она сделала, но описание это не проверка.
Не принимайте уверенность за корректность
Модель одинаково спокойно излагает правильный и неправильный ответ. Сигнала неуверенности в коде нет.
Если объяснение звучит убедительно, а вы не проверили, вы не проверили.
Ограничивайте размер изменения
Диф на десять файлов ревьюится хуже, чем пять дифов по два. Это верно и для человеческого кода, но для агентского критичнее: связи между файлами меняются целиком, и удержать их в голове тяжелее.
Дробить задачу дешевле, чем разбирать большой диф.
Три правила процесса
- Автор изменения это человек, который его отправил. Он и отвечает.
- Агент не мержит сам, ни при каких настройках.
- Расход виден по каждому ключу, чтобы понимать, где переделки съедают бюджет.
Последнее звучит как про деньги, но на деле это метрика качества: много итераций означает плохо поставленную задачу.
Коротко
Красивый вид ничего не значит. Проверяйте границы, смотрите на удалённые строки, требуйте падающий тест до правки и держите изменения маленькими.