guide: язык употребляется, значит и проверяется как в конвенции
- проверки разведены по роли слова: то, что язык употребляет (конвенции и GUIDE.md), проверяется; то, что цитирует (LANGUAGE.md, README.md), — нет - список машинных проверок разбит на форму правила и распространение: вторая группа (тема в шапке, пути канона, чужие префиксы, локальные X) касается только того, что едет к потребителю - в GUIDE.md добавлена строка о версии языка и убрано заглавное СЛЕДУЕТ из вводной прозы «Оформления» — единственное нарушение, которое исключение прятало
This commit is contained in:
+24
-14
@@ -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).
|
||||
|
||||
Чтением, потому что машине не даётся:
|
||||
**Чтением**, потому что машине не даётся:
|
||||
|
||||
- строки таблицы взаимоисключающи либо политика совпадения объявлена;
|
||||
- перечисленные в таблице случаи покрывают область действия;
|
||||
- норма исполнима без обращения к другим файлам;
|
||||
- норма исполнима без обращения к другим файлам (в файлах конвенций: они
|
||||
уезжают по одной, а обвязка ссылается на соседей свободно);
|
||||
- обоснование отвечает на «что сломается», а не пересказывает норму;
|
||||
- хвост обоснования не вводит требований, которых нет в блоке нормы.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user