169 lines
15 KiB
Markdown
169 lines
15 KiB
Markdown
# Промт: платформенная сессия «ДЕНЬГИ И ПРАВДА НА ЭКРАНЕ» — первая половина критерия впуска
|
||
|
||
## 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 · **что ты сам считаешь слабым местом
|
||
своей работы**.
|
||
|
||
⚠ Числа снимай **после последней правки**, не до. Правки якорей объявляй наравне с содержательными.
|