обвязка: модель копий переписана под один маркер и манифест
- именованные регионы `<!-- local:имя -->` заменены на единственный `<!-- conv:local -->`: всё ниже него принадлежит репозиторию, всё выше пересобирается, поэтому имени-которое-можно-осиротить больше нет - лок-файла и `origin_hash` в шапке нет — «что было в прошлый раз» знает git, копии закоммичены, автоматического обновления не существует; транспорт назад (`push`) убран вместе с ними - заведены META-22 (репозиторное пишется ниже маркера) и META-23 (форк не носит `origin:`), META-17 переписан под маркер; буква `X` в префиксе зарезервирована за локальными правилами потребителей
This commit is contained in:
@@ -25,7 +25,7 @@ code in this repository.
|
||||
**ДОПУСКАЕТСЯ**, плюс не-модальная отметка **МЕХАНИЗИРОВАНО**. Английские
|
||||
ключевые слова (SHALL, MUST) не используются — они заняты OpenSpec.
|
||||
- Модальные слова не употребляются вне правил: ни в «Область действия», ни в
|
||||
«Связано», ни в локальных регионах, ни во вводной прозе.
|
||||
«Связано», ни в локальной части копии, ни во вводной прозе.
|
||||
- «Почему» отвечает на «что сломается, если сделать иначе», а не
|
||||
пересказывает норму. «Потому что так принято» — не обоснование.
|
||||
- Правило, классифицирующее ситуации, пишется таблицей «ситуация → вердикт»;
|
||||
@@ -44,6 +44,8 @@ code in this repository.
|
||||
секция `[live]`, путём от корня репозитория.
|
||||
- Удаление или разделение файла: префикс уходит в `[retired]` с причиной и
|
||||
датой, а не освобождается.
|
||||
- Префиксы на букву `X` канон не занимает: они зарезервированы за локальными
|
||||
правилами репозиториев-потребителей.
|
||||
- Перенос правила в другой файл — смысловое изменение: новый префикс и новый
|
||||
номер. Переезд самого файла между осями идентификаторы не трогает.
|
||||
|
||||
@@ -72,9 +74,9 @@ code in this repository.
|
||||
норма уехала в линтер.
|
||||
- META-1: один файл — ровно один повторяющийся выбор. META-2: конвенция
|
||||
заводится, когда решение принимается третий раз.
|
||||
- Локальные регионы `<!-- local:имя --> … <!-- /local -->` в каноне остаются
|
||||
пустыми: их содержимое принадлежит репозиторию-потребителю. Имя региона и
|
||||
путь файла — API, переименование осиротит все копии.
|
||||
- Репозиторного в каноне нет вовсе: механизация, отступления и ссылки на код
|
||||
живут в копии ниже маркера `<!-- conv:local -->` (META-22), который ставит
|
||||
сборщик. Заводить пустые местные разделы в каноне не нужно.
|
||||
|
||||
## Выбор оси
|
||||
|
||||
@@ -88,9 +90,9 @@ code in this repository.
|
||||
|
||||
Шапка `prefix:` (плюс `extends:`) → `# Тема` → вводная проза со строкой
|
||||
«Форма записи — `LANGUAGE.md`» → `## Область действия` (обязателен для
|
||||
трудноизменяемых слоёв — META-11) → правила → `## Связано` с пустым
|
||||
`<!-- local:связано -->`. Имя файла — kebab-case по теме. Проза переносится
|
||||
по ~76 колонок; таблицы и блоки кода не переносятся.
|
||||
трудноизменяемых слоёв — META-11) → правила → `## Связано` только с
|
||||
каноническими ссылками (META-17). Имя файла — kebab-case по теме. Проза
|
||||
переносится по ~76 колонок; таблицы и блоки кода не переносятся.
|
||||
|
||||
## Ревью формы
|
||||
|
||||
@@ -110,10 +112,14 @@ code in this repository.
|
||||
|
||||
- Тестов, линтеров и CI нет. `conv` — python3 CLI на одной stdlib; запускают
|
||||
его из корня репозитория-потребителя (`~/projects/private/dev-conventions/`
|
||||
плюс `conv status`). `status` и `diff` всегда возвращают 0 — это отчёт, а не
|
||||
проверка.
|
||||
плюс команда).
|
||||
- Модель копий, описанная в `README.md`, согласована, но не реализована:
|
||||
`conv` собран под прежнюю (зеркальное дерево, именованные регионы,
|
||||
`origin_hash`, команды `status`/`diff`/`push`), и в двенадцати файлах
|
||||
канона ещё лежит 31 пустой регион `<!-- local:имя -->` — их предстоит
|
||||
удалить. При правке обвязки истина — README, а не код `conv`.
|
||||
- Ни один репозиторий-потребитель ещё не подключён: копий с шапкой `origin:`
|
||||
в природе нет, все локальные регионы канона пусты.
|
||||
в природе нет.
|
||||
- `TODO.md` — площадка для обсуждения на будущее, а не принятые решения; при
|
||||
работе над обвязкой его стоит прочесть, но истина о текущем устройстве —
|
||||
`README.md`.
|
||||
|
||||
Reference in New Issue
Block a user