From 98fc69d585656fe33d87c7e64ef03bec527ab88d Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Sun, 26 Jul 2026 14:07:54 +0300 Subject: [PATCH] =?UTF-8?q?guide:=20=D0=B7=D0=B0=D0=B2=D0=B5=D0=B4=D1=91?= =?UTF-8?q?=D0=BD=20META-25=20=E2=80=94=20=D0=B2=D1=8B=D1=81=D1=88=D0=B0?= =?UTF-8?q?=D1=8F=20=D0=BC=D0=BE=D0=B4=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D1=8C=20=D1=82=D1=80=D0=B5=D0=B1=D1=83=D0=B5=D1=82=20?= =?UTF-8?q?=D0=BD=D0=B0=D0=B7=D0=B2=D0=B0=D0=BD=D0=BD=D0=BE=D0=B3=D0=BE=20?= =?UTF-8?q?=D0=B2=D1=80=D0=B5=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ДОЛЖЕН выбирается, только когда в «Почему» сказано, что ломается при нарушении: до сих пор обязывало лишь второе условие (META-6, машинная проверка), и любую проверяемую мелочь можно было пометить ДОЛЖЕН - модальность самого правила — СЛЕДУЕТ, и это не слабость: «вред назван» устанавливается чтением, значит по META-6 иначе и быть не может - kebab-case в именах файлов пересобран как пример META-25: проверяется регуляркой тривиально, но вреда нет — потому правилом и не записан --- CLAUDE.md | 6 +++--- GUIDE.md | 23 +++++++++++++++++++---- LANGUAGE.md | 10 +++++----- TODO.md | 18 ++---------------- 4 files changed, 29 insertions(+), 28 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 92c0c33..78943ed 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -27,9 +27,9 @@ code in this repository. - `SHALL` не используется ни в одном словаре — занято OpenSpec. - Нормативно только заглавное написание (правило RFC 8174): строчное «должен» в прозе нормой не является. -- ДОЛЖЕН требует двух условий сразу: нарушение причиняет названный вред - и норма проверяема машиной. Проверяемость сама по себе до ДОЛЖЕН не - повышает. +- ДОЛЖЕН требует двух условий сразу: назван вред от нарушения (META-25) и + норма проверяема машиной (META-6). Проверяемость сама по себе до ДОЛЖЕН не + повышает — иначе шкала наполняется проверяемыми мелочами. - ДОПУСКАЕТСЯ адресовано рецензенту: помеченный им выбор на ревью не обсуждается. - **МЕХАНИЗИРОВАНО** — не модальность, а способ проверки: отметка стоит diff --git a/GUIDE.md b/GUIDE.md index 61e8a8b..4c7eb63 100644 --- a/GUIDE.md +++ b/GUIDE.md @@ -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. Факт механизации фиксируется в копии со ссылкой на правило **ДОЛЖЕН.** Запись о механизации называет идентификатор правила и diff --git a/LANGUAGE.md b/LANGUAGE.md index 2250ec7..5c4cf29 100644 --- a/LANGUAGE.md +++ b/LANGUAGE.md @@ -145,11 +145,11 @@ Directives, Part 2, по одной форме записи на ступень, **ДОЛЖЕН требует двух условий сразу:** -1. нарушение причиняет названный вред, а не расходится со вкусом — критерий - BCP 14, где высшая модальность резервируется под то, что действительно - ломается, и не употребляется для навязывания метода; -2. норма проверяема машиной — критерий META-6, иначе обязательность - держится на внимании и обещает то, чего не делает. +1. нарушение причиняет названный вред, а не расходится со вкусом — META-25, + он же критерий BCP 14, где высшая модальность резервируется под то, что + действительно ломается, и не употребляется для навязывания метода; +2. норма проверяема машиной — META-6, иначе обязательность держится на + внимании и обещает то, чего не делает. Не выполнено первое — правилу место в СЛЕДУЕТ или нигде. Не выполнено второе — в СЛЕДУЕТ. Проверяемость сама по себе не повышает правило до diff --git a/TODO.md b/TODO.md index 548631b..047c7bb 100644 --- a/TODO.md +++ b/TODO.md @@ -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 — возможность и осуществимость — ключевого слова не имеет: такие утверждения пишутся обычной прозой. Значит канон надо просмотреть