From 870b6bc8299477106b056e5d2bbf4f37dcaae098 Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Wed, 12 Aug 2026 22:04:06 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D1=91=D1=80=D1=82=D0=BA=D0=B8=20?= =?UTF-8?q?=D1=88=D0=B0=D0=B3=D0=BE=D0=B2=20=D0=B3=D0=B5=D0=B9=D1=82=D0=B0?= =?UTF-8?q?=20=D0=BE=D1=82=D0=B4=D0=B0=D1=8E=D1=82=20=D0=BA=D0=BE=D0=B4=20?= =?UTF-8?q?=D0=BE=D0=BA=D1=80=D1=83=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F,=20?= =?UTF-8?q?=D0=B0=20=D0=BD=D0=B5=20=D0=BA=D0=BE=D0=B4=20=D0=B4=D1=80=D0=B5?= =?UTF-8?q?=D0=B9=D1=84=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - недостающий скрипт у всех четырёх обёрток в Taskfile.yml даёт 3, как обещает словарь: прежний 1 значил «дрейф» и отправлял искать разъехавшееся там, где просто неполно дерево - в словарь кодов CLAUDE.md добавлены сами обёртки и оговорка про 201: этим кодом task отдаёт наружу любой отказ шага, а код шага печатает строкой --- CLAUDE.md | 4 ++++ Taskfile.yml | 16 +++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index a8a150d..6fd7a46 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -112,6 +112,10 @@ task gate # весь набор проверок разом 2 ошибка употребления, 3 окружение (не корень проекта, каталог или файл не найден), 4 внутренний сбой. Последний своего словаря не заводит намеренно: четвёртый шаг с собственной семантикой сделал бы это утверждение неверным. + Тому же словарю следуют **обёртки шагов** в `Taskfile.yml`: недостающий скрипт + — отказ окружения, код 3. Наружу все эти коды приходят одним: сам `task` на + любой отказ шага выходит с 201, а код шага печатает строкой + («exit status 3»), поэтому словарь читается по коду скрипта. - **Что красит безусловно и почему:** отказ сборки, тестов, `go vet`, неотформатированный файл, находка `golangci-lint`, расхождение объявленных версий Go, дрейф раскладки документов, diff --git a/Taskfile.yml b/Taskfile.yml index eabac4f..68d762a 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -9,6 +9,12 @@ vars: # Пути скриптов проверки. Умолчания — канонические пути маркетплейса, чтобы # переустановка плагина не меняла 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"}}' 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"}}' @@ -39,12 +45,12 @@ tasks: cmds: # Скрипт лежит в самом репозитории, а не в плагине: его отсутствие значит # сломанное дерево, а не непоставленный плагин, и переопределять путь - # нечем и незачем. + # нечем и незачем. Код отсутствия — 3, как у прочих обёрток. - | py=scripts/check-go-version.sh if [ ! -f "$py" ]; then echo "$py не найден: дерево репозитория неполно" - exit 1 + exit 3 fi sh "$py" @@ -57,7 +63,7 @@ tasks: if [ ! -f "$py" ]; then echo "docs.py не найден: $py" echo "поставь плагин av-dev-docs либо задай путь: task docs DOCS_PY=<путь>" - exit 1 + exit 3 fi python3 "$py" check --base {{.BASE}} @@ -69,7 +75,7 @@ tasks: if [ ! -f "$py" ]; then echo "tasks.py не найден: $py" echo "поставь плагин av-dev-tasks либо задай путь: task tasks TASKS_PY=<путь>" - exit 1 + exit 3 fi python3 "$py" check --dir tasks @@ -81,7 +87,7 @@ tasks: if [ ! -f "$py" ]; then echo "openspec.py не найден: $py" echo "поставь плагин av-dev-code либо задай путь: task openspec OPENSPEC_PY=<путь>" - exit 1 + exit 3 fi python3 "$py" check --dir .