Absorb the contract session's prompt review: erratum keeps the TermStatus axis, chapter counter gets segment logic, frame scope and delta reads join the batch

This commit is contained in:
heaven 2026-08-16 18:09:37 +03:00
parent 6c5a23d096
commit 99b09fef6d
3 changed files with 34 additions and 8 deletions

View file

@ -40,8 +40,9 @@ D39.138): ядро контракта здорово, дефекты сосре
1. **`docs/research/28-contract-review.md` — ЦЕЛИКОМ, это носитель твоего задания.** Состав и порядок
батча — §5 · что резать — §5а · транспорт/сеть — §5б · решения владельца — §8 · форма модели
ошибок — §8 п.4 и §8а · инструкции лендинга — §8б. ⚠ Ревью-шапка приёмки в голове файла несёт
ПОПРАВКИ (важнейшая: К-10 закрывается «НЕ строить» — пофазность у главы на провод не выносить,
это следствие Б-0) — читать тело через неё.
ПОПРАВКИ (важнейшие: К-10 закрывается «НЕ строить»; Б-0/Б-11а/Б-23 добавлены ПОСЛЕ адверсариального
судейства исходной сессии — их основания проверяй строже, одна подмена уже опрокинута эрратой
16.08-г) — читать тело через неё.
2. **D39.138 п.2 (живой `docs/architecture/05-decisions-log.md`, с хвоста)** — ратификация решений.
При расхождении формулировок research/28 и ноты побеждает НОТА.
3. **Канон 0.2.3 + компаньон** (`docs/architecture/14-api-contract/`) — целиком, до правок: ты обязан
@ -60,10 +61,15 @@ D39.138): ядро контракта здорово, дефекты сосре
- **Порядок исполнения не косметика:** Б-1 (модель ошибок) — ПЕРВОЙ: от словаря кодов зависят
формулировки Б-2/Б-3/Б-8/Б-14а/§8а.
- **Б-0:** конвейер уходит с провода. `Progress` → один счётчик до ближайшей остановки, знаменатель —
КУПЛЕННЫЙ объём (после подписи банка полоса заново); `finalizing` снять из словарей (устная фраза
владельца, не норма — §8 п.15); `verify_bank``stop_for_signing` без упоминания следующей фазы;
`TermOrigin`/`TermStatus` с провода снять; `Unit` описать без «edit unit» и «1.9 на главу»;
из ВСЕХ описаний вычистить конвейерные слова — описания компилируются в JSDoc клиента.
КУПЛЕННЫЙ объём (после подписи банка полоса заново); **счётчик ГЛАВЫ — той же сегментной логикой**
(«сделано в текущем сегменте / всего в сегменте»), иначе дерево глав читает ноль всю черновую волну —
исходная жалоба К-10, снятие фаз её само по себе не лечит; `finalizing` снять из словарей (устная
фраза владельца, не норма — §8 п.15); `verify_bank``stop_for_signing` без упоминания следующей
фазы; `TermOrigin` снять/переименовать (`ruby` — паро-специфика, настоящая утечка); ⚠ **`TermStatus`
ОСТАВИТЬ осью** (эррата 16.08-г: это продуктовый «главный фильтр работы» экрана подписи, шов клиента
его уже потребляет) — переименовать лишь значения, читающиеся движковыми (`auto`); `Unit` описать без
«edit unit» и «1.9 на главу»; из ВСЕХ описаний вычистить конвейерные слова — они компилируются в
JSDoc клиента.
- **Б-1 — вариант B (§8 п.4 + §8а):** машинный `code` (двухуровневый: стабильный корневой +
расширяемый вложенный) + `request_id` (значение на сервере уже есть); `title`/`detail`
developer-facing, клиент НЕ показывает; серверная локализованная фраза — отдельным полем ТОЛЬКО
@ -75,6 +81,14 @@ D39.138): ядро контракта здорово, дефекты сосре
книга не стартует (D39.138 п.2з; в 0.2.3 поля НЕТ — заводишь ты). **К-13-остаток:** описание
`paused_reason` `:879` «null in every other state» противоречит ратифицированному «paused+null» —
поправить (D39.138 п.4).
- **Б-11а/§5б шаги 34 — В БАТЧ (заказ ПОВЕРХ §5: в его перечне Б-11а нет — дыра носителя, вписано
пост-ревью 16.08):** правило кадра «несёт применимую дельту ЛИБО счётчик + скоуп (id сущности +
версия), но не заставляет перечитывать коллекцию» — вместо нынешнего необязательного «сервер МОЖЕТ
склеивать»; форма дельта-чтения банка/замечаний `?after_version=` — контрактная (иначе «кадр банка
на главу = 372 МБ/прогон» встраивается в P7 и снимается второй ломкой; строка 186 маршрутизирует
семантику сюда).
- **`Idempotency-Key` — семантику решаешь ТЫ, не P7:** окно хранения, область ключа, ответ на повтор
с другими параметрами — записать в спеку; P7 только реализует.
- **Жанр — выкинуть** из `BookIntake` и `Book` (Б-23; остальные половины удаления — строка 184, не твои).
- **Экспорт остаётся** и получает состояние отказа (Б-4: `state` вместо булева `ready`, `failure_code`,
`expires_at`, эхо формата, правило доступа к ссылке — ПТ-34).
@ -104,8 +118,11 @@ D39.138): ядро контракта здорово, дефекты сосре
Точные имена полей и значений словаря кодов (класс 1 — из реальных причин `fail()` платформы, читай
код) · формы схем (пять конвертов списков на `allOf` — §5а «слить формально») · состав и глубина
резки §5а (мёртвые поля/кадры — с обоснованием на каждое) · как записать семантику сжатия и условных
чтений (шаги 12 §5бВ спеку, не в зонный док) · формулировки всех описаний · размер страницы
резки §5а (мёртвые поля/кадры — с обоснованием на каждое) · как записать сеть — РАЗВОДИ по
наблюдаемости, чтобы не упереться в Б-16: условные чтения (`ETag`/`If-None-Match`/304/`Vary`) —
нормативная спека, клиент это видит и обязан уметь; «включить gzip на edge» — эксплуатационное
примечание, не норма (Б-16 выносит требования деплоя из контракта) · формулировки всех описаний ·
размер страницы
замечаний: замера масштаба нет (500 выбрано без числа — открытый вход строки 183), нового числа не
выдумывай — оставь с оговоркой в компаньоне. Совет-приор (опровергается
аргументом): для правил, которые OpenAPI не выражает (межполевые инварианты, условная обязательность),

View file

@ -5,6 +5,7 @@
> ⚠ **Эррата 15.08 (D39.132):** D39.131 п.2(а) перечисляет полосу отказов «10 конфиг · 11 источник · 12 лок · 19 безымянный» — читать через D39.132 п.2(г): полоса ДОПОЛНЕНА **exit 13 = `schema_mismatch`** (~~обе зоны сошлись на числе независимо~~; ратифицирован направлением, ФИНАЛИЗИРОВАН приёмкой D39.134).
> ⚠ **Эррата 15.08-б (D39.134 п.2а, вписана по аудиту корпуса):** клейм «зоны сошлись на 13 НЕЗАВИСИМО» (строкой выше и в D39.132 п.2г) СНЯТ — платформа прочитала число из незакоммиченного дерева движка и сама это записала (`platform/internal/ingest/exit.go:63-64`); на силу ратификации не влияет.
> ⚠ **Эррата 15.08-в (D39.136 п.5):** форма контракт-ревью «фазный воркфлоу оркестратора» ОТМЕНЕНА словом владельца тем же днём — исполняет ОТДЕЛЬНАЯ СЕССИЯ со своим онбордингом (норма D39.120 п.2; оркестратор — автор части ратификаций 0.2.3, author≠reviewer); запущенная воркфлоу-фаза 1 остановлена, её результаты выброшены; промт — `docs/CONTRACT_REVIEW_SESSION_PROMPT.md`.
> ⚠ **Эррата 16.08-г (D39.138 п.2а, часть «TermStatus снять с провода»):** ОПРОКИНУТА пост-ревью АВТОРА отчёта research/28 (по заказу владельца, речек оркестратора уликами): обоснование Б-0 «ни один экран их не рисует» подменяло «экрана подписи ещё НЕТ» — ось статуса ПРОДУКТОВАЯ (спека `:1070-1072`: «главный фильтр работы» S5; шов клиента уже потребляет — `frontend/src/api/vocabulary.ts:159-163`). Читать так: ось `TermStatus` ОСТАВИТЬ, движковые слова значений переименовать в продуктовые; «`TermOrigin` снять/переименовать» (`ruby` — паро-специфика) — В СИЛЕ. Контекст метода: Б-0/Б-11а/Б-23 добавлены в отчёт ПОСЛЕ раунда адверсариального судейства сессии — их основания проверять строже (помечено в ревью-шапке отчёта).
> ⚠ **Навигация (актуализация 07.08, эра D39.1xx):** append-only-дисциплина (D23.3) означает, что
> НЕВЕРНЫЙ ФАКТ внутри старой ноты не переписывается, а получает эрратау — и тогда он опасен ровно
> тем, что грепающий его найдёт ПЕРВЫМ, а эрратау ниже может не дочитать. Поэтому поправки к фактам

View file

@ -44,6 +44,14 @@
> Ограничение метода (честно заявлено сессией в §7/§10): опровергатели — семейство Claude; кросс-СЕМЕЙНЫЙ
> проход — отдельный заказ. Решения §8 перенесены в D-лог нотой D39.138 (по §8б п.1); состав батча §5 —
> носитель для исполняющих сессий, строка бэклога 183.
> 6. **Пост-ревью автора отчёта (16.08, по заказу владельца — ревью выданных промтов):** ⚠ Б-0, Б-11а и
> Б-23 добавлены ПОСЛЕ раунда адверсариального судейства — единственные три буллета без опровергателя
> исходной сессии; их основания проверять строже. Уже опрокинуто одно: **«TermStatus снять с провода»
> (Б-0 п.2 рекомендации) — НЕВЕРНО**, обоснование «ни один экран не рисует» подменяло «экрана подписи
> ещё нет»: ось продуктовая (`:1070-1072` — главный фильтр S5; шов клиента потребляет,
> `vocabulary.ts:159-163`) — ось ОСТАВИТЬ, слова переименовать (эррата 16.08-г D-лога). Вторая дыра
> носителя: Б-11а не входит в перечень §5 — правило кадра (скоуп/дельта-или-счётчик) и `?after_version=`
> (§5б шаги 34) заказаны батчу поверх §5 (промт батча, правка 16.08).
## 0. Резюме