diff --git a/docs/BACKEND_BOUGHT_MEANS_DELIVERED_SESSION_PROMPT.md b/docs/BACKEND_BOUGHT_MEANS_DELIVERED_SESSION_PROMPT.md index bec013d4..f94cade6 100644 --- a/docs/BACKEND_BOUGHT_MEANS_DELIVERED_SESSION_PROMPT.md +++ b/docs/BACKEND_BOUGHT_MEANS_DELIVERED_SESSION_PROMPT.md @@ -6,8 +6,11 @@ ## 1. Какая проблема и что решит твой результат Читатель заплатил за главу. Движок купил первую попытку, получил флагуемый результат, пошёл за второй — и -**вторую ему не продали**: потолок книги или дня не вмещает удвоенный бюджет регенерации -(`maxTokensForAttempt` удваивает на каждой, значит попытка 1 резервирует вдвое больше попытки 0). +**вторую ему не продали**: потолок книги или дня не вмещает резерв регенерации. ⚠ **И тут точность несущая, +первая редакция промта её теряла:** `maxTokensForAttempt` удваивает **только ВЫХОДНОЙ** бюджет, а резерв +считается оценкой по цене, промпту, потолку и буферу размышления (`backend/internal/pipeline/stagerun.go`, +греп `EstimateUSD`) — промпт и аддитивный буфер НЕ удваиваются. Значит «попытка 1 стоит ×2» — неправда, и +окно, в котором отказ неизбежен на ≥1 и невозможен на 0, считается по РЕАЛЬНОЙ оценке. Дальше происходит вот что, и это проверяется одной строкой: **`backend/internal/pipeline/stagerun.go:204`=`infra failure; the cancelled-position mark`** — ЛЮБАЯ ошибка попытки уходит наверх из цикла, **РАНЬШЕ `UpsertChunkStatus`**. @@ -138,6 +141,11 @@ записать прогону, который кончился флагом вместо `exit 4` · какой её пин это стережёт. Я передам это платформенной сессии, и **акт будет один на две половины**. +⚠ **И следствие, которое стоит назвать сразу, потому что оно про деньги читателя:** объёмный леджер считает +флагованный юнит НЕ доставленным (`backend/internal/pipeline/volume_test.go`, греп +`TestAFlaggedUnitIsNotReportedAsDelivered`). Значит грант за него не съеден, а книга честно короче — это +хорошая новость, но она обязана быть СКАЗАНА в отчёте, иначе следующая смена откроет её заново. + ### 4.4 Приложение — ДВА пина, краснеющих по УДАЧЕ (ряд 379, ОБЕ половины) Отдельная от §4.1 работа; делай её ПОСЛЕ основной. ⛔ **И мой диагноз здесь был НЕВЕРЕН — опровергнут @@ -188,7 +196,8 @@ 1. ⛔ **Пин, утверждающий только молчание, вакуумен ровно там, где сообщение ложно.** «Ошибка не вышла наверх» — утверждение о молчании. Фикстура обязана быть такой, где новая причина ОБЯЗАНА прозвучать, и тест утверждает её ИМЯ. -2. ⛔ **Фикстура обязана сделать отказ резервации НЕИЗБЕЖНЫМ на попытке ≥1 и НЕВОЗМОЖНЫМ на попытке 0.** +2. ⛔ **Фикстура обязана сделать отказ резервации НЕИЗБЕЖНЫМ на попытке ≥1 и НЕВОЗМОЖНЫМ на попытке 0** — + и окно считается по РЕАЛЬНОЙ оценке резерва, а не по «×2» (см. §1). Денежный пин, флейковый на мутанте, измеряет пустой сценарий: у нас уже был пин, дававший 2 красных из 8, потому что деньги были ВЕРОЯТНЫ, а не неизбежны. Гоняй свой не один раз. 3. ⛔ **Посадка обязана бить в тот же слой, что стережёт пин.** За прошлый пак мутация трижды оказалась не @@ -240,9 +249,19 @@ Каждое число и каждая категорика отчёта — **с командой, которой получены**. Дифф `^func Test` — **исполнением, не памятью**. Приёмка пере-снимает. +⛔ **И три нормы кодового пака, каждая ловит свой класс:** +- **перед отчётом сверь КАЖДЫЙ клейм с результатом инструмента ЭТОЙ сессии** — не с памятью о прогоне; +- **последний абзац отчёта оказался планом или обещанием? Сделай его СЕЙЧАС** — обещание в отчёте не + переживает смены; +- **в длинной сессии — интервальная самоверификация субагентом против ЯВНЫХ критериев** (`D39.121`), а не + в конце: проверка, отложенная до сдачи, проверяет уставшую работу уставшим взглядом. + ## 9. Эхо-протокол старта -**Первым действием** — ≤10 строк СВОИМИ словами: что понял · что считаешь опасным · что считаешь неверным. +**Порядок двух первых действий:** сперва впиши свой блок в `/tmp/textmachine-channel` (§12), потом отправь +эхо — эхо без блока некуда адресовать. + +**Эхо** — ≤10 строк СВОИМИ словами: что понял · что считаешь опасным · что считаешь неверным. Не пересказ: дословный пересказ подтверждает канал, но не понимание, и ошибку промта повторяет вместе с ним.