- DECISIONS.md (4040 строк, 65 тем) → decisions/, файл на тему плюс указатель; - буквенные метки решений заменены сквозными Р1–Р234, следствия получили префикс С при прежних номерах: схема букв выродилась до пятибуквенных и сломалась — `АЕАКЛ` была занята и темой 53, и темой 65; - 42 перекрёстные ссылки переписаны под новые номера и стали живыми; где номер означал тему, а слово стояло «решение», формулировка исправлена.
9.3 KiB
3. Брифа ревью нет — бриф это и есть канон (2026-08-03)
Что было
Контракт брифа — 413 строк, 13 разделов, отдельный файл docs/review-brief.md,
который каждый проход читает как истину. Заполнение на обоих проектах дало 841 и
734 строки, и REMAINING.md уже отметил, что часть разделов вырождается в
пересказ.
Разбор по разделам после решения Р6 (жёсткие пути) показал: посредник между агентом и файлом не нужен, когда путь известен. Восемь из тринадцати разделов дублируют канон или снимаются жёсткими путями.
Решено
Р9. Отдельного файла-брифа нет. Проектную конкретику проходам дают документы
канона напрямую, по жёстким путям. Формулировка владельца: «артефакты в docs и
должны стать частями брифа, а для ревью достаточно дать ссылки на эти
артефакты».
Причина: один факт — один дом. Бриф был вторым домом для паспорта, инвариантов и карты, а разошедшийся бриф хуже отсутствующего: он выглядит актуальным.
Р10. Заводится docs/security.md. Периметр первой строкой (целевой и
сегодняшний, если контур не развёрнут), недоверенный вход и его каналы, из чего
строятся пути и ключи, что разграничивает доступ, что чувствительнее чего, что
вне модели. Материал уже есть, но рассыпан: у healthlog — раздел
«Аутентификация» в architecture.md и строка про секреты в CLAUDE.md, у
jellybit — секреты в conventions/config.md. Периметра нет ни у одного, а
без него враждебный проход не выбирает между «открыт наружу» и «контур
доверенный».
Р11. review-journal.md → docs/review.md: журнал дефектов плюс настройка
конвейера под проект. Туда садится остаток брифа, который фактом о проекте не
является — типовые узлы, типовые ложноположительные, вопросы к проходам,
недоступно проверке.
Причина: все четыре — производные калибровки, и журнал им источник. ## Вопросы к проходам сам называет журнал главным источником; ### Перестали проверять сознательно требует ссылки на его запись.
Р12. Журнал расширяется до всех воспроизведённых дефектов с пометкой «проскочил / пойман ревью». Проверочный набор для калибровки — выборка по пометке.
Причина: пойманные дефекты с оракулом (768 МиБ пика, 5.019 с удержания блокировки) сегодня не сохраняются нигде, кроме отчётов триажа в архиве change, а они и есть лучшая опора для прохода — проектные, воспроизводимые, однажды оказавшиеся правдой.
Р13. Семантика гейта — в CLAUDE.md, расширением раздела «Команды». Чем
краснеет безусловно и почему, где логи, что означает исход, чего в гейте
намеренно нет, кто и когда обязан гонять дорогое вне гейта, что запускать
запрещено (с путями). Гейт краснеет не только в ревью — это факт о проекте.
Р14. Severity инвариантов дописывается в CLAUDE.md рядом с формулировкой.
Контракт брифа сам называл это лучшим исходом; жёсткие пути делают возможным.
Оговорка «выведена по обратимости» исчезает вместе с пересказом.
Канон после темы 3
CLAUDE.md что это, стек, инварианты с severity, команды,
семантика гейта, запреты, слоты
docs/
passport.md зачем и для кого; чем НЕ является; сценарии; референсы
architecture.md как сложено — обзор; окружение, внешние зависимости,
наблюдатель, характер потока
database.md схема хранилища; представление данных и настройки
с числовым значением (таймаут занятости, лимит тела,
режим журналирования, ретеншен)
security.md периметр первой строкой; недоверенный вход; из чего
строятся пути и ключи; разграничение; что вне модели
conventions/README.md + <тема>.md
research/README.md + <тема>.md наблюдения и измеренные числа с провенансом
adr/README.md + template.md + ADR-*.md
review.md настройка конвейера под проект + журнал дефектов
tasks/ av-dev-tasks
openspec/
config.yaml, specs/<capability>/spec.md, changes/archive/
Слотов нет у: docs/review-brief.md, docs/drafts/, docs/specs/,
docs/plan.md, BRIEF.md, docs/backlog/, docs/review-journal.md.
Что из этого следует
С13. Скилл project-brief растворяется. Заведение недостающих документов
канона — часть скилла старта/адаптации (тема 5,
требование Т1).
С14. Девять charter'ов переписываются второй раз. Сейчас каждый читает «из
раздела ## X брифа»; станет — из файла канона. Цена названа вслух: первая
переписка (вынос в плагин) осталась незамеренной — REMAINING.md, пункт 1.
Вторая делает замер по четырём реальным находкам healthlog обязательным, а не
желательным: два неизмеренных изменения подряд в том самом месте, где
присваивается severity.
С15. Теряется соседство фактов, и charter обязан сшивать. Контракт
настаивал, что замер становится находкой только рядом с настройкой: «768 МиБ
пика» — аномалия, лишь если известно, что запись лежит сжатой и распаковывается
целиком; «5.019 с удержания блокировки» — отказ соседа, лишь если известен
таймаут занятости. Теперь это research/ и database.md, и charter'ы ops,
adversary, reimpl обязаны прямо говорить «собери из этих двух», иначе проход
снимет верное число и честно понизит находку до гипотезы.
С16. Деградация становится поразрядной — и это лучше прежнего «нет брифа →
деградирует всё». Нет security.md — деградирует adversary; нет research/ —
числа неизвестны ops, adversary и reimpl; нет passport.md —
архитектурный проход теряет границу домена. Каждый проход пишет свою строку в
границы покрытия.
С17. Открытый вопрос из REMAINING.md закрыт: раздел ## Триггеры
удаляется вместе с брифом. Правило выбора профиля остаётся в скилле конвейера;
проектная конкретизация, если понадобится, — в docs/review.md.