Автоматическое решение задач агентом работает плохо, и хуже того — в процессе перестаёт ориентироваться автор. В цикл возвращается человек, но не согласованием на каждом шаге: доктрина «делать, а не спрашивать» не отменена, а ограничена местом. Развилка до ближайшего чекпоинта копится в него, после последнего — уходит вопросом в запись. Чекпоинтов два. «Варианты» — у исследовательской задачи, до первого требования: 2-4 способа с ценой каждого и рекомендацией, выбор оседает по адресу, который назвала сама запись. «Объяснение» — у всякой, после ревью дизайна: человек читает просеянное машиной. Объяснение не завело своего артефакта — оно собирается из proposal.md и design.md, а требование к их форме уехало в openspec/config.yaml (rules.proposal, rules.design), то есть применяется в момент написания. Отдельный раздел был бы третьим домом одного объяснения. Закрыт открытый вопрос: находка ревью, меняющая дельта-спеки, отменяет одобрение — разметка пересчитывается, чекпоинт повторяется.
9.4 KiB
Что осталось сделать
Здесь только работы и их порядок. Чего здесь нет намеренно:
- риски, открытые вопросы и принятые пределы — REMAINING.md;
- почему решено так — DECISIONS.md, записи датированы;
- шаги повышения проекта с версии канона на версию — журнал версий (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— ровно как в плагине, и короткое имя может увести в устаревшую копию молча (REMAINING)
2. Учёт работ без спринтов
Решено: спринты отменяются, беклог и роадмап остаются. Причина — процесс идёт задача за задачей, и замороженный набор перестал что-либо удерживать.
- снять спринт:
SPRINT.md, командыsprint *, переходы схемы состояний, правило «задача живёт в одном индексе за раз» упрощается до беклога - приоритет — явный порядок строк в беклоге. Правило 4 скилла задач («порядка нет, есть цель») переписывается целиком: оно обосновано тем, что «что делать дальше» отвечает набор спринта, — а набора больше нет. Записать, что приоритет это свойство очереди, а не задачи, и потому его дом индекс: то же исключение из правила 2, что уже есть у «в каком индексе лежит задача, знают индексы»
- перевесить гейт готовности. Схема типа (обязательные разделы, ≥2
критерия, границы) проверяется на
sprint take. Спринта нет — момента нет; нуженtasks.py ready <слаг>илиcheck --task <слаг>, иначе задача уедет в работу без критериев приёмки. Сейчасresolveдержит это глазами: он отказывает сырью (researchбез «Вопроса») и называет строкой невыполненную схему у прочих типов — то есть машина в этом месте не участвует check --fix: восстановленная строка индекса теряет позицию, а позиция теперь и есть приоритет. Класть в конец категории и печатать пометкой, что приоритет назначен не человекомsession→ скилл груминга внутриav-dev-tasks: пересортировка беклога, разбор вопросов, переоценка.references/sprint.mdв мусор,cadence.mdпереписать под ритуал без спринта- запись в журнал версий канона: проектам надо снести
SPRINT.mdи расставить порядок
3. Калибровка — блокирует переезд jellybit
- замер на четырёх находках healthlog: скелет из
null, откат бинаря, канонизация в транзакции,-1 >= -1. Цена и ожидаемый исход — REMAINING, «Главный незакрытый риск»
4. Пайплайн: что осталось после resolve
Сам скилл написан (av-dev-pipeline:resolve, два чекпоинта, ветка разведки),
task-batch удалён. Осталось то, что на бумаге не проверяется:
- перемерить
review-pipelineтем же вопросом, что и проект целиком: сколько из его стадий реально смотрятся глазами. Тысяча строк, и весь автоматический участок между чекпоинтами держится на них - чекпоинт «объяснение» собирается из
proposal.mdиdesign.md, а требования к их форме уехали вopenspec/config.yaml(rules.proposal,rules.design). На живом проекте это ни разу не работало: неизвестно, хватает ли двух артефактов, чтобы объяснение не пришлось дописывать руками
5. Обкатка
- один-два цикла healthlog на новом процессе. Наблюдения к первой обкатке два: не выродились ли «границы покрытия» в шаблон (REMAINING, «Открытые вопросы») и не превратился ли чекпоинт в ритуал одобрения — признак тот же, дословно повторяющийся текст и согласие без единой правки