138 lines
11 KiB
Markdown
138 lines
11 KiB
Markdown
# Остатки и открытые вопросы
|
||
|
||
Состояние на 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)` правится
|
||
глазами. И то и другое печатается в отчёте, а не проглатывается.
|