092d07c..88c5d97, клон встал на ту же ревизию и видит av-dev-pm и av-dev-pipeline. Предусловие переезда healthlog снято: подключать теперь есть что. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
8.9 KiB
Остатки, открытые вопросы и принятые пределы
Состояние на 2026-08-03, после разбора двенадцати тем и 16 коммитов реализации
(ad1779b … 885981c).
План работ — TODO.md. Решения с причинами — DECISIONS.md. Здесь то, что не является работой из плана: незакрытые риски, честно принятые пределы и вопросы, у которых пока нет ответа.
Главный незакрытый риск
Калибровка не сделана, а charter'ы переписаны трижды.
Первый раз девять charter'ов правили при выносе в плагин: предмет проверки
заменили ссылкой на раздел брифа. references/calibration.md требует при такой
правке замерить, помогла ли она, — замера не было. Второй раз их переписали
коммитом 9cef452: ссылка на раздел брифа заменена путём документа канона.
Третий — коммитами 0eab075 и следующим, по находкам ревью: adversary, ops,
reimpl, rubric и triage правились ещё раз.
Три неизмеренных изменения подряд в том самом месте, где присваивается severity. Пробы готовы и синтетических не нужно — четыре реальные находки прошедшей сессии healthlog:
- скелет из
nullзатирает маршрут тренировки молча и необратимо; - откат бинаря поверх новой схемы стартует без единого слова;
- канонизация внутри транзакции — 768 МиБ пика, 5.019 с удержания блокировки;
-1 >= -1читается как «журнал разобран целиком».
Ожидаемый исход известен и его стоит проверить первым: метод переносится, а
severity деградирует. Третья находка без слота под представление данных и
настройки хранилища превращалась из critical с прогнанным оракулом в условное
наблюдение. Ровно ради этого случая канон развёл числа (docs/research/) и
настройки (docs/database.md) по разным домам и обязал проход их сшивать —
но работает ли обязанность, не проверено. Оркестратор реагирует на severity,
поэтому цена — не «не найдём», а «найдём и не починим».
Замер стоит перед переездом jellybit и блокирует его (решение 39).
Что ещё не сделано
Список работ — в TODO.md. Здесь только то, что стоит держать в голове отдельно:
- Плагины отправлены, но ни к одному проекту не подключены. 17 коммитов
ушли на origin, клон маркетплейса обновлён до
88c5d97и видитav-dev-pmиav-dev-pipeline— то есть подключать теперь есть что. Первым делом это делает healthlog, по разделу 2 плана. - Ни один скилл не прогонялся на живом проекте.
docs.pyпрогнан на healthlog и jellybit в режимеcheckи находит осмысленный дрейф;init,canon adopt,canon upgradeи скиллdocsне исполнялись ни разу. - Проектные копии в healthlog и jellybit. Два
.claude/skills/и одиннадцать.claude/agents/старого поколения. У jellybit хуже: его скиллы названыtask-pipeline,review-pipeline,task-batch— ровно как в плагине. Claude Code не переопределяет их, а держит обе пары, так что короткое имя может увести в устаревшую копию, и молча.
Открытые вопросы
Как проверять, что канон не разошёлся с проектами после upgrade. canon check сверяет версию, но не то, что миграционные записи journal'а применены
верно. Проект может нести "canon": 2 и не иметь того, что версия 2 требовала.
Форма ADR при пересмотре решения. Правило «старая запись получает статус
заменено на» требует, чтобы кто-то заметил, что новое решение отменяет старое.
Механической проверки нет, а принуждённое отрицание на шаге синка спрашивает про
adr/ вообще, а не «не отменяет ли это что-то из существующего».
Что делать с av-dev-backlog после перевода jellybit. Помечен устаревшим и
переписан так, чтобы не ловить триггер. Удалять его из маркетплейса или оставить
как есть — решится, когда jellybit переедет.
Известные пределы — приняты, чинить не планируется
Транзакций на несколько файлов нет. POSIX её не даёт без журнала. Окно сжато
до цепочки rename без ввода-вывода, а всё, что в окне может разъехаться,
сделано производным и восстанавливается check --fix без потерь.
Оракул в критериях приёмки проверяется эвристикой. Число пунктов проверяется жёстко, наличие оракула — по слову, и это только замечание. В тексте прямо сказано, что проверено меньше, чем требуется.
Recall прохода по конвенциям равен качеству конвенций проекта. Своего списка
у него нет: критерий берётся из docs/conventions/. На проекте с тонкими
конвенциями проход почти пуст, и charter это признаёт вслух.
Доменного словаря в каноне нет. Проходы получают факты, но не термины; словарь строится каждый раз заново из спек и архитектуры. Цена не измерена.
Смысловые дубли ловит только агент. docs.py видит раскладку, но не то, что
docs/specs/recognition.md описывает то же, что capability recognition.
Граница объявляется вслух в каждом отчёте — это единственная защита от
«соблюдено» на проекте с тремя лишними файлами.
Приёмщик и исполнитель совпали. Граница «пайплайн не закрывает задачу» снята
сознательно (решение P); три защиты из раздела «Стимулы» держатся теперь текстом,
а не механикой. Реальные опоры — сохранённый отчёт триажа, SPRINT.md под git и
reopen. Это записано в самом скилле, а не спрятано.
Копия правила в шаблонах проекта. adr/README.md и review.md уезжают в
репозиторий и обязаны там что-то говорить, поэтому правило канона в них
копируется намеренно. Расхождение копии с домом ловит scripts/copies.py —
но только у помеченной копии, и только внутри маркетплейса. Остаётся на
человеке двое: пометить копию и завести запись в журнал версий, когда правка
уже уехала в проект.