Files
transcriber/tasks/items/gate-step-exit-codes.md
T
av d676df8a27 tasks: закрыта задача go-1-26-upgrade, заведён урожай ревью
- четыре задачи из находок ревью и заметки владельца: проверки shellcheck и
  hadolint с тестом скрипта сверки версий, закрепление рантайм-базы образа,
  коды выхода шагов гейта, настройка конвейера ревью
- INBOX разобран целиком и очищен
2026-08-12 14:26:07 +03:00

2.7 KiB

🧹 Привести коды выхода шагов гейта к общему словарю

  • Тип: chore
  • Категория: Очередь
  • Зачем: CLAUDE.md объявляет словарь кодов общим для четырёх проверочных шагов и описывает код 3 как «каталог или файл не найден», но все четыре обёртки в Taskfile.yml при отсутствующем скрипте отдают 1 («дрейф»), из-за чего читатель кода идёт искать разъехавшееся там, где просто неполно дерево.

Расхождение старое и повторено всеми четырьмя обёртками одинаково — дефектом одного изменения оно не является. Сами скрипты словарю следуют: при пропавшем источнике scripts/check-go-version.sh выходит с кодом 3, проверено прогоном 2026-08-12.

Развилка тут есть, и решать её придётся: либо обёртки приводятся к 3, либо из описания кода 3 в памятке убирается «или файл не найден» и exit 1 объявляется нормой для «скрипта шага нет». Второй вариант меняет только текст памятки, а не код всех четырёх обёрток, и тоже не расходится с фактами.

Затрагивает

  • шаги docs, tasks, openspec и go-version в Taskfile.yml;
  • словарь кодов в CLAUDE.md, раздел «Гейт».

Критерии приёмки

  • Один и тот же исход даёт один и тот же код у всех четырёх шагов. Оракул — убрать по очереди каждый из четырёх скриптов и прогнать его шаг: коды совпадают между собой и с тем, что обещает памятка.
  • Памятка и поведение сошлись. Оракул — прочитать словарь в CLAUDE.md и сверить с четырьмя прогонами выше поимённо.
  • Гейт зелёный целиком. Оракул — task gate.

Рамки

Скрипты плагинов (docs.py, tasks.py, openspec.py) не правятся: они живут вне репозитория, и их коды уже следуют словарю. Правятся только обёртки в Taskfile.yml и текст памятки.