From 2161d7f38ef757434b39f5375145201e7648f9f9 Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Tue, 11 Aug 2026 12:24:19 +0300 Subject: [PATCH] =?UTF-8?q?docs:=20=D0=BA=D0=B0=D0=BD=D0=BE=D0=BD=20=D0=B4?= =?UTF-8?q?=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D0=BE=D0=B2=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=B4=D0=BD=D1=8F=D1=82=20=D1=81=20=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D1=81=D0=B8=D0=B8=2012=20=D0=BD=D0=B0=2014?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - `docs/.pm.json` переименован в `docs/.docs.json`, версия канона — 14 - ADR принимает записку разведки как источник решения наравне с архивным `design.md` - заведён `tasks/.tasks.json`, а в описании гейта — шаги `tasks.py check` и `openspec.py check` --- CLAUDE.md | 13 +++++++------ docs/{.pm.json => .docs.json} | 2 +- docs/adr/README.md | 7 ++++--- docs/adr/template.md | 3 ++- tasks/.tasks.json | 3 +++ 5 files changed, 17 insertions(+), 11 deletions(-) rename docs/{.pm.json => .docs.json} (68%) create mode 100644 tasks/.tasks.json diff --git a/CLAUDE.md b/CLAUDE.md index 8d8c6a7..6f615f0 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -78,18 +78,19 @@ task gate # весь набор проверок разом `origin/master`; переопределяется `task gate BASE=`. - **Где логи шагов:** вывод команды, отдельного файла нет. - **Что означает каждый исход:** ненулевой код любого шага роняет гейт. У - `docs.py check` коды свои: 0 сошлось, 1 дрейф раскладки, 2 ошибка - употребления, 3 не корень проекта, 4 внутренний сбой. + `docs.py check`, `tasks.py check` и `openspec.py check` словарь кодов общий: + 0 сошлось, 1 дрейф, 2 ошибка употребления, 3 окружение (не корень проекта, + каталог не найден), 4 внутренний сбой. - **Что красит безусловно и почему:** отказ сборки, тестов, `go vet`, - неотформатированный файл, находка `golangci-lint`, дрейф раскладки документов. - Всё перечисленное проверяется машиной и потому не обсуждается. + неотформатированный файл, находка `golangci-lint`, дрейф раскладки документов, + дрейф каталога задач, форма `openspec/config.yaml`. Машина проверяет всё + перечисленное, и это не обсуждается. Шаг, чей скрипт не найден, краснеет с + именем недостающего плагина, а не пропускается молча. - **Чего в гейте намеренно нет и кто тогда обязан это гонять:** - `gitleaks` — висит на pre-commit в `lefthook.yml` и смотрит только индекс коммита. Полную историю никто не проверяет; - согласованность документов между собой и с кодом — её судят агенты, зовёт их скилл `av-dev-docs:healthcheck`, и звать его надо руками; - - проверка каталога задач и формы `openspec/config.yaml` — соответствующих - плагинов в проекте нет, шагов в гейте нет, и не проверяет их **никто**; - покрытие изменённых строк не считается ничем. **Гейт на `master` сегодня красный, и это объявленный долг, а не поломка дня.** diff --git a/docs/.pm.json b/docs/.docs.json similarity index 68% rename from docs/.pm.json rename to docs/.docs.json index 18eb8c9..37ee485 100644 --- a/docs/.pm.json +++ b/docs/.docs.json @@ -1,4 +1,4 @@ { - "canon": 12, + "canon": 14, "migrations": "migrations" } diff --git a/docs/adr/README.md b/docs/adr/README.md index ae4a657..a9876e2 100644 --- a/docs/adr/README.md +++ b/docs/adr/README.md @@ -1,8 +1,9 @@ # Журнал решений -Одна запись — одно решение. **ADR переносит решение из архивного `design.md`**, а -не сочиняет его заново: запись цитирует решение и ссылается на -`openspec/changes/archive//design.md`. +Одна запись — одно решение. **ADR продвигает уже написанное решение, а не +сочиняет его заново**: запись цитирует решение и ссылается на источник — +`openspec/changes/archive//design.md`, а у решения, принятого разведкой без +изменения, на её записку. ## Когда заводить diff --git a/docs/adr/template.md b/docs/adr/template.md index ae7bec7..be9590e 100644 --- a/docs/adr/template.md +++ b/docs/adr/template.md @@ -1,7 +1,8 @@ # Краткий заголовок решения - **Дата:** ГГГГ-ММ-ДД -- **Источник:** openspec/changes/archive//design.md +- **Источник:** openspec/changes/archive//design.md — либо записка разведки, + если решение принято без изменения Статус ставится тем же полем и только при пересмотре: `- **Статус:** заменено на ADR-…` либо `- **Статус:** устарело`. diff --git a/tasks/.tasks.json b/tasks/.tasks.json new file mode 100644 index 0000000..f2fb1b5 --- /dev/null +++ b/tasks/.tasks.json @@ -0,0 +1,3 @@ +{ + "tasks": 1 +}