From 80125b9379b7f04e824ed2514a39eb5e25910b6d Mon Sep 17 00:00:00 2001 From: heaven Date: Sat, 5 Sep 2026 01:31:49 +0300 Subject: [PATCH] Rework both prompts against the block list an outside pass ran: a missing review axis, five canon lines absent from each, an unmarked middle, and a pack that ordered a field while forbidding its version bump --- docs/BACKEND_MONEYSTOP_SESSION_PROMPT.md | 47 +++++++++++++--- docs/PLATFORM_OPERATIONS_SESSION_PROMPT.md | 62 +++++++++++++++++++--- docs/architecture/15-money-path.md | 7 ++- 3 files changed, 101 insertions(+), 15 deletions(-) diff --git a/docs/BACKEND_MONEYSTOP_SESSION_PROMPT.md b/docs/BACKEND_MONEYSTOP_SESSION_PROMPT.md index 39da35d8..9a3e343d 100644 --- a/docs/BACKEND_MONEYSTOP_SESSION_PROMPT.md +++ b/docs/BACKEND_MONEYSTOP_SESSION_PROMPT.md @@ -26,9 +26,15 @@ ## 3. Карта чтения — ПЯТЬ позиций, дальше только по ссылкам отсюда -1. `docs/architecture/15-money-path.md` — §«ОТКРЫТАЯ РАЗВИЛКА 04.09» целиком: разбор трёх независимых - чтений, все числа с носителями. -2. `docs/PROGRESS.md`, строки бэклога **277 · 261 · 262 · 278** — твой состав, формулировки зоны. +1. `docs/architecture/05-decisions-log.md`, нота **`D39.196`** — РАТИФИЦИРОВАННАЯ форма заказа, ради которой + этот пак и есть гейт; затем `docs/architecture/15-money-path.md` §«ОТКРЫТАЯ РАЗВИЛКА 04.09» — разбор, из + которого решение выросло (все числа с носителями). ⚠ Читать в этом порядке: разбор без ноты читается как + открытый вопрос. +2. `docs/PROGRESS.md`, строки бэклога **277 · 278** — твой состав, формулировки зоны. + ⛔ **Строки 261 и 262 в ЭТОТ пак НЕ входят** — они назначены дофиксу, который прямо сейчас доделывает ДРУГАЯ сессия зоны + (эррата 04.09-д: «зона чинит и держит сдачу; строки 256–264 закрываются её лендингом»). Две сессии в одном `stagerun.go` — + это конфликт, а не параллельность. ⚠ Если к твоему старту дофикс уже заленджен — спроси оркестратора пингом, брать ли их; + сам не бери. 3. `backend/internal/pipeline/volume.go`, греп `THE STOP IS A COMPLETION, NOT A HALT` — **прецедент внутри твоего же пакета**: объёмный потолок уже построен с нужной семантикой и САМ противопоставляет себя денежному. @@ -61,6 +67,10 @@ `step_max_usd` (самый крупный неделимый резерв). Считается из СВОИХ цен и фертильности, **без константы за главу**. Плюс `structure: detected|declared|none` — признак доверия к нарезке. Всё аддитивно, версию манифеста НЕ двигает. +⚠ **РЕШАЕШЬ САМ И АРГУМЕНТИРУЕШЬ (промт форму НЕ задаёт):** как считается `expected_usd` — по +отрендеренному промпту с инъекциями или по сырому тексту, какие стадии входят, учитывать ли ретраи и +эскалации; по какому признаку выставляется `structure: detected|declared|none`; какую форму имеет +леджер сделанного и отложенного в `finished`. Каждый выбор — с доводом в отчёте. **(4) РЕШАЕШЬ САМ И АРГУМЕНТИРУЕШЬ:** форма защёлки; где именно ждать settle; как назвать поля; сеттлить ли оценкой поздно отменённый вызов и по какому различителю (латентность — кандидат, порог @@ -69,7 +79,7 @@ **(5) НЕ ДЕЛАЙ:** не убирай резервацию — она единственная гарантия «не потратим больше, чем дано»; не резервируй «ожидаемое» вместо worst-case; не ужимай `max_tokens` под остаток (двигает `request_hash` ⇒ снапшот и детерминизм, и даёт `finish=length` ценой целой генерации); не трогай кумулятивную -семантику `--ceiling-usd`; не двигай `manifestVersion`, `StreamVersion`, схему и контракт. +семантику `--ceiling-usd`; не двигай `manifestVersion`, схему и контракт. ⚠ **`StreamVersion` — ИСКЛЮЧЕНИЕ и его двигать НАДО:** добавление поля в кадр — минорный бамп по правилу шва (`internal/runevents/runevents.go`, греп `IT WAS ALMOST NOT BUMPED` — там записана ровно эта ловушка). Прежняя редакция промта запрещала бамп и заказывала поле одновременно; противоречие снято 05.09. ## 4-бис. ДВА РАЙДЕРА — и вот почему они здесь, а не в другом паке @@ -101,17 +111,29 @@ СВОЙ пак и своё окно пере-снапшота; строки 253/273 — швы, требующие согласования с платформой; 256–267 — то, что зона чинит прямо сейчас в незакрытой приёмке прошлого пака. +## 6. Предметные оси ревью — ТРИ, и у каждой свой артефакт + +⚠ Оси, а не список проверок: у каждой названо, ЧЕМ ты предъявишь результат. Сессия вправе заменить ось +с аргументом. +· **Деньги под параллельностью.** Артефакт: прогон с `waves.workers > 1` и потолком, которого хватает + на часть волны — леджер до и после, показывающий, что допущенное доработано, а новое не начато. +· **Детерминизм резюме после частичной волны.** Артефакт: прогон, остановленный деньгами, и его + резюм — совпадение чекпойнтов и отсутствие пере-оплаты доработанного. +· **Шов наружу.** Артефакт: событие `ceiling` с недостающей суммой, прочитанное СО СТОРОНЫ ПОТРЕБИТЕЛЯ + (не из своего кода), и версия потока, сдвинутая по правилу шва. + ## 5. Пять рисков реализации — названы зоной, проверить ОБЯЗАН (а) защёлка на уровне волны, не у воркера · (б) учёт объёма (`volume.go`, `bound()`/`reconcile`): частичная волна под потолком — НОВАЯ форма для этих счётчиков, и они уже дважды ловили ложные числа · (в) событие `ceiling` и exit 4/`paused` обязаны сработать так же и не задержаться · (г) дневной потолок делит ветку с книжным — проверить явно · (д) эскалационный хоп: убедиться, что его деградация не опирается на саму отмену. +⚠ **Каждый из пяти предъявляется ЯВНО:** в отчёте — команда и её вывод либо посадка и её цвет. «Проверил» без артефакта не считается: это ровно та вырожденная форма, которую канон велит ловить в промтах. ## 6. Мандат самопроверки ИСПОЛНЕНИЕМ -Батарея + **собственные адверсариальные посадки ВНЕ списка автора** через `cmd/tmmutate` (каталог 151 -запись — пополняешь). **Субагенты РАЗРЕШЕНЫ явно**, модель называй имени. Обязательное условие приёмки: +Батарея + **собственные адверсариальные посадки ВНЕ списка автора** через `cmd/tmmutate` (каталог 152 +записи — пополняешь). **Субагенты РАЗРЕШЕНЫ явно**, модель называй имени. Обязательное условие приёмки: посадка **«под потолком волна погасила допущенный вызов» предъявлена КРАСНОЙ**. ⚠ **SURVIVED не является находкой, пока не показано, что посадка ВООБЩЕ меняет поведение** — норма @@ -119,6 +141,19 @@ ⚠ Мутации — только на ЗАКОММИЧЕННОМ дереве; на копии — `GOFLAGS=-buildvcs=false`. ⚠ Каталог гонять ЦЕЛИКОМ: протухшая запись даёт `ROTTED` и не кладёт прогон. +## 6-бис. ОБЯЗАТЕЛЬНОЕ ДЛЯ КОДОВОГО ПРОМТА — пять строк канона + +· **Перед отчётом сверь КАЖДЫЙ клейм с результатом инструмента ЭТОЙ сессии.** Не с памятью и не с тем, + что было верно вчера. +· **Последний абзац отчёта — план или обещание? Сделай это СЕЙЧАС**, а не пиши как намерение. +· **Править или удалять тест/голден/гейт ради зелени — НЕДОПУСТИМО.** Несогласие с тестом — пинг, не + правка. ⚠ Запрет про МОТИВ (`D39.183`): правка, вызванная сменой поведения, которая ЗАКАЗАНА этим + промтом, — обслуживание, и держать протухший тест не нужно; такая правка ОБЪЯВЛЯЕТСЯ в отчёте — что + изменилось в поведении, какой тест это описывал, куда уехала гарантия. +· **Дифф `^func Test` — ИСПОЛНЕНИЕМ, не по памяти:** приложи вывод, а не утверждение «тестов стало больше». +· **Интервальная самоверификация субагентом** в длинной сессии, против ЯВНЫХ критериев, а не «посмотри, + всё ли хорошо». + ## 7. Записка-план ДО работы Комплектность против заказа — механически, таблицей: пункт → файл → тест → посадка. До первой правки. diff --git a/docs/PLATFORM_OPERATIONS_SESSION_PROMPT.md b/docs/PLATFORM_OPERATIONS_SESSION_PROMPT.md index 1a320fef..fe1145a7 100644 --- a/docs/PLATFORM_OPERATIONS_SESSION_PROMPT.md +++ b/docs/PLATFORM_OPERATIONS_SESSION_PROMPT.md @@ -30,7 +30,7 @@ ## 3. Карта чтения — ПЯТЬ позиций 1. `platform/docs/platform-PROGRESS.md` — секция «⚠ ПИНГ ОРКЕСТРАТОРА №22 (04.09, вечер)» и твой же - «ОТВЕТ НА ПИНГ №22»: одиннадцать пунктов ревизии, из них один опровергнут зоной. + «ОТВЕТ НА ПИНГ №22»: ⚠ читай ЗАГОЛОВОК ответа буквально: «ЧЕТЫРЕ ЕЁ ПУНКТА ОКАЗАЛИСЬ ЧАСТИЧНО НЕВЕРНЫ», один опровергнут целиком (`PD-439`); «одиннадцать» там — число НАХОДОК, а не пунктов. 2. `docs/PROGRESS.md`, строки бэклога **269 · 270 · 274** — состав; и **282** (ложная подпись «Знаков»). 3. `platform/deploy/README.md` целиком — предмет блокера, и он же операторский носитель. 4. `platform/docs/DEFECT_REGISTER.md` — открытые ряды по теме: `PD-410`, `PD-218`, `PD-448`. @@ -46,12 +46,15 @@ зовутся ни разу — проверь сам и используй, если подходят. Восстановление обязано быть **предъявлено исполнением**, а не описано: подними копию из бэкапа и покажи, что книга и баланс на месте. ⚠ Без предъявленного восстановления бэкап — это вера, а не механизм. +⚠ **РЕШАЕШЬ САМ И АРГУМЕНТИРУЕШЬ:** куда складывать, с какой частотой, сколько поколений держать, чем +проверять целостность копии. Промт задаёт ТРЕБОВАНИЕ (переживаемость потери диска и предъявленное +восстановление), а не режим. **(2) ДЕЛАЙ РОВНО ТАК — ПОЧИНИ РАНТБУК ДЕПЛОЯ.** Он ставит CLI в одно место и велит указать переменную на другое, которого не создаёт ⇒ `MarkerArgv` пуст ⇒ **`503` на каждый старт и резюм**. ⚠ Без переменной вовсе всё работало бы (сиблинг-дефолт). Там же объяснение отсутствия переменной описывает симптом, которого в коде нет. **Условие приёмки: рецепт исполнен ДОСЛОВНО на чистой машине или в контейнере, и -прогон стартовал.** Заодно — остальные пункты ревизии, подтверждённые твоей же проверкой. +прогон стартовал.** ⚠ **РЕШАЕШЬ САМ И АРГУМЕНТИРУЕШЬ, что из остатка ревизии брать в этот пак:** зона уже отработала её и закрыла бо́льшую часть своим лендингом `9e978d6`; здесь остаётся то, что она пометила как незакрытое. Возьми, назови поимённо взятое и подпиши пропущенное пропуском — «остальное» без списка промтом не заказывается. **(3) РЕШАЕШЬ САМ И АРГУМЕНТИРУЕШЬ — ДВЕРЬ ДЛЯ НЕ-БРАУЗЕРНОГО КЛИЕНТА.** Развилка: выдавать `bearerToken` (контракт его объявляет) ЛИБО признать, что до разморозки фронта единственный путь — @@ -60,32 +63,77 @@ Выбор — твой, довод — в отчёт, канон правит оркестратор. **(4) ДЕЛАЙ РОВНО ТАК — ИМЯ КНИГИ.** `updateBook` описан в каноне и не смонтирован (`PATCH` в роутере -ноль). Смонтировать; титул уезжает в выданный файл. ⚠ Это первое, что видит человек, открыв книгу в +ноль). Смонтировать. ⚠ **РЕШАЕШЬ САМ И АРГУМЕНТИРУЕШЬ:** как новое имя доезжает до `dc:title` (движок берёт +его из `book.yaml`, который платформа пишет с `O_EXCL` и никогда не перезаписывает) и что происходит с +уже собранными выдачами — пере-собирать, помечать или оставить. ⚠ Это первое, что видит человек, открыв книгу в читалке. **(5) ДЕЛАЙ РОВНО ТАК — СНЯТЬ ЛОЖНУЮ ПОДПИСЬ «ЗНАКОВ».** Счётчик считает руны ПОТОКА ЗАПИСИ файла: для -UTF-8 txt это и есть знаки, для EPUB — руны zip-архива, для GB18030/UTF-16 приближение. Либо переименуй -в размер файла, либо возьми число из манифеста движка. ⚠ Фронт заморожен — подпись правится при +UTF-8 txt это и есть знаки, для EPUB — руны zip-архива, для GB18030/UTF-16 приближение. **ДЕЛАЙ РОВНО ТАК: сделай подпись честной СВОИМИ силами** — поле переименовывается или снимается с +выдачи так, чтобы ни одна поверхность не называла его «знаками». +⛔ **Ветку «взять число из манифеста движка» в ЭТОМ паке НЕ бери:** сегодня манифест несёт только +`source_bytes`, а знаки по юниту появятся ТОЛЬКО после движкового пака (его строка 278). Зависимость +названа, чтобы ты не начала с невозможного. +⚠ **Переименование ПОЛЯ КОНТРАКТА своей рукой не делай** — §2 это запрещает: состав минора выносишь в +отчёт. Своей рукой правится то, что живёт в зоне: источник числа и то, что уходит на провод. ⚠ Фронт заморожен — подпись правится при разморозке, ЧИСЛО у тебя раньше. -**(6) НЕ ДЕЛАЙ:** не трогай форму заказа (главы/знаки/деньги) — она ратифицирована `D39.196` и идёт +**(6) ЗНАЙ ПРО ШОВ, но НЕ строй его здесь:** параллельный движковый пак добавляет в событие `ceiling` +поле «сколько не хватило» и двигает минор потока. Твоя сторона читает поток и обязана пережить новое +поле, не сломавшись; строить его ЧТЕНИЕ — работа пака формы заказа, а не этого. Если твой парсер +падает на незнакомом поле — это дефект и его чинить здесь. + +**(7) НЕ ДЕЛАЙ:** не трогай форму заказа (главы/знаки/деньги) — она ратифицирована `D39.196` и идёт СВОИМ паком после движкового гейта; не двигай форму манифеста; не правь канон своей рукой; не гаси общий Postgres на стенде (запрет и довод — в твоём же `UP.sh`). ## 5. Мандат самопроверки ИСПОЛНЕНИЕМ -Батарея зоны при всех условиях хоста + **живая проба каждой построенной поверхности**. **Субагенты +Батарея зоны при всех условиях хоста + **живая проба каждой построенной поверхности, с командой и её +выводом В ОТЧЁТЕ**. Названо поимённо, чтобы букву не удовлетворяло «дёрнул и посмотрел»: +· бэкап — восстановление из копии, и книга с балансом предъявлены на восстановленном; +· рантбук — исполнен ДОСЛОВНО на чистой машине или в контейнере, прогон стартовал; +· дверь — вход в ПРОД-конфигурации (не `dev-login`) и один защищённый запрос под этим входом; +· имя книги — EPUB, скачанный через дверь, с новым `dc:title` внутри. **Субагенты разрешены явно**, модель называй именем. ⚠ **Правка документации — изменение с побочными эффектами и требует ревью исполнением ровно как код**: норма куплена твоим же замером — восемь агентов по СВОЕЙ работе нашли больше, чем одиннадцать по чужой, и «якоря пере-нацелены» протухло от следующей же правки. ⚠ **Утверждение о проверке живёт ровно до следующей правки** — гоняй линтер ЦИКЛОМ до чистоты, а не одним проходом. +## 5-бис. ЧТО В ПАК НЕ ВОШЛО — подписано пропуском + +⚠ Канон велит подписывать пропуск пропуском, а не умалчивать. Того же класса «можно ли пускать +человека», но НЕ здесь: +· **строка 271** (правки банка едут в system-промпт дословно) — ЗОНА ДВИЖКА, идёт райдером в + параллельном движковом паке. ⚠ **Пока она открыта, обещание «внешнего пользователя можно пускать» + неполно** — знай это, когда будешь писать итог. +· **строка 198** (апгрейд движка стирает замечания читателя) и **строка 254** (пустой файл → интейк + уничтожает загрузку) — та же природа, отложены сознательно: обе требуют согласования с движком. +· **`PD-424`** (живой прогон с намертво заблокированной расплатой невидим — деньги висят) и **`PD-438`** + (владение потоком не переживает свип) — открытые major твоей зоны. Не утверждаю, что они не первые; + утверждаю, что пропуск сознателен, и если ты считаешь иначе — скажи пингом ДО работы. + ## 6. Предметные оси ревью Восстановление из бэкапа (исполнением, не чтением) · рантбук на чистой машине · путь входа в прод-конфигурации · побочные эффекты доковых правок. +## 6-бис. ОБЯЗАТЕЛЬНОЕ ДЛЯ КОДОВОГО ПРОМТА — пять строк канона + +Этот пак пишет код (бэкап, монтирование ручки, вход), значит они действуют. +· **Перед отчётом сверь КАЖДЫЙ клейм с результатом инструмента ЭТОЙ сессии** — не с памятью и не с + тем, что было верно вчера. ⚠ У тебя есть свежий замер, зачем это: твои же восемь агентов по СВОЕЙ + работе нашли больше, чем одиннадцать по чужой. +· **Последний абзац отчёта — план или обещание? Сделай это СЕЙЧАС.** +· **Править или удалять тест/гейт ради зелени — НЕДОПУСТИМО.** Несогласие — пинг. ⚠ Запрет про МОТИВ + (`D39.183`): правка, вызванная ЗАКАЗАННОЙ этим промтом сменой поведения, — обслуживание, и она + ОБЪЯВЛЯЕТСЯ в отчёте. +· **Дифф `^func Test` — ИСПОЛНЕНИЕМ, не по памяти:** приложи вывод. +· **Интервальная самоверификация субагентом** против ЯВНЫХ критериев. ⚠ И твоя же норма, купленная + вчера: **утверждение о проверке живёт ровно до следующей правки** — линтер и гейты гонять ЦИКЛОМ до + чистоты, а не одним проходом. + ## 7. Записка-план ДО работы Комплектность против заказа таблицей: пункт → носитель → проба, которой предъявишь. diff --git a/docs/architecture/15-money-path.md b/docs/architecture/15-money-path.md index d33d956f..f538a23e 100644 --- a/docs/architecture/15-money-path.md +++ b/docs/architecture/15-money-path.md @@ -74,8 +74,11 @@ ## ⚠ ОТКРЫТАЯ РАЗВИЛКА 04.09: КНИГУ НЕЛЬЗЯ ДОЧИТАТЬ — разбор трёх независимых чтений, решение за владельцем -> **Статус: НЕ РАТИФИЦИРОВАНО.** Это разбор, а не контракт: ниже нет ни одного решения, только сходящаяся -> фактура и названная развилка. Носитель дефекта — `PD-440`/`PD-441` в регистре платформы. Собрано по +> **⚠ СТАТУС ИЗМЕНИЛСЯ 05.09: ФОРМА ЗАКАЗА РАТИФИЦИРОВАНА — `D39.196`.** Решение владельца: баланс аккаунта — ДЕНЬГАМИ и виден; +> ползунок потолка — деньгами; рядом ответ «хватает на полную книгу или нет»; второй ползунок объёмом — ГЛАВЫ когда книга +> распозналась, ЗНАКИ когда нет (о нераспознавании говорим ЯВНО); старт = холд с баланса; отдельная кнопка «книга целиком». +> Тем же решением ОТОЗВАН запрет «денежных полей в UI нет вовсе». Строки исполнения — 276–283. +> **Ниже — РАЗБОР, из которого решение выросло.** Он не контракт: при конфликте с `D39.196` побеждает нота. Носитель дефекта — `PD-440`/`PD-441` в регистре платформы. Собрано по > прямому указанию владельца «посоветуйся с зонами и со старшей моделью»: читали независимо зона движка, > зона платформы и внешний рецензент другой модели; расхождения между ними названы, а не сглажены.