diff --git a/CLAUDE.md b/CLAUDE.md index 4b1585e..4eb564c 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -9,7 +9,7 @@ code in this repository. Канон конвенций разработки для личных проектов. Сами конвенции лежат в `conventions/{arch,lang/<язык>,stack/<стек>}/`; обвязка канона (`README.md`, -`LANGUAGE.md`, `GUIDE.md`, `READING.md`, `manifest.toml`, `conv`) живёт в +`LANGUAGE.md`, `GUIDE.md`, `READING.md`, `suite.toml`, `conv`) живёт в корне. К потребителю из неё едет только `READING.md` — короткое описание языка для читателя копий. @@ -76,7 +76,7 @@ code in this repository. латиницей, рекомендуется нижний kebab-case, годится любой идентификатор, пригодный для имени файла. - META-28: тема объявлена в шапке (`topic: time`) и стоит в манифесте набора - (`manifest.toml`, секция `[topics.live]`). Слои одной темы несут одно имя — + (`suite.toml`, секция `[topics.live]`). Слои одной темы несут одно имя — по нему собираются в один файл, как бы ни назывались их файлы; имя файла повторяет тему из удобства. - META-29: имя темы не переиспользуется, снятое уходит в `[topics.retired]` diff --git a/README.md b/README.md index 5336a75..4fe5df2 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ | [LANGUAGE.md](LANGUAGE.md) | язык записи правил: идентификаторы, модальность, обоснование | | [GUIDE.md](GUIDE.md) | как ведут конвенции: когда заводить, механизация, отступления | | [READING.md](READING.md) | как читать конвенцию: то, что едет к потребителю | -| [manifest.toml](manifest.toml) | манифест набора: язык, темы, префиксы правил | +| [suite.toml](suite.toml) | манифест набора: язык, темы, префиксы правил | | `conv` | сборка копий | К потребителю едет содержимое `conventions/` и один файл обвязки — @@ -103,7 +103,7 @@ prefix: KEYS документ, как бы ни назывались их файлы. Имя файла повторяет тему из удобства, но истина — в шапке. -Темы перечислены в манифесте набора — [`manifest.toml`](manifest.toml), +Темы перечислены в манифесте набора — [`suite.toml`](suite.toml), секция `[topics.live]`: имя и однострочное описание. Имя темы не переиспользуется по той же причине, что и префикс: оно живёт в чужих репозиториях — в шапке `origin:` каждой копии, в подписке манифеста, в тексте @@ -229,7 +229,7 @@ MIGR-6 не соблюдается в `show_history`, `queue`: составны | Файл | Где лежит | Что описывает | |---|---|---| -| `manifest.toml` | в наборе | сам набор: темы и префиксы правил | +| `suite.toml` | в наборе | сам набор: язык, темы, префиксы правил | | `.conventions.toml` | в проекте | подключение: откуда копии, какие темы, язык, стек | Манифест набора — единственное место, где перечислены оба идентификатора diff --git a/TOOL.md b/TOOL.md index 60637df..97023f7 100644 --- a/TOOL.md +++ b/TOOL.md @@ -38,6 +38,12 @@ формулировках употребляется «набор». «Потребитель» — слово про роль репозитория, а не про уровень. +Манифесты названы по тому, что описывают, а не по уровню ради симметрии: +`suite.toml` в наборе — идентичность набора, `.conventions.toml` в проекте — +подключённые конвенции. Точка в проекте отделяет служебное от содержимого +проекта; в наборе файл правится при каждой новой теме, и прятать его незачем. +Отсюда же бесплатное определение контекста: по имени рядом видно, где ты. + ## Раскладка команд Глубина команды отражает частоту и адресата. Проектные команды выполняются в @@ -62,7 +68,7 @@ convy suite new новая тема: шапка, префикс, запис Три следствия для реализации: - **контекст определяется и отказ говорится явно.** `.conventions.toml` рядом - — проект, `manifest.toml` — набор. Проектная команда, набранная в наборе, не + — проект, `suite.toml` — набор. Проектная команда, набранная в наборе, не делает ничего наугад: она отказывает и подсказывает наборный аналог; - **помощь группируется заголовками** «В проекте» и «В наборе»: в плоском списке уровни не видны; @@ -152,9 +158,6 @@ convy suite new новая тема: шапка, префикс, запис а не целостность, но список подписок ему нужен из манифеста подключения. - **Проверка на `convey`** в текстах — вместе с остальными проверками формы или отдельной мелочью. -- **Имена манифестов.** `suite.toml` в наборе против `.conventions.toml` в - проекте — каждый файл называет свой уровень. Сейчас `manifest.toml`; - решение вкусовое, но принимать его до первого потребителя дешевле. - **Прототипы, на которые стоит посмотреть** до того, как писать: дистрибуция пакетов Vale (`.vale.ini` → `vale sync` → `styles/`) как образец манифеста и `vendir.yml` — как пример границы между «чего хочу» и «что получил». diff --git a/manifest.toml b/suite.toml similarity index 92% rename from manifest.toml rename to suite.toml index 89c71d3..bb77551 100644 --- a/manifest.toml +++ b/suite.toml @@ -1,11 +1,13 @@ -# Манифест набора конвенций. +# suite.toml — манифест набора конвенций. # -# Манифестов в модели два, и они отвечают на разные вопросы: +# Манифестов в модели два, и каждый назван по тому, что описывает: # -# - этот, в наборе, описывает сам набор: какие в нём темы и какие префиксы -# правил заняты; -# - `.conventions.toml` в репозитории-потребителе описывает подключение: -# откуда взяты копии, какие темы выбраны, какие язык и стек. +# - `suite.toml` здесь, в наборе, — сам набор: язык записи, темы, занятые +# префиксы правил; +# - `.conventions.toml` в проекте — подключение: откуда взяты копии, какие +# темы выбраны, какие язык и стек. +# +# По тому, какой из двух лежит рядом, видно, где ты находишься. # # Оба идентификатора набора — тема и префикс — живут здесь, потому что # правила у них общие: объявляются в шапке файла, сверяются с манифестом,