ЮзКОД

Как проверять код, который предложил ИИ: полный чек-лист

Проверка начинается с понимания 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.