Land batch B0 in the orchestrator zone: the contract canon moved to 0.9.0 and five carriers still taught 0.8.0

This commit is contained in:
heaven 2026-09-01 23:41:41 +03:00
parent f19153556a
commit f11bdbb53a
5 changed files with 8 additions and 9 deletions

File diff suppressed because one or more lines are too long

View file

@ -10,7 +10,7 @@
- [product-requirements.md](product-requirements.md) — реестр «что продукт обязан уметь»: производное живого брифа владельца и его находок, статусы сверены кодом.
- `architecture/` — синтез и контракты:
- [05-decisions-log.md](architecture/05-decisions-log.md) — **источник истины по решениям**: ратифицированный контракт, при конфликте побеждает он. Дисциплина чтения (грепать номер, не читать целиком, баннер прежде тела) — в каноне `../CLAUDE.md`, здесь не дублируется. Статус и тело ЛЮБОГО номера одним хопом — реестр [05-decisions-index.md](architecture/05-decisions-index.md) (все ноты, колонка тем для грепа «какой закон по X»).
- [09-target-architecture.md](architecture/09-target-architecture.md) — целевая 7-слойная архитектура (статус стройки — шапка-таблица; §3 — карта находок H/L) · [10-prompt-architecture.md](architecture/10-prompt-architecture.md) — промпт-слой · [12-go-style-notes.md](architecture/12-go-style-notes.md) — норматив общности §0 · [13-tech-debt-anchors.md](architecture/13-tech-debt-anchors.md) — якоря техдолга + археология выселенных строк бэклога §Б-* (справочник к бэклогу, НЕ трекер) · [14-api-contract/](architecture/14-api-contract/) — **контракт API v0 фронт↔платформа (D39.99)**: нормативная спека OpenAPI 3.1 (типы фронта генерятся из неё) + компаньон-README с провенансом каждой строки (легенда — в нём самом; зонная копия `frontend/docs/api-contract/` — байт-зеркало, сверять при лендинге).
- [09-target-architecture.md](architecture/09-target-architecture.md) — целевая 7-слойная архитектура (статус стройки — шапка-таблица; §3 — карта находок H/L) · [10-prompt-architecture.md](architecture/10-prompt-architecture.md) — промпт-слой · [12-go-style-notes.md](architecture/12-go-style-notes.md) — норматив общности §0 · [13-tech-debt-anchors.md](architecture/13-tech-debt-anchors.md) — якоря техдолга + археология выселенных строк бэклога §Б-* (справочник к бэклогу, НЕ трекер) · [14-api-contract/](architecture/14-api-contract/) — **контракт API v0 фронт↔платформа (D39.99)**: нормативная спека OpenAPI 3.1 (типы фронта генерятся из неё) + компаньон-README с провенансом каждой строки (легенда — в нём самом; зонная копия `frontend/docs/api-contract/` ОТСТАЛА на `0.2.3` при каноне `0.9.0` и зеркалом сегодня НЕ является — зона заморожена, синк при разморозке; читать ТОЛЬКО канон).
- Топикальные входы (D39.126; НЕ источники истины, при конфликте побеждает D-лог): [15-money-path.md](architecture/15-money-path.md) — деньги от гранта до settle одним маршрутом · [16-events-emitter.md](architecture/16-events-emitter.md) — сборка-норматив эмиттера шва — обязательное пре-чтение перед кодом эмиттера · **[17-seam-inbound-law.md](architecture/17-seam-inbound-law.md) — закон ВХОДНОЙ двери шва движок↔платформа — РАТИФИЦИРОВАН D39.156: семь пунктов дисциплины, двери встают паками без нового решения владельца** · **[18-bank-ontology.md](architecture/18-bank-ontology.md) — онтология банка памяти (РАТИФИЦИРОВАНА D39.158): три роли носителей, единственные писатели, дисциплина проекции — обязательное пре-чтение перед кодом, трогающим банк или его артефакты** · [STACK.md](STACK.md) — карта «роль → модель → конфиг → квирки».
- Исторические, читать через ⚠-баннеры: [01-decisions.md](architecture/01-decisions.md) (Р1Р10) · [02-mvp-plan.md](architecture/02-mvp-plan.md) · [03-implementation-notes.md](architecture/03-implementation-notes.md) · [04-unhappy-paths.md](architecture/04-unhappy-paths.md) · [06-memory-risk-registry.md](architecture/06-memory-risk-registry.md).
- `experiments/` — эмпирика полигона: [00-provider-quirks.md](experiments/00-provider-quirks.md) — **читать перед любым вызовом провайдера**; [08-cost-model-v2.md](experiments/08-cost-model-v2.md) — денежная модель; [09-pilot-protocol.md](experiments/09-pilot-protocol.md) — пилот Ф2.5; остальные — отчёты экспериментов. ⚠ **У каждого отчёта статус в его ревью-шапке: читай шапку прежде тела** — она первична и говорит, ратифицированы выводы или заморожены.

File diff suppressed because one or more lines are too long

View file

@ -3,10 +3,9 @@
батч 0.3.0 — D39.138, 16.08.2026, оркестратор №17;
синк с платформой 0.4.0 — 20.08.2026, контрактная сессия; РАТИФИЦИРОВАН D39.152, 20.08.2026, оркестратор №18)
СТАТУС: РАТИФИЦИРОВАН как контракт API v0 по 0.9.0 включительно (D39.169; перечень миноров и их
СТАТУС: РАТИФИЦИРОВАН как контракт API v0 по 0.9.0 включительно (D39.180; перечень миноров и их
провенанс — ниже по файлу, здесь НЕ дублируется). Нормативная поверхность — openapi.yaml РЯДОМ.
⚠ Зонная копия frontend/docs/api-contract/ ВРЕМЕННО ОТСТАЁТ (0.2.3 при каноне
0.8.0) — ратифицировано D39.142 п.5 на время фриза фронта; синк байт-в-байт + перегенерация типов =
⚠ Зонная копия frontend/docs/api-contract/ ВРЕМЕННО ОТСТАЁТ (0.2.3 при каноне 0.9.0 — СЕМЬ миноров) — ратифицировано D39.142 п.5 на время фриза фронта; синк байт-в-байт + перегенерация типов =
первое касание зоны при разморозке; после него правило прежнее: расхождение = дефект лендинга.
Генерация типов фронта после этой ратификации идёт из ЭТОЙ копии.
@ -66,7 +65,7 @@ cmp-сверка обязательна (D39.138 п.3).
> причину, вместо молчаливого обрыва, который клиент отвечает переподключением в `401`. Кадр
> СОЕДИНЕНИЯ: несёт id последнего исторического кадра и своего номера не потребляет, поэтому вход
> заново продолжает ровно с места остановки. Приехал ОДНИМ лендингом с платформенным паком P11** ·
> **0.9.0 (ратифицирован №20 31.08 по пингу зоны ДО стройки, заленджен №21 с паком P12) — ВТОРАЯ
> **0.9.0 (D39.180; ратифицирован №20 31.08 по пингу зоны ДО стройки, заленджен №21 с паком P12) — ВТОРАЯ
> граница пересчёта `chapters_done` и непрозрачный `Book.shape_epoch`, которым она себя называет;
> провенанс — §2.22**.
> Дом канона — этот каталог;

View file

@ -53,7 +53,7 @@
| ID | Требование (источник) | Статус | Носитель / доказательство |
|---|---|---|---|
| ПТ-20 | Ридер-IDE: VS Code-подобный фронт агентного перевода (V0-п.20/23) | ⭕ | research/16 принят (D29); строки 6971; F3-brief — D29 п.3. Ф3 ОТКРЫТА 02.08 (D39.81): фронт-сессия живёт на моках; контракт API ратифицирован (D39.99; ⚠ версии в этой ячейке протухали ЧЕТЫРЕЖДЫ — испр. 30.08 аудитом доков: **канон стоит на 0.8.0** (греп `^ version:` в `openapi.yaml`; ⚠ номер строки и само число двигаются минорами — сверяй файлом), и четыре минора прошли за трое суток — **0.5.0** (D39.161: снос отменённой пер-термной модели + дверь приёма правок банка, строка 206 закрыта), **0.6.0** (D39.162/D39.163: сквозная полоса прогресса, строка 200 закрыта, `Progress.stage` вторым исключением границы), **0.7.0** (D39.166: покупка пере-прохода), **0.8.0** (D39.169: кадр `session_ended` — отзыв сессии гасит открытый поток и НАЗЫВАЕТ причину). ⚠ 30.08 РАТИФИЦИРОВАН минор **0.9.0** (вторая граница пересчёта `chapters_done` + непрозрачный `shape_epoch` в проекции `Book`) — он придёт с лендингом пака P12, до него канон 0.8.0. Открытыми по контракту остаются хвост строки **203** и строка **241** (самопротиворечие канона на дочитанной книге). Зеркало ФРОНТА ратифицированно отстаёт на 0.2.3 — D39.135, синк при разморозке. ⚠ Урок ячейки: версия здесь живёт хуже всего — при следующем миноре правится ПЕРВОЙ); платформа построена до читающей поверхности и денежной двери: вход/кредиты (⚠ КВОТ нет ни строки кода, и по D39.176 п.1 не будет — продуктовых квот нет, фри-тир-лимиты не проектируются; ретеншен/свип остаются инженерной гигиеной) (P0P3) + раннер P4 (D39.123) + интейк `POST /books` со стоп/резюмом (D39.130) + exit-словарь/фолд юнитов/дев-стенд (P6, D39.132); фронт — S3.5S4 приняты (оболочка · слой данных · i18n · путь «файл→прогресс», D39.127/129/135), **зона ЗАМОРОЖЕНА, и с 17.08 морозится ДАЛЬШЕ лендинга P7** (D39.136 п.2 + D39.147: сначала движок и платформа до «работает и отдаёт результат», фронт накручивается на готовую функциональность) |
| ПТ-20 | Ридер-IDE: VS Code-подобный фронт агентного перевода (V0-п.20/23) | ⭕ | research/16 принят (D29); строки 6971; F3-brief — D29 п.3. Ф3 ОТКРЫТА 02.08 (D39.81): фронт-сессия живёт на моках; контракт API ратифицирован (D39.99; ⚠ версии в этой ячейке протухали ПЯТЬЖДЫ — испр. 01.09 ревизией доков (прежде 30.08 аудитом): **канон стоит на 0.9.0** (греп `^ version:` в `openapi.yaml`; ⚠ номер строки и само число двигаются минорами — сверяй файлом, не этой ячейкой), и пять миноров прошли за четверо суток — **0.5.0** (D39.161: снос отменённой пер-термной модели + дверь приёма правок банка, строка 206 закрыта), **0.6.0** (D39.162/D39.163: сквозная полоса прогресса, строка 200 закрыта, `Progress.stage` вторым исключением границы), **0.7.0** (D39.166: покупка пере-прохода), **0.8.0** (D39.169: кадр `session_ended` — отзыв сессии гасит открытый поток и НАЗЫВАЕТ причину). ⚠ 30.08 РАТИФИЦИРОВАН минор **0.9.0** (вторая граница пересчёта `chapters_done` + непрозрачный `shape_epoch` в проекции `Book`) — 31.08 ЗАЛЕНДЖЕН вместе с паком P12 (D39.180, `0a680a3`); канон стоит на **0.9.0**. Открытыми по контракту остаются хвост строки **203** и строка **241** (самопротиворечие канона на дочитанной книге). Зеркало ФРОНТА ратифицированно отстаёт на 0.2.3 — D39.135, синк при разморозке. ⚠ Урок ячейки: версия здесь живёт хуже всего — при следующем миноре правится ПЕРВОЙ); платформа построена до читающей поверхности и денежной двери: вход/кредиты (⚠ КВОТ нет ни строки кода, и по D39.176 п.1 не будет — продуктовых квот нет, фри-тир-лимиты не проектируются; ретеншен/свип остаются инженерной гигиеной) (P0P3) + раннер P4 (D39.123) + интейк `POST /books` со стоп/резюмом (D39.130) + exit-словарь/фолд юнитов/дев-стенд (P6, D39.132); фронт — S3.5S4 приняты (оболочка · слой данных · i18n · путь «файл→прогресс», D39.127/129/135), **зона ЗАМОРОЖЕНА, и с 17.08 морозится ДАЛЬШЕ лендинга P7** (D39.136 п.2 + D39.147: сначала движок и платформа до «работает и отдаёт результат», фронт накручивается на готовую функциональность) |
| ПТ-21 | Параллельное чтение двух текстов с выравниванием по смыслам (V0-п.21); выравнивание грубое, по единицам экспорта — принято владельцем 02.08, спаны внутри текста не строятся | 🔶 | механизм готов: `tmctl export --pairs` выравнивает пары побайтно по единицам редактуры (`internal/pipeline/export.go:89-93`); якорь = **edit-unit**, НЕ чанк (переформулировано D39.84 — финальный текст существует только на уровне юнита, ~1.9 юнита/главу, местами глава = один блок; читалка обязана это выдерживать); UI-читалка = Ф3 (этап S6) |
| ПТ-22 | Настройки от человека: 18+, жанр и т.п. (V0-п.22) | 🔶 | `book.yaml` (labels) данными; UI = Ф3. ⚠ ЖАНР из продукта ВЫКИНУТ словом владельца 16.08 (D39.138 п.2в, строка 184: ни на чём не ветвится, влияние не измерено; снимается из промптов/брифа/контракта/формы) |
| ПТ-23 | Веб-ПЕРВЫЙ фронт; SEO/ранжирование Google — куки, страницы-сироты, актуальные алгоритмы (V5-п.2); продукт = **SaaS**, не локальное приложение (решение владельца 02.08, D39.81 — натив-прицел V0-п.26 СНЯТ этим решением, вернуть только новым словом владельца); SEO только под Google, Яндекс снят; рынок глобальный; десктоп = PWA первым шагом, Tauri по явным триггерам (решения владельца 02.08, D39.84) | ⭕ | строка 71 (Ф3-бриф); SEO вошёл в стек-дизайн ДО выбора (D39.84, требование исполнено): двухконтурный деплой — SPA `app.<домен>` целиком под noindex + статический публичный контур ≤3 кликов от главной (лечение страниц-сирот), `frontend/docs/STACK_DECISIONS.md` §4; SSR-вопрос закрыт этим решением |