guide: язык употребляется, значит и проверяется как в конвенции

- проверки разведены по роли слова: то, что язык употребляет (конвенции и
  GUIDE.md), проверяется; то, что цитирует (LANGUAGE.md, README.md), — нет
- список машинных проверок разбит на форму правила и распространение:
  вторая группа (тема в шапке, пути канона, чужие префиксы, локальные X)
  касается только того, что едет к потребителю
- в GUIDE.md добавлена строка о версии языка и убрано заглавное СЛЕДУЕТ из
  вводной прозы «Оформления» — единственное нарушение, которое исключение
  прятало
This commit is contained in:
av
2026-07-26 15:34:49 +03:00
parent c1cb240540
commit fe61ecd6c5
5 changed files with 61 additions and 54 deletions
+24 -14
View File
@@ -471,21 +471,21 @@ XMIG-6 не соблюдается в легаси-таблицах `show_histor
## Что стоит проверять машиной
Проверки применяются к файлам конвенций; обвязка канона в них не входит —
она ключевые слова цитирует, а не употребляет. Ни одна пока не реализована,
поэтому при ревью их выполняют чтением.
Проверке подлежит всё, что язык **употребляет**: файлы конвенций и документ,
которым канон сам себя ведёт (в этом каноне — `GUIDE.md`, префикс META). Файл,
который язык **цитирует**, — это описание вроде текущего: ключевые слова стоят
в нём как предмет разговора, а не как норма, и проверки к нему не применяются.
Различает не расположение файла, а роль слова в нём.
Разбором текста:
Ни одна проверка пока не реализована, поэтому при ревью их выполняют чтением.
**Форма правила** — разбором текста, в любом файле, который язык употребляет:
- модальные и служебные слова принадлежат объявленному словарю канона, а не
смеси словарей;
- префикс в шапке файла совпадает с манифестом набора, состоит из четырёх
заглавных
латинских букв, не начинается на `X` и не значится в списке выбывших;
- шапка файла несёт имя темы, и это имя стоит в манифесте набора — среди
живых, а не среди выбывших;
- имя темы, названное в ссылке или в подписке потребителя, тоже разрешается по
манифесту: ссылка на снятую тему не проходит молча;
заглавных латинских букв, не начинается на `X` и не значится в списке
выбывших;
- заголовки правил файла используют только его собственный префикс;
- номера уникальны внутри файла и не имеют пропусков вниз (новое правило
берёт следующий свободный, а не первый освободившийся);
@@ -494,22 +494,32 @@ XMIG-6 не соблюдается в легаси-таблицах `show_histor
- вводная проза содержит строку о версии языка;
- ссылки вида `<ПРЕФИКС>-<n>` — хоть в тексте канона, хоть в локальной части
копии — указывают на правила, которые ещё существуют;
- префиксы локальных правил копии начинаются на `X`;
- заглавные модальные слова не встречаются вне областей правил (область —
от заголовка правила до следующего заголовка) — кроме строки о версии
языка, которая их перечисляет по назначению;
- модальная метка стоит первой в своём абзаце: заглавное слово в середине
фразы — упоминание ступени, а не вторая норма правила;
фразы — упоминание ступени, а не вторая норма правила.
**Распространение** — разбором текста, только в файлах конвенций: эти проверки
о том, что документ уезжает к потребителю, а документ, которым канон ведёт
себя, не уезжает никуда.
- шапка файла несёт имя темы, и это имя стоит в манифесте набора — среди
живых, а не среди выбывших;
- имя темы, названное в ссылке или в подписке потребителя, тоже разрешается по
манифесту: ссылка на снятую тему не проходит молча;
- префиксы локальных правил копии начинаются на `X`;
- префикс **чужой темы** не встречается в абзаце с модальностью (META-20);
префикс арх-слоя своей темы там допустим (META-24), префикс другого языка
или стека — нет;
- путь файла канона не встречается в тексте конвенции (META-21).
Чтением, потому что машине не даётся:
**Чтением**, потому что машине не даётся:
- строки таблицы взаимоисключающи либо политика совпадения объявлена;
- перечисленные в таблице случаи покрывают область действия;
- норма исполнима без обращения к другим файлам;
- норма исполнима без обращения к другим файлам (в файлах конвенций: они
уезжают по одной, а обвязка ссылается на соседей свободно);
- обоснование отвечает на «что сломается», а не пересказывает норму;
- хвост обоснования не вводит требований, которых нет в блоке нормы.