Ratify the book-writer landing as D39.175 with the owner's drift ruling, narrow row 236 to the platform door, seed rows 238-239, and ping the platform journal
This commit is contained in:
parent
8adcb8611b
commit
69ef3e9c8a
9 changed files with 43 additions and 21 deletions
File diff suppressed because one or more lines are too long
|
|
@ -22,7 +22,7 @@
|
|||
| Роль | Активный промт | Статус |
|
||||
|---|---|---|
|
||||
| Оркестратор | [ORCHESTRATOR_SESSION_PROMPT.md](ORCHESTRATOR_SESSION_PROMPT.md) | роль и нормы; счётчик роли — CURRENT-STATE |
|
||||
| Бэкенд | [BACKEND_BOOKWRITER_PACK_SESSION_PROMPT.md](BACKEND_BOOKWRITER_PACK_SESSION_PROMPT.md) | **ВЫДАН 30.08** сессии `textmachine-main-fc` (пинг оркестратора №20 по заказу владельца; имя сессии не переживает рестарт — актуальный адрес сверять `ListAgents`). Пак «писатель книги» — строка **236**, единственный блокер очереди: переведённую книгу нельзя отдать файлом ни одной стороной. ⚠ Перед выдачей — второй опровергатель (воркфлоу 5 линз + верификаторы, 100 агентов): **41 удержанная находка**, применены — «копия» каталога книги мигрирует ОРИГИНАЛ через симлинк `/home/ubuntu/books` · `java` на машине ЕСТЬ и epubcheck приносится · два поюнитных состояния withheld/incomplete + рамка D25.1/D29.1(б)/контракт 14 · сайдкар манифеста у книг ОТСУТСТВУЕТ · EPUB 3 требует `dcterms:modified` и nav · `acceptance` на HEAD — 37 юнитов при 20 ghost, не «57/57» |
|
||||
| Бэкенд | активного НЕТ | пак «писатель книги» **ПРИНЯТ И ЗАЛЕНДЖЕН 30.08** (**D39.175**, `8adcb86`): `tmctl build` — EPUB 3 + чистый txt из `BookExport`, шесть состояний честности, отказ exit 16 / `--partial`, пути в `StatusArtifacts.book_files`. Слово владельца: drift — НЕ дыра файла, дверь выдачи обязана сверять `BuildReport`. Приёмка: 4 линзы + верификатор на каждую находку, два дофикса до лендинга. Промт отработан — `archive/prompts/`. Открыто строками **238/239**; вопросы владельцу (лестница D25.1 · лейбл К-3 · RTL) — CURRENT-STATE |
|
||||
| Платформа | активного НЕТ | пак `sqlc` ПРИНЯТ И ЗАЛЕНДЖЕН 29.08 (**D39.172**): 40 запросов на типизированный слой, пин 1.31.1, `sqlc diff` в `make check`. ⚠ Решение принято НЕ доводом покрытия (3 из 42), а шестью ВЫЖИВШИМИ мутациями: `sqlgate` не видит Go-сторону вызова. Промт отработан — `archive/prompts/`. Открыто строками: `Touch` без проверки затронутых строк · `observe.go` неконвертируем |
|
||||
| Полигон | [POLYGON_EXP2223_REDO_SESSION_PROMPT.md](POLYGON_EXP2223_REDO_SESSION_PROMPT.md) (отложенный — [POLYGON_PACKAGE4_SESSION_PROMPT.md](POLYGON_PACKAGE4_SESSION_PROMPT.md), строка 85) | фаза Д ИДЁТ; ⚠ живой носитель курса — в `eval/dovodka/`, какой именно называет зона (⚠ [POLYGON_PHASE_D_HANDOFF.md](POLYGON_PHASE_D_HANDOFF.md) — перекрытый снимок, читать не как курс) |
|
||||
| Фронт | активного НЕТ | **ЗОНА ЗАМОРОЖЕНА** (D39.136 п.2 + D39.147: разморозка отдельным словом владельца, не привязана к P7); перечень первого касания — в зонном журнале |
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Реестр D-нот — карта актуальности v2 (D1–D39.174;
|
||||
# Реестр D-нот — карта актуальности v2 (D1–D39.175;
|
||||
|
||||
> ⚠ **СЛАБОЕ МЕСТО, КОТОРОЕ БЫЛО ЗДЕСЬ (вписано 22.08, ЗАКРЫТО 24.08 — D39.157 п.6).** Колонка ТЕЛА
|
||||
> у нот D39.107…D39.123 говорила «жив», хотя тела уехали в слайс подрезкой D39.139; семнадцать строк
|
||||
|
|
@ -235,3 +235,4 @@
|
|||
| D39.172 | 29.08 | **Пак `sqlc` принят и заленджен**: 40 запросов пяти файлов `pgstore` на типизированный слой, пин 1.31.1, `sqlc diff` в `make check` + гейт без установленного инструмента. ⚠ Решение принято НЕ тем доводом, которым заказывалось: счёт покрытия дал «почти ничего» (3 из 42), а шесть посаженных мутаций ВЫЖИЛИ при зелёной батарее — `sqlgate` видит строку SQL и никогда Go-сторону вызова. Подтверждено независимо на денежном пути: перестановка целей `Scan` в `ReadAccount` зелена на всей батарее и переворачивает числа оператора при дрейфе (`PD-430`). Честные границы: `observe.go` структурно не конвертируется (River мигрирует `river_job` сам), худший позиционный дрейф остался рукописным; `Touch` выбрасывает `RowsAffected` — не чинится конверсией. | жив | ЖИВОЕ: П-19 править на 40 конвертируемых; `Touch` строкой; пересборка `tmctl` в рецепте стенда; `PD-423` пере-проверить | платформа sqlc гейты деньги |
|
||||
| D39.173 | 30.08 | **У движка появился гейт схемы**: каждый SQL-оператор компилируется `db.Prepare` против схемы, поднятой ПРОДОВОЙ цепью миграций во временный файл — раньше покрытие этого класса равнялось покрытию батареи. ОДИН новый тестовый файл, продовый код не тронут. Склейки не пропускаются, а раскладываются (перебор четырёх таблиц, условная сборка из двух ветвей). 70 операторов против схемы v16 за 0.02 с, пол экстрактора 65. Расхождений в живом коде нет. Внешнего не требуется — у SQLite схема это файл. | жив | ЖИВОЕ: гейт не доказывает верность оператора, только существование имён; пол 65 — суждение | движок гейты схема тесты |
|
||||
| D39.174 | 30.08 | **Передача роли оркестратора №19 → №20.** За смену принято пять паков (P11 + минор 0.8.0, движковые «деньги», починка двух зеленевших вхолостую store-тестов, `sqlc`, гейт схемы движка). Три урока смены: тихо-зелёное дороже красного · метод измерения бывает слабее предмета (покрытие сказало «почти ничего», решение приняли шесть выживших мутаций) · верный прогон при неверной гипотезе неотличим от «дефекта нет». Семь моих ошибок названы полностью, включая двойную ошибку атрибуции и лендинг без `make lint`. Что ловило лучше меня: опровергатель промта, охотник вне карты, линтер якорей, гейт чисел и сами сессии. | жив | ЖИВОЕ: очередь №20 в CURRENT-STATE; `PD-425` на оркестраторе; строка 237 — два нажатых триггера | передача процесс нормы |
|
||||
| D39.175 | 30.08 | **Бэкенд-пак «писатель книги» принят и заленджен** (`8adcb86`): `tmctl build` — EPUB 3 + чистый txt из `BookExport` (`internal/bookfile`, stdlib), шесть состояний честности (pending·withheld·incomplete·ghost·stale; drift — отчётом), отказ exit 16 / `--partial` с маркером на каждой дыре, пути в `StatusArtifacts.book_files`, `tm-export-v1` аддитивно, reader-слова — данные вне `Pack.Version()`. **Слово владельца: drift — НЕ дыра файла; дверь выдачи обязана сверять `BuildReport`.** Приёмка: 4 линзы + верификаторы, 2 дофикса до лендинга; epubcheck 0/0/0, оракул июля 14/14, `--plaintext` побайтово прежний. | жив | ЖИВОЕ: строка 236 сужена до двери платформы; хвосты — 238/239; вопросы владельцу — лестница D25.1, лейбл К-3, RTL | движок экспорт файл приёмка дрейф |
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Журнал решений оркестратора — контракт D1–D39.174 (живой файл: карта · эрраты · живые тела · голова D39.124+ (подрезка D39.139); тела закрытых эр — в слайсах `docs/archive/architecture/`, указатель ниже; реестр всех нот — `05-decisions-index.md`)
|
||||
# Журнал решений оркестратора — контракт D1–D39.175 (живой файл: карта · эрраты · живые тела · голова D39.124+ (подрезка D39.139); тела закрытых эр — в слайсах `docs/archive/architecture/`, указатель ниже; реестр всех нот — `05-decisions-index.md`)
|
||||
|
||||
> **⟶ КАРТА АКТУАЛЬНОСТИ (ревизия D31, продлена до D38.2 [12.07]; исторические записи ниже НЕ переписываются — дисциплина D23.3).** Работая с контрактом (греп номера: живой файл → слайсы, целиком НЕ читать — D39.125), держи под рукой, что чем перекрыто:
|
||||
> ⚠ **Эррата 09.08 (D39.125):** D39.111 п.1 предписывал промту S3 «максимум = баланс МИНУС открытые холды» — формула ОШИБОЧНА (вычитание дважды), исправлена D39.115 п.2(а): максимум = Balance КАК ЕСТЬ; тело D39.111 живёт ниже в этом файле (голова D39.106+).
|
||||
|
|
@ -1589,3 +1589,13 @@ head-1 это семнадцать бюджетируемых операций,
|
|||
«ждёт решения владельца», хотя решение дано D39.165 §2 — зоне платформы нужен пинг, что это обычная
|
||||
работа. **Строка 202** — живой перевод книги насквозь не гонялся ни разу, и всё ранжирование условно,
|
||||
пока это так.
|
||||
|
||||
## D39.175 — БЭКЕНД-ПАК «ПИСАТЕЛЬ КНИГИ» ПРИНЯТ И ЗАЛЕНДЖЕН: переведённая книга впервые становится файлом; политика дрейфа ратифицирована словом владельца (30.08, оркестратор №20). ✅
|
||||
|
||||
**Что построено** (строка 236, движковая половина; лендинг `8adcb86`, механика и доказательства — записка-план и ИТОГ сессии `textmachine-main-fc` в `PROGRESS.md` §Бэкенд): `tmctl build --config b.yaml [--format epub,txt] [--out path] [--partial]` — EPUB 3 + чистый текст из `BookExport` через новый прод-пакет `internal/bookfile` (только stdlib); ОДИН файл на книгу на формат, `writeFileAtomic` рядом с ProjectDB, пути — `StatusArtifacts.book_files`; stdout — конверт `tm-build-v1`; отказ — класс `book_incomplete`, exit **16** (полоса 10–19); `tm-export-v1` расширен аддитивно (`heading` · `ghost_units` · `text_modified`); читательские слова — ДАННЫЕ `<langpack_root>/<target_lang>/reader.txt`, канал ВНЕ `Pack.Version()` по построению (перечень слов не двигает снапшот — пин тестом и `current_snapshot` minirun); `chunktest` переведён на прод-ядро контейнера.
|
||||
|
||||
1. **Шесть состояний честности файла**: pending · withheld · incomplete · **ghost** (при укрупнении нарезки остаток источника лежит в ghost-строках и в файл не попадает — «молча полная» книга; acceptance 57→37 при 20 ghost) · **stale** (финальная строка сделана под исходник, которого в книге уже нет; под дрейфом честное `stale_unknown`, никогда не «нет») — все пять дыры: по умолчанию ОТКАЗ с перечнем `глава/юнит/причина`, `--partial` — файл с пометкой на титуле и маркером на месте КАЖДОЙ дыры; без пака цели — несловесная форма (символ+числа).
|
||||
2. **РАТИФИКАЦИЯ ВЛАДЕЛЬЦА (30.08, по разбору без жаргона): CONFIG-DRIFT — НЕ дыра файла.** Файл пишется чистым, дрейф и `stale_unknown` — носители `BuildReport`/WARN, не текста книги (байты файла = байты, отгруженные прогоном; «config drift» — операторский словарь). Обязательство той же ратификации: **дверь выдачи платформы ОБЯЗАНА сверять `BuildReport`, а не только файл** — предупреждение о дрейфе адресовано оператору/интерфейсу, не читателю. Это снимает бинарную развилку промта «отказ или пометка» третьим путём — сессия принесла его открыто с доводом, четыре линзы приёмки сочли довод верным.
|
||||
3. **Приёмка** (воркфлоу: направление слепое к отчёту · охотник вне карты с мутационными посадками · пере-прогон клеймов · инвентарь шва чтением кода платформы; верификатор на каждую находку): ACCEPT×3 + ACCEPT_WITH_FIXES, 9 находок → два дофикса исполнены сессией до лендинга (паритет `CleanText` в TXT-заголовках/notice; `validate` судит заголовки ПОСЛЕ очистки), пере-проверены оркестратором. Батарея: трижды сессией + однажды оркестратором (18 пакетов ok, линтер 0, `-race`). Клеймы пере-прогнаны: epubcheck 5.3.0 `0/0/0`, cmp двух процессов, круг ингестом равенством абзацев, оракул июля 14/14, `--plaintext` побайтово прежний, JSON аддитивен — платформа жива (`ghost_units` отдельным полем, `unitState` не перевёрнут, конверт artifacts лишний ключ переживает), полигонные читалки не задеты.
|
||||
4. **Живые границы, не дефекты**: живой читалкой файл не открывался (валидатор ≠ читалка) · ветка `write_incomplete` между двумя rename написана, не исполнена · stale на стендовых книгах неразличим (все под дрейфом) · ghost-координата — старой нарезки · побайтовый детерминизм — в пределах одного Go-тулчейна.
|
||||
5. **Хвосты — носителями**: строки **238** (`projectRebill`/`status` слепы к правке исходника на месте при том же снапшоте — перекупка без предупреждения о деньгах) и **239** (`Status.checkWave` не видит исчезнувшую стадию — слепое пятно, закрытое у `Export` этим паком); строка **236 СУЖЕНА** до платформенной двери (`createExport`/`getExport` + `export_formats` из `bookfile.Formats`; дверь СТРОИТ `tmctl build`, не читает файл у БД); пинг платформе — интейк деструктивен на exit 11, недостижимо до двери. Вопросы владельцу (лестница D25.1: ступень копии без пометки и титул · лейбл главы без заголовка К-3 · опция «предупреждение вместо отказа» для ghost/stale · направление письма RTL) — CURRENT-STATE §«Открыто на владельце».
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -756,7 +756,9 @@ the original request was never applied». Каждый `POST /books` созда
|
|||
повторить (named); рост словаря = минор, тем же правилом, что у самого `TermKind`.
|
||||
- **Раскладка полосы отказов на провод:** 14 → `409` `bank_corrections_refused` (+`refusals[]`),
|
||||
15 → `503` `bank_corrections_incomplete` («слать тот же документ»), 12 → `409` `run_in_flight`,
|
||||
10/11/13 → не пер-операционные (деплой сломан — `5xx` общего вида); движковый исход `stopped`
|
||||
10/11/13 → не пер-операционные (деплой сломан — `5xx` общего вида); **16 `book_incomplete`**
|
||||
(движковый `tmctl build` без `--partial`, D39.175) на ЭТОМ проводе не встречается — его раскладка
|
||||
появится с дверью выдачи `createExport`; движковый исход `stopped`
|
||||
(SIGTERM до первого байта: ничего не записано) пер-операционного кода тоже не имеет — снаружи
|
||||
это рестарт деплоя, `5xx`, ретрай сходится; потолок 1 МиБ → `413`, потолок 5000 и вся валидация
|
||||
формы → `400` `invalid_request`. 14 и 15 получили СВОИ корневые коды: разные адресаты ремеди
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
> ⚠ АРХИВ, промт ОТРАБОТАН: пак принят и заленджен 30.08 — D39.175, лендинг `8adcb86`; исход ACCEPT_WITH_FIXES, два дофикса исполнены до лендинга. Инструкции отсюда НЕ исполнять.
|
||||
|
||||
# Промт: движок, пак «писатель книги» — переведённая книга становится ФАЙЛОМ
|
||||
|
||||
## 0. Какая проблема и что решит твой результат
|
||||
|
|
@ -61,7 +61,8 @@
|
|||
масс-подписи НЕТ (модель владельца 16.08, D39.144). Предъявленное помнится (`bank_stop_presented`,
|
||||
схема store v16), поэтому стоп срабатывает ОДИН раз на одно и то же.
|
||||
- **Полоса отказов [10,19]** — коды выхода движка, отличающие «отказал ЗАКОННО» от «сломался»:
|
||||
10 конфиг · 11 источник · 12 лок · 13 схема · 14 решения отклонены · **15 `write_incomplete`** · 19 без имени.
|
||||
10 конфиг · 11 источник · 12 лок · 13 схема · 14 решения отклонены · **15 `write_incomplete`** ·
|
||||
**16 `book_incomplete`** (`tmctl build` без `--partial` на книге с дырами, D39.175) · 19 без имени.
|
||||
- **Онтология банка** — `architecture/18-bank-ontology.md`: три роли носителей (источники · вид ·
|
||||
проекции · память флага), их писатели и моменты коммита. Названный там класс дефекта — «проекция
|
||||
без названного потребителя и без якоря свежести в кадре».
|
||||
|
|
|
|||
|
|
@ -4,6 +4,13 @@
|
|||
> вопросы, предложения на ратификацию. В `docs/PROGRESS.md` платформа не пишет; оркестратор
|
||||
> читает этот журнал при каждом лендинге зоны (свип «решений владельца» — норма D39.99 п.4).
|
||||
|
||||
## ПИНГ оркестратора №20 → зоне платформы (30.08, после лендинга движкового пака «писатель книги», D39.175)
|
||||
|
||||
- Движок отдаёт книгу файлом: `tmctl build --config b.yaml [--format epub,txt] [--out path] [--partial]`; пути готовых файлов — `StatusArtifacts.book_files` в `status --json`/`manifest --json`, stdout — конверт `tm-build-v1`. Дверь `createExport`/`getExport` (П-17, «отложено в P8») при постройке обязана СТРОИТЬ (`tmctl build`) и отдавать построенное — НЕ читать файл, лежащий рядом с БД (там копия прежней сборки), — и сверять `BuildReport` (`config_drift`/`stale_unknown`): ратифицировано D39.175 п.2 словом владельца.
|
||||
- ⚠ Новый класс отказа движка: exit **16** `book_incomplete` (книга с дырами без `--partial`). Раскладка на провод — при постройке двери.
|
||||
- ⚠ Находка приёмки: интейк на exit **11** действует ДЕСТРУКТИВНО (удаляет аплоад), а `tmctl build` книги из нуля юнитов выходит именно 11 (`sourceHasNoContent`). Сегодня недостижимо — интейк зовёт `manifest`, не `build`; учесть при подключении `build` к автоматике.
|
||||
- `tm-export-v1` расширен АДДИТИВНО: `heading` · `ghost_units` (отдельное верхнеуровневое поле — в `chunks` ghost-строки НЕ попадают) · `text_modified`; `DecodeExport` проверен приёмкой: новые поля переживает, `unitState` не задет.
|
||||
|
||||
## ЗАПИСКА-ПЛАН: пак `sqlc` (П-19) — что беру, чего не беру, чем докажу (сессия `textmachine-1b`, 29.08)
|
||||
|
||||
Пишется ДО стройки, как требует §6 промта. Числа ниже — мои, получены на сегодняшнем дереве
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue