textmachine/docs
2026-09-17 22:31:47 +03:00
..
architecture Record the flaky quadratic-growth pin as a tracker row and an erratum, and correct the English pair prompt where a live run refuted its manifest claim 2026-09-17 21:28:33 +03:00
archive Ratify the settled-basis pack as D39.266, carrying the backend zone's own report and the platform zone's PD-441 cell, and open the English pair prompt 2026-09-17 20:59:53 +03:00
experiments Mark the doc addresses the ladder pack made stale, and add an erratum for the note whose prescribed grep no longer finds anything 2026-09-17 07:34:54 +03:00
research Record the live addresses of four anchors inside note bodies and one inside the consilium, where the bodies themselves must not be rewritten 2026-09-17 09:05:51 +03:00
scripts Make the docs gate block on head and literal divergence while anchors stay a warning, and mark the superseded reason as superseded 2026-09-17 02:21:45 +03:00
BACKEND_ENGLISH_PAIR_SESSION_PROMPT.md Record the flaky quadratic-growth pin as a tracker row and an erratum, and correct the English pair prompt where a live run refuted its manifest claim 2026-09-17 21:28:33 +03:00
BACKLOG.md Open two tracker rows for the EPUB ingest: nested block quotes multiply line breaks inside verse, and italic spans may not reach the chunk at all 2026-09-17 22:23:34 +03:00
DOC_CLEANUP_PLAN.md Fix two dead anchors of my own: one names a tracker row while pointing at the journal, the other cites a criterion long fulfilled 2026-09-17 07:46:34 +03:00
glossary.md Record what a call's reasoning cost, name and count the generations that came back with nothing, and add the lower effort step behind a key that ships off 2026-09-11 21:19:55 +03:00
NEAR_TERM_PLAN.md Record the owner's two answers: prompts stay in Russian for the English pair, and prompt comments go with their provenance moved to a zone document 2026-09-17 22:31:47 +03:00
orchestrator-norms-scratchpad.md Record the readiness gate the owner set before the experiment, correct the non-Han bank rows after a live measurement, and open a row for the pair-blind prompt override 2026-09-17 21:53:32 +03:00
ORCHESTRATOR_SESSION_PROMPT.md Move ten closed pack reports out of the progress journal into an archive slice, cutting it from 5178 lines to 640 2026-09-17 00:52:12 +03:00
product-requirements.md Bring the entry paths in line with the repository they describe: the map, the glossary, the requirements register, the stack notes and three live prompts. 2026-09-10 22:00:55 +03:00
PROGRESS.md Re-aim four stale anchors in the live docs to addresses found by token search, and record the addresses inside decision bodies as a header erratum instead 2026-09-17 21:14:46 +03:00
README.md Ratify the settled-basis pack as D39.266, carrying the backend zone's own report and the platform zone's PD-441 cell, and open the English pair prompt 2026-09-17 20:59:53 +03:00
STACK.md Bring the entry paths in line with the repository they describe: the map, the glossary, the requirements register, the stack notes and three live prompts. 2026-09-10 22:00:55 +03:00

TextMachine — документация

Проект: издательский художественный перевод крупных текстов (книги, ранобэ, вебновеллы) мультиагентным пайплайном поверх LLM API; пара языков — данные, не код, сегодня боевая zh→ru. Go-бэкенд + веб-фронт ридер-IDE (Ф3) + платформа (SaaS control plane, platform/, D39.81). Цели и мерило — канон в ../CLAUDE.md; онбординг сессий — там же. Стартовый бриф владельца: ../START_PROMT.MDживой документ, его V-идеи разобраны в реестр требований (ниже).

Состояние проекта НЕ здесь — кроме таблицы активных промтов ниже, и это осознанное исключение: она отвечает на вопрос «какой файл мой», без которого холодная сессия выбирает роль сама (проверено слепым замером входа). Всё остальное состояние — Очередь и курс — CURRENT-STATE в шапке PROGRESS.md, а долг — единый бэклог BACKLOG.md; решения — architecture/05-decisions-log.md (при конфликте с любым доком побеждает он). Эта страница — только карта «что где лежит».

Карта

  • glossary.md — жаргон и сокращения (D-номер, паки, банк, голден, K/DC/H/L…) одним экраном.

  • product-requirements.md — реестр «что продукт обязан уметь»: производное живого брифа владельца и его находок, статусы сверены кодом.

  • architecture/ — синтез и контракты:

    • 05-decisions-log.mdисточник истины по решениям: ратифицированный контракт, при конфликте побеждает он. Дисциплина чтения (грепать номер, не читать целиком, баннер прежде тела) — в каноне ../CLAUDE.md, здесь не дублируется. Статус и тело ЛЮБОГО номера одним хопом — реестр 05-decisions-index.md (все ноты, колонка тем для грепа «какой закон по X»).
    • 09-target-architecture.md — целевая 7-слойная архитектура (статус стройки — шапка-таблица; §3 — карта находок H/L) · 10-prompt-architecture.md — промпт-слой · 12-go-style-notes.md — норматив общности §0 · 13-tech-debt-anchors.md — якоря техдолга + археология выселенных строк бэклога §Б-* (справочник к бэклогу, НЕ трекер) · 14-api-contract/контракт API v0 фронт↔платформа (D39.99): нормативная спека OpenAPI 3.1 (типы фронта генерятся из неё) + компаньон-README с провенансом каждой строки (легенда — в нём самом; зонная копия frontend/docs/api-contract/ ОТСТАЛА на 0.2.3 при каноне 0.16.0 (испр. оркестратором 17.09 дважды: прежде стояло 0.10.0 — разошлось на пять миноров, затем 0.15.0 — бамп D39.262; ⚠ версию канона брать ФАЙЛОМ — grep '^ version:' architecture/14-api-contract/openapi.yaml, число здесь стареет) и зеркалом сегодня НЕ является — зона заморожена, синк при разморозке; читать ТОЛЬКО канон).
    • Топикальные входы (D39.126; НЕ источники истины, при конфликте побеждает D-лог): 15-money-path.md — деньги от гранта до settle одним маршрутом · 16-events-emitter.md — сборка-норматив эмиттера шва — обязательное пре-чтение перед кодом эмиттера · 17-seam-inbound-law.md — закон ВХОДНОЙ двери шва движок↔платформа — РАТИФИЦИРОВАН D39.156: семь пунктов дисциплины, двери встают паками без нового решения владельца · 18-bank-ontology.md — онтология банка памяти (РАТИФИЦИРОВАНА D39.158): три роли носителей, единственные писатели, дисциплина проекции — обязательное пре-чтение перед кодом, трогающим банк или его артефакты · STACK.md — карта «роль → модель → конфиг → квирки».
    • Исторические, читать через ⚠-баннеры: 01-decisions.md (Р1Р10) · 02-mvp-plan.md · 03-implementation-notes.md · 04-unhappy-paths.md · 06-memory-risk-registry.md.
  • experiments/ — эмпирика полигона: 00-provider-quirks.mdчитать перед любым вызовом провайдера; 08-cost-model-v2.md — денежная модель; 09-pilot-protocol.md — пилот Ф2.5; остальные — отчёты экспериментов. ⚠ У каждого отчёта статус в его ревью-шапке: читай шапку прежде тела — она первична и говорит, ратифицированы выводы или заморожены.

  • research/ — фактура ресёрчей; у принятых — ревью-шапки, часть тел под ⚠ superseded: читай баннер прежде содержимого. Ключевые для навигации: 15 голос · 16 ридер-IDE · 17 внешняя критика · 18 рычаги качества · 19 нарезка · 20 банк-майнинг · 21 обзор транспорта · 22 доменные харнессы · 23 шов движок↔платформа · 25 холодное ревью шва — читать перед любым кодом стыка · 24 арбитраж банка · 26 официальные практики Anthropic · 28 контракт-ревью API v0 — носитель для исполняющих сессий, читать оригинал, не пересказ · 27 детекция глав · 33 техдолг бэкенда — основание курса перекроя; диспозиции ратифицированы D39.224, адреса §3 читать через эррату шапки · 35 консилиум по банку памяти — решение, выработанное советом агентов: что банк есть, как проходят восемь проблем, цена каждого шага, порядок относительно перекроя глав и пять вопросов владельцу; принят актом D39.253 с дофиксом и названным остатком · 34 банк памяти и качество перевода — что механизм консистентности держит, чего не держит и что доработать; читать через ревью-шапку (14 находок из 15 отвергнуты верификацией по ВЕСУ, синтез написан после неё).

  • PROGRESS.md — журнал: CURRENT-STATE + состояние паков + живой хвост хроники и зонные секции «Бэкенд»/«Полигон». НЕ источник решений.

  • BACKLOG.mdЕДИНЫЙ БЭКЛОГ проекта (единственный трекер; «строка N» — стабильный ID). Вынесен из PROGRESS.md 06.09 (D39.218; исключение из дословности названо в шапке того файла); зонные бэклоги — свои и с другими ID (П-N, Ф-N, PD-N).

  • Тулчейн на чистой машине. Версии не здесь — их носители: backend/Makefile и platform/Makefile (GO_MIN_VERSION, GOLANGCI_VERSION), frontend/package.json (engines), platform/docs/STACK_DECISIONS.md §«Postgres на стенде без root», eval/requirements.txt + eval/.python-version. Здесь только то, чего нет нигде: ставим в ~/.local/opt/<инструмент> с симлинком в ~/.local/bin (он уже в PATH), берём последний патч пинованного минора, а не следующий минор — линтер пинован точным равенством и разъедется. Root требуют ровно два пакета: build-essential (без C-компилятора нет -race, а снять -race значит выдать отсутствие тулчейна за зелёный прогон — см. комментарий над целью test в backend/Makefile) и python3-venv (в системном питоне нет ensurepip, и установка полигона по eval/README.md обрывается на первом шаге).

  • orchestrator-norms-scratchpad.mdрабочий чек-лист смены №23: стоячие правила владельца на луп, механическая сверка перед выдачей промта и перед лендингом, живая раскладка слотов зон и журнал выдач. ⚠ Копий норм не несёт — они в ORCHESTRATOR_SESSION_PROMPT.md; умирает вместе с очередью.

  • NEAR_TERM_PLAN.mdгоризонт на 35 ближайших промтов: порядок, зоны и чем каждый заперт. Рабочая записка оркестратора, живёт до исполнения. ⚠ Не трекер и не реестр: долг — в BACKLOG.md, решения — нотами.

  • scripts/counts.pyпроизводные числа доков считаются им, а не руками (голова по трём носителям · счёт очереди и зон · вес открытых строк регистра платформы · полнота реестра нот); --check даёт ненулевой код на расхождении; --lint — линтер file:line-якорей живых доков (D39.126). Его же зовёт зонный хук scripts/githooks/pre-commit: --lint якорей — при ЛЮБОМ коммите с непустым индексом, включая коммиты чистого КОДА (гейт по составу снят 21.08: цели якорей живут в коде, и двигает их кодовый коммит; шумовое следствие — строка бэклога 244); --check чисел и головы — только при коммите с D-логом или PROGRESS (оба --from-index, предупреждает, не блокирует). ⚠ Гейт бутстрапится ЧУЖОЙ зоной — это ДЕФЕКТ, а не порядок работы (строка бэклога 220): судит он CLAUDE.md и доки трёх зон, а в .git/hooks/ его кладёт единственный установщик frontend/scripts/githooks/install.mjs, то есть побочный эффект npm install в зоне, которая ЗАМОРОЖЕНА. На свежем клоне .git/hooks/ пуст и гейт молчит, не проверив ничего. Пока строка открыта, бутстрап делается руками (node frontend/scripts/githooks/install.mjs) — и это ВРЕМЕННАЯ мера, которую строка 220 закрывает, а не способ жить дальше. ⚠ Шапка систематически отстаёт от хвоста у ЛЮБОГО автора — потому проверка механическая, а не «посмотрю внимательно».

  • Активные хендофф-промты — какой файл ТВОЙ (состав обновляется при каждом лендинге, D39.80; хроника, причины и статусы РАБОТ — CURRENT-STATE и D-лог):

    Роль Активный промт Статус
    Бэкенд · АНГЛИЙСКАЯ ПАРА en→ru BACKEND_ENGLISH_PAIR_SESSION_PROMPT.md ВЫДАН 17.09 сессии textmachine-main-c5 (холодная по всем трём носителям: блока в канале нет, упоминаний в живых доках нет, в D-логе ноль). Центр пака — СЛОЙ ДАННЫХ английского языка (слово владельца 17.09: «код может быть и да, но вот данные надо написать… уникально описать английский язык… от этого качество перевода зависит»); китайский берётся как образец ФОРМЫ вопросов, ответы пишутся английскими категориями. Две стены (EXIT 10): нет промт-пакета пары и гейт терминолога при пустом паке. Тихое: порог эха 0.15 унаследован от китайского бенчмарка и на латинице ЭСКАЛИРУЕТ ложно; второй детектор латиницы работает без гейта и требует аллоу-листа, а не правки порога. Материал — Кристофф «Империя рассвета», мера по ТОКЕНАМ (решение владельца). Fable 5 разрешён исполнителю ОДИН, под верификацию данных. Два рубежа пройдены: механическая сверка 13 блоков (27 адресов, битых 0) и субагент-опровергатель — 15 находок, 9 приняты, 6 уточнены моими числами, включая ЧЕТЫРЕ моих ошибки популяции. $0 по умолчанию
    Платформа · ПРОГОН НЕ ВРЁТ О СЕБЕ активного НЕТ пак ОТРАБОТАН и ПРИНЯТ 17.09 — акт D39.265 (32 пути, $0, контрактный минор 0.17.0); промт в archive/prompts/ с баннером-исходом. Ряды 398 · 399 · 400 · 486 закрыты работой, 394 и 396 — ПЕРЕ-РЕШЕНИЕМ (четвёртое значение в клиентский словарь не идёт: «мы сами перестали перезапускать» — другая ось, чем «стоит ли повторять», и границу между осями стережёт новый гейт на три носителя), 416 — платформенной половиной. Кампания пере-снята приёмкой: 26 записей · поймано 25 · выжила 1, объявленная ДО прогона · неизмеренных 0. Гейт зоны красен на экземпляре ряда 484 (фикстурный бюджет записи под нагрузкой; оба упавших теста живут в чистом HEAD) — названо границей, а не зеленью. ⚠ Две ошибки приёмки названы в акте: оркестратор взял себе правку канона (откачена) и неточно сформулировал §4.1 промта. Живое — ряды 416 (движковая половина) · 484 · 493 · 494
    Бэкенд · РЕШЁННОЕ НЕ ПЕРЕ-СПРАШИВАЕТСЯ активного НЕТ пак ОТРАБОТАН и ПРИНЯТ 17.09 — акт D39.266 (d25e418, 32 пути, $0); промт в archive/prompts/ с баннером-исходом. Решённая строка переживает покупку: носитель — таблица bank_basis, миграция v19, аддитивная. Ряд 490 закрыт по трём условиям, 130 получил ТРЕТИЙ исход (замысел достигнут другим механизмом, стоп-решение за владельцем), два отказа с замером, заведён 496. Числа приёмки оркестратора: кампания 315/315 поймано, выживших 0, неизмеренных 0; M1 — 67 из 69 и 64 из 66 обслужено из памяти. Приёмка нашла две дыры ОДНОГО класса — не неверное число, а отсутствующее утверждение — и купила норму «сверять перечень заказа по СПИСКУ ЗАКАЗЧИКА». Выдавался 17.09 сессии textmachine-main-57 (свежая: паков не брала, контекст пуст — проверено опросом, а не списком). ⚠ Свежих нашлось ДВЕ; вторая (textmachine-main-78) оставлена нетронутой, ей сказано не читать промт и не занимать зону — один промт на зону. Предмет: движок на каждой покупке заново платит банк-ролям за решённые термины — 12 из 69 и 14 из 66 смен передачи при неизменной улике у 25 из 26 строк; потолки ролей ПОЖИЗНЕННЫЕ. Строит базис решённого (ряд 130) и стража разрыва окон (ряд 490). Два рубежа пройдены: механическая сверка 13 блоков (27 якорей, все живы) и субагент-опровергатель — 12 находок, 9 денежных, все внесены, включая мою ложь «текста в коде нет» о живой строке и материал замера, из которого предмет не строился. $0
    Бэкенд · БАНК ЗА $0 активного НЕТ пак ОТРАБОТАН и ПРИНЯТ 16.09 С НАЗВАННЫМ ОСТАТКОМ — акт D39.257; промт в archive/prompts/ с баннером-исходом. 29 путей, $0. Посылка D39.256 перестала быть посылкой: 25 из 26 смен при идентичном входе. Мажоры — сдвинутые якоря (ряд 467) и арм по чужому знаменателю (ряд 462). ⚠ Остаток: полный прогон каталога мутаций (267) на момент акта не закончен. Слот бэкенда СВОБОДЕН
    Бэкенд · КУПЛЕНО — ЗНАЧИТ ДОСТАВЛЕНО активного НЕТ пак ОТРАБОТАН и ПРИНЯТ 16.09 С НАЗВАННЫМ ОСТАТКОМ — акт D39.255; промт в archive/prompts/ с баннером-исходом. Лендинг af88680, 29 путей, $0. Закрыты строки 291 и 379 (вторая — ЗАМЕРОМ: мутант 8/8 против 7/8 в ряду). Пак пережил ПОТЕРЮ сессии: textmachine-b1 построила почти всё и исчезла при переезде окружения, доводила textmachine-main-b1 разделом ПЕРЕДАЧИ ред. 5. ⚠ Остаток — строки 375 · 232 · 453456; три опубликованных ключа качества сменили смысл (п.5 акта). Слот бэкенда СВОБОДЕН
    Сквозной · ХОЛОДНЫЙ ПРОГОН B активного НЕТ пак ОТРАБОТАН и ПРИНЯТ 11.09 — акт D39.252; промт в archive/prompts/ с баннером-исходом. Книга второй раз от двери до ФАЙЛА, факт $0.396657. Две меры денежной дыры разошлись в РАЗНЫЕ стороны на одних данных; 85.7 % оплаченного выхода — размышление, а не текст. Прибор приоритета №1 солгал вердиктом по подписанному имени героя. Качество впервые судилось по ОРИГИНАЛУ рядом с переводом: 26 находок, 1 крит
    Оркестратор ORCHESTRATOR_SESSION_PROMPT.md роль и нормы; счётчик роли — CURRENT-STATE
    Консилиум · БАНК ПАМЯТИ ДЛИННОЙ КНИГИ archive/prompts/BANK_MEMORY_CONSILIUM_SESSION_PROMPT.md пак ОТРАБОТАН и ПРИНЯТ 16.09 С ДОФИКСОМ И ОСТАТКОМ — акт D39.253; итог — research/35-bank-memory-consilium.md, ход работы и таблица проверки — research/35-bank-memory-consilium/00-protocol.md. Сдан по правилу остановки (три круга: 2·21·34 → 0·16·17 → 1·7·13); приёмка — пять осей вне консилиума, 50 находок, дофикс и узкий закрывающий круг. Пять вопросов владельцу — §6 итога. Не пак кодовой зоны: совет агентов (Fable 5 — 12), $0 по моделям проекта, пишет только research/35-bank-memory-consilium.md и одноимённый каталог. Входы — archive/reports/BANK_CONSILIUM_INPUTS_2026-09-15/: отозванный проект оркестратора и сверка того, что репозиторий уже решил и построил по банку
    Бэкенд · ДВЕ ОСТАНОВКИ активного НЕТ пак ОТМЕНЁН ВЛАДЕЛЬЦЕМ 10.09 до лендинга — акт D39.240; промт в archive/prompts/ с баннером. Причина — размах правки, не качество. ⚠ Предмет ЗАМЕНЁН и сузился: остановка остаётся жёсткой, деньги терять допустимо, но она обязана быть КОРРЕКТНОЙ (без гонок, без половинчатых состояний, верное возобновление). Пак успел купить D39.236D39.238 и строку 385
    Платформа · ДВЕ ОСТАНОВКИ активного НЕТ пак ОТМЕНЁН ВЛАДЕЛЬЦЕМ 10.09 до лендинга — акт D39.240; промт в archive/prompts/ с баннером. Причина — размах правки, не качество. ⚠ Предмет ЗАМЕНЁН и сузился: остановка остаётся жёсткой, деньги терять допустимо, но она обязана быть КОРРЕКТНОЙ (без гонок, без половинчатых состояний, верное возобновление). Пак успел купить D39.236D39.238 и строку 385
    Бэкенд · ВЫЗОВ, КОТОРЫЙ ОБОРВАЛИ МЫ активного НЕТ пак ОТРАБОТАН и ПРИНЯТ 10.09 — акт D39.232 (3f05fab, 28 путей, $0); промт в archive/prompts/ с баннером-исходом. Движок перестал платить дважды за одну генерацию; закрыты строки 360 · 369 · 78. Восемь кругов ревью; приёмка двумя рубежами нашла пять выживших мутаций на носителях ВИДИМОСТИ денег. Живое из остатков — 375 · 376 · 377 (⚠ форма испр. 10.09: здесь стоял ДИАПАЗОН «374377», а 374 закрыта — диапазон о закрытии ряда внутри себя не узнаёт, поэтому в этой таблице только перечисления)
    Бэкенд · ДВИЖОК УЖЕ ЗНАЕТ активного НЕТ пак ОТРАБОТАН и ПРИНЯТ С ДВУМЯ ДОФИКСАМИ 08.09 — акт D39.228 (2b6f1f4, 21 путь); промт в archive/prompts/ с баннером-исходом. Закрыты строки 355 · 357 · 358; у 253 и 312 закрыта ДВИЖКОВАЯ половина, платформенная жива (испр. 08.09 по кросс-модельному ревью: акт объявил обе закрытыми целиком). Живое из не взятого — 362 (ремонт против ремонта, 77 % денег чанка) и 363 (текстовый сайдкар молчит о неполноте); 360 ждёт слова владельца по денежной половине
    Бэкенд · КОНСИСТЕНТНОСТЬ активного НЕТ пак ОТРАБОТАН и ПРИНЯТ С ДОФИКСОМ 07.09 — акт D39.222; промт в archive/prompts/ с баннером исхода. Строки 267 и 318 закрыты, у 320 исполнена половина (а). Живой остаток зоны ЗАКРЫТ актом D39.226 (строки 333338); живое — 353 · 354 · 356 · 359 (⚠ форма испр. 10.09: стоял диапазон «353359», а 355 · 357 · 358 закрыты)
    Бэкенд · ПРАВДА ОПЕРАТОРУ И ДЕНЬГИ активного НЕТ пак ОТРАБОТАН и ПРИНЯТ С ДОФИКСОМ 08.09 — акт D39.226, живой платный прогон; промт в archive/prompts/ с баннером-исходом
    Бэкенд · ГЕЙТ ВМЕСТО ПРОЗЫ активного НЕТ пак ОТРАБОТАН и ПРИНЯТ С ДОФИКСОМ 07.09 — акт D39.225; промт в archive/prompts/ с баннером-исходом
    Бэкенд · КОНСИСТЕНТНОСТЬ, КОТОРУЮ МОЖНО ПРЕДЪЯВИТЬ активного НЕТ пак ОТРАБОТАН и ПРИНЯТ С ДОФИКСОМ 11.09 — акт D39.249 (0997e41, 26 путей, $0); промт в archive/prompts/ с баннером-исходом. Приоритет №1 впервые ИЗМЕРИМ по отгруженному тексту. Первый круг приёмки — шесть выживших посадок из шести; порядок колонок ратифицирован и отменён в тот же день (правило и два триггера — ряд 406). Каталог 169/169 RED, выживших 0. Живое: 407 и 419 наполовину · 408 с опровергнутым мотивом · 409 не тронут · новые 425427 · 428 · 431 · 432
    Бэкенд · СТРУКТУРА ГЛАВ (ДИЗАЙН) активного НЕТ пак ОТРАБОТАН и ПРИНЯТ 11.09 БЕЗ СХОДИМОСТИ, правилом остановки — акт D39.245 (1d2fab6, 3 пути, $0); результат — backend/docs/CHAPTER_STRUCTURE_DESIGN.md (2062 строки), статус ПРЕДЛОЖЕНИЕ до пака стройки. Глава становится ИДЕНТИЧНОСТЬЮ; предметная часть устояла в четырёх кругах опровержения, механика исполнения — нет, и пак стройки обязан начать с прогона миграционной механики ОПЫТОМ. Промт был — CHAPTER_STRUCTURE_DESIGN_SESSION_PROMPT.md, выдан 11.09 (актуализирован пятью врезками + 19 правок по опровергателю: мёртвые адреса, две таксономии осей, три «уже построено», собственная зона записи backend/docs/ с дизайном-оф-рекорд D15.2 и прибором shiftmap). ⚠ ПРОЕКТИРОВАНИЕ, НЕ СТРОЙКА (D39.136 п.3): дизайн окна большой пере-нарезки — чем адресуется глава и развязка чанкера (161) · карта осей сдвига · банк-окна на chapter-ID · контент-адресуемый resume D15.2 · IR/адаптеры/индуктор · правило заголовка и не-CJK путь (303) · гранулярность EPUB (302) и выдача (283). Снимает временный отказ интейка книге из одной главы (D39.221). Пак 1 «форматы и честный словарь» ОТРАБОТАН и ПРИНЯТ 06.09 — акт D39.210, промт в archive/prompts/. ⚠ ПАК 2 (лексиконы не-CJK, корпус, замер оракулом) — НЕ НАПИСАН и ждёт файлов владельца
    Бэкенд · ЗА ОДНУ ЕДИНИЦУ ПЛАТИМ ДВАЖДЫ активного НЕТ пак ОТРАБОТАН и ПРИНЯТ С ДОФИКСОМ 11.09 — акт D39.251 (22 пути, +947/66, 8 новых тестовых, $0); промт в archive/prompts/ с баннером-исходом. Наблюдаемость двойной оплаты построена, лекарство лендится ВЫКЛЮЧЕННЫМ и достаёт один случай из четырёх — условие включения в ряду 433. Посылка промта была ПЕРЕВЁРНУТА и снята зоной ДО первой правки (empty ×3 = 89 % потери, не length); reasoning_tokens ронял НАШ адаптер, а не вендор.
    Бэкенд · отозванный активного НЕТ пак КАЧЕСТВО написан и ОТОЗВАН до выдачи 05.09 (archive/prompts/…_WITHDRAWN.md): предмет дешевле пака — точность чекера уже измерена, пере-снять её стоит одной команды. Следующий пак — СТРУКТУРА ГЛАВ (решение владельца 05.09 «любая книга любого формата»), пишется
    Бэкенд · прежний активного НЕТ пак «денежный стоп» ОТРАБОТАН и ПРИНЯТ С ДОФИКСОМ 05.09 — акт D39.206 (81a89e9 + 616a8e4), промт в archive/prompts/ с баннером исхода. Следующая работа зоны — строки 291 (флаг вместо клина, D39.204) · 294 (форма «сколько добавить», D39.203) · 296 (точечная перегенерация по промаху глоссария, после 295)
    Платформа · ЧИТАТЕЛЬ ПРЕДЛОЖЕНИЙ БАНКА активного НЕТ пак ОТРАБОТАН и ПРИНЯТ 17.09 — акт D39.262 (ffd3751, 21 путь, контрактный минор 0.16.0); промт в archive/prompts/ с баннером-исходом. Ряды 224 и 253 закрыты со стороны платформы: на экране подписи было 0, стало 69 и 66. Мажор приёмки — канон обещал confidence неотрицательным, а тракт слал -1; вылечено КЛАССОМ (гейт читает диапазоны ИЗ канона, покраснел на ЧЕТЫРЁХ полях, свёртка у шва). ⚠ Оба варианта лечения, предложенные оркестратором, зона отклонила замером и адресом. Живое — ряды 479 · 353 · 484 · 486
    Бэкенд · ЛЕСТНИЦА ПОПЫТКИ ДЛЯ БАНК-РОЛЕЙ активного НЕТ пак ОТРАБОТАН и ПРИНЯТ 17.09 — акт D39.264 (10d245a, 18 путей, $0); промт в archive/prompts/ с баннером-исходом. Лестница вынесена в общий контур, банк-роли подключены к уже вычисляемому вердикту, ступени бюджетируются политикой фазы (nil = одиночный выстрел по построению). Два пункта закрыты ОТКАЗОМ с замером (хоп · ключ батча), оба приняты. ⚠ Приёмка нашла и зона починила четыре вещи: асимметрию записи счётчиков · отсутствие посадки у единственной денежной ручки, лендящейся включённой · поимку по неверно названной причине · число, снятое в середине работы. Живое — ряды 481 · 484 · 487 · 488
    Платформа · ОТВЕТ, НЕ ЗАВИСЯЩИЙ ОТ ВЕЗЕНИЯ активного НЕТ пак ОТРАБОТАН и ПРИНЯТ С ДВУМЯ ДОФИКСАМИ 11.09 — акт D39.250 (711569d, 27 путей, 24 новых теста, $0), контрактный минор 0.15.0; промт в archive/prompts/ с баннером-исходом. Предмет ПЕРЕ-ОПРЕДЕЛЁН замером зоны ДО первой правки: не гонка, а ординарный путь. Оба денежных предохранителя проверены не тем прибором; лечением стал СНОС $0-рецепта, а не починка. Закрыты PD-448 · PD-466 · PD-162 · PD-139 · П-22 · П-23. Живое — эскроу П-18 и одно названное слепое пятно (адрес вызова не пинится изнутри набора, который на хосте не бежит)
    Платформа · ПРАВДА У ДВЕРИ активного НЕТ пак ОТРАБОТАН и ПРИНЯТ С ДОФИКСОМ 11.09 — акт D39.246 (49f74d9, 15 путей, $0). PD-455 закрыт, PD-162 наполовину у обеих денежных дверей, PD-448 разобран и НЕ построен (четвёртый путь принят направлением, строит следующий пак вместе с минором 0.15.0). Приёмка нашла два дефекта ВНЕ карты автора: выживший мутант на единственной проводке BooksDir и тихо-зелёное в самом новом гейте. Живое — PD-162 (эскроу), PD-466, PD-139. Промт был — PLATFORM_TRUTH_AT_THE_DOOR_SESSION_PROMPT.md, выдан 11.09: PD-455 (форма обещает то, в чём дверь откажет — точка роста Blocked.code, не закрытый enum вердикта) · PD-448 (двойной клик по «продолжить» — исследуй и предложи, НЕ строй: все три законных пути требуют контрактного минора или миграции) · PD-162 (прогон книги с исчезнувшим каталогом висит с холдом — валидация каталога ПРИ ДОПУСКЕ). Свип сирот и потолок аплоадов СНЯТЫ подписанным пропуском: их гейт — открытая регистрация, которой в закрытой бете нет (PD-175 + D39.176 п.1)
    Платформа · РАЗРЕЗ ПРИЁМА И ПРАВДА О СЕБЕ активного НЕТ пак ОТРАБОТАН и ПРИНЯТ 08.09 — акт D39.229 (ddcbf0c, 26 путей, $0); промт в archive/prompts/ с баннером-исходом. Синхронный вход разреза под потолком, граница хвоста выведена из кода, зонный журнал и регистр приведены к правде (открытых 112 → 109, major 3 → 1). Живое из не взятого — строка 364 (потолок разрезов не есть потолок процессов движка)
    Платформа · ДЕНЬГИ И ПРАВДА активного НЕТ пак ОТРАБОТАН и ПРИНЯТ С ДОФИКСОМ 07.09 — акт D39.221, контрактный минор 0.13.0; промт в archive/prompts/ с баннером исхода. ⚠ Синхронный разрез приёма остановлен правилом остановки и заландён построенным, но НЕ готовым — десять пунктов несёт строка бэклога 332, и она же заказ следующему паку зоны; ложный инвариант бюджета заландён осознанно (окно 8 с при дефолте в 16 минутах)
    Платформа · ФОРМА ЗАКАЗА активного НЕТ пак ОТРАБОТАН, ПРИНЯТ С ДОФИКСОМ и ЗАЛЕНДЕН 06.09 — акт D39.208, код + канон 0.11.0; промт уведён в archive/prompts/ORDER_FORM_SESSION_PROMPT_2026-09-05.md с баннером исхода. ⚠ НЕ построено, хотя заказывалось: денежный ползунок на проводе объявлен, а отправить его нечем, и оценки под ВЫБРАННЫЙ заказ нет; «упрощение резюма» не сделано — обе позиции живут строками бэклога, брать их как новый пак СЛЕДУЮЩЕЙ сессии, не читать промт как задание
    Платформа · прежний активного НЕТ пак «пустить внутрь можно» ОТРАБОТАН и ПРИНЯТ С ДОФИКСОМ 05.09 — акт D39.201 (7e2226a + 3e84716), промт в archive/prompts/ с баннером исхода. Следующая работа зоны — строки 294 (зеркало словаря под минор потока) ⚠ (строка 293 — зона ОРКЕСТРАТОРА, не платформы: правило игнора общее для всех рабочих деревьев клона)
    Полигон активного НЕТ ЗОНА ВЫВЕДЕНА ИЗ СКОУПА СЛОВОМ ВЛАДЕЛЬЦА 11.09: «полигон это вообще не наш скоуп». Все четыре её промта уведены в archive/prompts/ с баннерами: РЕМОНТ ПРИБОРА (был готов и не выдан) · ХОЛОДНЫЙ ПРОГОН A (ОТРАБОТАН и ПРИНЯТ актом D39.247 — строка 16 закрыта замером, книга доведена до файла за $0.419424) · фаза Д · хендофф фазы Д. ⚠ Инструкции оттуда НЕ исполнять; пере-открытие — только новым словом владельца. Ссылки на эти файлы из журнала решений и старых отчётов НЕ правлены сознательно: тела нот не переписываются. Живое, что зона успела купить и что остаётся работой ДРУГИХ зон: ряды 413 (пин цены flash протух) · 414 · 415 (четверть денег купила пустоту) · 416 · 417 · 422
    Фронт активного НЕТ ЗОНА ЗАМОРОЖЕНА (D39.136 п.2 + D39.147: разморозка отдельным словом владельца, не привязана к P7); перечень первого касания — в зонном журнале
    Контракт активного НЕТ канон — architecture/14-api-contract/; ⚠ версию брать ФАЙЛОМ (grep '^ version:' openapi.yaml), не отсюда: миноры ратифицируются D-нотами и их содержание грепается по реестру нот.
  • Чужие зоны — фронт и платформа (читать при касании стыка; каждая ведёт СВОЙ зонный бэклог — единый бэклог их строк не принимает, D39.84): ../frontend/ — веб-интерфейс: зонный журнал docs/frontend-PROGRESS.md (прогресс зоны только там, D39.100) + промт фронт-сессий + STACK_DECISIONS.md (пины версий точными числами и ловушки) + BACKLOG.md · ../platform/ — SaaS control plane: README + BACKLOG.md + docs/ (зонный журнал platform-PROGRESS.md · регистр дефектов · STACK_DECISIONS.md с рецептом стенда и инвентарём каналов шва · ENGINEERING_STANDARDS.md — ратифицирован; КАЖДЫЙ промт платформенной сессии обязан на него ссылаться, отступление = пинг · PLATFORM_DIRECTION.md — ратифицированное направление зоны: аутентификация, деньги, стандарты, скорость · архив промтов).

  • archive/ — история (правила архива): закрытые промты (prompts/) · отчёты с ревью-шапками (reports/ — на них ссылаются приёмки) · исполненные арх-доки (architecture/) · слайсы хроники PROGRESS-*.md. Инструкции оттуда не исполнять.

  • Диаграммы: ../backend/docs/components.puml · ../backend/docs/pipeline.puml — дом рядом с кодом (D39.80), правятся бэкендом одним коммитом с кодом; не рендерить (гардрейл CLAUDE.md).

Ключи провайдеров

Имена переменных per-провайдер — поле api_key_env в backend/configs/models.yaml (носитель, который читает КОД, поэтому разойтись с реальностью резолва не может). У полигона свои дополнительные провайдеры — имена в его же скриптах, движковый носитель их не покрывает и не должен. Наполненность ключей — .env деплоя, его НЕ читать; при сомнении спрашивать владельца. ⚠ Ручной перечень здесь не держим: он уже лгал умолчанием — называл семь имён, когда в ходу было девять.