Второй уровень: приёмка. В заранее описанном сценарии система показывает наблюдаемый результат. Повторный запрос не создаёт второй платёж. Пользователь видит понятный статус. Состояние можно проверить через интерфейс или API.
Третий уровень: решение. Команда подтверждает, что выбрала правильный сценарий, допустила приемлемые компромиссы и не спрятала важный риск за зелёным тестом.
Без предварительного критерия проверяющий смешивает эти уровни. Исполнитель показывает результат, а проверяющий оценивает то, что уже лежит перед ним. Если решение выглядит аккуратно, проверяющий незаметно подстраивает критерий под реализацию.
С AI-агентом этот эффект сильнее. Агент быстро создаёт убедительный результат: документ, код, тесты и логи. Чем полнее пакет, тем труднее вернуться к исходному вопросу и спросить, решена ли нужная задача.
Поэтому хороший критерий приёмки описывает не внутреннее устройство решения, а наблюдаемое поведение в конкретном сценарии. Его можно сформулировать одной строкой до реализации:
«Если клиент повторяет запрос после таймаута с тем же ключом идемпотентности, система возвращает тот же платёж и не создаёт дубль».
Такая строка не диктует архитектуру. Она оставляет исполнителю свободу, но не позволяет заменить исходную задачу удобным результатом.