служебные слова сценарного блока стали частью словаря набора

- `КОГДА`, `ТОГДА`, `И`, `ИЛИ` (по-английски WHEN/THEN/AND/OR) подчиняются тем
  же требованиям, что модальные слова: одна форма на роль, заглавными, набор
  один на канон и выбирается под естественный язык
- модальностью они не являются — обязательности не задают, только структуру,
  поэтому в строку о версии языка не попадают и под проверку «модальные слова
  вне правил» не подпадают
- единственный сценарный блок канона (SLOG, «Два цикла повтора») переписан с
  WHEN/AND на русские связки; отказ от `GIVEN/WHEN/THEN` уточнён — он касается
  общей формы записи, а на стыке правил эта форма взята сознательно
This commit is contained in:
av
2026-07-26 14:03:29 +03:00
parent f99a513058
commit 3fce663d7a
4 changed files with 58 additions and 50 deletions
+47 -17
View File
@@ -24,8 +24,8 @@ version: 1
| **ISO/IEC Directives, Part 2** | разделение «требование — рекомендация — разрешение — возможность»; запрет модальных глаголов в утверждениях о факте | списки равнозначных словесных форм («is to», «is required to», «only … is permitted») |
| **ISO/IEC/IEEE 29148** | обоснование как обязательный атрибут; единичность нормы; проверяемость; метод верификации отдельным атрибутом | остальной аппарат требований: приоритеты, источники, матрицы трассируемости |
| **DMN** | таблица решений с объявленной политикой совпадения и требованием полноты | исполняемая семантика и всё, что предполагает движок решений |
| **EARS** | вывод о том, что выигрыш даёт жёсткий шаблон, а не его конкретный вид; паттерн «нежелательное поведение» — в виде таблицы | шаблоны с субъектом-системой: `WHEN`, `WHILE`, `WHERE` |
| **OpenSpec** | четырёхчастная форма правила; адресуемость правила идентификатором | `SHALL`; `GIVEN/WHEN/THEN` как общая форма записи |
| **EARS** | вывод о том, что выигрыш даёт жёсткий шаблон, а не его конкретный вид; паттерн «нежелательное поведение» — в виде таблицы | шаблоны как форма записи правила: `WHEN`, `WHILE`, `WHERE` |
| **OpenSpec** | четырёхчастная форма правила; адресуемость правила идентификатором; форма «условие → следствие» для стыка правил | `SHALL`; `GIVEN/WHEN/THEN` как общая форма записи |
Три отклонения стоят объяснения, потому что выглядят как произвол.
@@ -40,12 +40,17 @@ version: 1
контракт, которого конвенция не даёт. Для англоязычного словаря это означает
выбор в пользу `MUST` из BCP 14, а не `shall` из ISO/IEC Directives.
**`GIVEN/WHEN/THEN` не берётся.** У спецификации субъект — система, и её
поведение разворачивается во времени: состояние, событие, исход. У конвенции
субъект — автор кода, и разворачивать нечего: есть ситуация выбора и вердикт.
Это таблица, а не траектория. Тем же рассуждением отклонены шаблоны EARS с
субъектом-системой, а взят из EARS другой результат: измеримый выигрыш дала
там сама обязательность шаблона, а не его конкретная форма.
**`GIVEN/WHEN/THEN` не берётся как общая форма.** У спецификации субъект —
система, и её поведение разворачивается во времени: состояние, событие,
исход. У конвенции субъект — автор кода, и разворачивать нечего: есть
ситуация выбора и вердикт. Это таблица, а не траектория. Тем же рассуждением
отклонены шаблоны EARS как форма записи правила, а взят из EARS другой
результат: измеримый выигрыш дала там сама обязательность шаблона, а не его
конкретная форма.
Исключение — стык правил, где субъект действительно система: там форма
«условие → следствие» берётся сознательно, вместе со служебными словами под
неё. Это единственное место, и оно описано в «Таблицах решений».
## Что даёт формализация
@@ -158,9 +163,14 @@ Directives, Part 2, по одной форме записи на ступень,
## Словарь другого языка
Для английского готовый словарь даёт BCP 14. Для любого другого языка слова
берут из перевода стандарта, если он есть, или переводят сами: шкала и
семантика ступеней при этом не меняются — меняется только запись.
Словарь набора — это два перечня: модальные слова и служебные слова
сценарного блока (`КОГДА`, `ТОГДА`, `И`, `ИЛИ` — см. «Таблицы решений»).
Требования к ним одни и те же.
Для английского готовый словарь модальных слов даёт BCP 14. Для любого
другого языка слова берут из перевода стандарта, если он есть, или переводят
сами: шкала и семантика ступеней при этом не меняются — меняется только
запись.
| Ступень | Русский | Английский (BCP 14) |
|---|---|---|
@@ -264,17 +274,37 @@ Directives, Part 2, по одной форме записи на ступень,
возможен случай вне перечисленных, он назван отдельной строкой, а не
оставлен на догадку.
Прозаический сценарий остаётся точечным инструментом — для **стыка правил**,
когда два правила вместе дают неочевидный результат:
Сценарный блок остаётся точечным инструментом — для **стыка правил**, когда
два правила вместе дают неочевидный результат:
```
WHEN зависимость недоступна и ретраи вызова исчерпаны → ext-запись ERROR
AND тик фонового цикла упал по той же причине → доменная запись WARN
КОГДА зависимость недоступна И ретраи вызова исчерпаны
ТОГДА внешний вызов даёт запись ERROR,
И тик фонового цикла, упавший по той же причине, — запись WARN
```
Такой блок ставится после обоих правил и ссылается на их идентификаторы.
Если стыков нет — сценариев в файле нет.
Форма «условие → следствие» здесь взята намеренно, хотя как **общая** форма
записи она отклонена: на стыке правил субъект действительно система, и
результат разворачивается во времени — то самое, для чего эта форма и
придумана. Служебные слова блока перечислены ниже и подчиняются тем же
требованиям, что модальные: одна форма на роль, заглавными, набор один на
канон.
| Роль | Русский | Английский |
|---|---|---|
| условие | КОГДА | WHEN |
| следствие | ТОГДА | THEN |
| соединение | И | AND |
| выбор | ИЛИ | OR |
Модальными словами они не являются: обязательности не задают, только
структуру. Поэтому в строку о версии языка они не попадают — там
перечисляется то, чему нужно определение, а логическая связка читается сама,
— и под проверку «модальные слова вне правил» не подпадают.
## Идентификаторы
- Формат — `<ПРЕФИКС>-<номер>`: `KEYS-5`, `SLOG-27`. Префикс принадлежит
@@ -340,8 +370,8 @@ MIGR-6 не соблюдается в легаси-таблицах `show_histor
Разбором текста:
- модальные слова принадлежат объявленному словарю канона, а не смеси
словарей;
- модальные и служебные слова принадлежат объявленному словарю канона, а не
смеси словарей;
- префикс в шапке файла совпадает с реестром, состоит из четырёх заглавных
латинских букв, не начинается на `X` и не значится в списке выбывших;
- заголовки правил файла используют только его собственный префикс;