guide: заведён META-25 — высшая модальность требует названного вреда

- ДОЛЖЕН выбирается, только когда в «Почему» сказано, что ломается при
  нарушении: до сих пор обязывало лишь второе условие (META-6, машинная
  проверка), и любую проверяемую мелочь можно было пометить ДОЛЖЕН
- модальность самого правила — СЛЕДУЕТ, и это не слабость: «вред назван»
  устанавливается чтением, значит по META-6 иначе и быть не может
- kebab-case в именах файлов пересобран как пример META-25: проверяется
  регуляркой тривиально, но вреда нет — потому правилом и не записан
This commit is contained in:
av
2026-07-26 14:07:54 +03:00
parent 3fce663d7a
commit 98fc69d585
4 changed files with 29 additions and 28 deletions
+3 -3
View File
@@ -27,9 +27,9 @@ code in this repository.
- `SHALL` не используется ни в одном словаре — занято OpenSpec.
- Нормативно только заглавное написание (правило RFC 8174): строчное
«должен» в прозе нормой не является.
- ДОЛЖЕН требует двух условий сразу: нарушение причиняет названный вред
и норма проверяема машиной. Проверяемость сама по себе до ДОЛЖЕН не
повышает.
- ДОЛЖЕН требует двух условий сразу: назван вред от нарушения (META-25) и
норма проверяема машиной (META-6). Проверяемость сама по себе до ДОЛЖЕН не
повышает — иначе шкала наполняется проверяемыми мелочами.
- ДОПУСКАЕТСЯ адресовано рецензенту: помеченный им выбор на ревью не
обсуждается.
- **МЕХАНИЗИРОВАНО** — не модальность, а способ проверки: отметка стоит
+19 -4
View File
@@ -33,10 +33,11 @@ prefix: META
## Оформление
Имя файла — kebab-case по теме: `app-directories.md`. Правилом это не
записано: обоснование сводится к «чтобы имя файла в реестре префиксов
писалось одним способом», а проверить нарушение всё равно проще глазом, чем
сформулировать норму. Номер META-16, под которым это правило существовало,
оставлен свободным и не переиспользуется.
записано, и это случай META-25: регуляркой имя проверяется тривиально, но
обоснование сводится к «чтобы имя файла в реестре префиксов писалось одним
способом» — вреда от нарушения нет, значит и высшей модальности нет, а на
СЛЕДУЕТ такое правило не окупает строчку. Номер META-16, под которым оно
существовало, оставлен свободным и не переиспользуется.
## Канон и копии
@@ -171,6 +172,20 @@ prefix: META
(вкус формулировки, выбор границы, суждение о ситуации), не может быть
ДОЛЖЕН — его модальность СЛЕДУЕТ по построению, а не по слабости.
### META-25. Высшая модальность выбирается, только когда назван вред
**СЛЕДУЕТ.** Правило получает ДОЛЖЕН или НЕ ДОЛЖЕН, если в «Почему» сказано,
что́ ломается при нарушении.
**Почему.** Машинная проверка — условие необходимое (META-6), но не
достаточное: проверяемых мелочей больше, чем важных вещей, и без второго
условия единственным фильтром остаётся удобство проверки. Шкала наполняется
опрятностью, читатель перестаёт отличать «уронит прод» от «неаккуратно» — и
обесцениваются все ДОЛЖЕН в файле, ровно то, от чего META-6 защищает с
другой стороны. Само это правило машиной не проверяется: «вред назван»
устанавливается чтением, поэтому его собственная модальность по META-6 —
СЛЕДУЕТ.
### META-7. Факт механизации фиксируется в копии со ссылкой на правило
**ДОЛЖЕН.** Запись о механизации называет идентификатор правила и
+5 -5
View File
@@ -145,11 +145,11 @@ Directives, Part 2, по одной форме записи на ступень,
**ДОЛЖЕН требует двух условий сразу:**
1. нарушение причиняет названный вред, а не расходится со вкусом — критерий
BCP 14, где высшая модальность резервируется под то, что действительно
ломается, и не употребляется для навязывания метода;
2. норма проверяема машиной — критерий META-6, иначе обязательность
держится на внимании и обещает то, чего не делает.
1. нарушение причиняет названный вред, а не расходится со вкусом — META-25,
он же критерий BCP 14, где высшая модальность резервируется под то, что
действительно ломается, и не употребляется для навязывания метода;
2. норма проверяема машиной — META-6, иначе обязательность держится на
внимании и обещает то, чего не делает.
Не выполнено первое — правилу место в СЛЕДУЕТ или нигде. Не выполнено
второе — в СЛЕДУЕТ. Проверяемость сама по себе не повышает правило до
+2 -16
View File
@@ -107,21 +107,7 @@ Go-бинарь со своим релизным циклом, ставить ч
нечего обслуживать. Сначала 4, потом 5. Разделение из вопроса 1 при этом
дешевле заложить сразу, чем отпиливать потом.
## 6. Критерий «названного вреда» никого не обязывает
`LANGUAGE.md` говорит, что ДОЛЖЕН требует двух условий сразу: нарушение
причиняет названный вред (критерий BCP 14) и норма проверяема машиной
(META-6). Но правила под первое условие нет: META-6 работает только в одну
сторону — «нет машинной проверки, понижай в СЛЕДУЕТ». Обратной, «проверка
есть, а вреда нет — не повышай», не существует, и автор ничем не связан.
Решить, заводить ли META-24 под первое условие или оставить его семантикой
шкалы в описании языка. За правило: механически проверяемых мелочей больше,
чем важных вещей, и без нормы шкала размывается тем же способом, от которого
META-6 её защищает. Против: критерий «вред назван» проверяется чтением, а не
машиной, — то есть по META-6 сам он может быть только СЛЕДУЕТ.
## 7. Одиннадцать таблиц не прочитаны на взаимоисключительность
## 6. Одиннадцать таблиц не прочитаны на взаимоисключительность
`LANGUAGE.md` объявил, что строки таблицы решений взаимоисключающи по
умолчанию, а иной порядок объявляется явно. Объявление не делает таблицы
@@ -136,7 +122,7 @@ META-6 её защищает. Против: критерий «вред назв
Работа читательская, машине не даётся; в список проверок она уже записана в
разделе «Чтением, потому что машине не даётся».
## 8. Возможность, записанная модальным словом
## 7. Возможность, записанная модальным словом
Четвёртая категория ISO — возможность и осуществимость — ключевого слова не
имеет: такие утверждения пишутся обычной прозой. Значит канон надо просмотреть