Задача · CI-3 · СРЕЗ 0 · P0

Контракт task_result.json

Договориваемся, как агент докладывает о результате: последним действием пишет файл task_result.json со статусом (success/failed/escalate). Обёртка переводит статус в код возврата 0/1/3; если обязательное расширение недоступно — быстрый отказ с кодом 2 до запуска Goose.

Статус: готово · без зависимостей · все задачи · на главную

Что это за задача

Договориваемся, как агент докладывает о результате: последним действием пишет файл task_result.json со статусом (success/failed/escalate). Обёртка переводит статус в код возврата 0/1/3; если обязательное расширение недоступно — быстрый отказ с кодом 2 до запуска Goose.

Задача из листа «Задачи» проекта (CI-3, СРЕЗ 0, приоритет P0). Срез CI-3: статус — готово.

Тесткейсы

Кейсы, привязанные к этой задаче в листе «Тесткейсы» (колонка «Единица бэклога»):

TC-IDДаноКогдаТогда
TC-CI-3.1-aфункция маппинга status→exit_code вызвана напрямую для success/failed/escalate/файл отсутствуетвызов на всех четырёх входахвозвращает 0/1/3/1 соответственно
TC-CI-3.2-aагент завершился, task_result.json содержит status=successwrapper маппит результат в exit_codeexit_code=0
TC-CI-3.2-btask_result.json содержит status=failedwrapper маппит результатexit_code=1
TC-CI-3.2-cагент завершился, task_result.json отсутствуетwrapper определяет исходрезультат маппится как failed, не как success
TC-CI-3.2-dобязательное расширение недоступно до запуска Gooseentrypoint проверяет доступность fail-fastexit_code=2 (env_error), Goose не запускается
TC-CI-3.3-aпять сценариев (0/1/2/3/файл отсутствует→1) сведены в один регрессионный прогон entrypoint.shсьют запускается в CIвсе пять зелёные одновременно; закрывает Э1/DA-01