12 KiB
Хендофф оркестратору: холодный мини-прогон (бэкенд-сессия 31.07)
Статус: сессия закрыта владельцем ПОСЛЕ банк-стопа, до подписи и edit-волны. Дерево НЕ закоммичено. Факты и числа — COLDRUN_REPORT_2026-07-31.md (§0 пре-регистрация написана до первой траты, §9 — критик полноты). Здесь только то, что нужно для лендинга и решений.
1. Что лендить
11 изменённых файлов бэкенда + 2 новых теста. Содержательно — пять вещей:
- Правило src банкноты пар-слепое (бэклог 19 закрыт): «исходная строка непуста и встречается в книге» вместо ханьского диапазона. Канал перестал быть мёртвым для не-CJK и начал отсекать выдуманные поверхности.
- Восстановление порядка колонок тем же инвариантом — не терпимость, а определение: сторона исходника та, которую свидетельствует книга; объявленный порядок побеждает всегда, когда засвидетельствован.
- Разделение версий канала —
bankSliceVersionфолдится (его выход = оплаченный чекпойнт),bankParseVersionедет с прогоном (его выход = улики, пересчитываются каждым прогоном). Слитая версия штрафовала за починку правила разбора полной перекупкой черновой волны. - Секция редактора по провенансу (S7): подписанная владельцем строка больше не попадает в секцию «никем не утверждено» из-за коллизионного ключа.
Ambiguousостался стражем матча. - Два линта пар-пакетов промптов + правки данных: формат каналов ПОКАЗАН настоящей табуляцией. Линт нашёл второй экземпляр дефекта, которого никто не искал.
Приёмка сессии: мутации 12/12 красные (одна выжила на первом круге → дыра теста закрыта пином → красная), сьюта -race 14/14, vet/gofmt чисты, golden не пере-капчен и не покраснел, стендовые артефакты байт-неподвижны (33 хеша).
2. Решения, которые нужны
| # | Решение | Готовность |
|---|---|---|
| Р1 | Ратифицировать путь (ii) по S7 — версии не бампались, экспозиция строго ноль (1119 пар «запись×ключ» на 32 банках, позитивный контроль рабочий). Владелец санкционировал заранее при условии нуля; условие выполнено и доказано диффом. | к подписи |
| Р2 | Ратифицировать разделение версий канала — это правка контракта инварианта №2 (что именно фолдится). Прецедент в кодовой базе: gates.terminology/gates.voice не фолдятся по той же причине. |
к подписи |
| Р3 | Валидация поля type — оно решает «транслитерировать или переводить», приходит третьей колонкой от черновой модели и не проверяется ничем. Механизм жалобы владельца «слишком китаизированно» (元石 пришёл типом name ⇒ «юаньши»). Дизайн — центы. |
нужен дизайн |
| Р4 | Второе мнение по банку (архитектура глав: две разные модели). Отложенный судья-с-декоем в роли РЕЦЕНЗЕНТА: несогласия отдельной колонкой в подписной таблице, решает владелец. Условие возврата («после холодного старта») наступило. | нужен дизайн |
| Р5 | Формат каналов — в шаблон движка ({{banknote_format}}), пар-пакет несёт только язык и обёртку. Сегодня контракт пересказан прозой в каждом пар-промпте, парсер живёт в Go, связи нет. |
нужен дизайн |
| Р6 | Эксперимент «язык промптов» (гипотеза владельца 31.07, строка 30в): арм A ru / арм B en при неизменных инъекциях, метрика — детерминированные счётчики формата, судья не нужен. Зона полигона, ≈$0.02–0.05. | к выдаче |
| Р7 | Довести ли холодный прогон (подпись → edit-волна → авто-режим проекта Б, ≈$0.12) или считать замер достаточным. Владелец склонился ко второму; фиксирую как решение, а не как незакрытый хвост. | принято владельцем |
3. Дельта бэклога
Закрыты: 17 (совместный recall — 0.918/0.980 против 0.069–0.103 у майнера соло) · 19 (парсер) · 23 (утечка алфавита — 0 из 150) · часть 20 (язык при пустом якоре: off_language=0 на 149 консолидациях; четыре сэмпла банкноты) · часть 24 (эхо-метрика на живом эхе; покрытие WHAT→WHICH при непустом пересечении — 14 «оба канала»).
Переформулированы: 18 — механизм доставки односимвольного терма проверен $0-пином, но 蛊 не приходит ни одним каналом никогда (модель объявляет составные, майнер режет по длине) ⇒ это не «правка данных сида», а структурная дыра эмиссии на голове частотного понятия.
Остаются открытыми: 16 (полная цена холодного старта — edit-волна не гонялась) · 21/22 (сырьё есть, метод полигонский) · 13б (speech-cue.txt — оси голоса «не измерено», см. ниже) · остальное 24 (авто-режим).
Новые строки:
- Тип терма не валидируется, а решает ветку транскрипции (Р3).
- Консистентность серий не обеспечена:
甲等 → класс Цзяпротив乙等/丙等/丁等 → ранг И/Бин/Дин— одна серия, два родовых слова, потому что термы в разных батчах роли. - Проводной формат каналов дублируется в пар-промптах (Р5); линты держат класс, дублирование остаётся.
- Квадратичность правила src при промахе чанк-пути (рядом со строкой 37).
- Эхо-мина жива при thinking-ON — 2/20 черновиков вернулись чистым исходником; гейт поймал, эскалация вылечила. «echo 0» пере-прогона (D39.20) был свойством выборки, а не гарантией.
Строка 13б осталась неразрешимой этим прогоном и по моей вине частично: gates.voice был включён, но реестр флаггера собирается ТОЛЬКО из voices:/addresses: сида — при пустом сиде оси пусты по построению. Я поднял это в синке до трат (Q1), владелец санкционировал мини-профили при подписи, но подписи не было. Черновик профилей заземлён на текст среза и лежит в coldrun-a/SIGN-PACKAGE.md §3 — готов к любому следующему прогону.
4. Мои ошибки (методические, для нормы следующего промта)
- $0.010064 сожжено на оборванной волне: начал пере-драфт со старым промптом и остановил, когда пришло правило владельца о воркэраундах. $0.046341 — переработка: разделение версий канала надо было спроектировать ДО первой платной волны. Норма среза — одна волна $0.0247; заплачено четыре.
- Первую починку
<TAB>я сделал терпимостью парсера — то есть спрятал дефект наших же данных в движок. Владелец это назвал, и он прав; откатил, починил корень, поставил линт над классом. Урок в норму: правка, которая делает движок терпимым к нашему собственному тексту, — почти всегда воркэраунд. - В пар-промпт я вписал канон конкретной книги (
方源 → Фан Юанькак пример формата). Это ровно то, что норма §0 запрещает; поймал владелец, не я. Заменено на нейтральное师父 → наставник.
Процессное предложение из этого опыта: байты промпта фолдятся в снапшот черновой волны, поэтому каждая итерация промпта стоит полную волну. Итерировать промпты надо на проекте-пробе в 1–2 главы (≈$0.005), и только потом покупать полный срез. Этого нет ни в одной норме, а цена ошибки — вся волна.
5. Одно суждение
Прогон ответил на свой главный вопрос лучше ожидаемого: холодный банк восстанавливает 45 из 49 подписанных термов и приходит к владельцу полностью переведённым (149 из 150 строк с dst), а не голым — контраст с тёплым прогоном 25.07, где владелец получил голые исходные термы. Слабое место оказалось не в покрытии, а там, где его никто не мерил: банк, который потом связывает каждую главу книги, переводится одним проходом самой дешёвой модели без второго мнения, а решение «транслитерировать или переводить» принимается по непроверенному полю, которое та же модель дописала третьей колонкой. Если из всего списка выбирать одно — я бы взял Р3 (валидация типа), а не Р4: второе мнение без валидации типа будет спорить о переводе там, где спорить надо о классе.