9.7 KiB
Промт пака: ФОРМА ЗАКАЗА ПЕРЕВОДА — деньги, объём и вердикт ДО клика
Пак на ДВЕ зоны. Половины независимы по коду и делаются РАЗНЫМИ сессиями: платформа (
platform/) и контракт (канонdocs/architecture/14-api-contract/правит ТОЛЬКО оркестратор — зона предъявляет состав минора отчётом). Никто не коммитит: деревья готовятся и передаются оркестраторуtextmachine-main-27. Соседний worktree/home/ubuntu/projects/textmachineне трогать..envне читать никогда.
КАРТА ЧТЕНИЯ — ЗАКОН, пять позиций
CLAUDE.md— цели, зоны, гардрейлы.^## D39.196— решение владельца о форме заказа. ⛔ Читать ВМЕСТЕ с эрратой 05.09-д в шапке журнала (грепЭррата 05.09-д): её пункт 5 велит «движковую половину первой» — она УЖЕ ПОСТРОЕНА.^## D39.203— владелец разрешил движку говорить «сколько добавить»; поле ПЕРЕИМЕНОВЫВАЕТСЯ.- Строки бэклога 276 · 279 · 280 · 281 · 282 · 283 (греп
^| 276 |и так далее). docs/architecture/15-money-path.md— путь денег от гранта до расчёта, целиком. ⚠ Голову журнала целиком НЕ читать; подномер собственного тела не имеет — грепай родителя.
ЗАЧЕМ ЭТОТ ПАК
Сегодня человек не может внятно КУПИТЬ перевод. Владелец 05.09 назвал форму: на аккаунте баланс в ДЕНЬГАХ и он виден; потолок тянется ползунком в деньгах; рядом — ответ на настоящий вопрос покупателя: хватает ли на всю книгу; второй ползунок — ОБЪЁМ (главы, если структура распозналась; знаки, если нет, и о нераспознавании говорим ЯВНО); отдельная кнопка «книга целиком»; вердикт ДО клика, старт = холд.
⛔ ЧТО УЖЕ ПОСТРОЕНО — НЕ ЗАКАЗЫВАТЬ ЗАНОВО
Строки 277 и 278 ЗАКРЫТЫ лендингом 81a89e9 (акт D39.206) и сняты из таблицы:
· отказ резервации защёлкивает волну, а не роняет книгу; обязательный вызов ЖДЁТ, когда ожидание
может помочь;
· движок публикует проекцию цены — expected_usd по главам, book_once_usd, step_max_usd, а также
source_chars по юниту и structure: detected|declared|none — всё в manifest --json/status --json,
аддитивно, версию манифеста не двигая.
⇒ Платформа этих чисел СЕГОДНЯ НЕ ЧИТАЕТ (git grep -lE "StepMax|step_max" -- platform/ → пусто).
Взять их — половина работы этого пака.
⛔ ЖИВАЯ ПРОБЛЕМА, КОТОРУЮ ПАК ОБЯЗАН СНЯТЬ, И ОНА НЕ ТА, ЧТО В СТАРЫХ ДОКАХ
Стена «книга короче десяти глав не переводится» СНЯТА движком. Остался ПОЛ: прирост потолка считается
chaptersLeft × $0.03, и даже при одном воркере 2 × $0.03 = $0.06 меньше одной редакторской резервации
(~$0.07) ⇒ последние ~2 главы ЛЮБОЙ книги не покупаются. Это и есть живая половина PD-440. Снимается
строкой 280 — потолок ДЕНЬГАМИ вместо «глав × ставка». ⚠ Пол ВЫВЕДЕН, не замерен (платного прогона
не было): подтвердить замером — часть работы.
СОСТАВ — ЧЕТЫРЕ ПОЗИЦИИ
(1) Контракт, минор (строка 279). Заказ ОБЪЁМОМ: ceiling_chapters → chapters со смыслом объёма
(null = вся книга); CeilingBounds → OrderOptions{chapters_left, affordable_chapters, verdict: covers_all|covers_part|covers_none, blocked}; баланс и холд выходят ДЕНЬГАМИ.
⛔ Поле недостачи в событии ceiling НЕ зеркалить под нынешним именем: владелец выбрал форму
«сколько добавить», значит shortfall_micro_usd станет ЛОЖНЫМ именем — величина max(shortfall, step_max − headroom), кандидат top_up_micro_usd, StreamVersion 1.3→1.4 (строка 294, D39.203).
Зеркалить приговорённое имя — значит покупать второй минор.
(2) Платформа (строка 280). Заказ живёт на КНИГЕ (ordered_through_chapter, null = вся книга), холд
считается ОТ ПРОЕКЦИИ движка, --max-units наконец едет в argv.
(3) Честность числа знаков (строка 282). Подпись «Знаков» сегодня лжёт для EPUB — считаются руны
ZIP-архива. Источник построен: source_chars в манифесте. ⚠ Форму признака точности владелец
ратифицировал: признак РЯДОМ с числом, а НЕ смена семантики null — null уже значит «ещё грузится».
(4) Замер (строка 281). Сколько наших денег стоит тысяча ПЛОТНЫХ и тысяча РАЗРЕЖЁННЫХ знаков по
стадиям. ⚠ Цель — НЕ константа (это прямо запрещено), а дисперсия проекции: коэффициент для холда
и честность вердикта «хватает / не хватает».
ЧТО В ПАК НЕ ВХОДИТ
· Строка 283 (структура глав для не-CJK и EPUB) — свой пак, окно пере-снапшота.
· Правка канона своей рукой · включение гейта глоссария · переименование поля недостачи (это движковая
работа строки 294) · решение, ЧТО печатать на титуле (закрыто D39.205: копия без пометки = книга без
единого пропуска, пропущенный КУСОК главы критичен).
ОБЯЗАТЕЛЬНЫЕ НОРМЫ СДАЧИ
- Ревью ИСПОЛНЕНИЕМ своего кода и результатов; «проверено» без команды и её вывода — не утверждение.
- Адверсариальный проход по своей работе. Уязвимое место названо: вердикт «хватает», выданный по проекции, которая врёт. Атакуй его короткой книгой, книгой без структуры и книгой с дырами.
- NAMED-АРТЕФАКТ: посадка
OF-verdict-lies— предъявить КРАСНОЙ (вердикт «хватает» при недостаточном балансе). - Своё воркфлоу-ревью — часть сдачи. Fable 5 — ОДИН-ДВА агента, модель задавать явно.
- Сверить промт с заказанным и НАЗВАТЬ расхождения, а не исполнять молча.
- Состав контрактного минора — ОТЧЁТОМ, канон своей рукой не трогать. ⚠ Ратификация, порождающая обязанность в зоне, выдаётся зоне ЯВНО и тем же актом — иначе минор сутки живёт ложным на проводе (это уже стоило дня, эррата 04.09-в).
- Нормы смены —
^## D39.202, прочесть целиком. Особенно: прибор отвечает на СВОЙ вопрос, а читают его как ответ на твой; и четыре вида одинаково зелёного отчёта. - Деньги. Платный прогон — только по санкции оркестратора, с названной суммой ДО запуска.
ПРИЁМКА
Два верификатора: №1 судит заказ и дифф не читая отчёт, №2 ищет ВНЕ карты отчёта; каждой находке —
скептик с заданием СНЯТЬ её. Верификаторам выдаётся ГОТОВЫЙ ПУТЬ отдельного рабочего дерева.
Отчёт — в зонный журнал platform/docs/platform-PROGRESS.md (платформа в docs/PROGRESS.md не пишет).
⚠ Канал сессий — /tmp/textmachine-channel, адрес сверять ListAgents.