Files
avandClaude Opus 5 cbfae90f3f словарь: пять слов сняты, девять закрыты списком вместо оговорки «прижилось»
Проход упрощения уткнулся в один класс у всех пяти агентов: слово, живущее в
трёх-шести файлах разом. Правка в одном месте развела бы словарь, правка во
всех — уже не упрощение текста скилла. Каждый честно остановился и записал слово
в отчёт, и одни и те же слова всплыли в разных отчётах. Разобрано этим проходом.

Причина, по которой они вообще накопились, оказалась в самом уставе языка. Он
разрешал не переводить «термин, у которого нет точного русского эквивалента и
который в команде уже прижился». Проверить это нельзя: прижившимся выглядит
любое слово, встреченное трижды, — и ровно так рассудили пять агентов подряд,
каждый независимо. Оговорка заменена закрытым списком из девяти терминов с
колонкой «что называет»: интейк, триаж, провенанс, дедуп, чек-лист, дифф,
промпт, сущности OpenSpec, роды проходов ревью. Интейк оставлен потому, что
«заведение» называет создание файла, и слить их значит смешать две операции;
провенанс — потому что «источник» рядом называет саму запись, а не свойство
числа. Слово не из списка и не из таблицы имён вещей — находка, а не стиль.

Список заведён домом язык-словарь в language.md и копией в уставе doc-wording.
Копия обязательна: агент работает в репозитории проекта, где плагина может не
быть, и без списка предъявил бы интейк как англицизм.

Снято пять слов, 29 мест: конфляция → смешение, декорреляция → разведённость,
непоймание → почему не поймали, эвал-сет → проверочный набор, гайд →
руководство. Латинизм или калька при живом русском слове в каждом случае.

Разбор декорреляции показателен: проект уже владел нужным словом — «агенты
разведены по глубине», «разведены по охвату» — и держал рядом латинский синоним
того же понятия. Это не англицизм, а второй дом для слова.

Непоймание снято ещё и потому, что форма журнала дефектов, которую канон кладёт
в проекты, спрашивает «Почему не поймали», а проза рядом называла это «причиной
непоймания». Скелет и проза о скелете говорили разными словами.

Снятое записано вместе с оставленным, в одном списке и с заменой каждого. Иначе
слово возвращается: из текстов оно уходит, но ничто не мешает следующему проходу
завести его заново — оно ведь короткое и точное на вид.

Тема 32 в DECISIONS.md, следствия 124-126. Нумерация правил в уставе doc-wording
сдвинута: словарь встал шестым, жаргон и далее уехали на единицу.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 15:35:06 +03:00

9.0 KiB

Журнал дефектов

Артефакт проекта, а не плагина: файл живёт в репозитории — docs/review.md, слот канона av-dev-pm. Здесь описано, зачем он и какой формы, потому что без него конвейер не учится: находки закрываются, а почему их не поймали — забывается, и один и тот же класс проскакивает второй раз.

Тот же файл держит настройку конвейера под проект — типовые узлы, типовые ложноположительные, вопросы к проходам, недоступно проверке. Это не соседство по случаю: все четыре раздела — производные калибровки, а журнал им источник.

Что туда попадает

Воспроизведённый дефект — с пометкой проскочил или пойман ревью. Записывается сразу, а не ретроспективно: со временем теряется не сам факт, а то, почему дефект не поймали, — единственное, ради чего журнал существует.

Пометка делит журнал на две выборки с разным назначением:

  • проскочил — проверочный набор для калибровки конвейера. Реальный промах сильнее синтетической пробы: синтетические смещены в сторону тех, которые уже умеешь придумывать;
  • пойман ревью — прецеденты с оракулом. Самая сильная опора, какая у прохода бывает: проектная, воспроизводимая и однажды уже оказавшаяся правдой. Без журнала они остаются только в отчётах триажа в архиве change, где их никто не ищет.

Реализованные задачи и принятые решения сюда не пишутся: у них есть коммит, спека и docs/adr/.

Отдельно сюда попадают решения о составе прогонов: перестали звать проход, понизили профиль правилом, сузили класс проверяемого. Не потому, что это промах, а потому, что здесь лежит цена: если что-то теперь проскочит, первый вопрос — «не тот ли это класс, который мы перестали проверять».

Каждое такое решение обязано получить строку в подразделе «Перестали проверять сознательно» раздела «Недоступно проверке» того же файла. Журнал хранит «почему тогда так решили», раздел настройки — то, во что смотрит каждый прогон. Решение, оставшееся только в журнале, в границы покрытия не доедет.

Форма записи

Это дом формы, и у него есть копия. Скелет docs/review.md, который кладёт в проект av-dev-pm (skills/canon/references/skeletons.md), повторяет её дословно — он уезжает в репозиторий и обязан там что-то говорить. Правка формы здесь обязана тянуть правку скелета и запись в журнал версий канона; иначе проекты продолжат писать по старой форме, а конвейер — ждать поля, которого нет. Дословность сверяет scripts/copies.py маркетплейса по маркерам ниже — но запись в журнал версий он не проверит, это остаётся на человеке.

## ГГГГ-ММ-ДД — <краткое последствие> [проскочил|пойман]

- **Где:** путь:строка либо «конвейер, а не код»
- **Симптом:** как обнаружилось, кем и когда
- **Причина:** что на самом деле было не так
- **Чем воспроизведён:** тест, команда, замер — с числами
- **Почему не поймали:** только для проскочивших — какой проход обязан был найти
  и что ему помешало
- **Что меняем:** правило прохода, шаг гейта, конвенция, факт в документе
  проекта — либо «ничего, цена поимки выше цены дефекта»

Пункт «чем воспроизведён» отличает запись от байки: без него на неё нельзя сослаться как на оракул. Регрессионный тест, написанный вместе с починкой, годится наравне с независимым экспериментом — он исполняемый и падает на старом коде. Слабее он ровно в одном: сформулирован уже зная ответ, и это отмечается словом.

Последний пункт важнее остальных. Вывод «ничего не меняем» — законный исход: не всякий дефект стоит того, чтобы усложнять ради него ревью каждой задачи.

Куда ведёт запись

Три адреса, и выбор между ними — половина ценности журнала:

  • в документ проекта — если проход не мог знать факта. Адрес зависит от рода факта, и карта их всех — project-facts.md: объём и измеренное число → docs/research/; настройка хранилища → docs/database.md; что необратимо и какой шаг гейта красит безусловно → CLAUDE.md; периметр и недоверенный вход → docs/security.md. Вопрос конкретному проходу, если промах лечится не фактом, а заданным вопросом, → раздел «Вопросы к проходам» того же docs/review.md. Самый частый адрес и самый дешёвый. Прежде чем править charter, проверь, не хватит ли факта или вопроса: charter общий для всех проектов, документ — про этот.
  • в конвенции или в правило линтера — если свойство выражается детерминированно (процедура — promote.md).
  • в charter прохода — если сломан метод, а не знание. Правка charter'а меняет поведение во всех проектах, поэтому она требует калибровки (calibration.md) и обоснования, почему это не лечится фактом в документе проекта.

Что журнал даёт конвейеру

  • пробы для калибровки — выборка по пометке проскочил;
  • готовые оракулы — выборка по пометке пойман ревью: находка того же класса подтверждается ссылкой на запись, а не рассуждением;
  • основание для правил конвейера — требование называть запущенные проходы поимённо, отказ от чисел, производных от размера корпуса, и правило очереди для меряющих проходов выведены из конкретных записей, а не из общих соображений;
  • счётчик обратимости решений — сузили состав проходов и через месяц поймали дефект ровно того класса, который перестали проверять: решение пересматривается фактом, а не спором.