From 5fcdc6d52d4a8e3680ba233bd5c576d81533b454 Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Sat, 1 Aug 2026 14:40:25 +0300 Subject: [PATCH] =?UTF-8?q?=D1=81=D0=BA=D0=B8=D0=BB=D0=BB=D1=8B=20=D0=BF?= =?UTF-8?q?=D0=B0=D0=B9=D0=BF=D0=BB=D0=B0=D0=B9=D0=BD=D0=B0=20=D0=BF=D0=B5?= =?UTF-8?q?=D1=80=D0=B5=D0=B8=D0=BC=D0=B5=D0=BD=D0=BE=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D1=8B=20=D0=BF=D0=BE=D0=B4=20=D0=BF=D1=80=D0=BE=D0=B5=D0=BA?= =?UTF-8?q?=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - имена task-pipeline и review-pipeline совпадали со скиллами jellybit, и вызов подхватывал чужие: там AskUserQuestion вместо блокеров и пути docs/specs - теперь healthlog-task-pipeline и healthlog-review-pipeline, ссылки обновлены в агентах и CLAUDE.md --- .claude/agents/healthlog-review-adversary.md | 2 +- .claude/agents/healthlog-review-architecture.md | 2 +- .claude/agents/healthlog-review-code.md | 6 +++--- .claude/agents/healthlog-review-gate.md | 4 ++-- .claude/agents/healthlog-review-idiom.md | 2 +- .claude/agents/healthlog-review-negative.md | 2 +- .claude/agents/healthlog-review-ops.md | 2 +- .claude/agents/healthlog-review-reimpl.md | 2 +- .claude/agents/healthlog-review-rubric.md | 2 +- .claude/agents/healthlog-review-specs.md | 2 +- .claude/agents/healthlog-review-triage.md | 2 +- .../SKILL.md | 6 +++--- .../references/finding-contract.md | 0 .../references/promote.md | 0 .../{task-pipeline => healthlog-task-pipeline}/SKILL.md | 8 ++++---- CLAUDE.md | 4 ++-- 16 files changed, 23 insertions(+), 23 deletions(-) rename .claude/skills/{review-pipeline => healthlog-review-pipeline}/SKILL.md (98%) rename .claude/skills/{review-pipeline => healthlog-review-pipeline}/references/finding-contract.md (100%) rename .claude/skills/{review-pipeline => healthlog-review-pipeline}/references/promote.md (100%) rename .claude/skills/{task-pipeline => healthlog-task-pipeline}/SKILL.md (98%) diff --git a/.claude/agents/healthlog-review-adversary.md b/.claude/agents/healthlog-review-adversary.md index 06d06e3..ea8c237 100644 --- a/.claude/agents/healthlog-review-adversary.md +++ b/.claude/agents/healthlog-review-adversary.md @@ -13,7 +13,7 @@ color: red доказывает; путь без свойства всё равно опасен. Находки — по контракту -`.claude/skills/review-pipeline/references/finding-contract.md`. +`.claude/skills/healthlog-review-pipeline/references/finding-contract.md`. ## Модель угроз этого проекта (не расширяй её самовольно) diff --git a/.claude/agents/healthlog-review-architecture.md b/.claude/agents/healthlog-review-architecture.md index 7dd259a..9be8740 100644 --- a/.claude/agents/healthlog-review-architecture.md +++ b/.claude/agents/healthlog-review-architecture.md @@ -12,7 +12,7 @@ color: yellow делаешь, — его собираешь. Находки — по контракту -`.claude/skills/review-pipeline/references/finding-contract.md`. +`.claude/skills/healthlog-review-pipeline/references/finding-contract.md`. ## Вход (собери до чтения диффа) diff --git a/.claude/agents/healthlog-review-code.md b/.claude/agents/healthlog-review-code.md index 88897b3..a3eda67 100644 --- a/.claude/agents/healthlog-review-code.md +++ b/.claude/agents/healthlog-review-code.md @@ -1,20 +1,20 @@ --- name: healthlog-review-code -description: "Стадия 1 конвейера review-pipeline (во всех профилях, параллельно с healthlog-review-specs) — дешёвый applicative-проход по конвенциям healthlog, которые НЕ выражаются правилом линтера: уровень лога по адресату, единственный логирующий чекпоинт на доменной границе, трансляция доменной ошибки на внешней границе, «сохранили — значит приняли», тела запросов и секреты в логах, конфиг и его образцы, время в БД в UTC RFC 3339 через store.Now(), ULID через internal/ident и ident.Parse на границе. Механизируемое проверяет task gate, архитектуру — healthlog-review-architecture, стиль и лишнее — generative-проходы. Только чтение." +description: "Стадия 1 конвейера healthlog-review-pipeline (во всех профилях, параллельно с healthlog-review-specs) — дешёвый applicative-проход по конвенциям healthlog, которые НЕ выражаются правилом линтера: уровень лога по адресату, единственный логирующий чекпоинт на доменной границе, трансляция доменной ошибки на внешней границе, «сохранили — значит приняли», тела запросов и секреты в логах, конфиг и его образцы, время в БД в UTC RFC 3339 через store.Now(), ULID через internal/ident и ident.Parse на границе. Механизируемое проверяет task gate, архитектуру — healthlog-review-architecture, стиль и лишнее — generative-проходы. Только чтение." tools: Read, Grep, Glob, Bash model: sonnet color: blue --- Ты — проход по **прозаическим конвенциям** healthlog, стадия 1 конвейера -`review-pipeline` (идёшь параллельно с `healthlog-review-specs`, во всех +`healthlog-review-pipeline` (идёшь параллельно с `healthlog-review-specs`, во всех профилях). Твоя зона — узкая намеренно: всё, что можно проверить правилом, уже проверяет `task gate` (`.golangci.yml`: `sloglint`, `forbidigo`, `errorlint`, `depguard`), и повторять это в промпте вредно — внимание, потраченное на именование полей лога, не доходит до формы решения. Находки — по контракту -`.claude/skills/review-pipeline/references/finding-contract.md`. Русская проза, +`.claude/skills/healthlog-review-pipeline/references/finding-contract.md`. Русская проза, идентификаторы и пути — в оригинале. Читай реальный код, ничего не выдумывай. ## Что проверяешь (и больше ничего) diff --git a/.claude/agents/healthlog-review-gate.md b/.claude/agents/healthlog-review-gate.md index a2965b3..4547a86 100644 --- a/.claude/agents/healthlog-review-gate.md +++ b/.claude/agents/healthlog-review-gate.md @@ -1,6 +1,6 @@ --- name: healthlog-review-gate -description: "Детерминированный гейт ревью healthlog — запускает task gate (build/vet/lint/gofmt/test/флаки/race/покрытие изменённых строк/миграции/образцы конфига/секреты/данные о здоровье в индексе/уязвимости) и интерпретирует вывод. Отличает новые отказы от унаследованных, находит отсутствующую верификацию (изменённые строки без покрытия, конкурентность без теста, флаки). Пока гейт красный, опиниативные проходы не запускаются. Первый проход конвейера review-pipeline, обязателен во всех профилях." +description: "Детерминированный гейт ревью healthlog — запускает task gate (build/vet/lint/gofmt/test/флаки/race/покрытие изменённых строк/миграции/образцы конфига/секреты/данные о здоровье в индексе/уязвимости) и интерпретирует вывод. Отличает новые отказы от унаследованных, находит отсутствующую верификацию (изменённые строки без покрытия, конкурентность без теста, флаки). Пока гейт красный, опиниативные проходы не запускаются. Первый проход конвейера healthlog-review-pipeline, обязателен во всех профилях." tools: Bash, Read, Grep, Glob model: sonnet color: red @@ -12,7 +12,7 @@ color: red мнение стоит дёшево, вывод детектора гонок стоит дорого. Выводи находки по контракту -`.claude/skills/review-pipeline/references/finding-contract.md`. Русская проза, +`.claude/skills/healthlog-review-pipeline/references/finding-contract.md`. Русская проза, идентификаторы и команды — в оригинале. ## Что делаешь diff --git a/.claude/agents/healthlog-review-idiom.md b/.claude/agents/healthlog-review-idiom.md index 6e4cf76..e9fe59d 100644 --- a/.claude/agents/healthlog-review-idiom.md +++ b/.claude/agents/healthlog-review-idiom.md @@ -11,7 +11,7 @@ color: purple авторитетно, а проверить нечем. Твоя работа — превратить ощущение в оракул. Находки — по контракту -`.claude/skills/review-pipeline/references/finding-contract.md`. +`.claude/skills/healthlog-review-pipeline/references/finding-contract.md`. ## Метод diff --git a/.claude/agents/healthlog-review-negative.md b/.claude/agents/healthlog-review-negative.md index d15b87c..da682ff 100644 --- a/.claude/agents/healthlog-review-negative.md +++ b/.claude/agents/healthlog-review-negative.md @@ -12,7 +12,7 @@ color: purple который специально его ищет. Находки — по контракту -`.claude/skills/review-pipeline/references/finding-contract.md`. +`.claude/skills/healthlog-review-pipeline/references/finding-contract.md`. ## Четыре вопроса, в этом порядке diff --git a/.claude/agents/healthlog-review-ops.md b/.claude/agents/healthlog-review-ops.md index f7bfd34..e77367b 100644 --- a/.claude/agents/healthlog-review-ops.md +++ b/.claude/agents/healthlog-review-ops.md @@ -11,7 +11,7 @@ color: yellow симптома, который увидит владелец, и дойди до строки кода. Находки — по контракту -`.claude/skills/review-pipeline/references/finding-contract.md`. +`.claude/skills/healthlog-review-pipeline/references/finding-contract.md`. ## Что такое «прод» здесь diff --git a/.claude/agents/healthlog-review-reimpl.md b/.claude/agents/healthlog-review-reimpl.md index 80f5847..f5270ba 100644 --- a/.claude/agents/healthlog-review-reimpl.md +++ b/.claude/agents/healthlog-review-reimpl.md @@ -12,7 +12,7 @@ color: purple ценой того, что сперва делаешь работу заново. Находки — по контракту -`.claude/skills/review-pipeline/references/finding-contract.md`. +`.claude/skills/healthlog-review-pipeline/references/finding-contract.md`. ## Фаза 1 — своя реализация. Существующую открывать ЗАПРЕЩЕНО diff --git a/.claude/agents/healthlog-review-rubric.md b/.claude/agents/healthlog-review-rubric.md index 3cfd0b3..9cbb2aa 100644 --- a/.claude/agents/healthlog-review-rubric.md +++ b/.claude/agents/healthlog-review-rubric.md @@ -11,7 +11,7 @@ color: purple ты **порождаешь сам** — и делаешь это до того, как увидишь код. Находки — по контракту -`.claude/skills/review-pipeline/references/finding-contract.md`. Русская проза, +`.claude/skills/healthlog-review-pipeline/references/finding-contract.md`. Русская проза, идентификаторы — в оригинале. ## Порядок фаз обязателен diff --git a/.claude/agents/healthlog-review-specs.md b/.claude/agents/healthlog-review-specs.md index c384f48..a45fac6 100644 --- a/.claude/agents/healthlog-review-specs.md +++ b/.claude/agents/healthlog-review-specs.md @@ -10,7 +10,7 @@ color: cyan (Spec Driven Development на OpenSpec). Оптика — требования, а не стиль кода. Находки — по контракту -`.claude/skills/review-pipeline/references/finding-contract.md`. Русская проза; +`.claude/skills/healthlog-review-pipeline/references/finding-contract.md`. Русская проза; идентификаторы, пути и ключевые слова спек (`SHALL`, `GIVEN/WHEN/THEN`) — в оригинале. Читай реальные файлы перед выводом, ничего не выдумывай. diff --git a/.claude/agents/healthlog-review-triage.md b/.claude/agents/healthlog-review-triage.md index c44ec0e..ef1db67 100644 --- a/.claude/agents/healthlog-review-triage.md +++ b/.claude/agents/healthlog-review-triage.md @@ -16,7 +16,7 @@ color: green Потолок в 7 пунктов защищает код, а не читателя. Контракт находок и формат финального отчёта — -`.claude/skills/review-pipeline/references/finding-contract.md`. +`.claude/skills/healthlog-review-pipeline/references/finding-contract.md`. ## Вход diff --git a/.claude/skills/review-pipeline/SKILL.md b/.claude/skills/healthlog-review-pipeline/SKILL.md similarity index 98% rename from .claude/skills/review-pipeline/SKILL.md rename to .claude/skills/healthlog-review-pipeline/SKILL.md index 3131d03..de26803 100644 --- a/.claude/skills/review-pipeline/SKILL.md +++ b/.claude/skills/healthlog-review-pipeline/SKILL.md @@ -1,6 +1,6 @@ --- -name: review-pipeline -description: Конвейер ревью изменений healthlog — детерминированный гейт, сверка с дельта-спеками OpenSpec в обе стороны, generative-проходы (рубрика, независимая реализация, stdlib grounding, negative space), архитектура, враждебные постановки и обязательный триаж. Вызывается из task-pipeline (чекпоинты ревью) и отдельно — профилем design на OpenSpec-предложении ДО кода. +name: healthlog-review-pipeline +description: Конвейер ревью изменений healthlog — детерминированный гейт, сверка с дельта-спеками OpenSpec в обе стороны, generative-проходы (рубрика, независимая реализация, stdlib grounding, negative space), архитектура, враждебные постановки и обязательный триаж. Вызывается из healthlog-task-pipeline (чекпоинты ревью) и отдельно — профилем design на OpenSpec-предложении ДО кода. --- # Конвейер ревью (healthlog) @@ -191,7 +191,7 @@ read-modify-write под конкурентными доставками, а т ## Профиль `design` — до кода -Запускается на шаге ревью спек (`task-pipeline` шаг 4), когда change уже имеет +Запускается на шаге ревью спек (`healthlog-task-pipeline` шаг 4), когда change уже имеет `proposal.md` + дельта-спеки, но кода ещё нет. Состав: 1. `healthlog-review-specs` в режиме «дизайн ДО кода»; diff --git a/.claude/skills/review-pipeline/references/finding-contract.md b/.claude/skills/healthlog-review-pipeline/references/finding-contract.md similarity index 100% rename from .claude/skills/review-pipeline/references/finding-contract.md rename to .claude/skills/healthlog-review-pipeline/references/finding-contract.md diff --git a/.claude/skills/review-pipeline/references/promote.md b/.claude/skills/healthlog-review-pipeline/references/promote.md similarity index 100% rename from .claude/skills/review-pipeline/references/promote.md rename to .claude/skills/healthlog-review-pipeline/references/promote.md diff --git a/.claude/skills/task-pipeline/SKILL.md b/.claude/skills/healthlog-task-pipeline/SKILL.md similarity index 98% rename from .claude/skills/task-pipeline/SKILL.md rename to .claude/skills/healthlog-task-pipeline/SKILL.md index bc05918..ed94976 100644 --- a/.claude/skills/task-pipeline/SKILL.md +++ b/.claude/skills/healthlog-task-pipeline/SKILL.md @@ -1,5 +1,5 @@ --- -name: task-pipeline +name: healthlog-task-pipeline description: Автономно проводит задачу healthlog через полный цикл SDD — от выбора в беклоге до коммита (opsx explore→propose→ревью спек→apply→ревью кода→archive→чистка беклога). Использовать, когда пользователь просит взять/сделать задачу из беклога или довести идею до реализации. --- @@ -112,7 +112,7 @@ healthlog — хранилище данных о здоровье, у котор ### 4. (Нетривиальная) Ревью предложения — профиль `design`, ДО кода -Первый чекпоинт ревью-процесса. Вызови Skill **`review-pipeline`** с профилем +Первый чекпоинт ревью-процесса. Вызови Skill **`healthlog-review-pipeline`** с профилем `design` и ссылкой на change ``. Он запустит `healthlog-review-specs` (режим «дизайн/спеки ДО кода»), `healthlog-review-rubric` (фаза 1: приёмочные критерии для задуманного узла), `healthlog-review-idiom` и `healthlog-review-architecture` @@ -149,9 +149,9 @@ healthlog — хранилище данных о здоровье, у котор **Сервис не оставляем лежать.** Если `task restart` упал — почини или откати до конца шага: телефон продолжает слать всё это время. -### 7. Ревью кода — Skill `review-pipeline` +### 7. Ревью кода — Skill `healthlog-review-pipeline` -Второй чекпоинт. Вызови Skill **`review-pipeline`**, дав ссылку на change +Второй чекпоинт. Вызови Skill **`healthlog-review-pipeline`**, дав ссылку на change ``, базу диффа и профиль. Профиль выбирается по факту изменения, а не по ощущению важности (правило — в самом скилле): diff --git a/CLAUDE.md b/CLAUDE.md index 7381c1c..843a58b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -79,9 +79,9 @@ Module path — `git.vakhrushev.me/av/healthlog`. Задачи — в [docs/backlog](docs/backlog/README.md) (один файл на задачу, индекс производен). Порядок и его обоснование — в [docs/plan.md](docs/plan.md). -Работа над задачей идёт скиллом `task-pipeline`: беклог → `opsx:explore` → +Работа над задачей идёт скиллом `healthlog-task-pipeline`: беклог → `opsx:explore` → `opsx:propose` → ревью спек (профиль `design`) → `opsx:apply` → ревью кода → -`opsx:archive` → чистка беклога → коммит. Ревью — скилл `review-pipeline`, +`opsx:archive` → чистка беклога → коммит. Ревью — скилл `healthlog-review-pipeline`, проходы — агенты `healthlog-review-*`. **Действуем автономно.** Умолчание — делать, а не спрашивать. Вопрос, который