Files
dev-skills/av-dev/skills/doc-canon/references/changelog.md
T
av 95c9499f06 конфиг: одна версия и один служебный файл, .av-dev.toml в корне
Версий было две — канон 14 в docs/.docs.json и формат задач 1 в
<каталог задач>/.tasks.json, — и порознь они двигались потому, что плагины
ставились порознь. Плагин один, версия одна и начинается с 1; журналы обеих
прежних нумераций закрыты и лежат рядом непереписанными, действующий журнал
открывается записью о слиянии с перечнем шагов проекту.

Формат TOML взят ради комментариев: файл живёт в репозитории проекта, и
назначение числа читают из него самого. Отсюда правило записи — скрипты правят
строку, а не переписывают файл. Читатель общий, shared/config.py: два разбора
одной схемы были бы двумя домами.

Каталог задач перестал узнаваться служебным файлом и называется ключом
[tasks] dir; узнают его по индексу. Прежние файлы не читаются — увидев их,
docs.py и tasks.py называют прежнюю раскладку и зовут upgrade.
2026-08-13 10:30:18 +03:00

6.5 KiB
Raw Blame History

Журнал версий раскладки

Одна запись на версию. Проект знает свою версию из ключа version в .av-dev.toml; canon upgrade идёт по записям снизу вверх от версии проекта до текущей и делает то, что в них названо.

Правило записи: что добавилось, что переехало, что удалено, что сделать проекту. Без последнего пункта запись бесполезна — по ней и работает upgrade.

Версия — целое число. Обратной совместимости нет: есть «приведён» и «не приведён». Версия одна на всю раскладку — и на документы канона, и на каталог задач: ведёт их один плагин, и второе число означало бы только вопрос, по какому журналу повышать.

До слияния журналов было два, и нумерация в них своя: changelog-before-merge.md — канон документов, версии 1–14; changelog-tasks-before-merge.md — формат задач, версия 1. Оба закрыты и не переписаны: адрес, верный на день записи, там и остался. Проект, отставший от канона 14, идёт сперва по ним, а потом по этому журналу — порядок назван в записи 1.


Версия 1 — 2026-08-13

Три плагина — av-dev-docs, av-dev-tasks и av-dev-code — слились в один, av-dev. Раскол делался под раздельную установку: проект мог взять учёт работ без документов канона или конвейер без обоих. Практикой посылка не подтвердилась — подмножество не понадобилось ни разу, — а платился раскол помеченными копиями общих правил и ветками деградации на каждый вызов соседа.

Что переехало в проекте. Служебных файла было два, стал один:

Было Стало
docs/.docs.json, ключ canon .av-dev.toml в корне, ключ version
docs/.docs.json, ключ migrations .av-dev.toml, секция [docs]
<каталог задач>/.tasks.json, ключ tasks тот же version: версия теперь одна
<каталог задач>/.tasks.json, имена частей .av-dev.toml, секция [tasks]

Корень выбран потому, что он есть у обоих: и у проекта без docs/, и у проекта без каталога задач. Формат TOML — ради комментариев: файл лежит в репозитории проекта, и назначение числа читают из него самого, а не из документации плагина.

Что переехало в вызовах. Имена скиллов сменили пространство имён и получили префикс по прежнему плагину: av-dev-docs:canonav-dev:doc-canon, av-dev-docs:initav-dev:doc-init, av-dev-docs:docsav-dev:doc-sync, av-dev-docs:healthcheckav-dev:doc-healthcheck, av-dev-tasks:tasksav-dev:task-track, av-dev-tasks:groomav-dev:task-groom, av-dev-code:openspecav-dev:code-openspec, av-dev-code:resolveav-dev:code-resolve, av-dev-code:reviewav-dev:code-review.

Что сделать проекту.

  1. Отставшим сперва прежние журналы. Версия канона в docs/.docs.json меньше 14 — пройди записи до 14 по changelog-before-merge.md, и только потом эту. Иначе повышение объявит приведённым то, чего никто не делал.
  2. Завести .av-dev.toml в корне репозитория: version = 1, секция [docs] с migrations, если ключ был, секция [tasks] с dir и теми именами частей, которые в .tasks.json отличались от умолчаний. Комментарии пиши свои — файл читает человек.
  3. Удалить docs/.docs.json и <каталог задач>/.tasks.json. Прежние имена не читаются: два дома для одной версии расходятся молча. Пока старые файлы на месте, docs.py check и tasks.py check называют это прежней раскладкой.
  4. Переставить плагины. av-dev-docs, av-dev-tasks и av-dev-code удалить, av-dev поставить — команды в README репозитория плагинов.
  5. Поправить гейт проекта. Пути к docs.py, tasks.py и openspec.py сменились вместе с именами каталогов скиллов: skills/canon/skills/doc-canon/, skills/tasks/skills/task-track/, skills/openspec/skills/code-openspec/. Шаг, который не нашёл скрипт, обязан краснеть, а не пропускаться, — проверь, что он краснеет.
  6. Поправить свои вызовы скиллов — в CLAUDE.md, в Taskfile, в записях задач: короткое имя разрешится в проектную копию, а прежнее полное не разрешится вовсе.
  7. docs.py check и tasks.py check --dir <каталог задач> — до отсутствия дрейфа.

Чего делать не надо. Переписывать прошлые записи журналов под новые имена. Они описывают состояния, которые были, и адрес, верный на день записи, остаётся верным как свидетельство.