Как проверять код, который предложил ИИ: полный чек-лист
Проверка начинается с понимания diff и заканчивается тестами, безопасностью, зависимостями, наблюдаемостью и готовым способом отката.
Работает — ещё не значит готово
Сгенерированный код может пройти один демонстрационный сценарий и всё равно нарушить требование, неправильно обработать пустые данные, раскрыть секрет или добавить неподходящую зависимость. Проверять нужно не происхождение кода, а его поведение и последствия. Для ответа ИИ просто особенно важно не путать уверенный стиль с доказательством.
1. Восстановите цель изменения
Запишите ожидаемое поведение одним предложением и перечислите ограничения. Затем убедитесь, что diff решает именно эту задачу. Если вместе с исправлением появилась новая архитектура или библиотека, попросите объяснить необходимость либо уменьшите изменение.
2. Прочитайте diff до запуска
Проверьте изменённые файлы, публичные интерфейсы, обработку ошибок и удалённые проверки. Найдите код, который вы не можете объяснить. Не принимайте скрытый побочный эффект только потому, что основная функция стала короче.
Для большого ответа вернитесь к шаблону промпта и попросите минимальный diff с перечислением инвариантов.
3. Запустите автоматические проверки
Начните с форматтера, статического анализа, проверки типов и существующих тестов проекта. Не заменяйте ими ручной сценарий: тесты отражают только уже записанные ожидания. Если исправляется ошибка, добавьте тест, который сначала её воспроизводит, а затем подтверждает исправление.
4. Проверьте входы и границы
Пройдите обычный случай, пустое значение, минимальную и максимальную разумную длину, неверный формат, повторное действие и сбой внешнего сервиса. Для асинхронного кода проверьте задержку, повтор и отмену. Для интерфейса — клавиатуру, узкий экран и состояние загрузки.
5. Отдельно оцените безопасность
Не попали ли в код ключи и персональные данные? Валидируется ли недоверенный ввод? Не строится ли команда или запрос конкатенацией? Ограничены ли права? Нельзя ли вызвать опасное действие без подтверждения? Новые зависимости должны иметь понятное назначение и официальный источник.
Актуальная редакция OWASP GenAI LLM Top 10 2026 систематизирует категории рисков, которые нужно учитывать при разработке приложений с генеративным ИИ.
6. Проверьте документацию и совместимость
Сверьте методы, параметры и конфигурацию с официальной документацией текущей версии. Убедитесь, что код работает в поддерживаемом окружении проекта. Не добавляйте новую библиотеку для функции, которую уже стабильно решает стандартный инструмент или существующая зависимость.
7. Подготовьте откат и наблюдение
Сохраните изменение отдельной версией. Для данных продумайте резервную копию и обратную миграцию. Для внешнего поведения определите, как заметить ошибку после выпуска: лог, метрика или понятное сообщение пользователю. Не экспериментируйте на единственной копии важных данных.
Короткий gate перед принятием
Я понимаю каждую существенную строку. Требования не изменились скрыто. Проверки проходят. Ошибочные и граничные случаи просмотрены. Секретов и лишних прав нет. Зависимости обоснованы. Есть способ отката. Только после этого ответ модели становится частью проекта.
Этот gate дополняет безопасный вайбкодинг, работу над первым проектом и общий маршрут обучения с ИИ.
GitHub также рекомендует внимательно просматривать и тестировать сгенерированный код, особенно в чувствительных сценариях: Responsible use. Более общий подход к измерению и управлению рисками опубликован в NIST AI RMF.