From 360bdc165b97289dc695a3c8bc00cde1bef04751 Mon Sep 17 00:00:00 2001 From: heaven Date: Sun, 6 Sep 2026 17:10:15 +0300 Subject: [PATCH] Order the zone to triage its journal before slicing, after the same operation nearly destroyed a rulebook that looked like history --- docs/PLATFORM_MONEY_TRUTH_SESSION_PROMPT.md | 169 ++++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 docs/PLATFORM_MONEY_TRUTH_SESSION_PROMPT.md diff --git a/docs/PLATFORM_MONEY_TRUTH_SESSION_PROMPT.md b/docs/PLATFORM_MONEY_TRUTH_SESSION_PROMPT.md new file mode 100644 index 00000000..cb2453bc --- /dev/null +++ b/docs/PLATFORM_MONEY_TRUTH_SESSION_PROMPT.md @@ -0,0 +1,169 @@ +# Промт: платформенная сессия «ДЕНЬГИ И ПРАВДА НА ЭКРАНЕ» — первая половина критерия впуска + +## 1. Какая проблема и что решит твой результат + +Проект готовится впустить **первого платящего чужого человека**. Критерия впуска в репозитории нет +вовсе (строка бэклога **326**) — и этот пак пишет его первую половину **делом**, а не формулировкой. + +Сегодня платформа врёт человеку тремя способами и один раз молчит: +- **деньги считаются по нижней границе**: отменённые вызовы, УЖЕ ушедшие к провайдеру, не записываются + никуда (`PD-441`, замер: три отменённых вызова прожили по две минуты с ценой `0`, соседние + завершённые стоили $0.017 и $0.063); +- **заклинивший прогон невидим**: живой прогон с намертво заблокированной расплатой не показывается ни + на одной поверхности и не лечится штатной ручкой; вывести его может только пользователь, нажав Stop, + и **никто ему об этом не говорит** (`PD-424`); +- **чужие события ложились на оплаченную попытку** — чужой потолок ставил `paused` живому оплаченному + прогону, чужой `unit_done` писал главы, которых никто не покупал (`PD-438`); +- **экран врёт о единице**: число под подписью «Знаков» считает руны потока записи файла, а для EPUB — + руны ZIP-архива (строка **282**). + +И отдельно: **вход шире выдачи** — интейк принимает форматы, для которых выдача отдаёт книгу одним +полотном (строка **325**). Компенсация «на бете просто не впустим» сегодня — намерение, а не факт: она +требует кода. + +Твой результат: человек, заплативший деньги, видит правду о них — и не может застрять молча. + +## 2. Зона и git + +**Зона записи: `platform/`.** Чужие зоны (`backend/`, `frontend/`, `eval/`, `docs/`) — только чтение; +пинги и итоги — **зонный журнал** `platform/docs/platform-PROGRESS.md` (решение владельца), в +`docs/PROGRESS.md` платформа не пишет. +**Сессия НЕ коммитит** — дерево передаёшь оркестратору. Канон git-дисциплины — `CLAUDE.md`. +`.env` не читать. + +## 3. Карта чтения — ЗАКОН + +1. `CLAUDE.md` — цели владельца и гардрейлы. +2. `platform/docs/ENGINEERING_STANDARDS.md` — **нормы зоны и критерии приёмки (Definition of Done)**. + ⚠ Ссылка на этот файл обязана быть в каждом платформенном промте; из семи прежних сослались пять, + и норма дважды проскользнула. Здесь она стоит. +3. `platform/docs/DEFECT_REGISTER.md` — ряды `PD-441`, `PD-424`, `PD-438`. +4. Строки **282**, **325**, **326** бэклога (`docs/PROGRESS.md`, греп `^| N |`). +5. `platform/README.md` + зонный журнал (шапка, не целиком — он 5029 строк, см. §4.0). + +**Ратифицированное — в теле промта:** + +- **`D39.216` (мандат владельца, 06.09), делай РОВНО так**: чинить **без хаков и воркэраундов**; где + форма не тянет — развязать или переписать. «Дешевле подпереть» доводом НЕ является; отступление + законно, но **объявляется с ценой**. +- **Продуктовых КВОТ и фри-тир-лимитов нет и не проектируется**; оплаты в бете нет, пополнение — из + админки. Первую внешнюю книгу впускает владелец. +- **Число называет ДЕРЕВО и ПОПУЛЯЦИЮ** · **рядом с нулём — контрольная величина** · **мутация + засчитывается по ТЕКСТУ сообщения, а не по факту красноты** · **комментарий не доказывает поведение** + (`D39.214`; грепом в `CLAUDE.md` не ищи, там её нет). +- **Тесты и гейты не подгонять под зелень** (`D39.121`, решает мотив). + +## 4. Состав и разметка свободы + +### 4.0 Триаж зонного журнала — **делай РОВНО так**, первым, до кода + +Журнал вырос до **5029 строк / 42 секций**, и две новейшие занимают 40 %. ⭐ Конвенция слайсов у зоны **своя и уже +работает**: в `platform/docs/archive/` лежат `platform-PROGRESS-P0-P3`, `-P4-P6`, `-P7`, `-P8`. Она остановилась. + +⛔ **НО РЕЗАТЬ СРАЗУ НЕЛЬЗЯ, и вот замер, купленный 06.09.** Оркестратор проделал ту же операцию над +`STACK_DECISIONS.md` и едва не уничтожил свод: секции «Что решено сессией P…» выглядят хроникой по заголовку, а +внутри — **реестр из 36 сплошно нумерованных живых решений**. Ошибка была в том, что судили по ЗАГОЛОВКУ, не +прочитав содержимое. ⇒ **в журнале сделай тот же тест ПРЕЖДЕ выноса.** + +Машинный проход по выносимому (он уже написан контролёром, воспроизводится за секунду): какие `PD-*` и «строки N» +упомянуты и все ли разрешаются; и главное — **какие ⛔/⚠⚠-утверждения не ссылаются ни на ряд регистра, ни на строку +бэклога, ни на D-ноту**. Замер 06.09 по двум новейшим секциям: **69 таких**, в основном «найдено и починено до +сдачи». По норме регистра починенное тоже получает ряд ⇒ **это список на чтение, а не на вынос**. + +**Приёмка §4.0:** проход печатает **ноль** утверждений без носителя · вынесено только то, что при чтении оказалось +настоящей хроникой · всё, что оказалось правилом или незакрытой находкой, получило ряд регистра или строку бэклога +ПЕРЕД выносом. + +### 4.1 Три мажора — **делай РОВНО так** в предмете, **реши сам** в форме + +`PD-441` · `PD-424` · `PD-438`. Все три про одно: **деньги и видимость чужого прогона**, и человек +жалуется одинаково — «списали не то / висит / молчит». Форму лечения выбираешь ты; предмет не двигаешь. + +⚠ По `PD-441` отдельно: если полная запись цены отменённого вызова недостижима, **честный выход — +объявить маржу и показать её пользователю**, а не оставить леджер нижней границей молча. Выбор объяви. + +### 4.2 Экран не врёт о единице (строка 282) — **делай РОВНО так** + +Либо число приезжает из манифеста движка, либо подпись переименована в то, что оно на самом деле +считает. ⛔ Третьего — «оставить как есть, все привыкли» — нет: это живая ложь на продуктовом экране. + +### 4.3 Вход не шире выдачи (строка 325) — **реши сам, аргументируй** + +Пока структура глав для выдачи не построена (строка 283, чужая зона), интейк обязан **отказывать** +форматам, чью выдачу мы не умеем, — с честной причиной человеку, а не молча. Границу и формулировку +отказа выбираешь ты; **согласуй с тем, что выдача действительно умеет сегодня**, а не с планом. + +### 4.4 Два малых дока — **не трогай, это работа оркестратора** + +`ENGINEERING_STANDARDS.md` и `PLATFORM_DIRECTION.md` прочитаны оркестратором 06.09 целиком: **оба живые, резать +нечего**. `STACK_DECISIONS.md` тоже остаётся — ему добавлен указатель решений ПО ПРЕДМЕТУ (`8a9a9f4`), потому что +ось «по сессии» заставляла искать правило перебором семи секций. ⚠ Если по ходу работы найдёшь в них утверждение, +разошедшееся с кодом, — **пинг, не правка**: это зона оркестратора. + +### 4.5 Чего в паке НЕТ — **не делай** + +Не строить структуру глав для выдачи (чужая зона) · не трогать движок · не менять контракт без пинга +оркестратору · не заводить квоты и фри-тир · не открывать бету. + +## 5. Мандат самопроверки ИСПОЛНЕНИЕМ — «перечитал сам» не считается + +1. **Мутационная проверка каждого пина, который заводишь или трогаешь**: сломай охраняемое свойство, + прогони, **прочитай ТЕКСТ падения** — говорит ли он про сломанное тобой; восстанови и **сверь + sha256**. Артефакт: таблица «мутация → текст падения → хеш восстановлен». +2. **Деньги — из СЫРОГО леджера ДВУМЯ независимыми путями** (норма приёмки проекта). Для `PD-441` это + не формальность, а предмет: покажи расхождение до и после починки на реальных строках. +3. **Опровергатель твоей готовой работы отдельным субагентом.** ⚠ Харнесс по умолчанию субагентов не + спавнит — **тебе разрешено и требуется**. Модель задай ЯВНО (`fable`), одного-двух хватит. Мандат: + «найди отсутствующее и противоречащее». +4. **Греп по отозванной формулировке перед словом «исправлено»** — ноль либо только внутри пометки. + +## 6. Оси ревью — характер «Код» и «Доки» + +- **Код:** ⚠ «тест утверждает не то, что думает» — каждый пин обязан падать ИМЕННО от того, что он + охраняет (§5.1). +- **Доки:** сверка утверждений против кода и живых носителей — §4.0 и §4.4 ровно об этом. +- **Деньги в любой приёмке — из сырого леджера двумя путями** (§5.2). + +## 7. Записка-план ДО работы + +≤15 строк оркестратору: что берёшь по каждому пункту · что считаешь спорным в самом заказе · как +именно собираешься лечить `PD-441` (полная запись против объявленной маржи). + +## 8. Заявление = команда + +Числа и категорика — с командой и её выводом. `MAKE-EXIT` цитируй из лога, а не из кода возврата +составной команды: смена 06.09 попалась на этом. + +## 9. Эхо-протокол старта + +≤10 строк ДО работы: скоуп · инварианты · не-делать. + +## 10. Что НЕ удалось — обязательная секция + +Не проверено · не воспроизвелось · где данных не хватило. **«Не измерено» вместо догадки.** + +## 11. Канал вопросов и право отказаться + +Конфликт промта с кодом — **пинг, не правка**. **Право сказать «этого делать не надо»** с аргументом: +если по коду окажется, что предмет описан мимо, это самый ценный ответ. + +## 12. Прямой канал + +`CLAUDE.md` §«Связь между сессиями»: `/tmp/textmachine-channel`, свой блок первым делом, живость — +`ListAgents`. ⚠ Роли нет или файла нет — **нормальный случай**: вопрос секцией в отчёт, сессии подряд +не опрашивать. + +## Деньги + +Пак — **$0 по платным вызовам к моделям**: всё лечится на стенде и фикстурах. ⛔ Если упрёшься в «это +предъявляется только платным прогоном» — **пинг оркестратору за санкцией, не твоё решение**. Стенд +поднимается по рецепту в `STACK_DECISIONS.md`. + +## Отчёт + +Зонный журнал + сообщение оркестратору: что построено · чем предъявлено (команда и вывод) · таблица +мутаций §5.1 · два независимых пути по деньгам §5.2 · **проход §4.0 с нулём находок без носителя** · +что сказал опровергатель и что ты с этим сделал · секция §10 · **что ты сам считаешь слабым местом +своей работы**. + +⚠ Числа снимай **после последней правки**, не до. Правки якорей объявляй наравне с содержательными.