AI-код, которому можно доверять. Контур приемки
У нас в Mobecan это стало видно довольно быстро. За один заход AI может поправить несколько файлов, добавить тест и уверенно сказать, что задача готова.
Поэтому вокруг AI-кодинга у нас постепенно появился отдельный слой приемки. Не один финальный тест, а несколько проверок, через которые проходит изменение, прежде чем мы считаем задачу закрытой.
В нормальном варианте все начинается не с промпта, а с ожиданий. Что должно измениться и как мы это проверим. Где можно, это превращается в TDD. Сначала тест или проверяемый критерий, потом реализация. Где TDD избыточен, остаются acceptance criteria.
Дальше код проходит тестирование. Форматирование, analyzer, unit-тесты, widget-тесты. Если задеты внешние данные, отдельно проверяем авторизацию, схему или живое чтение. На этом этапе часто всплывают не большие архитектурные проблемы, а обычные мелочи, которые потом больно ловить руками.
Следующий слой - проверка кода. CodeRabbit смотрит diff, ищет потенциальные проблемы, баги, security-риски и странные места в логике.
И здесь важна не только сама проверка, а то, что ее делает отдельный процесс с другим контекстным окном. По сути, отдельный агент. Агент, который писал код, уже немного защищает свою логику. А review-агент смотрит на изменение свежее. Не как автор, а как проверяющий.
AI поправил код задачи. После unit-тестов мы делаем smoke-тест. Открываем реальный экран, создаем или меняем задачу и проверяем, что она действительно появилась или изменилась.
Если всплыла проблема, процесс уходит на исправление. И так несколько кругов, пока проверка не проходит чисто.
Только после чистого повторного прохода можно говорить, что задача выполнена.
В итоге AI у нас не просто пишет код быстрее. Вокруг него появилась система приемки. TDD, автоматические тесты, review другим агентом, security-проверка, smoke-сценарии и честный финальный diff.
Так результат получается предсказуемее и не уходит в цикл бесконечных правок.
А как у вас устроена такая проверка?