решения об инструменте перенесены из 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 для управления конвенциями. Модель здесь не описывается: она живёт в
репозитории набора `dev-conventions``README.md` (набор и копии),
`LANGUAGE.md` (форма правила и список проверок), `GUIDE.md` (ведение набора,
префикс META), `TOOL.md` (решения об инструменте). При расхождении истина там,
а не в коде и не здесь.
префикс META). При расхождении истина там, а не в коде и не здесь.
Решения о самом инструменте живут здесь. Раньше они лежали в `TOOL.md`
канона — стартовой точке разработки; она свою задачу выполнила и удалена,
а всё, что из неё осталось живым, перенесено ниже.
Пользовательская сторона — в `README.md`. Ниже — то, что нужно знать, правя код.
@@ -42,9 +45,13 @@ internal/check проверки: manifest, form, spread, links
internal/cli команды, диалог, два режима
```
Зависимость одна — `BurntSushi/toml`. Вторую не заводить: так решено в
`TOOL.md`, и `Undecoded()` этого парсера бесплатно ловит опечатки в ключах
манифеста.
Зависимость одна — `BurntSushi/toml`, и вторую не заводить. `Undecoded()`
этого парсера бесплатно ловит опечатки в ключах манифеста, а инструмент,
который копирует файлы и разбирает markdown, не имеет права тянуть за собой
дерево чужого кода.
Бинарь тоже один, с подкомандой `suite`. Разделять на два дешевле, если
задачи разъедутся, но пока они не разъехались.
## Инварианты кода
@@ -166,7 +173,7 @@ internal/cli команды, диалог, два режима
- Машиночитаемого вывода находок (`--json`) нет.
- Предупреждения о висячей ссылке на неподписанную тему нет: `convy check` до
набора не дотягивается и разрешает только ссылки на префиксы самого файла.
Открытый вопрос из `TOOL.md`; закрывается отдельной командой, а не этой.
Закрывается отдельной командой, а не этой: ей нужен список подписок.
- Набор в поддиректории git-репозитория не адресуется: `#рев` есть, `//путь`
нет. Появится вместе с первым набором, который так лежит.
- Источник у проекта один. Модель нескольких допускает; форма `source = "..."`
@@ -180,6 +187,11 @@ internal/cli команды, диалог, два режима
- `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`, `pull`, `sync`, `list`, `check`. Обе стороны
закончены по тому, что намечено в `TOOL.md`; `sync` в `TOOL.md` не значится и
заведён сверх него.
закончены.
Отбор слоёв под компонент — один на обе стороны: `suite.Assemble`. `suite list`
показывает, что взял бы компонент, `convy pull` и `convy sync` то же самое
+2 -3
View File
@@ -5,8 +5,7 @@ CLI для управления конвенциями разработки: в
Модель, которую инструмент реализует, описана не здесь, а в репозитории набора
(`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 .
```
Способ раздачи готовых бинарей пока не выбран — вопрос открыт в `TOOL.md`.
Способ раздачи готовых бинарей пока не выбран.
## Команды