10 KiB
Записка-план ХОЛОДНОГО ПРОГОНА B (§7 промта). Написана ДО первой строящей команды.
Сессия textmachine-82. Промт — docs/COLD_RUN_B_SESSION_PROMPT.md редакции 3fce077.
Всё, что ниже, сверено с ЗАКАЗОМ механически (по §-номерам промта), а не по памяти.
0. Границы, которые я себе ставлю сама
- Кода НЕ правлю ни в одной зоне. Ничего НЕ коммичу. Находка = пинг оркестратору 11.
- Рабочее дерево —
~/tm-coldrun-b(вне репозитория, вне общего скретчпада). - ⚠
/tmp— tmpfs, занят на 96 % (5.6 G из 5.9 G; 4.9 G из них —/tmp/claude-1000, скретчпады ЧУЖИХ сессий, не трогаю). ⇒TMPDIR/GOTMPDIRвсех моих сборок —~/tm-coldrun-b/tmp, на диске. Забитый/tmpмаскируется под сломанную сборку, и это уже стоило проекту хода. - Фоновое гашу ТОЛЬКО по своему pid. Свои pid пишу в
~/tm-coldrun-b/stand/*.pid. - Мой cgroup —
/init.scope,memory.max = max: потолка нет, тяжёлый прогон можно вести отсюда.
1. Фазы и что чем предъявляется
Ф0 — $0-дым (§4.0). Первая работа пака.
| Узел | Чем предъявлю |
|---|---|
| стенд мой | ss -ltnp, pid мой, на 8098 (не 8097 прогона A) |
| заглушка на 11434 | своя, порт eval/door_to_file/stub (в git, фриз be53cc8); pid мой |
| $0-конфиг | рендер eval/door_to_file/zeropipe; пин — ЗАГРУЗЧИК: tmctl status (читающий $0-верб, LoadPipeline на КАЖДОМ пути — internal/config/pipeline.go:1166) выходит 0 на этом файле. Контроль рядом: счёт достижимых ПЛАТНЫХ слагов 0 против ненулевого в pipeline-c1.yaml |
| дым НЕ по платной книге | отдельная дымовая книга + отдельная дымовая учётка; база ТА ЖЕ (довод — §2 ниже) |
| гость · деньги · интейк · старт · кадры · подпись · резюм · выгрузка · ФАЙЛ | тела ответов в evidence/http/<шаг>.json (⛔ дефект харнесса A: он печатал их на экран и не писал в файл — у пяти узлов A не осталось носителя) |
| позитивный контроль КАЖДОГО сборщика | подсадка ненулевого банка, удержанного юнита, открытой резервации ⇒ сборщик обязан ПОКРАСНЕТЬ. Не покрасневший в платную фазу не допускается |
| §4.8 — ВСЕ формы дёрганья API | здесь же, на $0-руке: главы против ЗНАКОВ · идемпотентность · резюм · второй старт при идущем первом · выгрузка во всех форматах · узел подписи · отказные (нет книги · нет баланса · мусорный курсор). Ожидаемый исход КАЖДОГО пишется ДО |
Ф1 — фриз (§4.2)
Клон (НЕ worktree) → sha → три бинаря с живым штампом (vcs.revision, modified=false, строк vcs.* > 0)
→ test ! -e /tmp/.git, -buildvcs=false ЗАПРЕЩЁН → пре-рег, называющий ЭТОТ sha → пинг → коммит
оркестратора → сверка заландженного → и только потом деньги.
Ф2 — платная (§4.4)
Книга 蛊真人, срез глав 1–3 (17564 байта, sha ed870ba6…) — режу сама из оригинала и сверяю обе sha.
Потолки: движковые book_usd 1.25 / day_usd 2.50 (как у A, ради сравнимости) + холд платформы.
Стоп-правило сессии: факт $1.00 ⇒ СТОП и пинг. РОВНО ОДИН резюм, объявленный в пре-реге.
Вахта — АКТИВНАЯ: рост вызовов и трат по леджеру ДВУМЯ чтениями + чтение журнала движка ЖИВЬЁМ
(«время · что увидел · чего ожидал · что это значит»).
Ф3 — $0 после (§4.9) и вычитка (§4.5–4.7)
Консистентность I1/I2 с ПЕЧАТАЕМЫМИ знаменателями · выгрузка · структурное чтение EPUB ·
wave_selection ОБЕИМИ волнами · reasoning_in_completion ТРЁХЗНАЧНО (NULL / 0 / >0) ·
опус-читатель на ВЕСЬ перевод против ВСЕГО оригинала с доказательством дочитывания ·
таблица 2×2 «прибор × читатель» · чтение ОТРАБОТАВШЕГО кода · §4.10 находки вне заказа.
2. Где я жду осечки (и это ГИПОТЕЗЫ, а не знание)
wave_selectionможет оказаться пустым не по дефекту, а по конфигу. Оба писателя гейтятсяr.memory != nil(chunkrun.go:198,waverun.go:734). Контроль, снятый мной на базе A: в нейretrieval_state= 6 строк при 6 черновых чанках ⇒ наc1память ЖИВА и черновая волна пишет. Пре-регистрирую ожидание: 10 строк = 6draft+ 4edit(6 чанков; 4 юнита, у каждого свой лидер-чанк: (1,0) (1,1) (2,0) (3,0)). Меньше — находка, а не ноль в отчёте.- Ключи деплоя. Их живость прогон A не проверил вовсе. Строю $0-преflight (см. §3 ниже).
- Эхо-мина. Смету черновой волны закладываю с ~10 % на эскалации/перевыпуски; мина сработала у A
четырежды. Каждый
finish_reason=length, каждыйregenerating with a larger budgetчитаю ЖИВЬЁМ. - Терминолог всегда едет вендор-дефолтом
high(ручки эффорта у бэнк-ролей нет, бэклог 104) — стадия, наиболее склонная упереться в стену. У A она отработала; у прогона 0731 — 4 батча из 5 вlength. Если повторится — это находка, а не случайность. - Пик/офф-пик DeepSeek. Сейчас пятница 19:0x UTC — ОФФ-ПИК (пик 01–04 и 06–10 UTC по будням). Леджер считает по ПИКОВОЙ цене осознанно ⇒ записанная цена B будет вдвое выше настоящего счёта. На сравнение A↔B это НЕ влияет (оба леджера пиковые), на «сколько мы заплатили» — влияет вдвое. A шёл 01:29–01:54 UTC в пятницу, то есть ВНУТРИ пика: у A запись и счёт совпадали, у меня — нет.
3. Три вещи, которых у прогона A не было и которые я добавляю
- $0-преflight ключей. Порядок преflight движка (
internal/pipeline/runner.go:288-310):ContentRoutingError→CheckMiningContrast→CheckKeys→ цены → и ТОЛЬКО ПОТОМstore.Open(флок, миграции). ⇒ отказ по ключам случается ДО создания проектной базы и ДО денег. Гоняюtranslateна ОДНОРАЗОВОЙ книге с боевым пайплайном и микроскопическим--ceiling-usd; любой исход, КРОМЕ отказа по ключам, доказывает, что ключи деплоя живы. Худший случай — один черновой вызов ≈$0.012. - Тела HTTP сохраняются в файл на КАЖДОМ шаге (дефект харнесса A, §10 п.12 его отчёта).
- Прибор денег валидируется на базе A ДО того, как применён к B. Уже исполнено: мои запросы пере-снимают 17 единиц / 17 платных / 4 из 17 = 23.5 % / $0.106472 = 25.4 % двумя путями — всё сошлось с числами оркестратора, кроме второго числителя (см. §4).
4. Расхождение, найденное ДО денег, и оно идёт пингом
Второй числитель («единицы, за ПРИНЯТЫЙ результат которых заплачено больше одного раза») на базе A даёт ДВА числа, и промт называет одно из них:
- все платежи КРОМЕ ПЕРВОГО = $0.028743 — число промта ($0.028742);
- все платежи КРОМЕ ПОСЛЕДНЕГО = $0.035723 = 8.5 %.
Разница 24 %. Плюс: у всех ШЕСТИ пар терминологии
request_hashРАЗНЫЕ ⇒ это не пере-спрос одного вопроса, а одна ПОЗИЦИЯ, купленная дважды разными вопросами. Печатаю оба числа и называю, что «пере-куплено» — утверждение о позиции, а не о вопросе.
5. Что этот прогон НЕ покупает (чтобы не потратить на это ни цента)
Не отвечает на «безопасно ли редактору думать меньше» (ряд 433) · не даёт ВЕЛИЧИНУ доли выброшенного
(n=2 нормы §3д не выполняет) · не судит epubcheck (java на хосте нет) · не чинит ничего найденного.