решения об инструменте перенесены из TOOL.md

- TOOL.md в каноне удалён как выполнивший задачу стартовой точки; всё,
  что из него осталось живым, переехало сюда
- правило одной зависимости и решение про один бинарь стоят теперь сами
  по себе, а не со ссылкой на удалённый файл
- в известные остатки добавлены два открытых вопроса оттуда: способ
  раздачи бинарей и опечатка convey в текстах
This commit is contained in:
av
2026-07-28 10:05:33 +03:00
parent a597805f3c
commit 29d29740f5
2 changed files with 21 additions and 11 deletions
+19 -8
View File
@@ -24,8 +24,11 @@ code in this repository.
CLI для управления конвенциями. Модель здесь не описывается: она живёт в CLI для управления конвенциями. Модель здесь не описывается: она живёт в
репозитории набора `dev-conventions``README.md` (набор и копии), репозитории набора `dev-conventions``README.md` (набор и копии),
`LANGUAGE.md` (форма правила и список проверок), `GUIDE.md` (ведение набора, `LANGUAGE.md` (форма правила и список проверок), `GUIDE.md` (ведение набора,
префикс META), `TOOL.md` (решения об инструменте). При расхождении истина там, префикс META). При расхождении истина там, а не в коде и не здесь.
а не в коде и не здесь.
Решения о самом инструменте живут здесь. Раньше они лежали в `TOOL.md`
канона — стартовой точке разработки; она свою задачу выполнила и удалена,
а всё, что из неё осталось живым, перенесено ниже.
Пользовательская сторона — в `README.md`. Ниже — то, что нужно знать, правя код. Пользовательская сторона — в `README.md`. Ниже — то, что нужно знать, правя код.
@@ -42,9 +45,13 @@ internal/check проверки: manifest, form, spread, links
internal/cli команды, диалог, два режима internal/cli команды, диалог, два режима
``` ```
Зависимость одна — `BurntSushi/toml`. Вторую не заводить: так решено в Зависимость одна — `BurntSushi/toml`, и вторую не заводить. `Undecoded()`
`TOOL.md`, и `Undecoded()` этого парсера бесплатно ловит опечатки в ключах этого парсера бесплатно ловит опечатки в ключах манифеста, а инструмент,
манифеста. который копирует файлы и разбирает markdown, не имеет права тянуть за собой
дерево чужого кода.
Бинарь тоже один, с подкомандой `suite`. Разделять на два дешевле, если
задачи разъедутся, но пока они не разъехались.
## Инварианты кода ## Инварианты кода
@@ -166,7 +173,7 @@ internal/cli команды, диалог, два режима
- Машиночитаемого вывода находок (`--json`) нет. - Машиночитаемого вывода находок (`--json`) нет.
- Предупреждения о висячей ссылке на неподписанную тему нет: `convy check` до - Предупреждения о висячей ссылке на неподписанную тему нет: `convy check` до
набора не дотягивается и разрешает только ссылки на префиксы самого файла. набора не дотягивается и разрешает только ссылки на префиксы самого файла.
Открытый вопрос из `TOOL.md`; закрывается отдельной командой, а не этой. Закрывается отдельной командой, а не этой: ей нужен список подписок.
- Набор в поддиректории git-репозитория не адресуется: `#рев` есть, `//путь` - Набор в поддиректории git-репозитория не адресуется: `#рев` есть, `//путь`
нет. Появится вместе с первым набором, который так лежит. нет. Появится вместе с первым набором, который так лежит.
- Источник у проекта один. Модель нескольких допускает; форма `source = "..."` - Источник у проекта один. Модель нескольких допускает; форма `source = "..."`
@@ -180,6 +187,11 @@ internal/cli команды, диалог, два режима
- `lang.Recognize` при отсутствии словаря с совпавшим номером версии отдаёт - `lang.Recognize` при отсутствии словаря с совпавшим номером версии отдаёт
первого кандидата, у которого совпали слова. Пока версия в реестре одна, это первого кандидата, у которого совпали слова. Пока версия в реестре одна, это
безвредно; со второй версией того же естественного языка станет неверно. безвредно; со второй версией того же естественного языка станет неверно.
- Опечатка `convey` вместо `convy` в текстах ничем не ловится. Слова отличаются
одной буквой, и оба выглядят словами.
- Способ раздачи готовых бинарей не выбран. `eget` умеет релизы GitHub, а git
здесь свой (`git.vakhrushev.me`) — тянет ли он релизы Gitea, не проверено;
иначе остаются прямой URL или `go install`.
## Тесты ## Тесты
@@ -209,8 +221,7 @@ Commits и `Co-Authored-By` не используются.
Наборная сторона: `init`, `add`, `rule`, `retire`, `list`, `check`. Наборная сторона: `init`, `add`, `rule`, `retire`, `list`, `check`.
Проектная: `init`, `add`, `pull`, `sync`, `list`, `check`. Обе стороны Проектная: `init`, `add`, `pull`, `sync`, `list`, `check`. Обе стороны
закончены по тому, что намечено в `TOOL.md`; `sync` в `TOOL.md` не значится и закончены.
заведён сверх него.
Отбор слоёв под компонент — один на обе стороны: `suite.Assemble`. `suite list` Отбор слоёв под компонент — один на обе стороны: `suite.Assemble`. `suite list`
показывает, что взял бы компонент, `convy pull` и `convy sync` то же самое показывает, что взял бы компонент, `convy pull` и `convy sync` то же самое
+2 -3
View File
@@ -5,8 +5,7 @@ CLI для управления конвенциями разработки: в
Модель, которую инструмент реализует, описана не здесь, а в репозитории набора Модель, которую инструмент реализует, описана не здесь, а в репозитории набора
(`dev-conventions`): `README.md` — устройство набора и копий, `LANGUAGE.md` (`dev-conventions`): `README.md` — устройство набора и копий, `LANGUAGE.md`
форма правила, `GUIDE.md` — правила ведения набора, `TOOL.md` — решения об этом форма правила, `GUIDE.md` — правила ведения набора. При расхождении истина там.
инструменте. При расхождении истина там.
## Термины ## Термины
@@ -68,7 +67,7 @@ go install git.vakhrushev.me/av/convy@latest
go build -o convy . go build -o convy .
``` ```
Способ раздачи готовых бинарей пока не выбран — вопрос открыт в `TOOL.md`. Способ раздачи готовых бинарей пока не выбран.
## Команды ## Команды