19 KiB
Ближайший горизонт — 3–5 промтов
Рабочая записка оркестратора №23. Только порядок и зоны, не заказы. Живёт до исполнения, потом в архив. Долг живёт строками
BACKLOG.md, решения — нотами. Разобрано со старшим коллегой 11.09, его правки внесены.⚠ Раскладка (слово владельца 11.09): одновременно лежат промты РАЗНЫХ зон — бэкенд · платформа · полигон · фронт. Двух промтов одной зоны быть не может; слот освобождается закрытием пака актом.
Критерий полноты базового функционала — ответ на сомнение владельца
Фронт размораживать, когда каждый шаг пути имеет на бэкендах: (а) смонтированную дверь по канону, (б) СОДЕРЖИМОЕ, которое эта дверь отдаёт, (в) словарь исходов, которым она отказывает. Реестр требований целиком критерием быть не может — 🔶 стоит у 24 строк из 45, «без 🔶 на ядре» не наступит никогда.
По этому критерию путь ОДНОГО гостя zh→ru полон до последнего шага, а неполнота сидит в трёх местах:
- ВХОД — ⛔ ФОРМУЛИРОВКА ИСПРАВЛЕНА 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 закрыл вопрос целиком. - ⛔ СОДЕРЖИМОЕ УЗЛА ПОДПИСИ БАНКА — человеческий узел потока показывает ПУСТОТУ: у секции предложений
читателя нет (
json:"proposed— 0 хитов при 356 json-тегах), живой экран 04.09 отдалtotal 0, signed 0. - ВТОРАЯ ПАРА — японская книга получает китайскую транскрипцию. «Требуется проекту», не показу 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 (закон банка не виден в тексте) и 419 (стеммер: 11 из 18 промахов — ложные) | пак, почти весь $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:
- «Книга со стенда 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 двухъединичная — пере-проверить манифестом ДО фриза). - «Пробой 27.08 оборвался на правке банка» — неверно: транскрипт показывает preview → apply →
already_applied→409на противоречии → resume →ready 6/6. Он не оборвался, а кончился там, где кончался тогдашний контракт: без провайдера, без настоящей книги и без двери выгрузки. - «Заглушка годится только как двадцатиминутный дым» — наоборот: $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 <путь> <sha>: сборка из главного дерева
даёт 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). - ✅ ГОЛОС ВХОДИТ В ПРИОРИТЕТ №1 (слово 11.09: «Входит»). Прежнее расхождение канона проекта («термины/голоса») и ратифицированного списка 05.09 (голос №3) снято. ⛔ Форма работы задана тем же словом: проектирует и контролирует голос FABLE, исполняет ОПУС — сессии обсуждают имплементацию с агентом Fable 5, а не решают сами. Носитель предмета — строка бэклога 410 (голос мёртв в четырёх местах и не имеет ни одного числа за историю проекта).
- ✅ Автономия смены (11.09): решения принимаю сам, советуясь со старшим коллегой; мерило — главные ценности продукта (качественный консистентный перевод длинных книг), затем архитектура и чистый код, необходимый рефакторинг и отсутствие велосипедостроения.
Что решает владелец — ОСТАЛОСЬ
- Определение показа: аудитория и вход · какая книга · один гость или несколько · бюджет времени
(
ПТ-19называет скорость киллерфичей, а времени у экрана никто не мерил). - Деньги гостя на показе — стенд сеет $25, продукт 0; дневного потолка в шаблоне намеренно нет.
- Какую из двух «готовностей» он имел в виду — полноту функционала или качество перевода.
- ⛔ ПЯТЬ ВОПРОСОВ ПО СТРУКТУРЕ ГЛАВ (дизайн
backend/docs/CHAPTER_STRUCTURE_DESIGN.md§11; носителя вне документа не было до 11.09 — заведён аудитом смены). В-1 каким номером глава зовётся в глазах пользователя, если адрес стал контентным · В-2 что происходит с уже переведёнными книгами при перекрое · В-3 платит ли кто-нибудь за пере-нарезку · В-4 когда твердеет НАРЕЗКА (это деньги) · В-5 когда твердеет ВИД (это читатель). ⚠ Последние два разделены сознательно: схлопнутый вопрос получил бы схлопнутый ответ, а платит за разницу перекрой. Ни одна из двух точек затвердевания D-нотой НЕ ратифицирована. - Пять вопросов банка памяти, поднятых аудитом 11.09 (стоп или флаг на разъехавшемся термине · входит ли
ГОЛОС в приоритет №1 · один перевод у НЕподписанного термина · накапливать ли банк между прогонами ·
остановка на подпись — опция или свойство продукта). Носитель разбора —
docs/research/34-*.
Вычеркнуто
Лендинг (строка 384) — отдельная поверхность. Брокер конкурентности — решается определением «один гость». Корректность остановки — после A, объёмом по его уликам; четыре однострочника «без мусора» идут приложением к пункту 4, kill-харнесс — следующим слотом.
Мои ошибки, снятые разбором — чтобы не повторить
- «По рецепту P9» — рецепт идёт мимо фронта и обрывается до последней трети.
- «Второй контур наблюдения» как условие — гейтил бы прогон стройкой ненужного ему.
- «Приоритет №1 не исполняется кодом вовсе» — неверно: консистентность держится инъекцией банка и пост-проверкой, которая ФЛАГУЕТ и ОТГРУЖАЕТ. Это «нет ОТКАЗА», а не «нет носителя».
- «Прогон A — зона платформы» — нет, полигона: он не пишет кода зон, это эксперимент с пре-регистрацией. Слот платформы поэтому свободен.
- «Вход» как дыра из трёх частей — две части оказались не дырами (грант ратифицирован, байтовый потолок построен), и я объявил их отсутствующими, не спросив дерево. Замер и правка — в самой дыре 1.