обвязка: идентификаторы правил описаны через префиксы

- LANGUAGE.md: раздел «Идентификаторы» переписан под префиксы, в список
  машинных проверок добавлена сверка с реестром
- GUIDE.md перенумерован под префикс META, «номер правила» заменён на
  «идентификатор»
This commit is contained in:
av
2026-07-25 20:55:38 +03:00
parent dcdd92230b
commit 4a7cfca8f6
3 changed files with 96 additions and 60 deletions
+21 -5
View File
@@ -50,9 +50,11 @@ conventions/
stack/<стек>/ привязка к инструменту, хранилищу, транспорту
```
Пути правил даются относительно `conventions/`: адрес
`arch/db-identifiers.md R5`, а не `conventions/arch/…` — так же, как они
лягут в `docs/conventions/` репозитория.
Пути **файлов** даются относительно `conventions/`: `arch/db-identifiers.md`,
а не `conventions/arch/…` — так же, как они лягут в `docs/conventions/`
репозитория. На **правила** ссылаются идентификатором без пути: `KEYS-5`.
Префикс уникален по всему канону (реестр — `conventions/prefixes.toml`),
поэтому идентификатор не зависит от того, на какой оси файл лежит сегодня.
Тест — по тому, замена чего убивает правило:
@@ -77,9 +79,23 @@ conventions/
пласт `stack/sqlite/` (типы колонок). Это не принцип, а незавершённая
работа.
## Префиксы
Каждый файл канона объявляет в шапке свой префикс правил:
```yaml
prefix: KEYS
```
Четыре заглавные латинские буквы, уникальные по всему канону; реестр —
[`conventions/prefixes.toml`](conventions/prefixes.toml). Префикс выбирается
под файл, а не выводится по формуле, и не переиспользуется никогда. Правила
адресуются идентификатором `KEYS-5` — без пути к файлу. Подробности формы —
`LANGUAGE.md`.
## Расширение
Файл в `lang/` или `stack/` может объявить в шапке:
Файл в `lang/` или `stack/` может объявить в шапке ещё и базу:
```yaml
extends: arch/db-identifiers.md
@@ -109,7 +125,7 @@ local: нет # или: чем и почему разошлись
`origin_hash` — контент-отпечаток, а не git-SHA. Он позволяет отличать
«канон обновился» от «изменено локально»; без него `status` умеет только
«differs», а такой отчёт быстро перестают читать. Прочие ключи шапки
(`status`, `extends`) — часть документа: они сравниваются наравне с телом.
(`prefix`, `extends`) — часть документа: они сравниваются наравне с телом.
**Локальные регионы** — куски, принадлежащие репозиторию по определению.
Из сравнения исключаются, поэтому вечного шума в `diff` не дают: