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