diff --git a/docs/BACKEND_GATES_NOT_PROSE_SESSION_PROMPT.md b/docs/BACKEND_GATES_NOT_PROSE_SESSION_PROMPT.md index 5380a271..39941e99 100644 --- a/docs/BACKEND_GATES_NOT_PROSE_SESSION_PROMPT.md +++ b/docs/BACKEND_GATES_NOT_PROSE_SESSION_PROMPT.md @@ -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 Арм-конфиги: пере-снять и заставить гейт утверждать равенство — **состав РОВНО так, форма гейта — реши сам**