- R25: 500 и ERROR с признаком непокрытой — без признака забытая ветвь
неотличима в логах от упавшей базы
- R26: HTTP-запрос завершается 500, цикл продолжается со следующего
элемента, а упавший выводится из оборота — иначе poison message
- R20: конфига нет — не стартуем; умолчания существуют для неполного файла,
а не для отсутствующего
- R21: значение поля в сообщении валидатора печатается по тому же признаку
секретности, что у R15 и R16, второй список не заводится
- в перечень проверок R18 добавлен формат идентификаторов сущностей
- R1 больше не ветвится по признаку внешней адресуемости: заранее отличить
внутренние сущности, которые станут внешними, невозможно
- целочисленный ключ остаётся у существующих схем и идёт вместе с
AUTOINCREMENT — переиспользованный rowid молча наводит протухшую ссылку
на другую строку (db-schema R12)
- таблица R5 ограничена внешними источниками, регион «решение» убран
- убраны неверные утверждения: покрытие forbidigo сужено до честного,
таблица классов доменного отказа больше не претендует на полноту,
механизация не подаётся как факт канона
- введены недостающие определения (доменная и внешняя границы, объявление
пути), критерий постоянного поля сведён к одному на R16.1 и R17
- kebab-case имени файла убран из правил в прозу: обоснование не
формулировалось, номер R16 оставлен свободным
- сами конвенции переехали в conventions/, описательное — в корень:
LANGUAGE.md (язык записи) и GUIDE.md (как ведут конвенции)
- conv синхронизирует только conventions/, пути в origin даются
относительно неё — раскладка копий в репозиториях не меняется
- правило, чья норма уехала в линтер, сохраняет номер и «Почему», а место
нормы занимает отметка — иначе получался объект без модальности
- записано, что факт «механизировано у всех» устанавливается вручную:
канон списка подписчиков не знает по построению
- 11 файлов разобраны на нумерованные правила: 220 правил в каноне, у
каждого модальность и обязательный блок «Почему»
- классифицирующие места оформлены таблицами, файловый статус снят
отовсюду, локальные регионы сохранены под прежними именами
- 7 и 9 правил соответственно, у каждого модальность и обоснование
- условие выбора первичного ключа стало правилом с таблицей веток, на
которые можно ссылаться из отступлений и механизации
- правило = номер + модальность (ДОЛЖЕН / СЛЕДУЕТ / ДОПУСКАЕТСЯ) плюс
обязательный блок «Почему»; из OpenSpec взяты идентификаторы правил, но
не SHALL и не GIVEN/WHEN/THEN
- файловый статус отменён: обязательность живёт на правиле, а в шапке ещё
не переведённых конвенций ключ остаётся меткой «это проза»
- 13 конвенций по осям arch / lang / stack / common; репозитории берут
оттуда копии в свой docs/conventions/ и коммитят их у себя
- conv — синхронизация копий: add / status / diff / pull / push, локальные
регионы исключены из сравнения, поэтому расхождение не даёт шума