Обёртки шагов гейта отдают код окружения, а не код дрейфа

- недостающий скрипт у всех четырёх обёрток в Taskfile.yml даёт 3, как обещает
  словарь: прежний 1 значил «дрейф» и отправлял искать разъехавшееся там, где
  просто неполно дерево
- в словарь кодов CLAUDE.md добавлены сами обёртки и оговорка про 201: этим
  кодом task отдаёт наружу любой отказ шага, а код шага печатает строкой
This commit is contained in:
av
2026-08-12 22:04:06 +03:00
parent 4a052ec99b
commit 870b6bc829
2 changed files with 15 additions and 5 deletions
+4
View File
@@ -112,6 +112,10 @@ task gate # весь набор проверок разом
2 ошибка употребления, 3 окружение (не корень проекта, каталог или файл не 2 ошибка употребления, 3 окружение (не корень проекта, каталог или файл не
найден), 4 внутренний сбой. Последний своего словаря не заводит намеренно: найден), 4 внутренний сбой. Последний своего словаря не заводит намеренно:
четвёртый шаг с собственной семантикой сделал бы это утверждение неверным. четвёртый шаг с собственной семантикой сделал бы это утверждение неверным.
Тому же словарю следуют **обёртки шагов** в `Taskfile.yml`: недостающий скрипт
— отказ окружения, код 3. Наружу все эти коды приходят одним: сам `task` на
любой отказ шага выходит с 201, а код шага печатает строкой
(«exit status 3»), поэтому словарь читается по коду скрипта.
- **Что красит безусловно и почему:** отказ сборки, тестов, `go vet`, - **Что красит безусловно и почему:** отказ сборки, тестов, `go vet`,
неотформатированный файл, находка `golangci-lint`, расхождение объявленных неотформатированный файл, находка `golangci-lint`, расхождение объявленных
версий Go, дрейф раскладки документов, версий Go, дрейф раскладки документов,
+11 -5
View File
@@ -9,6 +9,12 @@ vars:
# Пути скриптов проверки. Умолчания — канонические пути маркетплейса, чтобы # Пути скриптов проверки. Умолчания — канонические пути маркетплейса, чтобы
# переустановка плагина не меняла Taskfile. Шаги независимы: каждый ловит # переустановка плагина не меняла Taskfile. Шаги независимы: каждый ловит
# дрейф своего каталога, и выпадение одного не подменяется другим. # дрейф своего каталога, и выпадение одного не подменяется другим.
#
# Недостающий скрипт — отказ окружения у всех обёрток ниже, и код у него 3 по
# общему словарю (CLAUDE.md, раздел «Гейт»). Прежний код 1 значил «дрейф» и
# отправлял читателя искать разъехавшееся там, где просто неполно дерево. Сам
# `task` отдаёт наружу свой 201 на любой отказ шага, поэтому словарь читается
# по коду скрипта, а не по коду `task`.
DOCS_PY: '{{.DOCS_PY | default "~/.claude/plugins/marketplaces/av-dev-skills/av-dev-docs/skills/canon/scripts/docs.py"}}' DOCS_PY: '{{.DOCS_PY | default "~/.claude/plugins/marketplaces/av-dev-skills/av-dev-docs/skills/canon/scripts/docs.py"}}'
TASKS_PY: '{{.TASKS_PY | default "~/.claude/plugins/marketplaces/av-dev-skills/av-dev-tasks/skills/tasks/scripts/tasks.py"}}' TASKS_PY: '{{.TASKS_PY | default "~/.claude/plugins/marketplaces/av-dev-skills/av-dev-tasks/skills/tasks/scripts/tasks.py"}}'
OPENSPEC_PY: '{{.OPENSPEC_PY | default "~/.claude/plugins/marketplaces/av-dev-skills/av-dev-code/skills/openspec/scripts/openspec.py"}}' OPENSPEC_PY: '{{.OPENSPEC_PY | default "~/.claude/plugins/marketplaces/av-dev-skills/av-dev-code/skills/openspec/scripts/openspec.py"}}'
@@ -39,12 +45,12 @@ tasks:
cmds: cmds:
# Скрипт лежит в самом репозитории, а не в плагине: его отсутствие значит # Скрипт лежит в самом репозитории, а не в плагине: его отсутствие значит
# сломанное дерево, а не непоставленный плагин, и переопределять путь # сломанное дерево, а не непоставленный плагин, и переопределять путь
# нечем и незачем. # нечем и незачем. Код отсутствия — 3, как у прочих обёрток.
- | - |
py=scripts/check-go-version.sh py=scripts/check-go-version.sh
if [ ! -f "$py" ]; then if [ ! -f "$py" ]; then
echo "$py не найден: дерево репозитория неполно" echo "$py не найден: дерево репозитория неполно"
exit 1 exit 3
fi fi
sh "$py" sh "$py"
@@ -57,7 +63,7 @@ tasks:
if [ ! -f "$py" ]; then if [ ! -f "$py" ]; then
echo "docs.py не найден: $py" echo "docs.py не найден: $py"
echo "поставь плагин av-dev-docs либо задай путь: task docs DOCS_PY=<путь>" echo "поставь плагин av-dev-docs либо задай путь: task docs DOCS_PY=<путь>"
exit 1 exit 3
fi fi
python3 "$py" check --base {{.BASE}} python3 "$py" check --base {{.BASE}}
@@ -69,7 +75,7 @@ tasks:
if [ ! -f "$py" ]; then if [ ! -f "$py" ]; then
echo "tasks.py не найден: $py" echo "tasks.py не найден: $py"
echo "поставь плагин av-dev-tasks либо задай путь: task tasks TASKS_PY=<путь>" echo "поставь плагин av-dev-tasks либо задай путь: task tasks TASKS_PY=<путь>"
exit 1 exit 3
fi fi
python3 "$py" check --dir tasks python3 "$py" check --dir tasks
@@ -81,7 +87,7 @@ tasks:
if [ ! -f "$py" ]; then if [ ! -f "$py" ]; then
echo "openspec.py не найден: $py" echo "openspec.py не найден: $py"
echo "поставь плагин av-dev-code либо задай путь: task openspec OPENSPEC_PY=<путь>" echo "поставь плагин av-dev-code либо задай путь: task openspec OPENSPEC_PY=<путь>"
exit 1 exit 3
fi fi
python3 "$py" check --dir . python3 "$py" check --dir .