books/dovodka/СВЕРКА-РЕВИЗИИ-16-08.md
2026-08-20 03:54:54 +03:00

342 lines
34 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Сверка внутренней ревизии фазы Д с телом отчёта (16.08)
> Источники: `~/books/dovodka/revizia-fazy-D-11-08.json` (82 находки) и `priemka-D4-14-08.json` (49).
> Сверку делал отдельный агент. **Эти находки НЕ верифицированы автором отчёта исполнением** —
> их надо пере-проверить прежде, чем двигать на них выводы. Человекочитаемый вид — по просьбе
> владельца 16.08 (jsonl-транскрипт ему не нужен).
**Счёт:** всего 131 · отражено в отчёте 66 · **НЕ отражено 65**
---
## Находки, которых в отчёте НЕТ
### 1. [критично]
P13 — вердикт по H-1 (A6/A0) определяется двумя пачками прогона, объявленного «валидацией цепочки» и
судимого 11.08 по НЕ замороженному промту; паритет обвязок (П-4, paritet.py) для них не проверялся
ничем. Снятие этих двух пачек даёт пол n=13 sd 1.4058 → порог 1.0917 и A6/A0 1.0938, то есть
«ПЕРЕШЁЛ ПОРОГ» вместо печатаемого «ниже порога».
**Почему важно:** H-1 — гипотеза владельца «проблема в черновике». Отчёт печатает «НЕ УСТАНОВЛЕНА» (Д4.2, Д9.1, Д14.6
п.5), а Д14.11 отдельно говорит, что по ВЕРНОСТИ A6 не хуже переписа (+0.12). Переходит ли H-1
порог, решает необъявленное решение о том, считать ли валидационный прогон боевым замером — владелец
этого выбора не видел.
### 2. [критично]
P12 — пачка 69de717f3f осталась в замере, хотя её судила сессия, аннулированная за сравнение
вариантов. Снятие: пол claude n=15 sd 2.14 порог 1.54 → n=14 sd 2.21 порог 1.65; A3/A0 2.16 →
2.21; порог sol 3.65 → 3.89; A1B/A0 sol 4.74 → 4.81.
**Почему важно:** Двигает ВСЕ печатаемые числа обоих семейств, включая порог 1.65, против которого читается «A4
неотличим, разрыв 0.11». Норма «сессия, нарушившая протокол, аннулируется ЦЕЛИКОМ» — собственная
норма проекта, и её нарушение не объявлено (отчёт утверждает обратное, см. contradicted).
### 3. [важно]
P07 — унаследованный гейт честности пола itog_d4 не гоняет; на данных claude его вердикт — «ПОЛ
СМЕЩЁН, боевые числа снимаются» (систематический сдвиг +1.8 между наборами p1/p2).
**Почему важно:** claude — семейство, несущее ОБА CONFIRM фазы. Если бы объявленный гейт был прогнан, боевые числа
этого семейства снимались бы ДО чтения перевесов. Ни гейт, ни его вердикт в отчёте не упомянуты ни
разу.
### 4. [важно]
P42 — два пре-рег-правила о маржевом гейте противоречат друг другу: строка П-1 (:1070) велит
АННУЛИРОВАТЬ пачку семейства, не взявшего маржевый контроль; Д4.4 вместо этого лишь понижает его
вердикты до описательных. Код исполняет мягкое правило, выбор не объявлен девиацией.
**Почему важно:** Единственный CONFIRM фазы (H-2а «опровергнута») стоит на том, что Sol считается вторым семейством.
По буквальному П-1 его пачка аннулируется → остаётся одно семейство → «ЭСКАЛАЦИЯ К АДЪЮДИКАЦИИ», а
не CONFIRM. Д14.6 п.2 повторно опирается на «оба семейства перешли свой порог».
### 5. [важно]
P44 — клетки A4 и A1B оплачены при НУЛЕВОМ изменении текста (фиксер не исполнил ни одного указанного
места); контраст A4/A0 на 4 единицах из 31 равен нулю ПО ПОСТРОЕНИЮ, а не по замеру. Штатный
контроль «близнец» унаследованного рига (absjudge.py:687-696) itog_d4.py не гоняет.
**Почему важно:** A4 — «кандидат в прод» и прямой ответ на заказ :86-87. Ровно это вскрытие отчёт делает для
английского близнеца E4 (Д11.4: 12 из 16 побайтно равны E0, «вдвое дешевле» снято) и НЕ делает для
zh A4, чей вердикт «неотличим, разрыв 0.11» после этого читается иначе.
### 6. [критично]
R73 — прайор шума взят с ПОЛА, а не с контраста: замеренный контраст той же структуры в 1.40× шумнее
(sd 3.063 против 2.19 на border, пере-снято исполнением). Порог различимости во ВСЕХ проходах
строится из пола. Рядом лежит P40 (важно), утверждающая обратное направление: пол несёт
межсессионную компоненту, которой в контрасте нет по построению, то есть порог ЗАВЫШЕН.
**Почему важно:** Порог — решающее правило всей дуги: Д4 1.54/1.65, Д3 0.99/0.90, Д6 0.93, Д1 1.47, Д15 1.84, Д16
2.17. Две выжившие находки называют его смещённым в ПРОТИВОПОЛОЖНЫЕ стороны, и ни одна в отчёт не
попала — то есть калибровка порога не «консервативна», а неизвестна по знаку. Прямо задевает
положительные утверждения (E0/D0 перешёл, J0/D0 перешёл, «маржевый декой ПРОЙДЕН»).
### 7. [важно]
R03+R04 — axiscal.py: число «заражение» (:228) вычитает счёт ЦИТАТ из суммы ОСЕВЫХ БАЛЛОВ (разные
величины; Sol получает 32, цитируя в 13 раз гуще, то есть по прибору выходит «аккуратнее»); нулевой
модели нет вовсе, шансовый пол атрибуции различается у семейств в 4.5×. Проверено сегодня: в выводе
axiscal нет ни одной строки частоты срабатывания на случайном входе.
**Почему важно:** Это прямое нарушение собственной нормы фазы Д0.6 (:836-838) в самом свежем $0-классификаторе, и
именно на axiscal ссылается П-5 при выносе ТЕРМИН из НЕСУЩЕЙ суммы («axiscal показал, что посадок на
ТЕРМИН нет вовсе», :1108). То есть прибор без нулевой модели определил, какие оси несут вердикты
фазы.
### 8. [важно]
P19+P25 — донор декоя во ВСЕХ 62 пачках оси Д4 — арм A0, при пре-рег-норме «донор декоя уравнен по
армам». В каждой пачке лежит почти-копия A0 — знаменателя всех трёх первичных контрастов.
**Почему важно:** Отчёт объявляет ровно этот дефект у прохода `tier` (§9, :466-473) и специально чинит его в японской
ноге Д16 (:2466), но нигде не говорит, что ось Д4 — несущая ставку владельца — его повторила. Вместе
с P17 (связывание меток) это работающий канал деанонимизации базы сравнения.
### 9. [важно]
R76+R77 — правило Д0.4: «нижняя граница 95% ДИ» опирается на percentile-bootstrap среднего, тогда
как решающий тест рига — точный перестановочный; фактическое покрытие ДИ 0.92 при n=16/32, а не
0.95; правило требует ОБЕ границы внутри ±1.50 (то есть TOST, а названо non-inferiority), поправку
Холма не несёт, и его мощность нигде не посчитана (при равенстве армов шанс получить «НЕ ХУЖЕ» —
0.80…0.27 в зависимости от sd, для A6 при n=16 недостижим).
**Почему важно:** Д14.6 п.2 опирается на Д0.4, чтобы объявить исход по H-2а «тем же и ТВЁРЖЕ». Прибор, которым эта
твёрдость меряется, анти-консервативен и по построению смешивает α двух семейств вердиктов.
### 10. [важно]
P31+P32 — детектор адъюдикации отредактирован МЕЖДУ четвёртым и пятым ответом адъюдикатора и на
момент приёмки лежал незакоммиченным; второе условие правила П-1 («CONFIRM с пометкой: вынесен одним
семейством, подтверждён адъюдикацией») в коде не реализовано вовсе.
**Почему важно:** Эскалация A3/A0 — маршрут разрешения главной ставки владельца H-2б — разрешается только половиной
объявленного правила, а решающий детектор менялся после прихода части вердиктов. Отчёт называет
контроли адъюдикации дефектными (Д4.4), но именно эти два пункта не называет.
### 11. [важно]
P08+P15 — свод и селфтест восстанавливают текст ГРУБОГО декоя правилами посадки ЧУЖОГО пака: 62/62
меток не сходятся с полем sig ключа. Печатаемая доля «цитат не найдено» завышена вшестеро (без
CTRLdecoy у claude 0.8%, у sol 2.4% против печатаемых 5%); пункт годности пачки «цитата, которой нет
в своём варианте», в bad вообще не записывается (itog_d4.py:102-107).
**Почему важно:** «Замечаний годности 0» и строки контролей цитирования печатаются во ВСЕХ панелях фазы (Д3.2, Д6.2,
Д1.2, Д12.2) как доказательство исправности прибора. Межсемейный разрыв по точности цитирования в
текущей печати не виден вовсе.
### 12. [важно]
P30 — замок кассы снимается процессом, который его не ставил, без проверки живости PID: после 20
минут ожидания любой процесс снимает чужой ЖИВОЙ замок и покупает клетку повторно.
**Почему важно:** Это ровно класс двойной оплаты, ради которого замок заведён и который стоил эксп-22 верхней границы
невозвратной пере-оплаты ≤$0.846103. Отчёт при этом рекламирует «атомарный O_CREAT|O_EXCL-замок с
проверкой живости PID» (:824) — но это runs.py (журнал сессий), а не касса.
### 13. [важно]
R23 — материал оси Д6 подменён на другую книгу без единого артефакта слова владельца; закоммиченный
реестр требований по-прежнему называет исходную книгу, а улика R36 при этом зелёная.
**Почему важно:** На этой книге стоят ось Д6 и вся японская нога H-4 (Д16). Отчёт (Д6.0:1367) утверждает «Книга
заменена по слову владельца» — носителя у этого утверждения в репо нет, а единственный документ,
против которого валиден conformance-гейт, называет другую книгу.
### 14. [важно]
R70 — арм A1 получает втрое более слабое лечение на новой половине оси: банк на новых 16 единицах
срабатывает вдвое-втрое реже, медиана флагов падает с 3 до 1. (Смежно R57/R34: 5 оплаченных клеток
вернули вход ПОБАЙТНО, четыре из них — A1.)
**Почему важно:** Половина единиц, на которых меряется H-2а, лечена почти никак — результат «не хуже A0» на таком
материале означает в основном «мы почти ничего не сделали», а не свойство флагового контура. Отчёт
этой асимметрии половин оси не печатает.
---
## Находки, которым тело отчёта ПРОТИВОРЕЧИТ
### 1. R31 + R40 (оба «критично», опровергнуть не удалось, числа пере-сняты двумя агентами независимо):
канон-гейт — единственный источник «мест» для A1/A1B и A4 — на 78.4% состоит из срабатываний вида
«канон в выходе ЕСТЬ, просто реже, чем термин в исходнике» (74 флага: 16 «нет вовсе», 58 «есть, но
реже»); норма Д0.6 «всякий классификатор печатает частоту срабатывания на случайном входе» для
canon_gaps не исполнена.
**Отчёт говорит:** «Что ревью ОПРОВЕРГЛО (снято, чтобы не осталось в обороте). Канон-гейт `contour.py` подозревался в
том, что меряет не то… прибор специфичен в 2.4 раза и нулевую модель проходит… Подозрение снято;
остаётся мягкая правка формулировки флага.» Отчёт вынес в оборот ОДНУ сторону внутренне расколотой
ревизии: этим контролем опровергнута только R68, а R31 и R40 выжили, и именно они говорят, что вход
арма H-2а на 78% состоит из мест, которые чинить не надо.
**Якорь:** `docs/experiments/23-editor-tier.md:977-981`
### 2. P12 + P43: пачка 69de717f3f сессии, аннулированной за сравнение вариантов, НЕ пере-сужена и осталась
во всех числах; журнал карантина `annulled.txt` числит 11 файлов и 3 сессии против 15 файлов и 4
сессий на диске.
**Отчёт говорит:** «…аннулировано за нарушение протокола 4 сессии (16 пачек) плюс 2 отдельные пачки; все пере-сужены,
аудит транскриптов механический, у обоих семейств одинаковый.»
**Якорь:** `docs/experiments/23-editor-tier.md:1248-1250`
### 3. P03 («критично», механика воспроизведена, опровергнуть не удалось): порог различимости строится на n
ПОЛА (15) и применяется к средним по 31, 16 и 54 наблюдениям. При пороге, посчитанном на n самого
среднего, гейт чувствительности Sol ПРОЙДЕН (1.925/2.466 против +2.963), а A3/A0 sol 3.13 порог
2.541 ПЕРЕХОДИТ → П-1 даёт CONFIRM по H-2б обоими семействами. (P39 опровергла только атрибуцию
«дефект кода itog_d4» — весь риг делит на n пола, — но не арифметику.)
**Отчёт говорит:** «Sol не прошёл гейт чувствительности (маржевый декой +3.06 против своего порога 3.65). Его вердикты
по H-2а/H-2б понижены до описательных» и Д4.2 «A3/A0 = 2.21 (claude) и 3.11 (sol, свой порог 3.65
не перешёл)… НЕ ПОДТВЕРЖДЕНА». Находка процитирована в Д14.13:2357 одной строкой и нигде не
применена — то есть отчёт печатает вердикты, которые сам же несёт как перевёртываемые.
**Якорь:** `docs/experiments/23-editor-tier.md:1227-1229 (и 1184-1188)`
### 4. P42: по буквальной строке пре-рега П-1 семейство, не взявшее маржевый контроль (П-2), АННУЛИРУЕТСЯ
на пачке; Sol маржевый гейт не взял. Тогда по A1B/A0 остаётся одно семейство и вердикт —
«эскалация», а не CONFIRM.
**Отчёт говорит:** «H-2а … ОПРОВЕРГНУТА (CONFIRM). A1B/A0 = 3.53 (claude) и 4.73 (sol); оба семейства перешли СВОЙ
порог в одну сторону» — и повторно в Д14.6 п.2 «оба семейства перешли свой порог». Отчёт печатает
ОБА пре-рег-правила (:1070 и :1227), исполняет мягкое и нигде не объявляет этот выбор девиацией.
**Якорь:** `docs/experiments/23-editor-tier.md:1179-1182`
### 5. P19 + P25: донор декоя — арм A0 во всех 62 пачках оси Д4; норма «донор уравнен по армам» не
исполнена и нигде не объявлена невыполненной (в реестре её улика подменена гейтом чужого пака
verify23.py).
**Отчёт говорит:** Д0.6 печатает норму как принятую этой фазой: «Донор декоя уравнен по армам; судье запрещено
сравнивать варианты между собой и читать их рядом», а Д4.7 сводит контроли фазы в таблицу «пробел →
чем закрыт» без этой строки.
**Якорь:** `docs/experiments/23-editor-tier.md:830`
### 6. R09 (селфтест runs.py даёт 15 проверок, а не 16), P30 (замок КАССЫ снимается чужим процессом без
проверки живости PID), R49 (атрибуция судей ключуется на mtime, а всё дерево ~/books пере-штамповано
одной датой 2026-08-10 22:01).
**Отчёт говорит:** «Судейские сессии регистрируются ДО запуска (`eval/dovodka/runs.py`, кап 80, атомарный
`O_CREAT|O_EXCL`-замок с проверкой живости PID, селфтест 16/16). Гонка сессий по одному токену
механически невозможна».
**Якорь:** `docs/experiments/23-editor-tier.md:823-825`
### 7. P44: на 4 единицах из 31 клетка A4 побайтно равна A0 (фиксер не исполнил ни одного указанного
места), то есть часть «неотличимости» A4 от эталона получена по построению, а не замером.
**Отчёт говорит:** «A4 — кандидат в прод. Единственный арм, неотличимый от боевого по судье (разрыв 0.11 при пороге
1.65) и при этом поднимающий канон с 0.892 до 0.937… Это прямой ответ на заказ :86-87.» Ровно такое
вскрытие отчёт делает для английского близнеца E4 (Д11.4) и для zh A4 не делает.
**Якорь:** `docs/experiments/23-editor-tier.md:1214-1216`
---
## Инструменты, признанные негодными внутри ревизии
* promptdiff.py — R00 и R01, ОБА «критично», опровергнуть не удалось. СЕГОДНЯ ЗЕЛЁНЫЙ:
`eval/.venv/bin/python eval/dovodka/promptdiff.py en-ru` и `ja-ru` → EXIT=0, «ПАР-ПРОМПТЫ
КОНСИСТЕНТНЫ», необъявленных строк 0. Обе дыры живы в коде: `promptdiff.py:119` по-прежнему
`line.startswith(pref)` — хвост «объявленной» строки не проверяется ничем (а сам текст объявления в
ALLOWED утверждает «Остаток строки совпадает дословно»); отсутствующий файл РОЛИ не роняет гейт,
потому что `main()` перебирает `d.glob('*.md')` — падает только отсутствие всего каталога пары. Под
зелёным гейтом стоят ФД-B, ФД-G и обе новые оси.
* canon.py — R07 «важно» (снятая ревью классификация по-прежнему считается и пишется в артефакт).
СЕГОДНЯ ЗЕЛЁНЫЙ: EXIT=0. Дефект жив: прогон заново персистировал `~/books/dovodka/canon-
dissect.json` — те же 24 записи с полем `cls` (парафраз 19 / другой 4 / исчез 1) и полем `why` из
случайных слов окна ('этот','родов','дочь','её','Он'). То есть носитель-артефакт Д5, объявленный
«спецификацией канон-фиксера», продолжает отдавать машинно-читаемыми данными ту разметку, которую Д5
объявляет недействительной. ⚠ Побочный эффект моей проверки: canon.py перезаписал этот файл (mtime
15.08 22:44); содержимое совпадает с зафиксированным ревизией, потерь нет.
* material_ja.py — R05 «важно» (фильтр AI-меток объявлен механическим, кода нет; провенанса книги нет
ни одним артефактом) и R06 «важно» (приколка манифестом не исполнена). СЕГОДНЯ ЗЕЛЁНЫЙ: EXIT=0, 9
единиц из 9 разных глав. R05 ЖИВ: `AI直接使用`/`AI支援`/`生成AI` встречаются только в докстринге (:11-14),
кода фильтра нет, артефактов провенанса (n7233mn, дата публикации) нет. R06 в основном ПОЧИНЕН:
появился читатель манифеста (`units()` :151-154), `manifest-ja.json` на диске, потребители —
ja_axis.py, ja6.py, d7_self.py, bank.py.
* axiscal.py — R03 и R04 «важно» (заражение вычитает счёт цитат из суммы осевых баллов; нулевой модели
нет, шансовый пол семейств различается в 4.5×). СЕГОДНЯ ЗЕЛЁНЫЙ: EXIT=0. Дефекты живы: строка `:228`
по-прежнему печатает `заражение = off base`, а во всём файле нет ни одного упоминания случайного
входа / шансового пола. Норма Д0.6 в самом свежем $0-классификаторе не исполнена, при том что на
axiscal ссылается П-5 при выносе ТЕРМИН из несущей суммы.
* itog_d4.py — P03, P07, P08, P15, P44 (порог на n пола; гейт честности пола не гоняется; декой
восстанавливается чужими правилами посадки; контроль «близнец» не гоняется). СЕГОДНЯ ЗЕЛЁНЫЙ: EXIT=0
и печатает те самые вердикты — «A1B/A0 → CONFIRM», «A3/A0 → ЭСКАЛАЦИЯ К АДЪЮДИКАЦИИ», «A6/A0 → не
подтверждено ни одним семейством».
* contour.py --selftest — R48 «важно» (селфтест утверждает тавтологию и пропустил три из пяти
известных дефектов). СЕГОДНЯ ЗЕЛЁНЫЙ: EXIT=0, «ХАРНЕСС ГОДЕН». Сами дефекты, которые он пропускал
(Э-4, Э-5, Э-6), в отчёте объявлены и починены; тавтологичность проверок в отчёт не попала.
* runs.py --selftest — R09 «мелко» (заявлено 16/16, исполнение даёт 15) и R49 «важно» (атрибуция на
mtime пере-штампованного дерева). СЕГОДНЯ ЗЕЛЁНЫЙ: EXIT=0, «ЖУРНАЛ ГОДЕН». Отчёт (:824) продолжает
печатать «селфтест 16/16».
* sud.py --selftest — P18 и Д14.7 п.5 самого отчёта («на трёх осях из четырёх сертифицирует чужую
панель», зашит на армы d4). СЕГОДНЯ ЗЕЛЁНЫЙ: EXIT=0, «СУДЕЙСКИЙ ХАРНЕСС ГОДЕН» — то есть зелёный
вхолостую ровно так, как описано.
* paritet.py — P13 (для двух пачек прогона-валидации паритет обвязок не проверялся ничем) и оговорка
самой ревизии «сверяет файлы репо, а не отправленное». СЕГОДНЯ ЗЕЛЁНЫЙ: EXIT=0, «ПАРИТЕТ ОБВЯЗОК
СОБЛЮДЁН».
* conformance.py --final — R43 и R44 «критично» (12 строк-заголовков считаются требованиями с пустой
уликой, поэтому режим сдачи непроходим по построению; экранированный пайп в markdown-таблице уходит
в shell литералом, из-за чего R37 зелена всегда, а R55 вечно красная). СЕГОДНЯ КРАСНЫЙ, но по
ТРЕТЬЕЙ причине: EXIT=1 с «⛔ реестр отличается от закоммиченного» — то есть до структурных дефектов
дело даже не доходит. Отчёт несёт красноту гейта (Д11.6) и дефект парсера у R55 (Д8 п.12), но не
несёт того, что --final не может позеленеть ни при какой полноте пака.
* adjud.py — P00, P01, P02 «критично» (обрезка имён осей регексом; контроль сговорчивости не слепой;
посадкой считается любая цитата из декоя). ПОЧИНЕНО и отражено в отчёте (Д4.4 и Д14.8 Г-1…Г-4):
сегодня `adjud.py --controls` EXIT=0, «форма карточки классы не выдаёт — контроли пригодны». Не
отражены только P31 (детектор менялся после части вердиктов, незакоммичен) и P32 (второй половины
правила П-1 в коде нет).
* verify22.py — R26/R50/R61 «важно» (гейт чужого пака красный, число выведено из mtime). СЕГОДНЯ
ЗЕЛЁНЫЙ: `eval/.venv/bin/python eval/tenant_panel/verify22.py` → EXIT=0, «ВСЕ ЧИСЛА ОТЧЁТА
СХОДЯТСЯ». Эррата Э-14 отчёта соответствует состоянию на 11.08 и с тех пор устарела в лучшую
сторону.
---
## Итог сверки
Разобрал оба артефакта. Схема находок: revizia-fazy-D-11-08.json — 8 строк «checked» + 82 находки
(severity · title · evidence · consequence · fix · verdict{refuted, why}), 23 критично / 40 важно /
19 мелко, опровергнуто ревизией 15; priemka-D4-14-08.json — 4 строки + 49 находок (то же плюс поле
grounded, без fix), 10/26/13, опровергнуто 7. Итого 131 находка, из них 99 в классе критично+важно.
Главная поправка к постановке задачи: утверждение «ни разу не процитированы» верно про ПУТИ ФАЙЛОВ,
но не про содержание. Эррата Д0.11 (:898-981) прямо начинается словами «Ревью 82 находок … (67
выжили)» и разносит 14 из них по пунктам Э-1…Э-14; часть находок приёмки D4 разнесена по Д4.4,
Д14.8, Д5, Д11. По существу отражены 66 находок из 131, не отражены 65. Из «отражённых» шесть
существуют ТОЛЬКО как однострочный перечень в Д14.13 (:2353-2366) — секции, которая сама говорит,
что разбор не сделан: promptdiff-префикс, promptdiff-отсутствующий-файл, canon-классификация,
material_ja-фильтр, «порог на n пола» (P03) и «p1 строже p2» (P16). Из них P03 отчёт печатает как
перевёртываемый вердикт и всё равно печатает вердикт. Что зона заметила и не передала — 14 позиций
в поле missing, по убыванию: два вердикта по гипотезам владельца зависят от необъявленных решений о
составе пачек (P13 переворачивает H-1 в «перешёл порог»; P12 — оставленная пачка аннулированной
сессии двигает все числа обоих семейств); непрогнанный гейт честности пола снял бы боевые числа
claude — семейства обоих CONFIRM (P07); единственный CONFIRM фазы стоит на выборе между двумя
противоречащими пре-рег-правилами (P42); «кандидат в прод» A4 на 4 единицах из 31 нулевой по
построению (P44); калибровка порога названа двумя выжившими находками смещённой в ПРОТИВОПОЛОЖНЫЕ
стороны (R73 против P40) — то есть неизвестна по знаку; axiscal, определивший состав несущих осей,
не имеет нулевой модели (R03/R04). Семь мест, где тело отчёта прямо противоречит выжившей находке,
с якорями — в поле contradicted; самое тяжёлое: :977-981 объявляет подозрение к канон-гейту
«снятым», хотя этим контролем опровергнута лишь одна из трёх находок класса, а две критичные (R31,
R40) выжили и говорят, что 78% входа армов A1/A1B состоит из мест, которые чинить не надо.
Инструменты: из шести признанных внутри ревизии негодными пять сегодня ЗЕЛЁНЫЕ с живыми дефектами —
promptdiff.py (обе критичные дыры в коде на месте, `:119 startswith(pref)`), canon.py (артефакт по-
прежнему несёт снятые классы), material_ja.py (фильтра AI-меток в коде нет), axiscal.py (ни строки
про случайный вход), itog_d4.py; conformance.py --final красный, но по третьей причине. Починены и
отражены только контроли adjud.py (Д14.8) и verify22.py. Ничего не правил и не покупал; единственное
изменение на диске — canon.py при прогоне перезаписал ~/books/dovodka/canon-dissect.json своим же
прежним содержимым (24 записи, парафраз 19 / другой 4 / исчез 1).