docs: канон документов поднят с версии 12 на 14
- `docs/.pm.json` переименован в `docs/.docs.json`, версия канона — 14 - ADR принимает записку разведки как источник решения наравне с архивным `design.md` - заведён `tasks/.tasks.json`, а в описании гейта — шаги `tasks.py check` и `openspec.py check`
This commit is contained in:
@@ -78,18 +78,19 @@ task gate # весь набор проверок разом
|
|||||||
`origin/master`; переопределяется `task gate BASE=<rev>`.
|
`origin/master`; переопределяется `task gate BASE=<rev>`.
|
||||||
- **Где логи шагов:** вывод команды, отдельного файла нет.
|
- **Где логи шагов:** вывод команды, отдельного файла нет.
|
||||||
- **Что означает каждый исход:** ненулевой код любого шага роняет гейт. У
|
- **Что означает каждый исход:** ненулевой код любого шага роняет гейт. У
|
||||||
`docs.py check` коды свои: 0 сошлось, 1 дрейф раскладки, 2 ошибка
|
`docs.py check`, `tasks.py check` и `openspec.py check` словарь кодов общий:
|
||||||
употребления, 3 не корень проекта, 4 внутренний сбой.
|
0 сошлось, 1 дрейф, 2 ошибка употребления, 3 окружение (не корень проекта,
|
||||||
|
каталог не найден), 4 внутренний сбой.
|
||||||
- **Что красит безусловно и почему:** отказ сборки, тестов, `go vet`,
|
- **Что красит безусловно и почему:** отказ сборки, тестов, `go vet`,
|
||||||
неотформатированный файл, находка `golangci-lint`, дрейф раскладки документов.
|
неотформатированный файл, находка `golangci-lint`, дрейф раскладки документов,
|
||||||
Всё перечисленное проверяется машиной и потому не обсуждается.
|
дрейф каталога задач, форма `openspec/config.yaml`. Машина проверяет всё
|
||||||
|
перечисленное, и это не обсуждается. Шаг, чей скрипт не найден, краснеет с
|
||||||
|
именем недостающего плагина, а не пропускается молча.
|
||||||
- **Чего в гейте намеренно нет и кто тогда обязан это гонять:**
|
- **Чего в гейте намеренно нет и кто тогда обязан это гонять:**
|
||||||
- `gitleaks` — висит на pre-commit в `lefthook.yml` и смотрит только индекс
|
- `gitleaks` — висит на pre-commit в `lefthook.yml` и смотрит только индекс
|
||||||
коммита. Полную историю никто не проверяет;
|
коммита. Полную историю никто не проверяет;
|
||||||
- согласованность документов между собой и с кодом — её судят агенты, зовёт
|
- согласованность документов между собой и с кодом — её судят агенты, зовёт
|
||||||
их скилл `av-dev-docs:healthcheck`, и звать его надо руками;
|
их скилл `av-dev-docs:healthcheck`, и звать его надо руками;
|
||||||
- проверка каталога задач и формы `openspec/config.yaml` — соответствующих
|
|
||||||
плагинов в проекте нет, шагов в гейте нет, и не проверяет их **никто**;
|
|
||||||
- покрытие изменённых строк не считается ничем.
|
- покрытие изменённых строк не считается ничем.
|
||||||
|
|
||||||
**Гейт на `master` сегодня красный, и это объявленный долг, а не поломка дня.**
|
**Гейт на `master` сегодня красный, и это объявленный долг, а не поломка дня.**
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"canon": 12,
|
"canon": 14,
|
||||||
"migrations": "migrations"
|
"migrations": "migrations"
|
||||||
}
|
}
|
||||||
+4
-3
@@ -1,8 +1,9 @@
|
|||||||
# Журнал решений
|
# Журнал решений
|
||||||
|
|
||||||
Одна запись — одно решение. **ADR переносит решение из архивного `design.md`**, а
|
Одна запись — одно решение. **ADR продвигает уже написанное решение, а не
|
||||||
не сочиняет его заново: запись цитирует решение и ссылается на
|
сочиняет его заново**: запись цитирует решение и ссылается на источник —
|
||||||
`openspec/changes/archive/<id>/design.md`.
|
`openspec/changes/archive/<id>/design.md`, а у решения, принятого разведкой без
|
||||||
|
изменения, на её записку.
|
||||||
|
|
||||||
## Когда заводить
|
## Когда заводить
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
# Краткий заголовок решения
|
# Краткий заголовок решения
|
||||||
|
|
||||||
- **Дата:** ГГГГ-ММ-ДД
|
- **Дата:** ГГГГ-ММ-ДД
|
||||||
- **Источник:** openspec/changes/archive/<id>/design.md
|
- **Источник:** openspec/changes/archive/<id>/design.md — либо записка разведки,
|
||||||
|
если решение принято без изменения
|
||||||
|
|
||||||
Статус ставится тем же полем и только при пересмотре:
|
Статус ставится тем же полем и только при пересмотре:
|
||||||
`- **Статус:** заменено на ADR-…` либо `- **Статус:** устарело`.
|
`- **Статус:** заменено на ADR-…` либо `- **Статус:** устарело`.
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"tasks": 1
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user