15 KiB
Промт: платформенная сессия «ДЕНЬГИ И ПРАВДА НА ЭКРАНЕ» — первая половина критерия впуска
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. Карта чтения — ЗАКОН
CLAUDE.md— цели владельца и гардрейлы.platform/docs/ENGINEERING_STANDARDS.md— нормы зоны и критерии приёмки (Definition of Done). ⚠ Ссылка на этот файл обязана быть в каждом платформенном промте; из семи прежних сослались пять, и норма дважды проскользнула. Здесь она стоит.platform/docs/DEFECT_REGISTER.md— рядыPD-441,PD-424,PD-438.- Строки 282, 325, 326 бэклога (
docs/PROGRESS.md, греп^| N |). 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. Мандат самопроверки ИСПОЛНЕНИЕМ — «перечитал сам» не считается
- Мутационная проверка каждого пина, который заводишь или трогаешь: сломай охраняемое свойство, прогони, прочитай ТЕКСТ падения — говорит ли он про сломанное тобой; восстанови и сверь sha256. Артефакт: таблица «мутация → текст падения → хеш восстановлен».
- Деньги — из СЫРОГО леджера ДВУМЯ независимыми путями (норма приёмки проекта). Для
PD-441это не формальность, а предмет: покажи расхождение до и после починки на реальных строках. - Опровергатель твоей готовой работы отдельным субагентом. ⚠ Харнесс по умолчанию субагентов не
спавнит — тебе разрешено и требуется. Модель задай ЯВНО (
fable), одного-двух хватит. Мандат: «найди отсутствующее и противоречащее». - Греп по отозванной формулировке перед словом «исправлено» — ноль либо только внутри пометки.
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 · что ты сам считаешь слабым местом своей работы.
⚠ Числа снимай после последней правки, не до. Правки якорей объявляй наравне с содержательными.