textmachine/docs/archive/reports/COLDRUN_HANDOFF_2026-07-31.md

12 KiB
Raw Blame History

Хендофф оркестратору: холодный мини-прогон (бэкенд-сессия 31.07)

Статус: сессия закрыта владельцем ПОСЛЕ банк-стопа, до подписи и edit-волны. Дерево НЕ закоммичено. Факты и числа — COLDRUN_REPORT_2026-07-31.md (§0 пре-регистрация написана до первой траты, §9 — критик полноты). Здесь только то, что нужно для лендинга и решений.

1. Что лендить

11 изменённых файлов бэкенда + 2 новых теста. Содержательно — пять вещей:

  1. Правило src банкноты пар-слепое (бэклог 19 закрыт): «исходная строка непуста и встречается в книге» вместо ханьского диапазона. Канал перестал быть мёртвым для не-CJK и начал отсекать выдуманные поверхности.
  2. Восстановление порядка колонок тем же инвариантом — не терпимость, а определение: сторона исходника та, которую свидетельствует книга; объявленный порядок побеждает всегда, когда засвидетельствован.
  3. Разделение версий каналаbankSliceVersion фолдится (его выход = оплаченный чекпойнт), bankParseVersion едет с прогоном (его выход = улики, пересчитываются каждым прогоном). Слитая версия штрафовала за починку правила разбора полной перекупкой черновой волны.
  4. Секция редактора по провенансу (S7): подписанная владельцем строка больше не попадает в секцию «никем не утверждено» из-за коллизионного ключа. Ambiguous остался стражем матча.
  5. Два линта пар-пакетов промптов + правки данных: формат каналов ПОКАЗАН настоящей табуляцией. Линт нашёл второй экземпляр дефекта, которого никто не искал.

Приёмка сессии: мутации 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.020.05. к выдаче
Р7 Довести ли холодный прогон (подпись → edit-волна → авто-режим проекта Б, ≈$0.12) или считать замер достаточным. Владелец склонился ко второму; фиксирую как решение, а не как незакрытый хвост. принято владельцем

3. Дельта бэклога

Закрыты: 17 (совместный recall — 0.918/0.980 против 0.0690.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. Мои ошибки (методические, для нормы следующего промта)

  1. $0.010064 сожжено на оборванной волне: начал пере-драфт со старым промптом и остановил, когда пришло правило владельца о воркэраундах. $0.046341 — переработка: разделение версий канала надо было спроектировать ДО первой платной волны. Норма среза — одна волна $0.0247; заплачено четыре.
  2. Первую починку <TAB> я сделал терпимостью парсера — то есть спрятал дефект наших же данных в движок. Владелец это назвал, и он прав; откатил, починил корень, поставил линт над классом. Урок в норму: правка, которая делает движок терпимым к нашему собственному тексту, — почти всегда воркэраунд.
  3. В пар-промпт я вписал канон конкретной книги (方源 → Фан Юань как пример формата). Это ровно то, что норма §0 запрещает; поймал владелец, не я. Заменено на нейтральное 师父 → наставник.

Процессное предложение из этого опыта: байты промпта фолдятся в снапшот черновой волны, поэтому каждая итерация промпта стоит полную волну. Итерировать промпты надо на проекте-пробе в 12 главы (≈$0.005), и только потом покупать полный срез. Этого нет ни в одной норме, а цена ошибки — вся волна.

5. Одно суждение

Прогон ответил на свой главный вопрос лучше ожидаемого: холодный банк восстанавливает 45 из 49 подписанных термов и приходит к владельцу полностью переведённым (149 из 150 строк с dst), а не голым — контраст с тёплым прогоном 25.07, где владелец получил голые исходные термы. Слабое место оказалось не в покрытии, а там, где его никто не мерил: банк, который потом связывает каждую главу книги, переводится одним проходом самой дешёвой модели без второго мнения, а решение «транслитерировать или переводить» принимается по непроверенному полю, которое та же модель дописала третьей колонкой. Если из всего списка выбирать одно — я бы взял Р3 (валидация типа), а не Р4: второе мнение без валидации типа будет спорить о переводе там, где спорить надо о классе.