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 +}