From a98f5101fc9ae94eaa2e0b3dba5e83653ab30e3d Mon Sep 17 00:00:00 2001 From: heaven Date: Sat, 19 Sep 2026 03:57:55 +0300 Subject: [PATCH] Track the echo rule that assumes distinct scripts, and state one closing moment for the re-cut window with its mechanism --- docs/BACKLOG.md | 3 ++- docs/NEAR_TERM_PLAN.md | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/BACKLOG.md b/docs/BACKLOG.md index c24da1e6..2e9242fd 100644 --- a/docs/BACKLOG.md +++ b/docs/BACKLOG.md @@ -3,7 +3,7 @@ > **Единственный трекер проекта.** Здесь живут строки, на которые доки, промты и D-ноты ссылаются словами «строка N» / «строка бэклога N»: **ID строки стабилен навсегда**, не перенумеровывается и не переиспользуется (D39.80). Правки — только через оркестратора; каждая петля обязана иметь диспозицию: решено / отложено-с-записью / отклонено. > ⚠ **Это НЕ бэклог зоны `docs/`, а бэклог ПРОЕКТА.** У зон свои, с другими неймспейсами ID, и единый их строк не принимает (D39.84): платформа — [../platform/BACKLOG.md](../platform/BACKLOG.md) (`П-N`) и её регистр дефектов `platform/docs/DEFECT_REGISTER.md` (`PD-N`); фронт — [../frontend/docs/BACKLOG.md](../frontend/docs/BACKLOG.md) (`Ф-N`). > ⚠ **Состояние проекта — не здесь.** Очередь, курс, CURRENT-STATE, состояние паков и живая хроника — шапка [PROGRESS.md](PROGRESS.md). Здесь только долг и его диспозиции. -> - **СЧЁТ ОЧЕРЕДИ на 17.09 (скриптом по таблице — `python3 docs/scripts/counts.py`; обновлять при каждом лендинге):** всего **375** строк · зона бэкенд **201** строго / **254** широко (⚠ колонки счётчик читает С КОНЦА — испр. D39.116) · **блокеров очереди 0** (236 закрыта D39.175; **371** — актом D39.233, **360** — актом D39.232, обе 10.09), платные прогоны разблокированы · «скоро» **203** (перечень — грепом по таблице, рукописный список снят D39.126) · гейт-строка эксп-22: 153 (плюс 150 — руки владельца; ⚠ 55 из гейтов СНЯТА — D39.198 п.5); строка 5 — остаток гейчен ре-пробой 74, носитель события теперь строка 188 (аудит D39.140); остальное «когда-нибудь». ⚠ Счёт — НИЖНЯЯ граница долга, не потолок (разбор — легенда таблицы ниже). +> - **СЧЁТ ОЧЕРЕДИ на 17.09 (скриптом по таблице — `python3 docs/scripts/counts.py`; обновлять при каждом лендинге):** всего **376** строк · зона бэкенд **202** строго / **255** широко (⚠ колонки счётчик читает С КОНЦА — испр. D39.116) · **блокеров очереди 0** (236 закрыта D39.175; **371** — актом D39.233, **360** — актом D39.232, обе 10.09), платные прогоны разблокированы · «скоро» **203** (перечень — грепом по таблице, рукописный список снят D39.126) · гейт-строка эксп-22: 153 (плюс 150 — руки владельца; ⚠ 55 из гейтов СНЯТА — D39.198 п.5); строка 5 — остаток гейчен ре-пробой 74, носитель события теперь строка 188 (аудит D39.140); остальное «когда-нибудь». ⚠ Счёт — НИЖНЯЯ граница долга, не потолок (разбор — легенда таблицы ниже). > - ⚠ **Переезд 06.09 (D39.218):** таблица вынесена из `PROGRESS.md` ДОСЛОВНО и ни один ID не сдвинут — **с единственным исключением: две ячейки (строки 220 и 306) тронуты РОВНО в номере якоря `docs/scripts/counts.py:566`→`:569` и `:592`→`:595`**, потому что цель сдвинул этот же коммит; текст ячеек не менялся, длины равны. В `PROGRESS.md` на прежнем месте оставлен заголовок-указатель, поэтому ссылки «секция „Бэклог“» доезжают в один хоп. ## Бэклог (ЕДИНЫЙ, собран 26.07, актуализация 04.08 D39.99/D39.101; правки — только через оркестратора) @@ -411,3 +411,4 @@ | 503 | ⛔ **ЗАБОР РЕ-ПИНА ПРОПУСКАЕТ ТОЛЬКО ОДНУ ОСЬ, ПОЭТОМУ КАЖДОЕ СЛЕДУЮЩЕЕ ОБЪЯВЛЕНИЕ ПАРЫ БУДЕТ ПЕРЕПОКУПАТЬ БАЙТ-ИДЕНТИЧНЫЕ КНИГИ.** Движок УЖЕ умеет исход «снапшот двинулся, а байты нет — $0»: это ре-пин (`backend/internal/pipeline/repin.go:61`=`func classifySnapshotMove`). Но забор пускает в него ровно ОДНУ ось — банк памяти; любое иное расхождение полей классифицируется как «прочее» и требует полной перепокупки. ⇒ когда пара объявит опциональный пар-файл (любой из контракта `ABSENT → inert, PRESENT → байты фолдятся`), версия её пакета сдвинется у ВСЕХ её книг, включая те, чей ТЕКСТ не изменился ни на байт — например текстовые книги, для которых новая возможность недостижима по построению. ⚠ **Это ЛОЖНАЯ перепокупка, то есть безопасная сторона ошибки: она видна в проекции согласия и не портит текст.** Но это деньги, и с каждой новой парой их будет больше. ⛔ **Направление лечения названо советчиком и НЕ спроектировано:** расширить забор на «wire-нейтральные оси» — ход, при котором отличаются только оси, чьё действие целиком лежит в отправляемых сообщениях (нарезка · встроенные данные · нормализация · пакет пары), И при этом контент-хеш совпал; вердикт-несущие оси (классификатор · дешёвые гейты · экран цели) остаются «прочим». ⚠ Граница «ось лежит целиком в сообщениях» доказывается ПО КАЖДОЙ оси отдельно — это дизайн, а не правка условия. ⛔ **И почему это НЕ делается перед прогоном:** `repin.go` есть денежно-критичный путь, а ошибка в заборе даёт исход, противоположный нынешнему — тихую НЕ-перепокупку там, где заплатить надо. Прогон идёт с нынешним поведением, цена названа вслух. | бэкенд | скоро (после прогона; до него — ТОЛЬКО назвать цену в акте, не трогать) | забор ре-пина различает wire-нейтральный ход от вердикт-несущего, граница каждой оси доказана отдельно, и пин краснеет на попытке пропустить вердикт-несущую ось как нейтральную | разбор советчика 18.09 при ратификации условного фолда маркера разметки; несущие утверждения пере-сняты оркестратором (контент-гард `backend/internal/pipeline/stagerun.go:92`=`cs.ContentHash == contentHash`; образец — коммит `2f91b04`, 207 строк в нарезчик при нетронутой константе версии) | | 504 | ⛔ **ТАЙМИНГОЗАВИСИМЫЙ ПИН В `internal/llm` КРАСИТ ЧУЖИЕ ЛЕНДИНГИ — ДВА НЕЗАВИСИМЫХ СВИДЕТЕЛЯ ЗА ОДНУ СМЕНУ.** Тест `TestARefusalIsNotAPurchaseEvenWhenTheReplyOutrunsTheWrite` (подтест «тело ещё писалось, когда пришёл отказ») упал у ДВУХ разных сессий, на ДВУХ разных деревьях. ⚠ **ИСПР. ТУТ ЖЕ, ДО ЛЕНДИНГА РЯДА: «ни одна сессия пакет не трогала» — НЕВЕРНО, и поймал это мой же прибор.** Файл упавшего теста (`backend/internal/llm/attemptcut_test.go`) действительно не тронут ни одним коммитом смены (строк диффа 0), но ПАКЕТ тронут: `9defda4` добавил **19 строк** в `backend/internal/llm/httpllm.go` — это работа второй сессии по имени для исчерпания средств провайдера. ⇒ у первого свидетеля дерево пакета не касалось вовсе, у второго — касалось соседнего файла того же пакета, и потому **«дефект не её» НЕ УСТАНОВЛЕНО**: гипотеза о взаимодействии её правки с таймингом остаётся открытой, пока не сойдётся замер частоты в двух деревьях вперемежку. **Первый свидетель 18.09:** батарея `final8` сессии английской пары — текст падения говорит не о предмете, а о своей ПОСЫЛКЕ: «premise: the provider was connected to 3 time(s) … write: connection reset by peer» и «the client came back with a STATUS, so this run never reached the delivery question». **Второй свидетель 18.09:** гейт сессии достижимости пар-данных, причём упал ВТОРОЙ проход цели — тот, что собирает скипы без гонок, — тогда как `build vet fmt lint test` прошли и полнота сверена списком. ⭐ **Конструкция теста ХОРОША и это надо сказать прежде дефекта:** он не позеленел молча, не дойдя до предмета, а объявил вслух, что до вопроса о доставке не дошёл. Именно поэтому его красное есть информация, а не шум. **Дефект в другом:** он чувствителен к нагрузке — локальной HTTP-фикстуре сбрасывают соединение, — и тогда он красит ЧУЖОЙ лендинг, заставляя зону доказывать невиновность. Изолированно зелен 8 из 8 у обеих сессий. ⚠ **Разделить «нагрузка» и «дефект дерева» можно только правильным прибором:** чередующиеся полные проходы в своём дереве и в развёрнутом срезе `HEAD`, счёт частоты с обеих сторон; одинаковая частота = не твоё. Вторая сессия этот замер ведёт, числа придут со сдачей. ⛔ **И родня, из-за которой ряд заводится отдельным:** это ВТОРОЙ такой пин за двое суток (первый — ряд **497**, квадратичность), то есть класс, а не случай: **пин, утверждающий отношение или порядок событий, на общей машине меряет нагрузку вместе с предметом**. | бэкенд | скоро (не блокер прогона: предмет пина к пути прогона не относится, но красит лендинги) | падение различает нагрузку от предмета САМО — либо фикстура перестаёт зависеть от того, кто ещё работает на машине, либо тест объявляет исход «не измерено» вместо красного; предъявить частотой падений в двух деревьях вперемежку, а не одиночным прогоном | два независимых свидетеля 18.09 — батареи `textmachine-main-c5` и `textmachine-main-c8`. ⭐ **ЗАКРЫТО ПО ПРИЧИНЕ 18.09 ЗАМЕРОМ ЗОНЫ, И КОНТРОЛЬ ВЗЯТ ПРАВИЛЬНЫЙ, А НЕ УДОБНЫЙ:** сравнение под РАВНОЙ нагрузкой против дерева `9defda4^`, где правки зоны нет вовсе, дало **2 падения из 30 в контрольном дереве против 0 из 30 в правленом** ⇒ моя гипотеза о взаимодействии её правки с таймингом ОПРОВЕРГНУТА, и опровергнута в сторону, невыгодную опровергающему. **Механизм понят:** тест шлёт 11 МБ тела, которого сервер не читает, отдаёт обрывок статус-строки и спит ФИКСИРОВАННЫЕ 200 мс перед сбросом соединения — под нагрузкой планировщик не успевает прочитать обрывок. Предикат, добавленный паком в тот же пакет, внутри него не зовётся НИ РАЗУ (0 вызовов; единственный вызов идёт из `backend/internal/pipeline/stagerun.go`). ⇒ предмет ряда — **фиксированный сон против планировщика**, а не чья-либо правка. | | 505 | **РЕГИСТР КЛЮЧА ИСТОЧНИКА СКЛЕИВАЕТ ИМЯ С НАРИЦАТЕЛЬНЫМ — единственная языковая находка переписи 19.09, которая меняет ПЕРЕВОД английской книги холодного прогона.** Ключ источника сворачивает регистр безусловно (`backend/internal/text/norm.go:153`=`b.WriteRune(unicode.ToLower(r))`), совпадения матчер банка считает без учёта регистра ⇒ термин-имя стреляет по нарицательному слову и несёт закон банка туда, где он неверен. Замер переписи на книге прогона: из 260 слов, ≥10 раз встречающихся с заглавной не в начале фразы, у **86** есть строчный двойник ≥3 раз — Blood 66/752 · Dead 155/143 · Grace 33/17 · Faith 24/92 · Patience 54/6 (пере-снято оркестратором грубее, порядок тот же). У caseless-письменностей (zh, ja) явления нет по построению. ⚠ `D39.268` п.7(б) отказался строить Go-гард, потому что обе детерминированные дороги двигают ГЛОБАЛЬНУЮ ось — «перекупка китайской книги»; **в окне пере-кроя эта цена $0**, и довод отпадает (перепись: сдвиг `NormVersion` идёт в снапшот через `memory_version`, это ход ре-пина). Та же нота записала «судьбу коллизионного термина» за ВЛАДЕЛЬЦЕМ. ⚠ **ИСПР. 19.09 (советчик, пере-снято оркестратором по HEAD): посылка «сдвиг `NormVersion` — ход ре-пина» НЕПОЛНА.** `NormVersion` сворачивается ещё и в крой (`backend/internal/pipeline/manifest.go:384`=`Norm: text.NormVersion()`), а ре-пином за $0 классификатор считает ТОЛЬКО сдвиг одного поля `memory_version` (`backend/internal/pipeline/repin.go:61`=`func classifySnapshotMove`) ⇒ правило регистра в ключе источника после окна = пере-крой ВСЕХ книг, и довод `D39.268` п.7(б) в этой форме верен. **Дом — МАТЧЕР** (бамп `backend/internal/membank/memory.go:61`=`const matchVersion`, где уже живёт класс «collision-ambiguous»): ре-пин $0 в любое время. ⛔ И асимметрия «ключ с заглавной требует заглавной» ломает ВТОРОЙ класс двойников — с ОДИНАКОВЫМ переводом: `Silversaint` 93 / `silversaint(s)` 188, `King`/`king`, `Prince`/`prince` — там закон банка нужен; а регистр английского ключа — случайность модели, ключи сливаются по нормализованной форме. ⇒ **рекомендованная форма:** регистр — ПЕР-ТЕРМОВЫЙ атрибут подписи (образец — `allow_short`) с умолчанием, выведенным из книги; совпадения не отбрасываются, а ГРАДУИРУЮТСЯ существующей диспозицией (свидетельство имени в тексте ⇒ CONFIRMED, иначе AMBIGUOUS); на сборке банка — предъявление подписанту счётов и соседей, без порога. Нормализатор не трогать. Для денег окно не нужно, но перевод прогона меняет ⇒ едет ДО прогона. Судьба ТЕРМИНА остаётся за подписью — это и есть владельческий рычаг. Родня — ряд 81 (kana-омографы) | бэкенд | скоро (до холодного прогона — ради качества перевода, не денег) | второй пак окна: матчер + атрибут подписи + предъявление на сборке | перепись языковых правил 19.09 (воркфлоу оркестратора), `D39.268` п.7(б) | +| 506 | **ЭХО-ПРАВИЛО ПРЕДПОЛАГАЕТ РАЗНЫЕ ПИСЬМЕННОСТИ У ИСТОЧНИКА И ЦЕЛИ — на паре латиница→латиница любой верный перевод читается как эхо, эскалируется и оплачивается.** Классификатор считает долю вывода в письменностях ИСТОЧНИКА (`backend/internal/pipeline/disposition.go:403`=`sourceScriptShare(out, in.SourceScripts)`) и сравнивает с порогом; исключение сделано только для CJK-целей. Замер переписи 19.09: en→fr и en→de — `cjk_artifact` с долей 79 %, контроль en→ru — `ok`. На парах репозитория (zh→ru, en→ru) письменности не пересекаются ⇒ вердикты не меняются, и по различителю `D39.194` п.9 версию классификатора бампать не нужно, в окно пере-кроя ряд не обязан. Направление лечения: считать РАЗНОСТЬ множеств — письменности источника минус письменности цели; где разность пуста, правило молчит, а не флагует. Родня — ряды 28, 260 | бэкенд | когда-нибудь (до первой пары латиница→латиница) | разность множеств + пин «en→fr — не эхо» + байт-равенство вердиктов zh→ru и en→ru | перепись языковых правил 19.09, находка F6 | diff --git a/docs/NEAR_TERM_PLAN.md b/docs/NEAR_TERM_PLAN.md index 75fcee06..a1596745 100644 --- a/docs/NEAR_TERM_PLAN.md +++ b/docs/NEAR_TERM_PLAN.md @@ -56,7 +56,7 @@ | 8 | **бэкенд/деньги** | ⛔ **«ПАДЕНИЕ, КОТОРОЕ ВИДНО»** — четверть COGS в одном механизме (**415**), слепые приборы отказа (**414**, **422**), молчащая подстановка цены. ⚠ Пин цены **413** из пака ВЫНУТ: это данные и отдельное решение | пак, $0 | ✅ **ЗАКРЫТ АКТОМ `D39.251`** (испр. 15.09; дальше — запись 11.09) · ✍️ **НАПИСАН 11.09** — `BACKEND_FAILURE_YOU_CAN_SEE_SESSION_PROMPT.md`; выдаётся СВЕЖЕЙ сессии сразу по закрытии 4 ⛔ **КРИТЕРИЙ ПРИЁМКИ ПАКА — МЕХАНИЗМ, А НЕ ПРОПОРЦИЯ** (поправка старшего коллеги 11.09): лекарство есть распространение ратифицированного образца `D2` п.3 на вторую причину, и оно верно при 25 % и при 5 % — пропорция задаёт очерёдность, не форму. ⇒ судить по строкам «ни одного удвоения без вердикта о вырождении; каждая выброшенная попытка — строкой леджера с причиной», а не по «с 25.4 % до X». Значит прогон B пак не гейтит и паком не гейтится.| | 9 | **платформа+бэкенд** | ⭐ **ХОЛОДНЫЙ ПРОГОН B — платформа → бэкенд → файл, ВТОРОЙ раз.** Уточнение владельца 11.09: спрашивая «перепрогоны нужны», он имел в виду именно сквозной прогон, а не пере-запуск тестов. Покупает ЧЕТЫРЕ вещи, которых нет ни у кого: **(1)** миграция **v17** (`wave_selection`) пака консистентности ни разу не шла на живом прогоне — только в тестах; **(2)** прибор консистентности впервые даст числа с ЖИВОГО прогона, а не с пере-скана сохранённой базы прогона A — сегодня все `I1`/`I2` получены повторным чтением одних и тех же данных; **(3)** платформенный пак (идемпотентный резюм, терминальное состояние) проверяется сквозь, а не юнитами; **(4)** ⛔ **вторая точка по денежной дыре, и она нужна по норме, а не для красоты** — весь довод «четверть денег купила пустоту» стоит на ЧЕТЫРЁХ одиночных розыгрышах, а квирки §3д прямо говорят: смета DeepSeek с одиночного вызова может ошибиться на порядок, сметы строятся на ПОВТОРАХ. ⇒ у числа 25.4 % есть знак и нет величины, пока прогон не повторён. **Цена ≈$0.42 по образцу прогона A, машинный кап ≈$2.5.** ⛔ **ПРЕ-РЕГИСТРАЦИЯ ЗНАМЕНАТЕЛЯ, иначе B ответит числом на другой вопрос** (поправка старшего коллеги 11.09): B — ЕЩЁ ОДИН одиночный прогон, и две точки распределением не станут. Настоящая ценность B не «вторая точка к 25.4 %», а `request_log` ВСЕХ единиц прогона ⇒ **доля выброшенных первых попыток ПО ЕДИНИЦАМ, а не по вызовам.** Это и пре-регистрируется. ⚠ И идёт B **ПАРАЛЛЕЛЬНО** паку о падениях, а не после: они в РАЗНЫХ слотах (бэкенд против платформы), и правило «один промт на зону» их не сталкивает | ≈$0.42 | ✅ **ЗАКРЫТ АКТОМ `D39.252`**, факт $0.396657 | | 10 | **бэкенд** | ✅ **ЗАКРЫТ АКТОМ `D39.266`** 17.09 (`d25e418`, 32 пути, $0): носитель — таблица `bank_basis`, миграция v19, аддитивная; ряд **490** закрыт по трём условиям, **130** получил ТРЕТИЙ исход (замысел достигнут другим механизмом, стоп-решение остаётся за владельцем), два отказа с замером, заведён **496**. Числа приёмки: кампания **315/315 поймано, выживших 0**; M1 — **67 из 69** и **64 из 66** обслужено из памяти. Прежняя формулировка предмета: ⛔ **БАНК: РЕШЁННОЕ ОСТАЁТСЯ РЕШЁННЫМ** — предмет пере-определён проверкой 15.09. Пак 12.09 «в банк по разнобою» (`archive/prompts/BACKEND_WHAT_THE_BANK_IS_MADE_OF_SESSION_PROMPT.md`) снят баннером: все термы со `spread ≥ 2` уже в банке (A 9 из 9, B 8 из 8). Настоящий дефект приоритета №1 — пере-решение банка терминологом: на подписи замерено (у неподписанных строк сменились передачи A 12 из 69, B 14 из 66), на каждой следующей покупке глав выведено из кода — отгруженные главы по порядку слотов остаются со старыми передачами (`backend/internal/pipeline/volume.go`, греп `DELIVERY BEFORE REWORK`). Ряды 130 · 330 · 438 · 440 | $0 + центы перекупки банк-ролей | ⛔ **ПРОЕКТ ОРКЕСТРАТОРА ОТОЗВАН 15.09.** «Банк — журнал решений с окнами» (две редакции Fable 5) расходился с 12 пунктами решённого, замеренного и этого же плана и опирался примерно на десятую часть относящегося; улики — `archive/reports/BANK_CONSILIUM_INPUTS_2026-09-15/`. ✅ **КОНСИЛИУМ ОТРАБОТАЛ, акт `D39.253` (16.09).** Итог — `research/35-bank-memory-consilium.md`: банк как решение по уликам с пятью событиями пересмотра, N-1 на построенном фильтре, N-3 на сборке вида, ряды бэклога 441–450. ✅ **СЛОВО ВЛАДЕЛЬЦА ПОЛУЧЕНО 16.09** (`D39.254`): держать решение между покупками — да · при невозможной безродовой форме — перестроить фразу, иначе «как лучше читается» · богаче контекст — да, меру решает замер M4 · голос и ты↔вы — строить. ⚠ **Вопрос об отказе терминолога ПЕРЕ-ОПРЕДЕЛЁН владельцем:** у банк-ролей нет ни ретрая, ни фоллбека (ряды 435, 438), и он считает это дырой ⇒ заведён ряд 451 «умный участок в точке банка», ряд 452 — голос. ✅ **ГРАНИЦЫ ДАНЫ ВЛАДЕЛЬЦЕМ 16.09** — «в границах ратифицированного», и слот бэкенда освобождён приёмкой `D39.255`. ✅ **ПАК 1 ПРИНЯТ 16.09 актом `D39.257`** (29 путей, $0; посылка В1 закрыта замером — 25 из 26 при идентичном входе). Промт написан был 16.09 — `BACKEND_BANK_ZERO_LAYER_SESSION_PROMPT.md`, пак $0 (громкий отказ при цели без инъекционных текстов до первой траты · отказ роли перестаёт ехать законом · предикат «спорный» как ДВА предиката с заданными знаменателями · носитель посылки «новой улики не было»); круг опровергателя пройден. ✅ **ВЫДАН и ПРИНЯТ 16.09** — акт `D39.257`. Вопросы владельцу, в том числе ряд 130 (`research/34` §4 п.4), ставит его итог; он же решает порядок относительно 5(в). Довод «перекрой глав без якоря пере-решил бы банк платной книги» остаётся входом ✅ **ПЕРЕНОС БАНКА РЕШЁН ВЛАДЕЛЬЦЕМ 16.09 — акт `D39.256`:** в КНИГУ-ПРОДОЛЖЕНИЕ едут ПОДПИСАННЫЕ строки ПЛЮС строки, РЕШЁННЫЕ ДВИЖКОМ; стройка ДВУХЗОННАЯ и ещё не начата — ряд **461**. ⚠ **Эррата 16.09-б:** формулировка «причина смен передачи — якорь» в `D39.256` и `D39.257` СИЛЬНЕЕ замера — измерено лишь отсутствие новой улики во ВХОДЕ, причина остаётся гипотезой, гейт — ряд **466**. Прочее живое банка: ряды **462** · **465**. ⭐ **ЗАКАЗАН 17.09: промт «РЕШЁННОЕ НЕ ПЕРЕ-СПРАШИВАЕТСЯ» ВЫДАН** сессии `textmachine-main-57` (выдача №14, `docs/BACKEND_SETTLED_STAYS_SETTLED_SESSION_PROMPT.md`, $0). Строит базис решённого как ИСТОЧНИК ОТВЕТОВ (ряд 130) и стража разрыва окон (ряд 490); замер M1 идёт ПЕРВЫМ блоком, и носитель не пишется, пока оркестратор не принял форму предиката по числам. ⚠ **Состав сузился против проекта консилиума, и это измерено, а не решено вкусом:** N-4 и Б-5 ПОСТРОЕНЫ паком `D39.257`; N-6 гейчен разморозкой фронта (ряды **214** · **221**); Б-2 протух — токен «stops loudly» живёт только в тесте; N-3 и стратифицированный отбор вынесены НАРУЖУ, каждый со своим замером. Промт прошёл два рубежа (механическая сверка 13 блоков и субагент-опровергатель: 12 находок, 9 денежных, все внесены) и всё равно был исправлен релеем после выдачи — материал замера указывал на другую книгу. | -| 11 | **бэкенд** | ⭐ **ОКНО ПЕРЕ-КРОЯ — ВСЁ, ЧТО ДВИГАЕТ НАРЕЗКУ И ДАННЫЕ ПАРЫ, ЕДЕТ ДО СТАРТА ХОЛОДНОГО ПРОГОНА.** Открыто 18.09 покупкой прогона B, закроется стартом прогона — см. 5(в). Состав: **283** + **303** (родственные: грамматика не участвует там, где решают границу; пак 2 по 303 исполняет запрет `D39.224` п.7) · **201** (движковое «Глава N» внутри текста) · **410** (голос построен сквозь и выключен двумя тумблерами, конфиг-ключа нет) · вынос свёрток нормализации источника из ядра в данные пары. ⛔ **Порядок задан владельцем 18.09, дословно: «цель: не бежать поскорее приступить к холодному прогону а подготовить бэкенд так что б этот холодный прогон исполнить максимально правильно. Сколько паков и бэклога нам для этого нужно закрыть не очень важно. Халтурить не надо, подгонять тоже ничего не надо, спиливаем долг из бэкенда, реализуем актульный, нужный чистый архитектурно код».** ⇒ число паков перестало быть ограничением, и «успеть к прогону» перестало быть доводом за срез | паки, $0 | ✍️ **ПАК «ГРАНИЦА ГЛАВЫ» НАПИСАН 18.09** — `BACKEND_CHAPTER_STRUCTURE_SESSION_PROMPT.md`; по ряду 303 он и есть «пак 2» (`D39.270` п.1: запрет `D39.224` п.7 им ИСПОЛНЯЕТСЯ, а не снимается), и 346(б) едет в нём же (`D39.270` п.7). Корень найден подсказкой владельца — см. «СОСТОЯНИЕ НА 18.09». Три круга проверки, третий изменил ПРЕДМЕТ: резка внутри документа необходима, граница — объединение двух наборов. 🔴 **ВЫДАН 19.09 → `textmachine-main-7b`**, эхо принято, записка-план принята (N = **95**, корпус — 0 ложных границ, gu-zhenren 2283 = 2283); четыре добавки сессии подтверждены с условиями. ⚠ Промт холодного прогона помечен «не выдавать в этой редакции» — переписывается после лендинга. **Второй пак окна** — перепись языковых ПРАВИЛ в ядре (не ветвлений: их считал `D39.268`) идёт; голос (410) войдёт в окно, только если замер покажет, что он двигает снапшот книг прогона | +| 11 | **бэкенд** | ⭐ **ОКНО ПЕРЕ-КРОЯ — ВСЁ, ЧТО ДВИГАЕТ НАРЕЗКУ И ДАННЫЕ ПАРЫ, ЕДЕТ ДО СТАРТА ХОЛОДНОГО ПРОГОНА.** Открыто 18.09 покупкой прогона B, закроется стартом прогона — см. 5(в). ⚠ **Одно утверждение вместо трёх (испр. 19.09):** носители называли разные моменты — «первая книга внешнего пользователя» (`D39.136` п.3), «пока платная книга одна, до интейка» (ряд 161), «старт прогона» (здесь). Механизм у всех один (`D39.190` п.4, `D39.224` п.5): пере-снапшот стоит денег только на книге, которую ПРОДОЛЖАТ. Холодный прогон сам продолжает свои книги через стопы и резюмы ⇒ для него окно закрывается его СТАРТОМ; «первая книга пользователя» — тот же момент для продукта, позже Состав: **283** + **303** (родственные: грамматика не участвует там, где решают границу; пак 2 по 303 исполняет запрет `D39.224` п.7) · **201** (движковое «Глава N» внутри текста) · **410** (голос построен сквозь и выключен двумя тумблерами, конфиг-ключа нет) · вынос свёрток нормализации источника из ядра в данные пары. ⛔ **Порядок задан владельцем 18.09, дословно: «цель: не бежать поскорее приступить к холодному прогону а подготовить бэкенд так что б этот холодный прогон исполнить максимально правильно. Сколько паков и бэклога нам для этого нужно закрыть не очень важно. Халтурить не надо, подгонять тоже ничего не надо, спиливаем долг из бэкенда, реализуем актульный, нужный чистый архитектурно код».** ⇒ число паков перестало быть ограничением, и «успеть к прогону» перестало быть доводом за срез | паки, $0 | ✍️ **ПАК «ГРАНИЦА ГЛАВЫ» НАПИСАН 18.09** — `BACKEND_CHAPTER_STRUCTURE_SESSION_PROMPT.md`; по ряду 303 он и есть «пак 2» (`D39.270` п.1: запрет `D39.224` п.7 им ИСПОЛНЯЕТСЯ, а не снимается), и 346(б) едет в нём же (`D39.270` п.7). Корень найден подсказкой владельца — см. «СОСТОЯНИЕ НА 18.09». Три круга проверки, третий изменил ПРЕДМЕТ: резка внутри документа необходима, граница — объединение двух наборов. 🔴 **ВЫДАН 19.09 → `textmachine-main-7b`**, эхо принято, записка-план принята (N = **95**, корпус — 0 ложных границ, gu-zhenren 2283 = 2283); четыре добавки сессии подтверждены с условиями. ⚠ Промт холодного прогона помечен «не выдавать в этой редакции» — переписывается после лендинга. **Второй пак окна** — перепись языковых ПРАВИЛ в ядре (не ветвлений: их считал `D39.268`) идёт; голос (410) войдёт в окно, только если замер покажет, что он двигает снапшот книг прогона | ⛔ **ПОЧЕМУ 4 ВСТАЛ ПЕРЕД 5 (решение 11.09 по мерилу владельца).** Мерило — «качественный КОНСИСТЕНТНЫЙ перевод длинных книг». Аудит банка 11.09 показал, что **книжного вопроса о консистентности не задаёт ни один