Как проводим аудит. Форму задал Макс 10.07.2026, дословно: «один аудит - это несколько аудитов от разных аггентов, потом анализ их мнение, summary». Здесь она записана как процедура — до этого жила только в чате, и каждый следующий аудит проводился заново по памяти.
Запуск — команда /audit <область>; агент линзы — .claude/agents/auditor.md. Этот документ
объясняет, почему процедура такая, и что делать с результатом.
Почему панель, а не один проход
Аудит одной головой упирается в две стены, и обе не лечатся усердием.
Контекст кончается. Область серьёзного аудита не помещается в одно окно: пока читаешь пятый файл, первый уже вытеснен. Отчёт получается про то, что попало в конец.
Мнение не бывает независимым от себя. Одна голова, посмотрев кодом на источники правды, дальше смотрит на детерминизм уже с оглядкой на найденное. Совпадение двух линз перестаёт быть сигналом — а именно совпадение и есть главный инструмент отсева.
Панель обе стены обходит: каждый аудитор тратит своё окно, и голоса собираются от тех, кто друг друга не слышал.
Линзы
Линза — угол зрения, не участок кода. Все аудиторы смотрят одну область разными глазами; делить область между ними бессмысленно, это была бы просто параллельная вычитка.
| Линза | Что ищет |
|---|---|
| источники правды | один факт с двумя владельцами |
| мёртвый код | легаси, недостижимое, задел, не ставший реализацией |
| фолбэки | тихая подмена вместо отказа внутри нашего кода |
| швы и слои | обход фасадов, DI мимо инъекции, запись в RunState мимо шины |
| детерминизм | реальное время, Random без seed, порядок коллекции в тике |
| тесты | ослабленные ради зелёного, отсутствующие на инварианте шва |
| контент против замысла | карточка ГДД врёт или код с ней разошёлся |
Три-пять на аудит. Меньше трёх — совпадения не с чем сверять; больше пяти — сведение само становится работой, которую некому проверить.
Сведение
Голоса сводятся, а не склеиваются. Отчёт, собранный конкатенацией, — это не аудит, а четыре аудита подряд.
- Совпадение двух линз — сильный сигнал, идёт первым.
- Находка без сценария отказа не проходит. Требование сценария («при каком входе выстрелит») стоит здесь ровно затем, что уверенный тон агента неотличим от правоты.
- Спорное перепроверяется руками до доклада.
- Строки «что не проверил» собираются от всех. Без них «чисто» неотличимо от «не смотрели» — и Максу это надо сказать прямо, а не спрятать за общим зелёным.
Куда девается результат
Аудит отвечает «что не так», а не «как перестроим». Дальше:
| Что нашли | Дом |
|---|---|
| дефект, который чиним сейчас | коммит; запись в журнал, если была развилка |
| дефект, который откладываем | 00-meta/tech-debt |
| расхождение кода с замыслом | implementation-status.md нужного кластера ГДД |
| проблема баланса | docs/balance-issues.md |
Ничего не чинится по ходу аудита. Аудитор без инструментов записи — это не ограничение, а условие: правка по дороге лишает Макса выбора, что делать с находкой, и смешивает диагноз с лечением.
Грабли
- Панель на пустяке — деньги на ветер. Для одной проверки хватает одного
auditorбез сведения. - «Ноль ссылок» ещё не «мёртвое». У нас бывает код-задел под описанный в ГДД замысел; сверься с дизайн-документацией, прежде чем звать легаси.
- Аудитор не знает, что решено вчера. Он видит дерево, а не наш разговор. Если область недавно перестраивалась, скажи об этом в задаче — иначе получишь находки про то, что уже осознанно так.
Владелец правды: .claude/agents/auditor.md (линза и правила вывода),
.claude/commands/audit.md (порядок запуска и сведения).