# Ближайший горизонт — 3–5 промтов > Рабочая записка оркестратора №23. **Только порядок и зоны**, не заказы. Живёт до исполнения, потом в архив. > Долг живёт строками `BACKLOG.md`, решения — нотами. Разобрано со старшим коллегой 11.09, его правки внесены. > > ⚠ **Раскладка (слово владельца 11.09):** одновременно лежат промты РАЗНЫХ зон — бэкенд · платформа · > полигон · фронт. **Двух промтов одной зоны быть не может**; слот освобождается закрытием пака актом. ## Критерий полноты базового функционала — ответ на сомнение владельца **Фронт размораживать, когда каждый шаг пути имеет на бэкендах: (а) смонтированную дверь по канону, (б) СОДЕРЖИМОЕ, которое эта дверь отдаёт, (в) словарь исходов, которым она отказывает.** Реестр требований целиком критерием быть не может — 🔶 стоит у 24 строк из 45, «без 🔶 на ядре» не наступит никогда. По этому критерию путь ОДНОГО гостя zh→ru полон до последнего шага, а неполнота сидит в **трёх местах**: 1. **ВХОД — ⛔ ФОРМУЛИРОВКА ИСПРАВЛЕНА 11.09 ЗАМЕРОМ, ДВЕ ТРЕТИ ЕЁ БЫЛИ МОЕЙ ОШИБКОЙ.** Пере-снято: **(а)** пригласительного гейта и allow-list действительно НЕТ — учётку получает кто угодно, прошедший провайдера (греп `invite|allowlist|AllowedDomains` по `platform/internal` и `cmd`: живых механизмов 0 при контрольных 204 Go-файлах); **(б)** грант новичку 0 — это НЕ дыра, а **ратифицированное решение владельца** (`D39.176` п.1: «никаких квот, живём на покупке API; бонусы зачисляются из админки»), и он же работает экономическим гейтом закрытой беты: аккаунт заводится, но без ручного пополнения не может ничего; **(в)** «лимита размера загрузки нет» — **НЕВЕРНО**: байтовый потолок стоит на маршруте интейка, `platform/internal/httpapi/server.go:98`=`UploadLimits{MaxBytes: 64 << 20, Deadline: 10 * time.Minute}`, механизм — `http.MaxBytesReader` (`middleware.go:22`). ⇒ **Живой остаток — операционная гигиена, и `D39.176` п.1 прямо называет её инженерной, без слова владельца:** число аплоадов ничем не ограничено · у статуса `rejected` нет выхода · каталоги-сироты никто не подметает. Плюс три ряда регистра (`PD-162` · `PD-455` · `PD-448`). Платформа, дни. ⛔ **Продуктовых квот и фри-тир-лимитов НЕ ПРОЕКТИРОВАТЬ** — `D39.176` п.1 закрыл вопрос целиком. 2. ⛔ **СОДЕРЖИМОЕ УЗЛА ПОДПИСИ БАНКА** — человеческий узел потока показывает ПУСТОТУ: у секции предложений читателя нет (`json:"proposed` — 0 хитов при 356 json-тегах), живой экран 04.09 отдал `total 0, signed 0`. 3. **ВТОРАЯ ПАРА** — японская книга получает китайскую транскрипцию. «Требуется проекту», не показу zh→ru. Условное (4): **CORS/same-origin** — `Access-Control` 0 хитов при 201 Go-файле; предусловие прогона B. ⚠ **«Качественно готовы» имеет ВТОРОЕ чтение, и его надо назвать владельцу:** качество перевода на целевом жанре не измерено и кодом не обещано. Эта готовность наступает только ПОСЛЕ настоящей книги — то есть после прогона, а не до него. ## Горизонт | № | зона | предмет | цена | состояние на 11.09 | |---|---|---|---|---| | 1 | **бэкенд** | структура глав, ДИЗАЙН | $0 | ✅ **ЗАКРЫТ АКТОМ `D39.245`** без сходимости, правилом остановки | | 2 | **платформа** | правда у двери: `PD-455` · `PD-448` (разбор) · `PD-162` | $0 | ✅ **ЗАКРЫТ АКТОМ `D39.246`** с дофиксом по двум находкам приёмки | | 3 | **полигон** | **прогон A**: настоящая книга до ФАЙЛА, платный провайдер | **факт $0.419424** | ✅ **ЗАКРЫТ АКТОМ `D39.247`**; строка 16 закрыта замером | | 4 | **бэкенд** | ⛔ **КОНСИСТЕНТНОСТЬ, КОТОРУЮ МОЖНО ПРЕДЪЯВИТЬ**: ряды **406** · **407** · **408** · **409**, плюс купленные прогоном **417** (закон банка не виден в тексте) и **418** (два числа движка об одном терме) | пак, почти весь $0 | **СЛОТ СВОБОДЕН — следующий** | | 5 | **бэкенд** | «ВЫДАЧА, КОТОРУЮ ВИДИТ ЧИТАТЕЛЬ»: ряды **284** · **201** · **283** · **307** · **291** | пак | после 4; форму гранулярности решает дизайн глав | | 6 | **фронт** | поверхность показа | пак | разморозка + пункты 1–5 | | 7 | **полигон** | «РЕМОНТ ПРИБОРА» — промт написан и распаркован закрытием прогона A | $0 | слот свободен | | 8 | **бэкенд/деньги** | ⛔ **четверть COGS в одном механизме** (ряд **415**) и протухший пин цены (**413**) — куплены прогоном A, вес высокий | пак | после 4 | ⛔ **ПОЧЕМУ 4 ВСТАЛ ПЕРЕД 5 (решение 11.09 по мерилу владельца).** Мерило — «качественный КОНСИСТЕНТНЫЙ перевод длинных книг». Аудит банка 11.09 показал, что **книжного вопроса о консистентности не задаёт ни один прибор**: мера расхождения форм построена, но считается по ЧЕРНОВИКУ до редакторской волны, а по отгружаемому тексту её нет вовсе. Пока её нет, приоритет №1 владельца непроверяем в принципе — и любая работа над ВИДОМ выдачи улучшает то, что мы не умеем измерять. Ряды 406–409 почти целиком $0 и переиспользуют построенное; ряд 408 — вообще ДАННЫЕ, а не Go. Носитель разбора — `docs/research/34-memory-bank-quality-audit.md`, акт — `D39.243`. ## Прогон A — точечно (пере-написано 11.09 после разбора со старшим коллегой) **ПРЕДМЕТ — строка 16: цена книги, ДОВЕДЁННОЙ ДО КОНЦА, не измерена ни разу.** Цикл замкнут живьём 04.09 (`D39.194` п.1: скачанный EPUB прошёл `epubcheck`), но книги, дошедшей до `exports.complete = true`, через API не было: 04.09 упёрлось в потолок (`PD-440`, с тех пор лечено `D39.206`/`D39.208`). Прогон A ведёт одну настоящую книгу от двери до ФАЙЛА и печатает, чем каждый узел предъявлен. ⛔ **ЛОКАЛЬНОЙ МОДЕЛИ НЕТ** (слово владельца 11.09 — на машине нет видеокарты): провайдер `local` смотрит в `http://127.0.0.1:11434/v1`, а на хосте нет ни `nvidia-smi`, ни `ollama`, ни слушателя на 11434 (контроль: слушателей всего 5, на 11434 — 0). Значит настоящие узлы можно пройти только платно. ⛔ **ТРИ МОИ ОШИБКИ В ЭТОМ РАЗДЕЛЕ, СНЯТЫЕ РАЗБОРОМ 11.09:** 1. **«Книга со стенда P9»** — на P9 (27.08) стояла встроенная трёхглавая ЗАГЛУШКА (`seed` «demo.txt») и крафтовая проба в 1222 байта на `fake_provider.py`. Настоящая короткая книга — это 04.09: `books/gu-zhenren/coldrun-v16/guzhenren-ch1-10.gb18030.txt` (10 глав, 14 юнитов). Брать **главы 1–3** (≈4 юнита, глава 1 двухъединичная — пере-проверить манифестом ДО фриза). 2. **«Пробой 27.08 оборвался на правке банка»** — неверно: транскрипт показывает preview → apply → `already_applied` → `409` на противоречии → resume → `ready 6/6`. Он не оборвался, а кончился там, где кончался тогдашний контракт: без провайдера, без настоящей книги и без двери выгрузки. 3. **«Заглушка годится только как двадцатиминутный дым»** — наоборот: **$0-дым по заглушке ОБЯЗАТЕЛЕН фазой 0.** Он валидирует драйвер, сборщики следов и дверь выгрузки бесплатно; без него первая же инфраструктурная осечка сожжёт «холодность» платной книги. ⛔ **ДЕНЬГИ — ДВА ЧИСЛА, И Я ЗНАЛ ТОЛЬКО ОДНО.** Ожидаемая трата ≈ **$0.30** (замер 08.09: 10 глав за `committed=$1.259217`). Но машинный КАП — это ХОЛД, а не ожидание: на `c1` книжный бонд `book_once = budget_usd 1.00 + classify_budget_usd 1.00 = $2.00`, поэтому холд трёхглавой книги ≈ **$2.3–2.5**, и грант обязан быть не меньше, иначе допуск откажет. ⇒ **владельцу называются оба: «ждём ≈$0.30, кап ≈$2.5».** **Предусловия, которых в плане не было (замерены 11.09):** артефакта контраста майнинга нет НИ ОДНОГО на файловой системе (`CheckMiningContrast` откажет на старте и оставит `failed`-прогон, после которого книга уже не холодная) · `eval/.venv` не существует, jieba не установлен · кластер Postgres опущен · `epubcheck`/`java` на хосте нет. Всё это ставится ДО фриза. **Фриз** — sha коммита ПЛЮС бинари, собранные из `git worktree add <путь> `: сборка из главного дерева даёт `vcs.modified=true` от любого untracked-файла, и драйвер обязан отказывать по `go version -m`. ⚠ Прогону A **запрещено чинить найденное** — только пинги. Приёмка узла — по ТРЁМ независимым следам (Postgres · диск и systemd · HTTP), не по самоотчёту движка. Ожидаемый исход каждого шага пишется ДО прогона. ⛔ **Претрейн:** 蛊真人 узнаётся моделями 4 из 5 ⇒ пре-рег объявляет, что клеймов О КАЧЕСТВЕ пак не делает вовсе; узлы судятся механизмом (кадры, флаги, леджер), а не чтением текста. ## Решения владельца, уже полученные (носитель — ЗДЕСЬ; заведён 11.09, прежде его не было ни в одном доке) - ✅ **ПЛАТНЫЙ ПРОГОН A РАЗРЕШЁН** (слово 11.09: «Разрешаю»). Ожидание ≈$0.30, машинный кап ≈$2.5 (холд, см. раздел выше). ⚠ Санкция названа ЗДЕСЬ, потому что опровергатель 11.09 поймал: промты ссылались на неё как на факт, а в дереве её не было ни строкой — «известное со слов» не носитель. - ✅ **Остановка остаётся ЖЁСТКОЙ, деньги терять ДОПУСТИМО, но остановка обязана быть КОРРЕКТНОЙ** — без гонок, без половинчатых состояний, с верным возобновлением (`D39.240`). - ✅ **Автономия смены (11.09):** решения принимаю сам, советуясь со старшим коллегой; мерило — главные ценности продукта (качественный консистентный перевод длинных книг), затем архитектура и чистый код, необходимый рефакторинг и отсутствие велосипедостроения. ## Что решает владелец — ОСТАЛОСЬ - **Определение показа:** аудитория и вход · какая книга · один гость или несколько · **бюджет времени** (`ПТ-19` называет скорость киллерфичей, а времени у экрана никто не мерил). - **Деньги гостя на показе** — стенд сеет $25, продукт 0; дневного потолка в шаблоне намеренно нет. - Какую из двух «готовностей» он имел в виду — полноту функционала или качество перевода. - **Пять вопросов банка памяти**, поднятых аудитом 11.09 (стоп или флаг на разъехавшемся термине · входит ли ГОЛОС в приоритет №1 · один перевод у НЕподписанного термина · накапливать ли банк между прогонами · остановка на подпись — опция или свойство продукта). Носитель разбора — `docs/research/34-*`. ## Вычеркнуто Лендинг (строка **384**) — отдельная поверхность. Брокер конкурентности — решается определением «один гость». Корректность остановки — после A, объёмом по его уликам; четыре однострочника «без мусора» идут приложением к пункту 4, kill-харнесс — следующим слотом. ## Мои ошибки, снятые разбором — чтобы не повторить 1. «По рецепту P9» — рецепт идёт мимо фронта и обрывается до последней трети. 2. «Второй контур наблюдения» как условие — гейтил бы прогон стройкой ненужного ему. 3. «Приоритет №1 не исполняется кодом вовсе» — **неверно**: консистентность держится инъекцией банка и пост-проверкой, которая ФЛАГУЕТ и ОТГРУЖАЕТ. Это «нет ОТКАЗА», а не «нет носителя». 4. «Прогон A — зона платформы» — **нет, полигона**: он не пишет кода зон, это эксперимент с пре-регистрацией. Слот платформы поэтому свободен. 5. **«Вход» как дыра из трёх частей** — две части оказались не дырами (грант ратифицирован, байтовый потолок построен), и я объявил их отсутствующими, не спросив дерево. Замер и правка — в самой дыре 1.