Files
dev-skills/TODO.md
T
av 42849c13eb resolve: третий сценарий — обслуживание, у цикла SDD там нет входа
Задача, не меняющая поведения (тулчейн, зависимости, сборка, гит-хуки, перенос,
чистка), шла полным циклом решения. Все его шаги стоят на дельта-спеках, а у
chore их нет по построению: цикл не урезан ради дешевизны, он остаётся без входа.

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

Ревью идёт фиксированным планом без метки и без разметчика — autotests и
operations, плюс conventions с техническим разбором, когда дифф трогает код.
Конвейер получил раздел «Прогон без change»: он написан вокруг change, и без
этой строки вызов упирался бы в предпосылку OpenSpec. Главный шаг сценария —
синк документации, а триггеры ADR работают стоп-признаком: своего источника у
обслуживания нет, и решение с ценой уходит в разведку.
2026-08-13 09:22:50 +03:00

11 KiB

Что осталось сделать

Здесь только работы и их порядок. Чего здесь нет намеренно:

  • риски, открытые вопросы и принятые пределыREMAINING.md;
  • почему решено такDECISIONS.md, записи датированы;
  • шаги повышения проекта с версии канона на версию — журнал версий (changelog.md). Пересказ их сюда был бы вторым домом, и прежний план на этом уже разъезжался: он повторял записи версий 3, 4 и 5 построчно, и половина повторов протухла молча.

Сделанное отсюда удаляется, а не помечается галочкой. След остаётся в коммитах и в DECISIONS.md; список из двух сотен [x] перестают читать целиком, и живые пункты в нём теряются — прежний план умер именно так.

Где мы сейчас

Плагинов четыре, и каждый ставится отдельно: av-dev-docs (канон документов и их содержимое), av-dev-tasks (задачи и цели), av-dev-code (код по задачам: цикл SDD, конвейер ревью, OpenSpec), av-dev-git. Общее, что нужно нескольким дословно, живёт домом в shared/ и уезжает копиями.

Канон документов — версия 14; формат задач — версия 1, своя и со своим журналом. Живые проекты стоят на 2–3 и на плагине av-dev-pm, которого больше нет.

Бумажная часть закрыта аудитом четырёх плагинов и четырьмя пропусками правок (DECISIONS, запись 59). Всё, что ниже, проверяется только на живом коде.

1. Живые проекты — вернуть в рабочее состояние

Блокирует всё остальное: под текущим каноном не стоит ни один проект, и ни один скилл, кроме docs.py check, не исполнялся на живом коде ни разу (см. REMAINING, «Что ещё не сделано»).

healthlog — первым

  • переустановить плагины: снять av-dev-pm и av-dev-pipeline, поставить av-dev-docs, av-dev-tasks, av-dev-code, av-dev-git. Оба прежних имени мертвы, и plugin update их не переименует — только снять и поставить. marketplace update, затем plugin update — одного шага мало (README, «Обновление»)
  • удалить проектные копии: .claude/skills/healthlog-{task,review}-pipeline и девять .claude/agents/healthlog-review-*.md. Они прошлого поколения и после переезда указывают на документы, которых уже не будет
  • av-dev-docs:canon в режиме adopt — он приведёт проект к канону 14 сразу, картой и с подтверждением. Файл-в-файл здесь не расписан: раскладку знает скилл, и второй перечень разошёлся бы с ним
  • каталог задач — в tasks/ корня (канон 11), не в docs/tasks/, без SPRINT.md (канон 12) и с версией формата в tasks/.tasks.json (журнал задач, версия 1). Скилл задач зовётся из adopt сам
  • гейт проекта: три шага вместо одного — docs.py check, tasks.py check --dir tasks, openspec.py check. Второй и третий раньше не были нужны: согласованность задач тянул за собой docs.py, форму config.yaml он же. Теперь оба молчат, и без своих шагов дрейф перестанет ловиться
  • разобрать урожай doc-consistency и doc-code-drift порциями — правило единственного дома на живом проекте не проверял никто

jellybit — после калибровки

Порядок не произволен: замер (раздел 3) блокирует переезд jellybit, и только его.

  • то же, что у healthlog: плагины, проектные копии, adopt, каталог задач, гейт
  • проектные копии здесь опаснее: скиллы названы task-pipeline, review-pipelineровно как в плагине, и короткое имя может увести в устаревшую копию молча (REMAINING)

2. Учёт работ без спринтов — что осталось

Сделано: спринт снят со скрипта и текстов, приоритет стал порядком строк в беклоге, гейт готовности переехал в tasks.py ready, session стал скиллом groom, запись 12 в журнал версий канона написана.

  • прогнать груминг на живом беклоге — на фикстуре проверялись команды, а не сам разбор. Наблюдение к первому прогону: не выродился ли шаг 4 в «оставить как есть» — признак тот, что доклад не называет ни одного движения с доводом

3. Калибровка — блокирует переезд jellybit

  • замер на четырёх находках healthlog: скелет из null, откат бинаря, канонизация в транзакции, -1 >= -1. Цена и ожидаемый исход — REMAINING, «Главный незакрытый риск»

4. Конвейер: что осталось после resolve

Сам скилл написан (av-dev-code:resolve, три сценария — разведка, решение и обслуживание; чекпоинт есть у первых двух, у обслуживания планового стопа нет), task-batch удалён. Осталось то, что на бумаге не проверяется:

  • прогнать сценарий разведки на живой задаче: он написан целиком на бумаге и не исполнялся ни разу. Самое неизвестное — выбор сценария на входе (не уедет ли всё в решение, потому что «способ вроде понятен») и объём того, что разведка пишет в документы
  • прогнать сценарий обслуживания на живой задаче chore. Неизвестных три: держится ли связка признаков (не уедет ли в обслуживание то, что меняет поведение, и наоборот — не заведут ли пустой change по привычке); работает ли ревью без change — конвейер написан вокруг него, и прогон с фиксированным планом не запускался ни разу; есть ли чем сверить состав гейта — на живых проектах семантика гейта в CLAUDE.md может не называть шагов поимённо, и тогда сверка вырождается в цвет
  • перемерить скилл review тем же вопросом, что и проект целиком: сколько из его стадий реально смотрятся глазами. Тысяча строк, и весь автоматический участок между чекпоинтами держится на них
  • чекпоинт «объяснение» собирается из proposal.md и design.md, а требования к их форме уехали в openspec/config.yaml (rules.proposal, rules.design). На живом проекте это ни разу не работало: неизвестно, хватает ли двух артефактов, чтобы объяснение не пришлось дописывать руками

5. Мелочь, оставленная аудитом сознательно

Одной пачкой, когда будет повод открыть эти файлы, — не раньше:

  • «чекпоинт» несёт третий смысл — точка наблюдаемости в коде (finding-contract.md, promote.md). Слово занято дважды по своему же правилу, но домены разные, и переименование здесь может выйти дороже путаницы
  • закрытый словарь shared/language.md не содержит ни «конвейера», ни «чекпоинта», ни «груминга» — трёх рабочих терминов репозитория. Список объявлен закрытым, и пополнять его на ходу нельзя
  • move <слаг> без флагов теперь легален и значит «в конец своей секции» — осмысленная операция, но в прозе не описана нигде
  • reopen печатает «позиция это приоритет» и для целей роадмапа, где секции очередью не являются

6. Обкатка

  • один-два цикла healthlog на новом процессе. Наблюдения к первой обкатке два: не выродились ли «границы покрытия» в шаблон (REMAINING, «Открытые вопросы») и не превратился ли чекпоинт в ритуал одобрения — признак тот же, дословно повторяющийся текст и согласие без единой правки