Files
dev-skills/TODO.md
T
av 872732989a адреса чужих документов сверяются с перечнем владельца
Адрес принадлежит одному плагину, а называют его все: docs/* стоит в
сорока местах конвейера, tasks/ROADMAP.md — в четырёх местах канона.
Переименование в каноне до них не доходит, и заметить это нечем:
протухший адрес попадает в механизм честной деградации ревью и выходит
правдоподобной строкой «документа в проекте нет», а не поломкой.

Перечень берётся из константы владельца — той, по которой он и так
проверяет раскладку. Судится упразднённое, а не незнакомое: список тем
канона открытый, и «нет такого имени» опровергнуть нечем; зато карта
переездов RETIRED и есть перечень запрещённого. Рядом одна догадка —
почти совпавшее имя как опечатка, порог замерен (законные до 0.64,
опечатки от 0.91).

Первый прогон: одна настоящая находка — REMAINING иллюстрировал
смысловой дубль адресом docs/specs/, упразднённым в версии 1 канона.

В гейте без glob: перечень лежит в .py, упоминания в .md, и коммит с
переименованием трогает только первую сторону.
2026-08-09 15:12:46 +03:00

118 lines
9.5 KiB
Markdown

# Что осталось сделать
**Здесь только работы и их порядок.** Чего здесь нет намеренно:
- **риски, открытые вопросы и принятые пределы** — [REMAINING.md](REMAINING.md);
- **почему решено так** — [DECISIONS.md](DECISIONS.md), записи датированы;
- **шаги повышения проекта с версии канона на версию** — журнал версий
([changelog.md](av-dev-docs/skills/canon/references/changelog.md)). Пересказ их
сюда был бы вторым домом, и прежний план на этом уже разъезжался: он повторял
записи версий 3, 4 и 5 построчно, и половина повторов протухла молча.
Сделанное отсюда **удаляется, а не помечается галочкой**. След остаётся в
коммитах и в `DECISIONS.md`; список из двух сотен `[x]` перестают читать целиком,
и живые пункты в нём теряются — прежний план умер именно так.
## Где мы сейчас
Плагинов четыре, и каждый ставится отдельно: `av-dev-docs` (канон документов и
их содержимое), `av-dev-tasks` (задачи и цели), `av-dev-pipeline` (SDD и конвейер
ревью, он же заводит OpenSpec), `av-dev-git`. Общее, что нужно нескольким
дословно, живёт домом в `shared/` и уезжает копиями.
Канон документов — **версия 11**. Живые проекты стоят на 2–3 и на плагине
`av-dev-pm`, которого больше нет.
## 1. Живые проекты — вернуть в рабочее состояние
Блокирует всё остальное: под текущим каноном не стоит ни один проект, и ни один
скилл, кроме `docs.py check`, не исполнялся на живом коде ни разу
(см. REMAINING, «Что ещё не сделано»).
### healthlog — первым
- [ ] переустановить плагины: снять `av-dev-pm`, поставить `av-dev-docs` и
`av-dev-tasks`. `marketplace update`, затем `plugin update` — одного шага
мало (README, «Обновление»)
- [ ] удалить проектные копии: `.claude/skills/healthlog-{task,review}-pipeline`
и девять `.claude/agents/healthlog-review-*.md`. Они прошлого поколения и
после переезда указывают на документы, которых уже не будет
- [ ] `av-dev-docs:canon` в режиме `adopt` — он приведёт проект к канону 11
сразу, картой и с подтверждением. Файл-в-файл здесь не расписан: раскладку
знает скилл, и второй перечень разошёлся бы с ним
- [ ] каталог задач — в `tasks/` корня (канон 11), не в `docs/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`, `task-batch` — **ровно как в плагине**, и короткое имя
может увести в устаревшую копию молча (REMAINING)
## 2. Учёт работ без спринтов
Решено: спринты отменяются, беклог и роадмап остаются. Причина — процесс идёт
задача за задачей, и замороженный набор перестал что-либо удерживать.
- [ ] снять спринт: `SPRINT.md`, команды `sprint *`, переходы схемы состояний,
правило «задача живёт в одном индексе за раз» упрощается до беклога
- [ ] **приоритет — явный порядок строк в беклоге.** Правило 4 скилла задач
(«порядка нет, есть цель») переписывается целиком: оно обосновано тем, что
«что делать дальше» отвечает набор спринта, — а набора больше нет.
Записать, что приоритет это **свойство очереди, а не задачи**, и потому его
дом индекс: то же исключение из правила 2, что уже есть у «в каком индексе
лежит задача, знают индексы»
- [ ] **перевесить гейт готовности.** Схема типа (обязательные разделы, ≥2
критерия, границы) проверяется на `sprint take`. Спринта нет — момента нет;
нужен `tasks.py ready <слаг>` или `check --task <слаг>` на входе пайплайна,
иначе задача уедет в работу без критериев приёмки
- [ ] `check --fix`: восстановленная строка индекса теряет позицию, а позиция
теперь и есть приоритет. Класть в конец категории и печатать пометкой, что
приоритет назначен не человеком
- [ ] `session` → скилл груминга внутри `av-dev-tasks`: пересортировка беклога,
разбор вопросов, переоценка. `references/sprint.md` в мусор, `cadence.md`
переписать под ритуал без спринта
- [ ] запись в журнал версий канона: проектам надо снести `SPRINT.md` и
расставить порядок
## 3. Калибровка — блокирует переезд jellybit
- [ ] замер на четырёх находках healthlog: скелет из `null`, откат бинаря,
канонизация в транзакции, `-1 >= -1`. Цена и ожидаемый исход — REMAINING,
«Главный незакрытый риск»
## 4. Пайплайн одной задачи — три этапа
Обкатывается на healthlog после разделов 1 и 2. Пайплайн нескольких задач на
паузе намеренно.
- [ ] **этап 1** — первичный ресерч и смысл задачи. Заканчивается дешёвым
подтверждением: две строки «понял так, собираюсь делать это». Без него
проверка «то ли я делаю» приходит после готового дизайна, то есть когда
ошибка стоит дороже всего
- [ ] **этап 2** — propose, дизайн, ревью дизайна, краткое объяснение решения.
Заканчивается полноценным чекпоинтом
- [ ] **этап 3** — код, ревью, архивация. Автоматически: дизайн уже согласован.
Решить, что делает этап, когда ревью находит расхождение **с утверждённым
дизайном**: находка внутри дизайна дожимается сама, находка, отменяющая
дизайн, отменяет и чекпоинт и обязана всплыть к человеку
- [ ] перемерить `review-pipeline` тем же вопросом, что и проект целиком:
сколько из пяти стадий реально смотрятся глазами. 1028 строк, и весь
автоматический этап держится на них
## 5. Обкатка
- [ ] один-два цикла healthlog на новом процессе; наблюдение к первой обкатке —
не выродились ли «границы покрытия» в шаблон (REMAINING, «Открытые
вопросы»)