README переписан под два плагина: состав скиллов с префиксами, диаграмма одним контуром, команды установки и обновления, раздел версий про .av-dev.toml. Правка про копии сказала главное — копия была платой за неразрешимый путь, а не за важность правила, и внутри одного дерева остаётся только там, где текст обязан лежать в промпте. DECISIONS: тема 64 с замером цены раскола и четырьмя следствиями. Довод «а вдруг понадобится» снят наблюдением: режим, ради которого раскол держали, покрыт сценарием обслуживания.
134 lines
11 KiB
Markdown
134 lines
11 KiB
Markdown
# Что осталось сделать
|
||
|
||
**Здесь только работы и их порядок.** Чего здесь нет намеренно:
|
||
|
||
- **риски, открытые вопросы и принятые пределы** — [REMAINING.md](REMAINING.md);
|
||
- **почему решено так** — [DECISIONS.md](DECISIONS.md), записи датированы;
|
||
- **шаги повышения проекта с версии канона на версию** — журнал версий
|
||
([changelog.md](av-dev/skills/doc-canon/references/changelog.md)). Пересказ их
|
||
сюда был бы вторым домом, и прежний план на этом уже разъезжался: он повторял
|
||
записи версий 3, 4 и 5 построчно, и половина повторов протухла молча.
|
||
|
||
Сделанное отсюда **удаляется, а не помечается галочкой**. След остаётся в
|
||
коммитах и в `DECISIONS.md`; список из двух сотен `[x]` перестают читать целиком,
|
||
и живые пункты в нём теряются — прежний план умер именно так.
|
||
|
||
## Где мы сейчас
|
||
|
||
Плагина два: `av-dev` — весь процесс девятью скиллами (`doc-*` — документы,
|
||
`task-*` — учёт работ, `code-*` — работа по задачам), и `av-dev-git` —
|
||
сообщения коммитов. Прежние три (`av-dev-docs`, `av-dev-tasks`, `av-dev-code`)
|
||
слились 13 августа 2026, тема 64 DECISIONS. Общее, что нужно нескольким скиллам,
|
||
живёт домом в `av-dev/shared/`.
|
||
|
||
Раскладка — **версия 1**, одна на документы и на каталог задач, в
|
||
`.av-dev.toml` в корне проекта. Живые проекты стоят на каноне 2–3 и на плагине
|
||
`av-dev-pm`, которого больше нет: им идти сперва по закрытому журналу канона до
|
||
14, потом по записи 1 действующего.
|
||
|
||
Бумажная часть закрыта аудитом четырёх плагинов и четырьмя пропусками правок
|
||
(DECISIONS, запись 59). Всё, что ниже, проверяется **только на живом коде**.
|
||
|
||
## 1. Живые проекты — вернуть в рабочее состояние
|
||
|
||
Блокирует всё остальное: под текущим каноном не стоит ни один проект, и ни один
|
||
скилл, кроме `docs.py check`, не исполнялся на живом коде ни разу
|
||
(см. REMAINING, «Что ещё не сделано»).
|
||
|
||
### healthlog — первым
|
||
|
||
- [ ] переустановить плагины: снять `av-dev-pm` и `av-dev-pipeline`, поставить
|
||
`av-dev` и `av-dev-git`. Прежние имена мертвы, и `plugin update` их не
|
||
переименует — только снять и поставить. `marketplace update`, затем `plugin update` — одного шага мало
|
||
(README, «Обновление»)
|
||
- [ ] удалить проектные копии: `.claude/skills/healthlog-{task,review}-pipeline`
|
||
и девять `.claude/agents/healthlog-review-*.md`. Они прошлого поколения и
|
||
после переезда указывают на документы, которых уже не будет
|
||
- [ ] `av-dev:doc-canon` в режиме `adopt` — он приведёт проект к раскладке 1
|
||
сразу, картой и с подтверждением. Файл-в-файл здесь не расписан: раскладку
|
||
знает скилл, и второй перечень разошёлся бы с ним
|
||
- [ ] каталог задач — в `tasks/` корня (канон 11), не в `docs/tasks/`, без
|
||
`SPRINT.md` (канон 12); версия и настройки — в `.av-dev.toml` корня, там
|
||
же секция `[tasks]`. Скилл задач зовётся из `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, «Открытые
|
||
вопросы») и **не превратился ли чекпоинт в ритуал одобрения** — признак
|
||
тот же, дословно повторяющийся текст и согласие без единой правки
|