язык: усиления источников названы своими

- три клетки «что взято» правились по факту: DMN даёт политику совпадения,
  но не требует полноты; в 29148 обоснование — рекомендуемый атрибут; вывод
  про обязательность шаблона в EARS не сформулирован
- заведён раздел «Где источник усилен»: полнота таблиц, обязательность
  обоснования и вывод из EARS предъявлены как наши решения с доводами
- поправлены два места, где та же натяжка повторялась прозой: «Таблицы
  решений» и «Обоснование обязательно»
This commit is contained in:
av
2026-07-26 16:03:47 +03:00
parent 682fa075bb
commit 1d19e0357b
2 changed files with 43 additions and 40 deletions
+10 -30
View File
@@ -4,31 +4,11 @@
решения. Закрытый вопрос отсюда удаляется — принятое решение живёт в
`README.md`, `GUIDE.md` или `LANGUAGE.md`, а не в этом файле.
Две секции: сначала язык и подход, потом канон с тулингом. Пункт 1 пришёл
из внешнего ревью описания языка и проверен по файлам на месте.
Две секции: сначала язык и подход, потом канон с тулингом.
# Язык и подход
## 1. Натяжки в опоре на стандарты
Три места, где источнику приписано чуть больше, чем в нём есть:
- **DMN и полнота таблицы.** Политика совпадения — действительно именованное
свойство DMN. Полноту стандарт не требует: индикатор полноты был в DMN 1.0
и убран в последующих версиях, её проверяют валидаторы инструментов.
- **29148 и обоснование.** Rationale там — рекомендуемый атрибут требования,
а не обязательный «наравне с самим требованием». Обязательный костяк
стандарта — характеристики well-formed requirement, откуда честно взяты
единичность и проверяемость.
- **EARS.** Вывод «выигрыш дала сама обязательность шаблона, а не его
конкретный вид» — экстраполяция, поданная как взятое из источника. Вывод
от этого не становится неверным, но графа «что взято» описывает не
содержимое EARS.
Остальное в таблице проверку выдержало, включая вторую половину `MAY` из
BCP 14 и списки эквивалентных словесных форм ISO Directives.
## 2. Одиннадцать таблиц не прочитаны на взаимоисключительность
## 1. Одиннадцать таблиц не прочитаны на взаимоисключительность
`LANGUAGE.md` объявил, что строки таблицы решений взаимоисключающи по
умолчанию, а иной порядок объявляется явно. Объявление не делает таблицы
@@ -43,7 +23,7 @@ BCP 14 и списки эквивалентных словесных форм IS
Работа читательская, машине не даётся; в список проверок она уже записана в
разделе «Чтением, потому что машине не даётся».
## 3. Описание языка отдельно от набора конвенций
## 2. Описание языка отдельно от набора конвенций
`LANGUAGE.md` и `GUIDE.md` описывают, **как** пишутся конвенции;
`conventions/`**один конкретный** набор. Сейчас они склеены в одном
@@ -68,7 +48,7 @@ BCP 14 и списки эквивалентных словесных форм IS
# Канон, тулинг, подключение
## 4. Тулинг: две разные задачи в одном `conv`
## 3. Тулинг: две разные задачи в одном `conv`
Сейчас в `conv` смешаны две категории работы, и они расходятся по всему —
по частоте запуска, по тому, кто запускает, и по тому, что считается
@@ -109,7 +89,7 @@ BCP 14 и списки эквивалентных словесных форм IS
манифеста и `vendir.yml` — как пример того, где проходит граница между «чего
хочу» и «что получил».
## 5. Пары слоёв и темы без базы
## 4. Пары слоёв и темы без базы
Отложено сознательно, но список стоит держать перед глазами:
@@ -130,7 +110,7 @@ BCP 14 и списки эквивалентных словесных форм IS
- Вынос арх-ядра из `errors` и `logging` закроет две хрупкие ссылки из
`web-ui` (стек) в go-слой — единственные ссылки стек → язык в каноне.
## 6. Подключение к репозиториям
## 5. Подключение к репозиториям
Ничего ещё не подключено. Кандидаты — jellybit и pet-project-server.
Понадобится: заполнить локальную часть копий тем, что сейчас в этих
@@ -139,7 +119,7 @@ BCP 14 и списки эквивалентных словесных форм IS
строка в `AGENTS.md` каждого потребителя про то, что файлы в
`docs/conventions/` — копии.
## 7. Тулинг на Go, живущий независимо
## 6. Тулинг на Go, живущий независимо
Сейчас `conv` — питоновский скрипт внутри канона, то есть тулинг и данные в
одном репозитории и правятся одним движением. Мысль: вынести в отдельный
@@ -148,10 +128,10 @@ Go-бинарь со своим релизным циклом, ставить ч
Что за этим стоит помимо вкуса: независимый бинарь физически не даёт править
инструмент «заодно» с правкой конвенции, работает против **любого** канона и
любого потребителя — что прямо требуется вопросом 3, — и снимает питон из
любого потребителя — что прямо требуется вопросом 2, — и снимает питон из
зависимостей репозиториев-потребителей.
Порядок обратный ожидаемому: пока вопрос 3 не сделан, инструмент всё равно
Порядок обратный ожидаемому: пока вопрос 2 не сделан, инструмент всё равно
работает против одного конкретного канона, и независимый релизный цикл ему
нечего обслуживать. Сначала 3, потом 7. Разделение из вопроса 4 при этом
нечего обслуживать. Сначала 2, потом 6. Разделение из вопроса 3 при этом
дешевле заложить сразу, чем отпиливать потом.