textmachine/docs/PLATFORM_OPERATIONS_SESSION_PROMPT.md

11 KiB
Raw Blame History

Промт сессии: ПЛАТФОРМА — «пустить внутрь можно»

Роль: платформа. Зона записи: platform/. Чужие зоны читаешь, не правишь; пинги и итоги — ЗОННЫЙ журнал platform/docs/platform-PROGRESS.mddocs/PROGRESS.md не пишешь). Не коммитишь и не трогаешь индекс и историю: CLAUDE.md, §«Git-координация мультисессий». Дерево передаёшь оркестратору. Обязательное пре-чтение: platform/docs/ENGINEERING_STANDARDS.md — отступление = пинг.

1. Какая проблема и что решит твой результат

04.09 цикл замкнулся живьём: пользователь получил EPUB настоящего платного перевода через API. После этого стратегическая ревизия нашла, что пускать внутрь живого человека сегодня нельзя, и причины не в переводе:

· Бэкапов нет ни у оплаченной работы, ни у денежного реестра. Одна потеря диска — весь купленный перевод всех пользователей и весь баланс кредитов, без возможности восстановить или доказать, кто сколько платил. Из всех находок дня это единственная без частичного исхода. · У продукта ноль дверей. Контракт объявляет токен для не-браузерного клиента и сам признаёт, что выдать его нечем; живой цикл прошёл через /auth/dev-login, который прод отказывается запускать; фронт заморожен. · Рантбук деплоя, исполненный дословно, даёт инстанс, отказывающий каждому прогону. · Имя книги в выданном файле — исходноязычное, и починить его пользователь не может.

Результат: после твоего пака внешнего пользователя можно пускать, не рискуя его работой и деньгами.

2. Зона записи и git

См. шапку. Канон docs/architecture/14-api-contract/** своей рукой НЕ правишь — состав минора выносишь в отчёт на ратификацию (как было в паке «закрыть цикл», и это сработало).

3. Карта чтения — ПЯТЬ позиций

  1. platform/docs/platform-PROGRESS.md — секция «⚠ ПИНГ ОРКЕСТРАТОРА №22 (04.09, вечер)» и твой же «ОТВЕТ НА ПИНГ №22»: одиннадцать пунктов ревизии, из них один опровергнут зоной.
  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.
  5. docs/architecture/17-seam-inbound-law.md — закон входной двери шва, если тронешь интейк.

Код первичен. Отправные точки: cmd/tmplatformd/runner.go (греп markerArgv), internal/login/, internal/books/books.go (греп type counter), internal/httpapi/v0.go.

4. Состав — что РОВНО так и что решаешь сам

(1) ДЕЛАЙ РОВНО ТАК — БЭКАПЫ НА БОЕВОМ ПУТИ. Бэкапится и оплаченная работа (проектные SQLite книг), и денежный реестр (Postgres). Движковые store.BackupSQLite / tmctl backup СУЩЕСТВУЮТ и платформой не зовутся ни разу — проверь сам и используй, если подходят. Восстановление обязано быть предъявлено исполнением, а не описано: подними копию из бэкапа и покажи, что книга и баланс на месте. ⚠ Без предъявленного восстановления бэкап — это вера, а не механизм.

(2) ДЕЛАЙ РОВНО ТАК — ПОЧИНИ РАНТБУК ДЕПЛОЯ. Он ставит CLI в одно место и велит указать переменную на другое, которого не создаёт ⇒ MarkerArgv пуст ⇒ 503 на каждый старт и резюм. ⚠ Без переменной вовсе всё работало бы (сиблинг-дефолт). Там же объяснение отсутствия переменной описывает симптом, которого в коде нет. Условие приёмки: рецепт исполнен ДОСЛОВНО на чистой машине или в контейнере, и прогон стартовал. Заодно — остальные пункты ревизии, подтверждённые твоей же проверкой.

(3) РЕШАЕШЬ САМ И АРГУМЕНТИРУЕШЬ — ДВЕРЬ ДЛЯ НЕ-БРАУЗЕРНОГО КЛИЕНТА. Развилка: выдавать bearerToken (контракт его объявляет) ЛИБО признать, что до разморозки фронта единственный путь — браузерный, и записать это решением, сняв обещание из канона. Оба исхода законны, но «оставить как есть» — нет: сегодня канон обещает то, чего нет, и цикл доказан механизмом, которого в бою не бывает. Выбор — твой, довод — в отчёт, канон правит оркестратор.

(4) ДЕЛАЙ РОВНО ТАК — ИМЯ КНИГИ. updateBook описан в каноне и не смонтирован (PATCH в роутере ноль). Смонтировать; титул уезжает в выданный файл. ⚠ Это первое, что видит человек, открыв книгу в читалке.

(5) ДЕЛАЙ РОВНО ТАК — СНЯТЬ ЛОЖНУЮ ПОДПИСЬ «ЗНАКОВ». Счётчик считает руны ПОТОКА ЗАПИСИ файла: для UTF-8 txt это и есть знаки, для EPUB — руны zip-архива, для GB18030/UTF-16 приближение. Либо переименуй в размер файла, либо возьми число из манифеста движка. ⚠ Фронт заморожен — подпись правится при разморозке, ЧИСЛО у тебя раньше.

(6) НЕ ДЕЛАЙ: не трогай форму заказа (главы/знаки/деньги) — она ратифицирована D39.196 и идёт СВОИМ паком после движкового гейта; не двигай форму манифеста; не правь канон своей рукой; не гаси общий Postgres на стенде (запрет и довод — в твоём же UP.sh).

5. Мандат самопроверки ИСПОЛНЕНИЕМ

Батарея зоны при всех условиях хоста + живая проба каждой построенной поверхности. Субагенты разрешены явно, модель называй именем. ⚠ Правка документации — изменение с побочными эффектами и требует ревью исполнением ровно как код: норма куплена твоим же замером — восемь агентов по СВОЕЙ работе нашли больше, чем одиннадцать по чужой, и «якоря пере-нацелены» протухло от следующей же правки. ⚠ Утверждение о проверке живёт ровно до следующей правки — гоняй линтер ЦИКЛОМ до чистоты, а не одним проходом.

6. Предметные оси ревью

Восстановление из бэкапа (исполнением, не чтением) · рантбук на чистой машине · путь входа в прод-конфигурации · побочные эффекты доковых правок.

7. Записка-план ДО работы

Комплектность против заказа таблицей: пункт → носитель → проба, которой предъявишь.

8. Заявление = команда

Числа и категорика — с командой получения. ⚠ Отрицание выводится ТОЛЬКО из названного грепа, и команда приводится в тексте: за сутки трижды ловили отрицания из команд, которые не сработали (последний раз — grep с | без -E у оркестратора).

9. Эхо-протокол старта

≤10 строк «скоуп / инварианты / не-делать» ДО работы, первым действием, в прямой канал.

10. Obstacle reporting

Обязательная секция: что не удалось, что не проверено. ⚠ Отчитаться о баге не значит его сдать.

11. Канал вопросов

Конфликт промта с кодом — пинг, не интерпретация. Право сказать «этого делать не надо» с аргументом — есть: в прошлом паке ты опровергла пункт оркестратора, исполнение которого внесло бы в регистр ложь.

12. Прямой канал

CLAUDE.md §«Связь между сессиями». Свой блок — первым делом; адрес оркестратора оттуда же, сверять ListAgents перед отправкой. Канала нет ⇒ НЕ искать, вопрос секцией в отчёт.