Split the ingest-chunker check into a live parity guarantee and a divergence pin, and name the row the way the test files already do

This commit is contained in:
heaven 2026-09-07 13:22:41 +03:00
parent d3eb56b9f1
commit bd652fd4ad

View file

@ -215,11 +215,27 @@ off-vocabulary ответ модели — только `Log.WarnContext` (`pipe
`chunkerVersion` ⇒ двигает снапшот обеих волн ⇒ перекупает книгу. Он приземлится в окне перенарезки, чужим
паком.
**Правильная форма:** тест утверждает, что ингест и чанкер **СЕГОДНЯ РАСХОДЯТСЯ** на названных формах, и
краснеет ровно тогда, когда фикс приземлится, заставляя фиксера его перевернуть. Красный тест в `main` не
ложится (`battery` включает `test`), а скип — это ровно класс `D39.208` п.5, поэтому «пусть пока падает» и
`t.Skip` не годятся оба. Имя теста и его комментарий обязаны называть строку **346** — иначе через месяц
никто не поймёт, почему утверждается дефект.
**Правильная форма — ДВА теста, и поодиночке ни один не годится** (оба в пакете `chunk`: предикаты не
экспортированы). ⚠ Испр. 07.09 по второму рубежу: первая редакция заказывала ОДИН тест, а один пин
расхождения — это второе описание бага, а не гарантия.
- **(A) ПАРИТЕТ — живая гарантия, зелёная и сегодня, и после фикса.** На НОРМАЛЬНЫХ формах (обычный
заголовок вида `第三章 正常标题`, номера подряд, длина в пределах стража) предикат ингеста и разбор чанкера
отвечают ОДНО И ТО ЖЕ, а книга, прогнанная `IngestEncoded``SplitChunks`, несёт непустой `Heading` на
КАЖДОЙ главе. Такого теста в репозитории нет ни одного, и именно он останется жить, когда расхождение
закроют. Без него (B) ничего не гарантирует.
- **(B) ПИН РАСХОЖДЕНИЯ — утверждать ВСЕ стороны, иначе частичный фикс пройдёт молча.** Для `第零章:序幕`:
ингест дал три главы **И** `chunks[0].Heading` пуст **И** текст чанка начинается сырым маркером **И**
`第一章` рендерится «Глава 1» при `Chapter == 2` (пользовательская половина — она и есть титульный хаос).
Для 84-рунной строки: страж ингеста говорит «не заголовок», а разбор чанкера — «заголовок, номер N».
Текст падения обязан объяснять СЛЕДУЮЩЕМУ, что произошло, в форме «расхождение, которое пинует строка
346, закрылось — сложи этот тест в паритетный».
⚠ Красный тест в `main` не ложится (`battery` включает `test`), а скип — ровно класс `D39.208` п.5: «пусть
пока падает» и `t.Skip` не годятся оба, поэтому (B) утверждает СЕГОДНЯШНЕЕ состояние и зелен.
**Строку 346 называй КОММЕНТАРИЕМ и текстом падения, а не именем функции** — конвенция репозитория
именно такая: ссылок на строки бэклога в именах тестов 0, в комментариях тест-файлов — 55 файлов из 204
(счёт 07.09).
### 4.5 Арм-конфиги: пере-снять и заставить гейт утверждать равенство — **состав РОВНО так, форма гейта — реши сам**