# Журнал версий формата задач до слияния плагинов **Журнал закрыт.** У каталога задач была своя версия, пока плагином его ведал `av-dev-tasks` и ставился он отдельно. Версия теперь одна на всю раскладку — действующий журнал [changelog.md](changelog.md), и переезд числа описан его записью 1. Запись ниже не переписана под нынешние имена: она описывает состояние, которое было. --- ## Версия 1 — 2026-08-11 Первая объявленная версия формата. До неё каталог задач версии не имел вовсе: формат менялся, а сказать, к какому его состоянию приведён конкретный проект, было нечем — `tasks.py` о расхождении молчал, и отставший каталог выглядел здоровым ровно до первой команды, которая об него спотыкалась. **Что появилось.** Ключ `tasks` в `<каталог задач>/.tasks.json` — целое число, версия формата. Сам файл стал **обязательным**: до сих пор он заводился только ради имён, отличных от умолчания, и проект с умолчаниями жил без него. Версия — не настройка, от которой можно отказаться, поэтому `init` и `adopt apply` теперь пишут файл всегда, а `check` требует числа и сверяет его со своим. **Что версия значит, а что нет.** Она отвечает на один вопрос — «по какой записи журнала повышать каталог». Что записи применены **по существу**, из числа не следует: двигают его руками, и соврать им так же легко, как любой другой строкой. `check --fix` недостающее число не приписывает намеренно — это было бы объявлением каталога приведённым к формату, шагов которого никто не делал. **Чего в этой записи нет.** Переезды, случившиеся до появления числа, — каталог из `docs/` в корень (канон 11) и отмена спринтов (канон 12) — задним числом сюда не переписаны. Они уже названы журналом канона, и второй перечень тех же шагов разошёлся бы с первым. Версия 1 — это формат на день её появления, что бы проекту ни пришлось пройти до неё. **Что сделать проекту.** 1. **Догнать формат по журналу канона, если каталог отстал.** Признаки известны поимённо: каталог лежит в `docs/tasks/` (канон 11 велит `git mv docs/tasks tasks` и починку относительных ссылок внутри записей), в нём есть `SPRINT.md` или теги `sprint:<слаг>` (канон 12 велит снести файл, вернуть строки в беклог через `check --fix` и расставить порядок грумингом). Ничего из этого нет — каталог уже в сегодняшнем формате, и шаг пропускается. 2. **Завести `<каталог задач>/.tasks.json`**, если его нет. Имена частей в него не переписываются: там только то, что отличается от умолчания. 3. **Записать версию**: `"tasks": 1` первым ключом. 4. `tasks.py check --dir <каталог задач>` — до отсутствия расхождений. **Что при этом не трогается.** Записи в `items/`, индексы и `REJECTED.md` не меняются ни строкой: версия 1 объявляет то, что уже есть, а не переделывает его.