common: язык дополнен состоянием МЕХАНИЗИРОВАНО
- правило, чья норма уехала в линтер, сохраняет номер и «Почему», а место нормы занимает отметка — иначе получался объект без модальности - записано, что факт «механизировано у всех» устанавливается вручную: канон списка подписчиков не знает по построению
This commit is contained in:
+34
-10
@@ -78,9 +78,8 @@
|
|||||||
|
|
||||||
Модальность живёт на **правиле**, а не на файле. Прежний файловый статус
|
Модальность живёт на **правиле**, а не на файле. Прежний файловый статус
|
||||||
(`status: рекомендуемая` / `обязательная` в шапке) отменён: он неизбежно
|
(`status: рекомендуемая` / `обязательная` в шапке) отменён: он неизбежно
|
||||||
врал, потому что один файл смешивает жёсткие требования с советами. В ещё
|
врал, потому что один файл смешивает жёсткие требования с советами. В шапке
|
||||||
не переведённых конвенциях ключ остаётся как метка «этот файл — проза», без
|
остаются только `extends` и служебные ключи копии.
|
||||||
нормативного значения, и исчезает при переводе.
|
|
||||||
|
|
||||||
Мы **не используем SHALL и прочие английские ключевые слова**. Они заняты
|
Мы **не используем SHALL и прочие английские ключевые слова**. Они заняты
|
||||||
спецификациями (OpenSpec), и общий словарь стирал бы границу «конвенция —
|
спецификациями (OpenSpec), и общий словарь стирал бы границу «конвенция —
|
||||||
@@ -99,6 +98,34 @@
|
|||||||
Порядок правил в файле выбирается по читаемости, не по номерам: номер — это
|
Порядок правил в файле выбирается по читаемости, не по номерам: номер — это
|
||||||
идентификатор, а не позиция.
|
идентификатор, а не позиция.
|
||||||
|
|
||||||
|
## Правило, чья норма уехала в линтер
|
||||||
|
|
||||||
|
Когда правило механизировано у всех потребителей, его норма из канона
|
||||||
|
удаляется, а обоснование — нет. Остаётся **правило без модальности**, и
|
||||||
|
чтобы оно не выглядело недописанным, место нормы занимает отметка:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
### R6. Дефолтов времени в схеме БД нет
|
||||||
|
|
||||||
|
**МЕХАНИЗИРОВАНО.** Проверяется общим правилом линтера; формулировка
|
||||||
|
удалена, потому что дублировала работающую проверку.
|
||||||
|
|
||||||
|
**Почему.** Дефолт превращает забытую вставку в тихо работающий код…
|
||||||
|
```
|
||||||
|
|
||||||
|
- Номер и заголовок сохраняются: ссылки из репозиториев продолжают
|
||||||
|
указывать на то же утверждение.
|
||||||
|
- «Почему» остаётся навсегда — линтер сообщает, что нарушено, но не
|
||||||
|
сообщает, зачем правило существует, и без обоснования нельзя понять,
|
||||||
|
когда проверку пора отменять.
|
||||||
|
- **МЕХАНИЗИРОВАНО** — не шестое модальное слово: оно не задаёт
|
||||||
|
обязательность, а сообщает, что обязательность теперь обеспечена машиной.
|
||||||
|
В остальном такое правило равно ДОЛЖЕН.
|
||||||
|
|
||||||
|
Факт «механизировано у всех» устанавливается вручную: канон по построению
|
||||||
|
не знает списка подписчиков, и обойти репозитории перед удалением нормы —
|
||||||
|
часть работы, а не то, что можно проверить автоматически.
|
||||||
|
|
||||||
## Таблицы вместо сценариев
|
## Таблицы вместо сценариев
|
||||||
|
|
||||||
Часть правил **классифицирует ситуации**: какой уровень лога, какая
|
Часть правил **классифицирует ситуации**: какой уровень лога, какая
|
||||||
@@ -166,16 +193,13 @@ R6 — не соблюдается в легаси-таблицах `show_histor
|
|||||||
|
|
||||||
- номера уникальны внутри файла и не имеют пропусков вниз (новое правило
|
- номера уникальны внутри файла и не имеют пропусков вниз (новое правило
|
||||||
берёт следующий свободный, а не первый освободившийся);
|
берёт следующий свободный, а не первый освободившийся);
|
||||||
- у каждого `### R<n>` есть модальное слово и блок «Почему»;
|
- у каждого `### R<n>` есть модальное слово (или отметка МЕХАНИЗИРОВАНО) и
|
||||||
|
блок «Почему»;
|
||||||
- ссылки вида `R<n>` в локальных регионах копии указывают на правила,
|
- ссылки вида `R<n>` в локальных регионах копии указывают на правила,
|
||||||
которые в каноне ещё существуют;
|
которые в каноне ещё существуют;
|
||||||
- модальные слова не встречаются вне правил.
|
- модальные слова не встречаются вне правил.
|
||||||
|
|
||||||
## Порядок перевода
|
## Порядок перевода
|
||||||
|
|
||||||
Конвенции переводятся на этот язык по мере касания, а не кампанией.
|
Все конвенции канона записаны на этом языке. Новая конвенция пишется на нём
|
||||||
Смешение форм в каноне допустимо: пока файл не тронут, он остаётся прозой
|
сразу; смешение форм в каноне больше не предполагается.
|
||||||
со статусом в шапке.
|
|
||||||
|
|
||||||
Сейчас на формальном языке записаны `arch/db-identifiers.md` и
|
|
||||||
`stack/ansible/app-directories.md`.
|
|
||||||
Reference in New Issue
Block a user