11 KiB
Промт бэкенд-сессии: МИНИ-ПРОГОН ~10 глав — сквозной тест всего построенного (гигиена → прогон → верификация в ОДНОЙ сессии)
⚠ СТАТУС: ЗАМОРОЖЕН до решения владельца (25.07, D39.36) — НЕ СТАРТОВАТЬ. Проверка вскрыла дефект шва: предложенный моделью перевод (банкнота) ПАРСИТСЯ И ВЫБРАСЫВАЕТСЯ (banknote.go:177), а подписная карта майнинга — WHICH-only, поэтому на майнинг-стопе владелец подписывает ГОЛЫЕ термины. Прогон в этом виде воспроизведёт ровно то трение, которое владелец назвал. Стартовать после решения по D39.36 (жёсткий стоп vs опциональный; и что делать с trust-gate).
Статус выдачи: 25.07.2026, оркестратор №8. Решение владельца: всё делает одна сессия — и гонит, и проверяет. Это платный прогон (ожидаемо $0.10–0.35), но его цель не «перевести 10 глав», а доказать исполнением, что построенное паками 11–18 работает и работает как надо.
Первый деливерабл — эхо-блок (≤10 строк): скоуп / инварианты / чего не делать. ДО любых трат.
Почему одна сессия и чем это компенсируется (не тихо, а явно)
Наш принцип — author ≠ reviewer. Владелец снял его для этого прогона ради простоты. Компенсация обязательна: (1) пре-регистрация ДО денег — что меряем, какие пороги, что считаем успехом, пишется в отчёт ПЕРВЫМ разделом и после этого не переписывается; (2) самопроверка исполнением по каждому узлу (мандат 12.07); (3) рубеж-2 — приёмка оркестратора по СЫРЬЮ (логи, БД, экспорт), а не по твоим выводам. Если по ходу поймёшь, что пре-рег был неверен — не переписывай его, а добавь раздел «девиация» с причиной.
ШАГ 0 — ГИГИЕНА ДО ПРОГОНА ($0-код, лендится этим же паком)
- ОБЯЗАТЕЛЬНЫЙ флип
Gates.RegressionGuard.Enabled. D38.4 п.5 ратифицировал: «Оркестратор при сборке единого resnapshot ОБЯЗАН включитьGates.RegressionGuard.Enabled, иначе построенная наблюдаемость на пере-прогоне не сработает». Проверено (D39.34): ключаregression_guardнет ни в одном шиппинг-конфиге ⇒ гейтfalse, и rerun2 прошёл без него. Включить, покрыть тестом, что гейт реально стреляет. - Два нита общности — берём (условность снята D39.35: терять нечего, снапшот и так разошёлся): множитель
expectedHours := n * 2(internal/checks/checkers.go) → данные пары; Detail-строки чекеров → шаблоны из данных. Байт-нейтральность больше НЕ требуется — но каждую сдвинутую версионную ось назови в отчёте строкой. - Опционально, если дёшево: проекция пере-оплаты в
tmctl status(спека D15.2 §9: заменить булевConfigDriftчислом «N чанков, ~$X»). Не тянуть, если раздувает пак.
ШАГ 1 — ПОДГОТОВКА (без трат)
- Бэкап обязателен:
cp rerun2/*.dbв сторону ДО первой write-команды. БД стенда на схеме v9, бинарь ждёт v10 — первая write-команда мигрирует необратимо, аrerun2— единственный носитель фактуры того прогона. - Новый проект, а не поверх старого: свой
book.yaml+ своя БД + срез глав 1–10 из исходногоguzhenren-gb18030.txt(GB18030, книга и производные ВНЕ git). Прогон сквозной: ingest → чанкер → волна черновика → майнинг-стоп → волна редактуры → чекеры → экспорт. - Потолки: книжный и дневной выставить осознанно (ожидание $0.10–0.35 на один арм; ставь потолок с запасом, но не «бесконечность» — гейт должен быть способен выстрелить).
- Пре-рег в отчёт: что мерим (список ниже), пороги, что считаем провалом.
ШАГ 2 — ПРОГОН И ЧТО ИМЕННО ДОКАЗЫВАЕМ
Каждый пункт — утверждение, которое обязано быть подтверждено сырьём (лог/строка БД/файл), а не «отработало нормально»:
- Гейт согласия на пере-оплату (пак-18) СРАБОТАЛ ЖИВЬЁМ. Снапшот стенда разошёлся по трём осям (D39.35), значит на резюме/redrive гейт обязан показать проекцию и потребовать
--accept-rebill. Зафиксируй: сумму проекции, число единиц, отказ без флага, проход с флагом. Это первое живое исполнение механизма. - Майнинг-стоп остановил прогон и потребовал подпись владельца; reject-set и промоушен отработали (
mined_rejects). Сколько кандидатов, что подписано. - Чекеры и
QualityReport: какие классы дефектов сработали, сколько на 10 главах. Read-only скан остатка ремонта ($0) — это ГЛАВНОЕ измерение прогона: он даёт владельцу цифру для решения о включении платной петли (D39.24). RegressionGuardпосле флипа реально даёт наблюдаемость (число/omission-гард виден в отчёте).- Лейбл-путь = no-op: книга без лейблов, поэтому маршрут обязан быть тождественен конфиговому. Докажи (резолвнутые модели = конфиговые, ни одной строки
content_routing_problems). - Деньги durable:
finish=stopдоля, echo-класс (ожидание 0), reserve→settle одной транзакцией, итог против потолка. Сравни фактическую стоимость с моей оценкой ($0.02 драфт + $0.08–0.15 редактура на арм) и скажи, где я ошибся. escalation_model(пак-18): если эскалация случится — поле держит ОТВЕТИВШУЮ модель, а не попробованную.
Армы: один арм (deepseek-v4-pro) — база. Второй арм (glm-5, итерация №2) — ТОЛЬКО если владелец скажет отдельно: он стоит ещё ~$0.1 и упирается в принятый им риск Z.AI (D39.30 п.2).
«РОВНО ТАК»
- Судья НЕ вызывается (D39.32: детерминированный скорер первым; судья — только когда от вердикта зависит решение).
- Петля ремонта остаётся
enabled: false— меряем остаток, не чиним. - Майнинг-стоп не обходить: подпись владельца — часть протокола, не формальность. Дошёл до стопа — остановись и пингуй.
- Никаких 18+ и лейблов: книга не помечена, лейбл-путь проверяется как no-op.
- Сессия НЕ коммитит (ни код, ни прогонные артефакты); книга и производные — вне git.
- Аномалия провайдера (404, новый
finish_reason, игнор параметров) → вендор-дока и/models, НЕ гадание. Правило двух направлений. - Ре-чек ToS перед платными вызовами (D39.32 п.4): триггеры — головной Google ToS 30.07.2026 и любая правка
accepts_labels; для этого прогона достаточно строки «проверено, изменений нет».
Сид-дельта (данные книги) — что можно, что ждёт владельца
Проверено оркестратором по guzhenren-seed-v2.yaml: 春秋蝉 («Весенне-осенняя цикада») и 资质 («талант») уже в сиде; 学堂家老 отсутствует; 赤城 есть только внутри имени 古月赤城; семейство 元 расщеплено — 元海 = «море истинной ци», 真元 = «истинная ци», 元石 = «первобытный камень». Единый корень (предложение «изначальн-») — решение владельца, ждём. Если ответа к старту нет — гони как есть и зафиксируй это как ИЗВЕСТНЫЙ разрыв канона, чтобы чтение результата не приписало терминологию качеству перевода.
Приёмка
Отчёт docs/archive/reports/MINIRUN_REPORT_<дата>.md: пре-рег первым разделом · по каждому из 7 пунктов — утверждение и СЫРЬЁ, которым оно доказано · фактические деньги против оценки · девиации отдельным разделом · что сломалось и что это значит. Заявление = команда (приёмка ре-ранит). Отдельно: список того, что прогон НЕ проверил — он честнее списка успехов.
Канал вопросов: непонятно / конфликт промта с кодом → пинг оркестратору через владельца, НЕ тихая интерпретация.