- task-pipeline и task-batch запрещали шаг, который сами же добавили: раздел
границ и финальный доклад переписаны под снятую границу приёмки
- «триаж сводит строки в одну» противоречило «не сливает» — деградация снова
поразрядная во всех трёх местах
- канон не требовал в CLAUDE.md имени основной ветки, testdata и запретов, а
скелета CLAUDE.md не было вовсе — заведён
- обратимость жила в двух домах, читатели ходили в пустой; единственный дом
теперь CLAUDE.md
- заведены слоты «Единые точки проекта» и «Триггеры профиля», куда charter'ы
слали, а канон их не создавал
- блок «Вопросы к проходам» стал частью задания прохода: за ним ходили двое
из девяти
- чек-лист синка и правило «замер + настройка» сведены к одному дому;
plugin.json больше не про бриф
- README: три плагина, канон документов, явное обновление маркетплейса
- HISTORY: сжатый AGENTIC-TASKS — что отвергнуто и почему, числа первого замера
- REMAINING: главным риском названа несделанная калибровка при двух подряд
переписываниях charter'ов; закрытые разбором вопросы убраны
- удалены скилл project-brief и контракт брифа; вместо них references/
project-facts.md — карта «что нужно проходу → где лежит» и таблица
поразрядной деградации по документам
- девять charter'ов, review-pipeline, task-pipeline и task-batch переписаны
на пути канона; OpenSpec стал объявленной предпосылкой без ветки деградации
- шаг синка документации переписан в построчный доклад, закрытие задачи —
вызовом скилла av-dev-pm:tasks вместо строки-слота из CLAUDE.md
- по находкам ревью: docs.py звал tasks.py из чужого каталога и выдавал его
отказ окружения за дрейф; сверка миграций не видела рабочее дерево;
плейсхолдер краснел вместо замечания; сверка capability проходила по
совпадению с именем пакета; tasks.py не читал docs/.pm.json; скилл docs
пересказывал канон в пяти местах
- av-dev-tasks → av-dev-pm; канон определён единственным reference-файлом,
который читают все три новых скилла
- canon: check/adopt/upgrade плюс docs.py — раскладка, битые ссылки, версия,
маркеры долга, сверки миграций и capability с документацией
- tasks и session: путь docs/tasks жёсткий, конфиг переехал в docs/.pm.json,
слот «Команда учёта задач» убран в пользу вызова скилла, раздел «Стимулы»
переписан под совпавших приёмщика и исполнителя
- DECISIONS.md: 29 решений по восьми темам, каждое с причиной; две отменённые
версии сохранены с объяснением отмены
- TODO.md: план в порядке выката, замер блокирует переезд jellybit
- скилл project-brief: бриф собирается из CLAUDE.md, архитектуры, Taskfile
и конвенций и показывается человеку. Раньше единственная инструкция по
его созданию лежала внутри шаблона, поэтому деградированный режим был не
аварийным, а единственным: critical по основанию «нарушен инвариант»
недостижим ни на одной задаче
- rebase перенесён внутрь worktree задачи: прежняя форма падала на занятой
ветке, и агент уводил весь батч в провалившиеся с ложной причиной
- контракт брифа дополнен восемью слотами; проверен заполнением на обоих
проектах, незаполнимых нет. Прецедент healthlog вынут из общего charter'а
в бриф — там он вмёрз вместе с числами
- шов: пайплайн задачу не закрывает и записи учёта не трогает, урожай
отдаёт списком, правило остатка — ссылкой на av-dev-tasks
- деградированный абзац во всех девяти проходах, вопрос 9 в ops,
пространство имён в вызовах, раздел предпосылок
- атомарность: sprint drop и move собирают план правок целиком и пишут
одним проходом; раньше отказ на втором слаге оставлял первый файл
переписанным при нетронутом индексе
- хук переехал в мета-строку файла: индекс стал производным, и check --fix
больше не теряет текст, восстанавливая строку
- механизировано то, что было записано, но не проверялось: слаг спринта и
автотег, отказ по факту непустого раздела вопросов, число критериев,
пометка decomposed, покрытие причин
- reopen возвращает закрытую задачу: без него порядок «пайплайн доложил →
приёмщик судит → владелец закрывает» был односторонним
- скилл adopt: приходит в чужой репозиторий и выводит заполненный каталог
задач. На копии беклога healthlog — 12 целей, 38 задач, 36 переименований,
86 ссылок в 36 файлах, check зелёный
Пара плагинов с намеренно проведённой границей: av-dev-tasks отвечает
за то, что делаем и в каком порядке, av-dev-pipeline — за то, как ведём
одну задачу. Зависимости между ними нет: управление задачами работает и
с ручным исполнением, пайплайн — на проекте с любым учётом задач.
- av-dev-tasks — преемник av-dev-backlog: цели вместо приоритетов,
спринт под одну цель с заморозкой набора, различение вопроса и
блокера, каденция «вопросы — разбор — переоценка — набор».
Раскладка docs/tasks с items/, PLAN.md, BACKLOG.md, SPRINT.md,
REJECTED.md; проверенное из av-dev-backlog перенесено, не переписано.
- av-dev-pipeline — вынос того, что лежало копиями в healthlog и
jellybit (3628 строк) и уже разошлось: цикл SDD, конвейер ревью с
обязательным триажем, прогон нескольких задач разом. Проектная
специфика вынесена в файл-бриф, charter'ы несут метод.
Коммит фиксирует состояние на момент ревью: три прохода нашли
блокирующие дефекты (нет шага, заводящего бриф; git rebase на занятой
worktree ветке; sprint drop пишет наполовину) — они чинятся следующими
коммитами. Сохранено как база, от которой видно правки.
- скилл commit кодирует личный стиль сообщений: русский, опциональный scope-префикс, первая строка «что сделано», тело 1–3 пункта, без co-authored
- плагин добавлен в marketplace.json и в секцию README
git-сервер доступен по https, а CLI `plugin marketplace add` не принимает
ssh://…:2222 (только owner/repo, https, ./path). Переводим все примеры на
https://git.vakhrushev.me/av/dev-skills.git; в JSON-блоке source-тип "git"
(ровно то, что пишет команда add).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Добавлены команды с --scope project (/plugin и claude plugin) — пишут прямо в
.claude/settings.json; user-scope формы оставлены как разовая установка себе.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Ведущий способ подключения — через .claude/settings.json проекта
(extraKnownMarketplaces + enabledPlugins по git-URL), чтобы плагин был активен
у всех, кто открывает репозиторий. Интерактивная установка через /plugin —
как разовая альтернатива. Локальный путь заменён на реальный remote.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Соглашение об именах: длинное имя плагина с префиксом av-dev- (уникально в
маркетплейсе), короткие имена скилов внутри. Вызов — /av-dev-backlog:backlog,
единообразно для будущих плагинов.
Путь к backlog.py в SKILL.md обновлён под новую раскладку
($CLAUDE_PLUGIN_ROOT/skills/backlog/scripts/backlog.py).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Отдельный репозиторий-маркетплейс для личных плагинов и скилов разработки,
чтобы подключать их к проектам через `/plugin`, а не держать в глобальном
`~/.claude/skills`.
Первый плагин — backlog: перенесён скилл ведения беклога из
`~/.claude/skills/backlog` под именем `av-dev-backlog`. Путь к `backlog.py`
переведён с фиксированного `~/.claude/...` на `$CLAUDE_PLUGIN_ROOT`, чтобы
работать после установки плагина.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>