From 67e47dd6838419d8862b6a8a73e04cd022b06bac Mon Sep 17 00:00:00 2001 From: heaven Date: Thu, 17 Sep 2026 00:24:18 +0300 Subject: [PATCH] Record the owner's answers on translation conflicts and chapter marking, and point two anchors at the lines that carry their words --- docs/architecture/05-decisions-log.md | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/docs/architecture/05-decisions-log.md b/docs/architecture/05-decisions-log.md index f0d76371..40f56aa3 100644 --- a/docs/architecture/05-decisions-log.md +++ b/docs/architecture/05-decisions-log.md @@ -3946,7 +3946,7 @@ bought NOTHING». ⇒ **`tmctl manifest` есть НИЖНЯЯ граница, **2. ПЕРЕНОС БАНКА В ПРОДОЛЖЕНИЕ — СУЩЕСТВУЮЩИМ МЕХАНИЗМОМ, НОВЫХ СУЩНОСТЕЙ НЕ ВВОДИТЬ.** Слово 17.09: «Давай не вводить новые сущности, банк который подписан или автоподписан и который переносится на следующую книгу или следующие главы идет просто вот как текущий банк… не вводить лишний код». ⇒ **предложение третьего источника (отдельный слой «унаследованное») ОТКЛОНЕНО.** Сверено деревом: механизм есть — авто-банк пишется той же сид-YAML схемой, на которой говорит весь конвейер, и его -доккомментарий прямо называет цель «строку можно перенести в дельту копипастой» (`backend/internal/pipeline/mining.go:791`=`the same seed-YAML schema everything else`); +доккомментарий прямо называет цель «строку можно перенести в дельту копипастой» (`backend/internal/pipeline/mining.go:791`=`as the same seed-YAML`); загрузчиков под неё шесть в `membank`. ⚠ **Ограничение, которое из-за этого наследуется и должно быть названо, а не обойдено:** термин, попавший в сид, дверью правок банка не решается (`backend/internal/membank/decisions.go:194`=`A term of the seed cannot be decided here`) ⇒ перенесённая строка правится тем же путём, каким правится сид сегодня. Ряд **461** пере-формулирован под это решение. @@ -3959,3 +3959,19 @@ bought NOTHING». ⇒ **`tmctl manifest` есть НИЖНЯЯ граница, **4. Что этим актом НЕ решено и остаётся за владельцем:** ряд **330** (что движок делает с противоречием у НЕподписанного термина — алгоритм распознавания спроектирован консилиумом, открыто только действие, и оба выхода стоят денег) · когда твердеет НАРЕЗКА · какую «готовность» владелец имеет в виду. Вопросы заданы 17.09 отдельным блоком. +**5. КОНФЛИКТ ПЕРЕДАЧ — владелец ПЕРЕ-ОПРЕДЕЛИЛ вопрос, и пере-определил верно.** Слово 17.09: «Дак как это возможно? Ну это должно решаться на уровне банка памяти, +это должна решать модель которая переводит банк, она должна выбрать как это переводить. В чем вопрос то?» ⇒ сверено деревом: **модель УЖЕ обязана выдавать один перевод** — +контракт роли гласит «Propose ONE consolidated rendering per candidate» (`backend/internal/pipeline/terminologist.go:31`=`Propose ONE consolidated rendering`), и внутри +одной консолидации двух передач быть не может. ⇒ **две передачи возникают МЕЖДУ ПОКУПКАМИ:** банк держит прежнюю, новая консолидация даёт другую; для этого в коде +ведутся отдельные счётчики — против подписанного канона, против другой консолидации того же прогона и против того, что банк уже держит. А правило уступки в инъекции +снимает только пару «неподписанная против ПОДПИСАННОЙ» (`backend/internal/membank/memory.go:926`=`an unsigned rendering yields to the signed canon`), то есть двух +неподписанных между собой не разводит. ⇒ **ряд 330 пере-формулирован: это не «кто выбирает перевод», а «что делать со столкновением ПОКУПОК», и снимается он механизмом +«решённое не пере-спрашивается» (пак 1), а не отдельным решением владельца.** Прежняя формулировка ряда снята как неверно поставленный вопрос. + +**6. КОГДА ТВЕРДЕЕТ НАРЕЗКА — ответ владельца 17.09 и поправка к нему.** Слово: «когда черновики отработали и разметили главы. Это то у нас нормально построено?» +⇒ построено, но РАНЬШЕ, чем предполагает формулировка: главы размечает сегментатор ИСТОЧНИКА на интейке по маркерам из данных языка, а грамматику глав прогон +резолвит на старте (`backend/internal/pipeline/runner.go:456`=`resolves the book's chapter grammar`); черновики глав НЕ размечают и к моменту их работы крой уже +существует. Версия структуры входит в ключ кроя вместе с версиями языкового пакета, встроенных данных и нормализации (`backend/internal/pipeline/manifest.go:282`= +`lang.EmbeddedVersion(), Norm: text.NormVersion()`). ⇒ вопрос «когда твердеет» остаётся открытым в другой форме: не «когда размечаются главы», а **с какого момента +перекрой запрещён или платен**, и это решение владельца по-прежнему не получено. +