канон 2: шапка ADR — мета-блоком, у статуса появился дом
Поля Дата и Источник приведены к общей форме меты (поле на строку, имя жирным) — той же, что у задачи и у записи журнала дефектов. Существеннее второе. Правило «передумали — новая запись, старая получает статус» жило в каноне с первой версии, но места под статус шаблон не отводил: каждая запись изобретала своё — то абзацем, то заголовком, — а колонка «Статус» таблицы adr/README.md обязана его показывать и брала оттуда, где он у каждого свой. Теперь статус — такое же поле шапки, у активной записи его нет. Правка ушла в дом (canon.md, раздел adr/) и в оба скелета: template.md и «Соглашения» в adr/README.md. Скелеты уезжают в репозиторий проекта, поэтому версия канона поднята до 2 с записью в changelog: что добавилось, что переехало и три шага проекту. Копии под маркерами не тронуты — copies.py дословность подтверждает. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
# Канон документов проекта
|
# Канон документов проекта
|
||||||
|
|
||||||
**Версия 1.**
|
**Версия 2.**
|
||||||
|
|
||||||
Это **единственный дом определения канона**. Скиллы `init`, `canon` и `docs`
|
Это **единственный дом определения канона**. Скиллы `init`, `canon` и `docs`
|
||||||
читают его, а не пересказывают: три описания одной раскладки разъедутся, и
|
читают его, а не пересказывают: три описания одной раскладки разъедутся, и
|
||||||
@@ -164,6 +164,12 @@ kebab-case.
|
|||||||
Записи неизменяемы: передумали — заводится новая, старая получает статус.
|
Записи неизменяемы: передумали — заводится новая, старая получает статус.
|
||||||
Активная запись статуса не имеет.
|
Активная запись статуса не имеет.
|
||||||
|
|
||||||
|
**Статус живёт полем меты записи**, там же, где дата и источник:
|
||||||
|
`- **Статус:** заменено на ADR-…` либо `- **Статус:** устарело`. Места ему в
|
||||||
|
шаблоне не отводилось, и каждая запись изобретала своё — то абзацем, то
|
||||||
|
заголовком; в таблице `adr/README.md` статус при этом обязан быть, а брать его
|
||||||
|
оттуда, где он у каждого свой, нельзя.
|
||||||
|
|
||||||
### `review.md`
|
### `review.md`
|
||||||
|
|
||||||
Два раздела с разными сроками жизни.
|
Два раздела с разными сроками жизни.
|
||||||
@@ -286,7 +292,7 @@ kebab-case.
|
|||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"canon": 1,
|
"canon": 2,
|
||||||
"migrations": "internal/store/migrations",
|
"migrations": "internal/store/migrations",
|
||||||
"tasks": {
|
"tasks": {
|
||||||
"backlog": "INDEX.md"
|
"backlog": "INDEX.md"
|
||||||
|
|||||||
@@ -13,6 +13,32 @@ upgrade` идёт по записям снизу вверх от версии п
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## Версия 2 — 2026-08-03
|
||||||
|
|
||||||
|
Шапка записи ADR — мета-блоком общей формы, и у статуса появился объявленный
|
||||||
|
дом. Раскладка не менялась: правка касается одного шаблона.
|
||||||
|
|
||||||
|
**Что добавилось:** поле `- **Статус:**` в шапке `docs/adr/template.md` —
|
||||||
|
`заменено на ADR-…` либо `устарело`, у активной записи поля нет. Правило
|
||||||
|
«старая запись получает статус» было и раньше ([canon.md](canon.md), `adr/`),
|
||||||
|
но места под него шаблон не отводил: каждая запись изобретала своё, а колонка
|
||||||
|
«Статус» таблицы `adr/README.md` брала его оттуда, где он у каждого свой.
|
||||||
|
|
||||||
|
**Что переехало:** поля `Дата` и `Источник` в шаблоне стали жирными
|
||||||
|
(`- **Дата:**`, `- **Источник:**`) — та же форма, что у меты задачи и у записи
|
||||||
|
журнала дефектов: поле на строку, имя жирным.
|
||||||
|
|
||||||
|
**Что удалено:** ничего.
|
||||||
|
|
||||||
|
**Что сделать проекту:**
|
||||||
|
|
||||||
|
1. Привести `docs/adr/template.md` к скелету версии 2
|
||||||
|
([skeletons.md](skeletons.md), раздел `docs/adr/template.md`).
|
||||||
|
2. В существующих записях `docs/adr/ADR-*.md`: жирным поля шапки; если статус
|
||||||
|
записан прозой или заголовком — перенести его полем `- **Статус:**` в шапку
|
||||||
|
и сверить с колонкой «Статус» таблицы в `docs/adr/README.md`.
|
||||||
|
3. `docs/.pm.json`: `"canon": 2`.
|
||||||
|
|
||||||
## Версия 1 — 2026-08-03
|
## Версия 1 — 2026-08-03
|
||||||
|
|
||||||
Первая версия. Проект любой прежней раскладки приводится к ней скиллом `canon`
|
Первая версия. Проект любой прежней раскладки приводится к ней скиллом `canon`
|
||||||
|
|||||||
@@ -220,7 +220,8 @@
|
|||||||
реально принято.
|
реально принято.
|
||||||
- Записи неизменяемы: передумали — новая запись, старой ставится статус.
|
- Записи неизменяемы: передумали — новая запись, старой ставится статус.
|
||||||
- Активная запись статуса не имеет. Значений два: `заменено на ADR-…` и
|
- Активная запись статуса не имеет. Значений два: `заменено на ADR-…` и
|
||||||
`устарело`.
|
`устарело`; ставятся полем меты записи — `- **Статус:** …` рядом с датой и
|
||||||
|
источником, а не абзацем в теле.
|
||||||
|
|
||||||
## Записи
|
## Записи
|
||||||
|
|
||||||
@@ -235,8 +236,12 @@
|
|||||||
```markdown
|
```markdown
|
||||||
# Краткий заголовок решения
|
# Краткий заголовок решения
|
||||||
|
|
||||||
- Дата: ГГГГ-ММ-ДД
|
- **Дата:** ГГГГ-ММ-ДД
|
||||||
- Источник: openspec/changes/archive/<id>/design.md
|
- **Источник:** openspec/changes/archive/<id>/design.md
|
||||||
|
|
||||||
|
Статус ставится тем же полем и только при пересмотре:
|
||||||
|
`- **Статус:** заменено на ADR-…` либо `- **Статус:** устарело`.
|
||||||
|
У активной записи поля нет.
|
||||||
|
|
||||||
## Решение
|
## Решение
|
||||||
|
|
||||||
@@ -377,7 +382,7 @@ severity стоит здесь, а не выводится каждым прох
|
|||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"canon": 1
|
"canon": 2
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ from dataclasses import dataclass, field
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import NoReturn
|
from typing import NoReturn
|
||||||
|
|
||||||
CANON_VERSION = 1
|
CANON_VERSION = 2
|
||||||
|
|
||||||
OK, DRIFT, USAGE, ENV, INTERNAL = 0, 1, 2, 3, 4
|
OK, DRIFT, USAGE, ENV, INTERNAL = 0, 1, 2, 3, 4
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user