добавлен REMAINING.md — остатки, открытые вопросы и принятые пределы

This commit is contained in:
av
2026-08-03 11:47:53 +03:00
parent 0eca206460
commit 404f20ae63
+137
View File
@@ -0,0 +1,137 @@
# Остатки и открытые вопросы
Состояние на 2026-08-03, после ввода `av-dev-tasks` и `av-dev-pipeline`
(коммиты `9219f4a``20dca29``0eca206`).
Плагины написаны, проверены тремя проходами ревью и починены по находкам. Но
**ни один из них ещё не подключён ни к одному проекту**, а часть работы
осознанно отложена. Здесь то, что осталось, — с причинами, потому что через
месяц причина забывается раньше факта.
## Что осталось сделать
Порядок примерно соответствует зависимостям: верхнее мешает нижнему.
### 1. Калибровка переписанных проходов
Все девять charter'ов ревью переписаны при выносе в плагин: предмет проверки
заменён ссылкой на раздел брифа. `references/calibration.md` самого плагина
требует при такой правке замерить, помогла ли она, — **замера нет ни одного**.
Оценка «проход всё ещё нашёл бы находку» получена рассуждением по текстам, и
ревьюер честно пометил её `Confidence: medium`. По правилам плагина такая
оценка не поднимается выше `major`.
Пробы готовые, синтетических не нужно — четыре реальные находки прошедшей
сессии healthlog:
- скелет из `null` затирает маршрут тренировки молча и необратимо;
- откат бинаря поверх новой схемы стартует без единого слова;
- канонизация внутри транзакции — 768 МиБ пика, 5.019 с удержания блокировки;
- `-1 >= -1` читается как «журнал разобран целиком».
Ожидаемый результат замера известен и его стоит проверить в первую очередь:
метод переносится, а **severity деградирует** — третья находка без слота под
представление данных и настройки хранилища превращается из `critical` с
прогнанным оракулом в условное наблюдение. Оркестратор реагирует на severity,
поэтому цена обобщения — не «не найдём», а «найдём и не почините».
### 2. Завести брифы
Скилл `av-dev-pipeline:project-brief` написан и собирает бриф из `CLAUDE.md`,
архитектуры, Taskfile и конвенций. Но брифов нет ни у healthlog, ни у jellybit,
а без них конвейер идёт в деградированном режиме: `critical` по основанию
«нарушен инвариант проекта» не присваивается.
При починке бриф заполнялся на обоих проектах для проверки контракта (841 и
734 строки) — эти заполнения были **черновыми, в скретчпаде**, и в проекты не
попали. Повторить и положить в репозитории.
### 3. Переезд healthlog на новый формат
`docs/backlog/``docs/tasks/` с `items/`, `PLAN.md`, `BACKLOG.md`,
`SPRINT.md`, `REJECTED.md`. Скилл `av-dev-tasks:adopt` для этого написан и
прогнан на **копии** живого беклога: 12 целей, 38 задач, 36 переименований
слагов из транслита в английские, 86 ссылок поправлено в 36 файлах, `check`
зелёный.
Переходное состояние после переезда известно числом: задач без цели — 0, без
двух критериев приёмки — 29. `check` при этом зелёный, но `sprint take` такие
задачи не возьмёт; закрывается порциями переоценки на сессиях.
Вместе с переездом придётся переписать то, что противоречит новой семантике:
раздел «Процесс» в `CLAUDE.md`, преамбулу `docs/plan.md` («свой приоритет»,
«беклог — что брать следующим») и строку «блокеры разбираются пачками» — по
новому определению блокер эскалируется немедленно, пачками разбираются вопросы.
### 4. Удалить проектные копии
После подключения плагинов в healthlog остаются два источника правды:
`.claude/skills/healthlog-task-pipeline/`, `healthlog-review-pipeline/` и девять
`.claude/agents/healthlog-review-*.md`. Проектные факты из них уезжают в бриф,
сами файлы удаляются.
У jellybit хуже: его скиллы называются `task-pipeline`, `review-pipeline`,
`task-batch`**ровно как в плагине**. Claude Code не переопределяет их, а
держит обе пары, так что короткое имя может увести в устаревшую проектную
копию, и молча. Тексты плагина зовут своё через пространство имён
(`av-dev-pipeline:review-pipeline`), но проектные копии всё равно надо удалять
при установке.
### 5. Перевод jellybit
Отложен сознательно: сперва обкатать на healthlog один-два спринта, потом
переносить. Иначе мы одновременно вводим непроверенный процесс и ломаем
работающий проект.
Объём: беклог с приоритетами `высокий/средний/низкий` без целей и спринтов,
одиннадцать ревью-агентов старого поколения (включая `idiom` и `negative`,
упразднённые в healthlog), три скилла с коллизией имён. Часть `capability-map`
живёт в памяти агента, а не в файле, — при переводе это надо материализовать.
## Открытые вопросы
**Что делать с `av-dev-backlog`.** В маркетплейсе сейчас оба плагина, и их
описания ловят один и тот же триггер («добавь задачу в беклог») — агент выберет
случайный. Пометить устаревшим, удалить из маркетплейса или оставить до
перевода jellybit, который пока на нём и живёт.
**Оставлять ли раздел `## Триггеры` в контракте брифа.** Он задумывался как
проектная конкретизация правила выбора профиля ревью, но при заполнении на
обоих проектах выродился в пересказ таблицы профилей самого скилла. Контракт не
запрещает скопировать общее правило, а слот, который заполняется копированием,
пользы не несёт.
**Название процесса.** Плагины названы, процесс — нет. Обсуждались кодовое имя
из Средиземья (`fellowship` / `council`, под стать `rivendell` и `umbar`),
нейтральная «каденция» и описательные варианты. Для плагинов выбрана функция
(`av-dev-tasks`, `av-dev-pipeline`), но у процесса как целого имени нет.
**Судьба `AGENTIC-TASKS.md`.** Черновик дизайна лежит в корне healthlog и не
закоммичен. Содержимое переехало в плагины, значит документ стал вторым домом
для тех же правил — а расхождение двух домов ровно то, против чего он сам и
написан. Либо удалить, либо сжать до истории решений («почему не Scrum», числа
первого замера, что и почему отвергнуто).
## Известные пределы — приняты, чинить не планируется
**Транзакции на несколько файлов нет.** POSIX её не даёт без журнала. Окно
сжато до цепочки `rename` без ввода-вывода, а всё, что в окне может разъехаться,
сделано производным и восстанавливается `check --fix` без потерь.
**Оракул в критериях приёмки проверяется эвристикой.** Число пунктов
проверяется жёстко, наличие оракула — по слову, и это **только замечание**.
В тексте прямо сказано, что проверено меньше, чем требуется, — притворяться тут
дороже, чем признаться.
**Recall прохода по конвенциям равен качеству конвенций проекта.** Своего
списка у него больше нет: критерий берётся из файла проекта. На проекте с
тонкими конвенциями проход почти пуст, и charter это признаёт вслух.
**Доменного словаря в брифе нет.** Charter'ы получают факты, но не термины;
словарь проход строит каждый раз заново из спек и архитектуры. Цена не
измерена.
**`adopt` не удаляет источники и не правит подписи ссылок.** Удалять чужое
молча нельзя, а подпись вида `[docs/backlog](docs/tasks/BACKLOG.md)` правится
глазами. И то и другое печатается в отчёте, а не проглатывается.