todo: заведены четыре открытые темы по языку записи
- 12: `WHEN`/`AND` в блоке стыка правил — английские служебные слова там же, где `SHALL` отклонён как занятый OpenSpec; либо перевод, либо явная оговорка, что форма спецификации в этом месте намеренна - 13: критерий «названного вреда» для ДОЛЖЕН описан в языке, но правила под него нет — META-6 обязывает только понижать при отсутствии проверки - 14 и 15: одиннадцать таблиц не прочитаны на взаимоисключительность (подозреваемый SLOG-11), и канон не просмотрен на факты, записанные модальным словом
This commit is contained in:
@@ -240,6 +240,72 @@ Go-бинарь со своим релизным циклом, ставить ч
|
|||||||
говорит «чужой темы», и второе правило про то же место придётся держать
|
говорит «чужой темы», и второе правило про то же место придётся держать
|
||||||
согласованным с первым.
|
согласованным с первым.
|
||||||
|
|
||||||
|
## 12. `WHEN`/`AND` в блоке стыка правил
|
||||||
|
|
||||||
|
Блок для стыка двух правил записан английскими словами:
|
||||||
|
|
||||||
|
```
|
||||||
|
WHEN зависимость недоступна и ретраи вызова исчерпаны → ext-запись ERROR
|
||||||
|
AND тик фонового цикла упал по той же причине → доменная запись WARN
|
||||||
|
```
|
||||||
|
|
||||||
|
Рядом сказано, что `SHALL` не берётся ни в один словарь, потому что занят
|
||||||
|
OpenSpec. `WHEN` и `AND` — из того же набора и по той же причине должны бы
|
||||||
|
не браться, но взяты. Это нестыковка, а не решение.
|
||||||
|
|
||||||
|
Варианты:
|
||||||
|
|
||||||
|
- **перевести** на `КОГДА` / `И`: словарь набора один, и служебные слова
|
||||||
|
внутри канона следуют ему же;
|
||||||
|
- **оставить и объяснить**: блок стыка описывает поведение системы во
|
||||||
|
времени, а не выбор автора, — то есть это единственное место, где форма
|
||||||
|
спецификации уместна, и заимствование её синтаксиса намеренно.
|
||||||
|
|
||||||
|
Второе честнее по смыслу (субъект там действительно система), но требует
|
||||||
|
явной оговорки в `LANGUAGE.md`, иначе читается как недосмотр. Заодно решить,
|
||||||
|
подпадают ли `WHEN`/`AND` под проверку «заглавные модальные слова не
|
||||||
|
встречаются вне правил»: сейчас формально нет, потому что в словаре их нет.
|
||||||
|
|
||||||
|
## 13. Критерий «названного вреда» никого не обязывает
|
||||||
|
|
||||||
|
`LANGUAGE.md` говорит, что ДОЛЖЕН требует двух условий сразу: нарушение
|
||||||
|
причиняет названный вред (критерий BCP 14) и норма проверяема машиной
|
||||||
|
(META-6). Но правила под первое условие нет: META-6 работает только в одну
|
||||||
|
сторону — «нет машинной проверки, понижай в СЛЕДУЕТ». Обратной, «проверка
|
||||||
|
есть, а вреда нет — не повышай», не существует, и автор ничем не связан.
|
||||||
|
|
||||||
|
Решить, заводить ли META-24 под первое условие или оставить его семантикой
|
||||||
|
шкалы в описании языка. За правило: механически проверяемых мелочей больше,
|
||||||
|
чем важных вещей, и без нормы шкала размывается тем же способом, от которого
|
||||||
|
META-6 её защищает. Против: критерий «вред назван» проверяется чтением, а не
|
||||||
|
машиной, — то есть по META-6 сам он может быть только СЛЕДУЕТ.
|
||||||
|
|
||||||
|
## 14. Одиннадцать таблиц не прочитаны на взаимоисключительность
|
||||||
|
|
||||||
|
`LANGUAGE.md` объявил, что строки таблицы решений взаимоисключающи по
|
||||||
|
умолчанию, а иной порядок объявляется явно. Объявление не делает таблицы
|
||||||
|
такими: нумерованные строки есть в одиннадцати файлах канона, и ни одна
|
||||||
|
таблица под новое требование не прочитана.
|
||||||
|
|
||||||
|
Конкретный подозреваемый — SLOG-11: «по реальному действию или изменению»
|
||||||
|
против «повторяющаяся служебная, по таймеру или поллингу». Периодическая
|
||||||
|
операция, которая всё-таки меняет данные, подходит под обе строки, и уровень
|
||||||
|
из таблицы не выводится однозначно.
|
||||||
|
|
||||||
|
Работа читательская, машине не даётся; в список проверок она уже записана в
|
||||||
|
разделе «Чтением, потому что машине не даётся».
|
||||||
|
|
||||||
|
## 15. Возможность, записанная модальным словом
|
||||||
|
|
||||||
|
Четвёртая категория ISO — возможность и осуществимость — ключевого слова не
|
||||||
|
имеет: такие утверждения пишутся обычной прозой. Значит канон надо просмотреть
|
||||||
|
на обратную ошибку: где утверждение о факте («библиотеки по умолчанию отдают
|
||||||
|
именно его», «SQLite сравнивает строки побайтово») записано модальным словом
|
||||||
|
и тем самым превратилось в норму, которую никто не вводил.
|
||||||
|
|
||||||
|
Смотреть в первую очередь абзацы «Почему»: там факты и стоят, там же соблазн
|
||||||
|
усилить их модальностью выше всего.
|
||||||
|
|
||||||
## Из вчерашнего, не закрыто
|
## Из вчерашнего, не закрыто
|
||||||
|
|
||||||
- Вынос арх-ядра из `errors` и `logging`: закроет две хрупкие ссылки из
|
- Вынос арх-ядра из `errors` и `logging`: закроет две хрупкие ссылки из
|
||||||
|
|||||||
Reference in New Issue
Block a user