из канона удалены пустые локальные регионы

- 31 регион `<!-- local:имя -->` в двенадцати файлах удалён, а не перенесён:
  локальное принадлежит копии и живёт ниже маркера `<!-- conv:local -->`
  (META-22), так что наполнять регионы в каноне нечем
- вместе с ними ушли два опустевших раздела «Связано» — в arch и ansible
  слоях app-directories канонических ссылок нет, а пустой заголовок ничего
  не адресует; CLAUDE.md уточнён: раздел заводят, когда ссылки есть
- форма проверена скриптом: у всех правил модальность и «Почему», префиксы
  сходятся с реестром, дыр в нумерации нет
This commit is contained in:
av
2026-07-26 13:52:07 +03:00
parent a961aa2b40
commit 7fca0e8cb8
15 changed files with 21 additions and 131 deletions
+12 -27
View File
@@ -41,22 +41,7 @@
манифеста и `vendir.yml` — как пример того, где проходит граница между «чего
хочу» и «что получил».
## 2. Именованные регионы — удалить из канона
Решение принято и записано: регионов нет, есть один маркер
`<!-- conv:local -->`, который ставит сборщик в копии. Значит регионы не
переносятся в единую секцию, а **удаляются**: в каноне их нечем наполнять,
локальное принадлежит копии.
Остаётся механическая работа — **31 регион в 12 файлах**:
```
7 связано 7 отступления 7 механизировано
1 эталон / эталоны / словарь / секреты / секретные-поля
1 проверки / поля / модель-владельца / маппинг / границы
```
## 3. Пары слоёв и темы без базы
## 2. Пары слоёв и темы без базы
Отложено сознательно, но список стоит держать перед глазами:
@@ -75,7 +60,7 @@
- Вынос арх-ядра из `errors` и `logging` закроет две хрупкие ссылки из
`web-ui` (стек) в go-слой — единственные ссылки стек → язык в каноне.
## 4. Подключение к репозиториям
## 3. Подключение к репозиториям
Ничего ещё не подключено. Кандидаты — jellybit и pet-project-server.
Понадобится: заполнить локальную часть копий тем, что сейчас в этих
@@ -84,7 +69,7 @@
строка в `AGENTS.md` каждого потребителя про то, что файлы в
`docs/conventions/` — копии.
## 5. Описание языка отдельно от набора конвенций
## 4. Описание языка отдельно от набора конвенций
`LANGUAGE.md` и `GUIDE.md` описывают, **как** пишутся конвенции;
`conventions/`**один конкретный** набор. Сейчас они склеены в одном
@@ -105,7 +90,7 @@
сущность и ещё одна синхронизация; при одном наборе лечение выходит хуже
болезни.
## 6. Тулинг на Go, живущий независимо
## 5. Тулинг на Go, живущий независимо
Сейчас `conv` — питоновский скрипт внутри канона, то есть тулинг и данные в
одном репозитории и правятся одним движением. Мысль: вынести в отдельный
@@ -114,15 +99,15 @@ Go-бинарь со своим релизным циклом, ставить ч
Что за этим стоит помимо вкуса: независимый бинарь физически не даёт править
инструмент «заодно» с правкой конвенции, работает против **любого** канона и
любого потребителя — что прямо требуется вопросом 5, — и снимает питон из
любого потребителя — что прямо требуется вопросом 4, — и снимает питон из
зависимостей репозиториев-потребителей.
Порядок обратный ожидаемому: пока вопрос 5 не сделан, инструмент всё равно
Порядок обратный ожидаемому: пока вопрос 4 не сделан, инструмент всё равно
работает против одного конкретного канона, и независимый релизный цикл ему
нечего обслуживать. Сначала 5, потом 6. Разделение из вопроса 1 при этом
нечего обслуживать. Сначала 4, потом 5. Разделение из вопроса 1 при этом
дешевле заложить сразу, чем отпиливать потом.
## 7. META-20 и родительский слой своей темы
## 6. META-20 и родительский слой своей темы
Из `lang/` и `stack/` ссылаться на идентификаторы своего же арх-слоя
безопасно: при сборке они оказываются секциями одного файла, и ссылка
@@ -136,7 +121,7 @@ Go-бинарь со своим релизным циклом, ставить ч
говорит «чужой темы», и второе правило про то же место придётся держать
согласованным с первым.
## 8. `WHEN`/`AND` в блоке стыка правил
## 7. `WHEN`/`AND` в блоке стыка правил
Блок для стыка двух правил записан английскими словами:
@@ -162,7 +147,7 @@ OpenSpec. `WHEN` и `AND` — из того же набора и по той ж
подпадают ли `WHEN`/`AND` под проверку «заглавные модальные слова не
встречаются вне правил»: сейчас формально нет, потому что в словаре их нет.
## 9. Критерий «названного вреда» никого не обязывает
## 8. Критерий «названного вреда» никого не обязывает
`LANGUAGE.md` говорит, что ДОЛЖЕН требует двух условий сразу: нарушение
причиняет названный вред (критерий BCP 14) и норма проверяема машиной
@@ -176,7 +161,7 @@ OpenSpec. `WHEN` и `AND` — из того же набора и по той ж
META-6 её защищает. Против: критерий «вред назван» проверяется чтением, а не
машиной, — то есть по META-6 сам он может быть только СЛЕДУЕТ.
## 10. Одиннадцать таблиц не прочитаны на взаимоисключительность
## 9. Одиннадцать таблиц не прочитаны на взаимоисключительность
`LANGUAGE.md` объявил, что строки таблицы решений взаимоисключающи по
умолчанию, а иной порядок объявляется явно. Объявление не делает таблицы
@@ -191,7 +176,7 @@ META-6 её защищает. Против: критерий «вред назв
Работа читательская, машине не даётся; в список проверок она уже записана в
разделе «Чтением, потому что машине не даётся».
## 11. Возможность, записанная модальным словом
## 10. Возможность, записанная модальным словом
Четвёртая категория ISO — возможность и осуществимость — ключевого слова не
имеет: такие утверждения пишутся обычной прозой. Значит канон надо просмотреть