11 KiB
Записка-план — пак «ДЕНЬГИ И ЧЕСТНОСТЬ ВЫДАЧИ» (§7.1 промта)
Сессия textmachine-main-8a, роль БЭКЕНД. Промт — docs/BACKEND_MONEY_HONESTY_SESSION_PROMPT.md
(оркестратор №21, 31.08). Написана ДО первой правки дерева; ниже — состояние на момент написания,
она не переписывается задним числом (дополнения помечаются датой и словом «дописано»).
⚠ Дописано 02.09 — указатели и исходы; тело записки НЕ переписывается (это пре-регистрация). ⚠ Путь
docs/BACKEND_MONEY_HONESTY_SESSION_PROMPT.mdв шапке ВЫШЕ мёртв — файла по нему нет; тело записки не переписывается, поэтому адрес живёт здесь: промт переехал вdocs/archive/prompts/BACKEND_MONEY_HONESTY_SESSION_PROMPT.md. Прожитый дамп пака из секции «Бэкенд»docs/PROGRESS.mdснят 02.09 — исходы живут вMONEY_HONESTY_REPORT.md. Пак ЗАЛЕНДЖЕНbb541a8и принят D39.182; закон раскрытия ратифицирован D39.181. ⚠ Два места ниже опровергнуты собственной же работой пака, и оба разобраны в отчёте: «22.6%» (§4) — ответ на ДРУГОЙ вопрос, величина завышения = 29.2% (отчёт §5.4); пред-регистрированная посадка A9 (§2, «воспроизведение перерасхода фикстурой + посадка») НЕ написана — долг назван прямо в отчёте §8 п.1.
Личность старта. HEAD 9d27c0b, дерево ЧИСТО (git status --short → пусто).
Go-модуль backend/. Пак $0: платных вызовов не содержит и не планирует.
0. ВЕРДИКТ ПО СНАПШОТУ ДЛЯ A1 — первым пунктом, как велит §7.1
Вопрос: двигает ли снапшот правка дефолта regenerate_echo_before_escalate?
Ответ: НЕ ДВИГАЕТ. Основание — определение промта §5 («снапшот-движущее = всё, что попадает в
payload buildSnapshotID»), проверенное ИСПОЛНЕНИЕМ, а не памятью:
$ grep -c 'Retries' backend/internal/pipeline/snapshot.go
0
Полный перечень полей payload снят командой (sed -n '/^\tsnap := struct {/,/^\t}{/p' … | grep 'json:"')
— 22 верхнеуровневых поля плюс []stageSnap; ни Retries, ни RegenerateBeforeEscalate, ни
RegenerateEchoBeforeEscalate среди них нет, и в repairSnap их тоже нет.
⚠ Грепа МАЛО, и я это знаю: он проверяет ИМЯ, а не поведение. Поэтому вердикт получает МАШИННУЮ проверку по §5: snapshot ID снимается на фикстуре ДО моего диффа и ПОСЛЕ него, и равенство предъявляется в отчёте командой. До предъявления равенства вердикт считается PLAUSIBLE, а не подтверждённым.
⇒ A1 остаётся в ярусе A и делается в этом паке.
1. Что беру и в каком порядке
Пак ДВУХФАЗНЫЙ (§1 промта), и порядок продиктован стоп-точкой:
ФАЗА 1 — ЗАКОН РАСКРЫТИЯ (главный результат, НЕ ратифицирую сама)
- Корпус из десяти строк (A0·A2·A3а·A3б·A4·A5·A6·A7·A8·A10) грунтуется В КОДЕ — по агенту на строку, каждый с адверсариальным проверяющим поверх (веер описан в отчёте).
- Карта потребителей и каналов снимается ГРЕПОМ по
platform/internal/(read-only) — промт прямо велит проверить перечень самой, потому что его автор один раз уже назвал его неверно. - Закон пишется файлом
backend/docs/DISCLOSURE_LAW_DESIGN.md: классы фактов · назначение потребитель→канал · гейт · разбор ВСЕХ десяти строк корпуса. - Специально ищу ОДИННАДЦАТЫЙ экземпляр вне таблицы промта — это лучший результат фазы (§1).
- Дизайн уезжает ПИНГОМ оркестратору №21 (
textmachine-main-5f, жив поListAgents) и секцией отчёта. К правкам A0/A2/A3/A4/A5/A6/A7/A8/A10 не приступаю до ответа.
ФАЗА 2 — пока жду ратификации (не зависит от закона и его не предрешает)
- A1 — дефолт эхо-регена. Гейтится вердиктом §0 выше.
- A9 — строка 233 (трата терминолога масштабируется книгой).
- A11 — строка 232 (ось «свежий/пере-делка» из полноты строк, а не из факта отгрузки).
Порядок 6→7→8 — как велит промт §2 («A9–A11 по остатку ресурса, в этом порядке» — с поправкой, что A1 идёт раньше: он назван в §1 как то, что берётся «пока ждёшь», и он самый дешёвый по риску).
Если ратификация придёт
- Применяю закон к десяти экземплярам. Если не придёт — сдаю фазу 1 + три пункта, и это ПОЛНОЦЕННЫЙ результат (§1 дословно). Закон сама не изобретаю, чтобы успеть.
2. Чем докажу каждое — оси предъявления (§6)
| пункт | чем предъявляю |
|---|---|
| A1 | (а) равенство snapshot ID на фикстуре ДО/ПОСЛЕ диффа — командой; (б) посадка на САМУ ручку: сегодня у RegenerateEchoBeforeEscalate НОЛЬ тестов (grep -rn RegenerateEchoBeforeEscalate --include=*_test.go → пусто), значит тест ловит и то, что ручка вообще работает; (в) экономика — числами, ПЕРЕ-СНЯТЫМИ мной из БД прогона read-only, а не из отчёта |
| A9 | воспроизведение перерасхода фикстурой + посадка |
| A11 | посадка: конфиг с ДОБАВЛЕННОЙ стадией на дочитанной книге обязан перестать печатать «N unit(s) NEVER delivered» |
| фаза 1 | закон обязан объяснить ВСЕ десять строк и назвать канал каждой; гейт — исполнимый, а не намерение |
Дисциплина посадок (§6, D39.171): каждая посадка сажается на состояние ДО правки и обязана краснеть АДРЕСНО. Посадка на ТЕКСТ сообщения обязана предъявить, что она краснеет при подмене именно этой строки, — ассерт по подстроке в общем лог-буфере даёт тихо-зелёное.
3. Чего НЕ делаю (границы, объявленные заранее)
- Ничего снапшот-движущего — ярус B не трогаю: эффорт редактора, потолок вывода (
finish=lengthкак ПРИЧИНА в A0), свёртка числа ре-генов, метка-из-хеша в A8. - Новый код выхода не завожу (A5 — пинг с домашней заготовкой).
- Числами прогона ставку не калибрую (n=3,
D39.165 ⛔г) — экономика A9 идёт как механизм, не как число. - Не коммичу — лендит оркестратор. Пишу только в
backend/и в свою секцию «Бэкенд» вdocs/PROGRESS.md. books/gu-zhenren/coldrun-v16/— только чтение, БД толькоfile:…?mode=ro.- Тест/голден/гейт ради зелени не правлю; несогласие — пинг.
4. Что уже сделано на момент записки (чтения, не правки)
Карта чтения §4 пройдена целиком (5 позиций). Пере-снято мной из БД прогона read-only
(sqlite3 'file:…?mode=ro'), а не взято из отчёта:
ok=0 AND cost_usd>0— 11 строк, $0.12316089, приSUM(cost_usd)книги $0.43610966 ⇒ 28.24%. Цифры промта подтверждены.estimated=1— 0 строк (биллящихся decode-fail не было).- Эскалационные хопы: 5,
$0.10330452, средний$0.02066090. - Эхнутые черновые попытки (flash,
ok=0): 5,$0.01070788, средняя$0.00214158. - Успешные черновые flash: 15, средняя
$0.00382851.
⚠ И находка, которой в промте НЕТ (заведена как кандидат в одиннадцатый экземпляр): срез
ok=0 AND cost_usd>0 НЕ ЕСТЬ «оплаченный впустую» — в нём смешаны три разные вещи, и на живых
деньгах все три присутствуют:
degraded=cjk_artifact у роли classifier (3 строки, $0.00918827) — это МИС-ВЕРДИКТ
(строка бэклога 105), вызовы удались; degraded=sanitizer_stripped у редактора (1 строка,
$0.01865424) — текст ОТГРУЖЕН; и только остальное ($0.09531838) действительно выброшено.
Наивная поверхность A0 назвала бы оператору на 22.6% больше потерь, чем было.