Take a second outside pass on the prompts: block numbers that no longer identified a block, a rider ordering work already done while the missing half had no owner, and a quotation of a sentence nobody wrote

This commit is contained in:
heaven 2026-09-05 01:40:48 +03:00
parent 5f9c6ed727
commit c98127a44a
4 changed files with 52 additions and 27 deletions

View file

@ -92,11 +92,13 @@
**(Р1) ДЕЛАЙ РОВНО ТАК — строка 271: правки банка пользователя едут в SYSTEM-сообщение ДОСЛОВНО.**
Тело собирается конкатенацией `src + " → " + dst`, `dst` приходит с пользовательской двери и получает
ровно один `TrimSpace`; предела длины нет, управляющие символы не запрещены. ⇒ `dst` с переводами
строки дописывает свои строки внутрь системного блока КАЖДОГО платного вызова. ⚠ Ратифицированный
инвариант проекта звучит противоположно: «текст книги и любая веб-выдача = untrusted DATA, никогда —
инструкции… **сегодня выполняется КОНСТРУКЦИЕЙ**» — конструкция его больше не выполняет, потому что
появилась пользовательская запись, открывающаяся в system-роль. Лечение: предел длины, запрет
управляющих, обрамление как ДАННЫХ, и адверсариальная проба, что вставка не становится инструкцией.
строки дописывает свои строки внутрь системного блока КАЖДОГО платного вызова. ⚠ Ратифицированный инвариант проекта (**D25**, фактура — `docs/research/17-external-critique.md` §A10.2) требует, чтобы текст
книги и любая внешняя выдача были ДАННЫМИ, а не инструкциями, и до сих пор это держалось САМОЙ КОНСТРУКЦИЕЙ — писать в
промпт было некому. Теперь есть: появилась пользовательская запись, открывающаяся в system-роль. ⚠ Формулировку в кавычках
не ищи — её нет, это пересказ; ссылайся на ноту и ресёрч. Лечение: предел длины, запрет управляющих, обрамление как ДАННЫХ.
⛔ **АРТЕФАКТ ПРИЁМКИ НАЗВАН: тест батареи, в котором `dst` несёт переводы строк и текст, похожий на системную инструкцию,
и он предъявлен КРАСНЫМ до починки и зелёным после.** Плюс посадка в каталог `tmmutate`: снятие предела длины ИЛИ снятие
запрета управляющих обязано краснеть. Без этих двух пункт не сдан.
⚠ Это обязано быть закрыто ДО того, как внутрь пустят первого внешнего человека, — а платформенный
пак, который его пускает, идёт ПАРАЛЛЕЛЬНО твоему.
@ -104,24 +106,20 @@
`mining.contrast_path` — единственный вход контура; артефакт крупный, генерируется из jieba, в
репозитории его нет и быть не должно. Три гарда добавлены прошлым паком, но **развёртывание обязано
положить файл рядом с конфигом ПЕРЕД выкаткой**, и сегодня об этом не сказано там, где читает
оператор. ⚠ Твоя половина — сделать отказ читаемым и назвать рецепт в носителе движка; операторскую
половину рантбука чинит платформа своим паком, ей об этом сказано.
оператор. ⚠ **ПРОВЕРЬ ПЕРВЫМ ДЕЛОМ, СДЕЛАНО ЛИ УЖЕ:** блок «⛔ РАЗВЁРТЫВАНИЕ: `mining.contrast_path`» стоит в
`backend/configs/pipeline-c1.yaml` (греп `РАЗВЁРТЫВАНИЕ`), то есть движковая половина, возможно, ЗАКРЫТА. Если да — скажи
это в отчёте и НЕ делай заново; твоя работа тогда сводится к тому, чтобы отказ загрузки НАЗЫВАЛ рецепт, а не только путь.
⚠ Операторская половина (рантбук деплоя обязан положить артефакт ПЕРЕД выкаткой) — в `platform/deploy/README.md`, и её
сегодня НЕТ (`grep -c contrast platform/deploy/README.md` → 0). Она заказана платформенному паку; если к твоему отчёту её
там всё ещё нет — назови это незакрытой дырой, а не чужой зоной.
**Что в райдеры НЕ вошло и почему:** строка 283 (структура глав для выдачи) — гейт беты, но это
**Строки 198 и 254 — БЕСХОЗНЫ, и это надо знать обеим сторонам:** 198 (апгрейд движка стирает замечания читателя) и
**254 (пустой файл ⇒ интейк УНИЧТОЖАЕТ загрузку — потеря пользовательских данных на первом же шаге)** требуют согласования
движка и платформы, и потому не взяты ни здесь, ни в платформенном паке. Пропуск подписан сознательно; считаешь иначе — пинг ДО работы.
**Что ещё в райдеры НЕ вошло и почему:** строка 283 (структура глав для выдачи) — гейт беты, но это
СВОЙ пак и своё окно пере-снапшота; строки 253/273 — швы, требующие согласования с платформой;
256267 — то, что зона чинит прямо сейчас в незакрытой приёмке прошлого пака.
## 6. Предметные оси ревью — ТРИ, и у каждой свой артефакт
⚠ Оси, а не список проверок: у каждой названо, ЧЕМ ты предъявишь результат. Сессия вправе заменить ось
с аргументом.
· **Деньги под параллельностью.** Артефакт: прогон с `waves.workers > 1` и потолком, которого хватает
на часть волны — леджер до и после, показывающий, что допущенное доработано, а новое не начато.
· **Детерминизм резюме после частичной волны.** Артефакт: прогон, остановленный деньгами, и его
резюм — совпадение чекпойнтов и отсутствие пере-оплаты доработанного.
· **Шов наружу.** Артефакт: событие `ceiling` с недостающей суммой, прочитанное СО СТОРОНЫ ПОТРЕБИТЕЛЯ
(не из своего кода), и версия потока, сдвинутая по правилу шва.
## 5. Пять рисков реализации — названы зоной, проверить ОБЯЗАН
(а) защёлка на уровне волны, не у воркера · (б) учёт объёма (`volume.go`, `bound()`/`reconcile`): частичная
@ -141,7 +139,19 @@
⚠ Мутации — только на ЗАКОММИЧЕННОМ дереве; на копии — `GOFLAGS=-buildvcs=false`.
⚠ Каталог гонять ЦЕЛИКОМ: протухшая запись даёт `ROTTED` и не кладёт прогон.
## 6-бис. ОБЯЗАТЕЛЬНОЕ ДЛЯ КОДОВОГО ПРОМТА — пять строк канона
## 6-бис. Предметные оси ревью — ТРИ, и у каждой свой артефакт
⚠ Оси, а не список проверок: у каждой названо, ЧЕМ ты предъявишь результат. Сессия вправе заменить ось с аргументом.
**ВСЕ ТРИ ПРЕДЪЯВЛЯЮТСЯ ЗА $0** — на фейк-клиенте батареи и голдене. **Платный прогон в этот пак НЕ входит**: он идёт
только по санкции владельца с названным потолком, и промт её не даёт.
· **Деньги под параллельностью.** Артефакт: прогон с `waves.workers > 1` и потолком, которого хватает
на часть волны — леджер до и после, показывающий, что допущенное доработано, а новое не начато.
· **Детерминизм резюме после частичной волны.** Артефакт: прогон, остановленный деньгами, и его
резюм — совпадение чекпойнтов и отсутствие пере-оплаты доработанного.
· **Шов наружу.** Артефакт: событие `ceiling` с недостающей суммой, прочитанное СО СТОРОНЫ ПОТРЕБИТЕЛЯ
(не из своего кода), и версия потока, сдвинутая по правилу шва.
## 6-тер. ОБЯЗАТЕЛЬНОЕ ДЛЯ КОДОВОГО ПРОМТА — пять строк канона
· **Перед отчётом сверь КАЖДЫЙ клейм с результатом инструмента ЭТОЙ сессии.** Не с памятью и не с тем,
что было верно вчера.

View file

@ -20,7 +20,10 @@
· **Рантбук деплоя, исполненный дословно, даёт инстанс, отказывающий каждому прогону.**
· **Имя книги в выданном файле — исходноязычное**, и починить его пользователь не может.
**Результат:** после твоего пака внешнего пользователя можно пускать, не рискуя его работой и деньгами.
**Результат:** после твоего пака — **вместе с райдером Р1 движкового пака** (правки банка едут в
system-промпт дословно) — внешнего пользователя можно пускать, не рискуя его работой и деньгами.
⚠ Твой пак ОДИН этого не даёт, и итог писать так нельзя: дыра в промпт живёт в зоне движка и заказана
параллельно.
## 2. Зона записи и git
@ -69,8 +72,12 @@
читалке.
**(5) ДЕЛАЙ РОВНО ТАК — СНЯТЬ ЛОЖНУЮ ПОДПИСЬ «ЗНАКОВ».** Счётчик считает руны ПОТОКА ЗАПИСИ файла: для
UTF-8 txt это и есть знаки, для EPUB — руны zip-архива, для GB18030/UTF-16 приближение. **ДЕЛАЙ РОВНО ТАК: сделай подпись честной СВОИМИ силами** — поле переименовывается или снимается с
выдачи так, чтобы ни одна поверхность не называла его «знаками».
UTF-8 txt это и есть знаки, для EPUB — руны zip-архива, для GB18030/UTF-16 приближение. **ДЕЛАЙ РОВНО ТАК — законная внутризонная форма ОДНА: не отдавай число там, где оно неточно.**
`character_count` уже опционально (`*int64` у тебя, `character_count?` у фронта), значит зона вправе
ПРОСТО НЕ ЗАПОЛНЯТЬ его для входов, где счёт лжёт (EPUB — руны zip; GB18030 и UTF-16 — приближение), и
оставить для UTF-8 txt, где он и есть число знаков. Это не трогает контракт: поле остаётся, меняется
только то, когда оно есть.
**Переименовывать или снимать поле НЕ надо** — это правка контракта, которую §2 запрещает твоей рукой.
**Ветку «взять число из манифеста движка» в ЭТОМ паке НЕ бери:** сегодня манифест несёт только
`source_bytes`, а знаки по юниту появятся ТОЛЬКО после движкового пака (его строка 278). Зависимость
названа, чтобы ты не начала с невозможного.
@ -78,12 +85,20 @@ UTF-8 txt это и есть знаки, для EPUB — руны zip-архив
отчёт. Своей рукой правится то, что живёт в зоне: источник числа и то, что уходит на провод. ⚠ Фронт заморожен — подпись правится при
разморозке, ЧИСЛО у тебя раньше.
**(6) ЗНАЙ ПРО ШОВ, но НЕ строй его здесь:** параллельный движковый пак добавляет в событие `ceiling`
**(6) ДЕЛАЙ РОВНО ТАК — РАЗВЁРТЫВАНИЕ БАНКОВОГО КОНТУРА В РАНТБУКЕ.** `mining.contrast_path`
единственный вход контура; артефакт крупный, генерируется из jieba, в git его нет и быть не должно, а
**рантбук о нём молчит** (`grep -c contrast platform/deploy/README.md` → 0). ⇒ Первая выкатка после
лендинга поднимет инстанс, у которого банковый контур не исполняется вовсе. Рантбук обязан сказать:
положить артефакт рядом с конфигом ПЕРЕД выкаткой, откуда его взять, и чем проверить. ⚠ Движковая
половина (отказ загрузки называет путь) уже стоит в `backend/configs/pipeline-c1.yaml` — не дублируй,
сошлись.
**(7) ЗНАЙ ПРО ШОВ, но НЕ строй его здесь:** параллельный движковый пак добавляет в событие `ceiling`
поле «сколько не хватило» и двигает минор потока. Твоя сторона читает поток и обязана пережить новое
поле, не сломавшись; строить его ЧТЕНИЕ — работа пака формы заказа, а не этого. Если твой парсер
падает на незнакомом поле — это дефект и его чинить здесь.
**(7) НЕ ДЕЛАЙ:** не трогай форму заказа (главы/знаки/деньги) — она ратифицирована `D39.196` и идёт
**(8) НЕ ДЕЛАЙ:** не трогай форму заказа (главы/знаки/деньги) — она ратифицирована `D39.196` и идёт
СВОИМ паком после движкового гейта; не двигай форму манифеста; не правь канон своей рукой; не гаси
общий Postgres на стенде (запрет и довод — в твоём же `UP.sh`).

View file

@ -22,7 +22,7 @@
| Роль | Активный промт | Статус |
|---|---|---|
| Оркестратор | [ORCHESTRATOR_SESSION_PROMPT.md](ORCHESTRATOR_SESSION_PROMPT.md) | роль и нормы; счётчик роли — CURRENT-STATE |
| Бэкенд | [BACKEND_MONEYSTOP_SESSION_PROMPT.md](BACKEND_MONEYSTOP_SESSION_PROMPT.md) | **ВЫДАН 05.09** — «денежный стоп перестаёт быть аварией»: строки 277 · 261 · 262 · 278 + ДВА РАЙДЕРА по пере-проверке бэклога (271 дыра в system-промпт · 251 артефакт контура). **ГЕЙТ для формы заказа (D39.196)** — пока отказ резерва гасит допущенное, в стену упирается любой путь. ⚠ Предыдущий пак (вайр-батч) заленджен КОДОМ, но приёмка НЕ закрыта: зона чинит девять пунктов, эррата 04.09-д |
| Бэкенд | [BACKEND_MONEYSTOP_SESSION_PROMPT.md](BACKEND_MONEYSTOP_SESSION_PROMPT.md) | **ВЫДАН 05.09** — «денежный стоп перестаёт быть аварией»: строки 277 · 278 + ДВА РАЙДЕРА по пере-проверке бэклога (271 дыра в system-промпт · 251 артефакт контура). ⚠ 261/262 в пак НЕ входят — они в незакрытом дофиксе другой сессии зоны. **ГЕЙТ для формы заказа (D39.196)** — пока отказ резерва гасит допущенное, в стену упирается любой путь. ⚠ Предыдущий пак (вайр-батч) заленджен КОДОМ, но приёмка НЕ закрыта: зона чинит девять пунктов, эррата 04.09-д |
| Платформа | [PLATFORM_OPERATIONS_SESSION_PROMPT.md](PLATFORM_OPERATIONS_SESSION_PROMPT.md) | **ВЫДАН 05.09** — «пустить внутрь можно»: бэкапы (строка 269, единственная находка дня БЕЗ частичного исхода) · дверь для не-браузерного клиента (270) · блокер рантбука деплоя · имя книги (274) · ложная подпись «Знаков» (282). ⚠ Форму заказа НЕ трогает — она идёт своим паком ПОСЛЕ движкового гейта |
| Полигон | [POLYGON_EXP2223_REDO_SESSION_PROMPT.md](POLYGON_EXP2223_REDO_SESSION_PROMPT.md) (отложенный — [POLYGON_PACKAGE4_SESSION_PROMPT.md](POLYGON_PACKAGE4_SESSION_PROMPT.md), строка 85) | фаза Д ИДЁТ; ⚠ живой носитель курса — в `eval/dovodka/`, какой именно называет зона (⚠ [POLYGON_PHASE_D_HANDOFF.md](POLYGON_PHASE_D_HANDOFF.md) — перекрытый снимок, читать не как курс) |
| Фронт | активного НЕТ | **ЗОНА ЗАМОРОЖЕНА** (D39.136 п.2 + D39.147: разморозка отдельным словом владельца, не привязана к P7); перечень первого касания — в зонном журнале |

View file

@ -72,7 +72,7 @@
---
## ⚠ ОТКРЫТАЯ РАЗВИЛКА 04.09: КНИГУ НЕЛЬЗЯ ДОЧИТАТЬ — разбор трёх независимых чтений, решение за владельцем
## РАЗБОР 04.09: КНИГУ НЕЛЬЗЯ ДОЧИТАТЬ — три независимых чтения; форма заказа РЕШЕНА владельцем 05.09 (`D39.196`)
> **СТАТУС ИЗМЕНИЛСЯ 05.09: ФОРМА ЗАКАЗА РАТИФИЦИРОВАНА — `D39.196`.** Решение владельца: баланс аккаунта — ДЕНЬГАМИ и виден;
> ползунок потолка — деньгами; рядом ответ «хватает на полную книгу или нет»; второй ползунок объёмом — ГЛАВЫ когда книга