Write the P12 platform prompt covering seven open majors and the hanging verify-bank obligation, after a refuter pass upheld twenty-one findings against the draft
This commit is contained in:
parent
e5ff53934f
commit
a1aadbae92
2 changed files with 268 additions and 1 deletions
267
docs/PLATFORM_P12_SESSION_PROMPT.md
Normal file
267
docs/PLATFORM_P12_SESSION_PROMPT.md
Normal file
|
|
@ -0,0 +1,267 @@
|
|||
# Промт: платформа, пак P12 «долги под ногами» — семь открытых major и висящие обязательства зоны
|
||||
|
||||
## 0. Какая проблема и что решит твой результат
|
||||
|
||||
У зоны нет активной стройки, но регистр держит **7 открытых major** — и почти все они про ДЕНЬГИ или про
|
||||
ЛОЖЬ экрана: запись о правке банка теряется навсегда при обрыве клиента (`PD-425`), экран показывает
|
||||
«готово» по чужому прогону, пока живой тратит деньги невидимо (`PD-402`), смена состава волн на живой
|
||||
книге продаёт уже переведённые главы повторно (`PD-403`/`PD-404`), полоса стоит на нуле всю жизнь
|
||||
прогона (`PD-405`), намертво заблокированная расплата невидима и не выводится ничем, кроме Stop
|
||||
пользователя (`PD-424`). Плюс обязательство, висящее с 27.08: обход `--verify-bank` так и не снят,
|
||||
хотя движковая половина порядка D39.158 давно залендена. **Что решит твой результат:** деньги перестают
|
||||
теряться молча, экран перестаёт врать, зона входит в живой прогон (очередь №20 п.2–3) без известных мин.
|
||||
|
||||
**Чего пак НЕ решает:** дверь выдачи `createExport`/`getExport` (пинг №20 в зонном журнале — она ждёт
|
||||
живого прогона) · `PD-410` (единица продажи — ОТДЕЛЬНЫМ паком, слово оркестратора 28.08, тело решения —
|
||||
D39.165 §1) · эскроу П-18 · перф-строки `PD-412`/`PD-413`.
|
||||
|
||||
## 1. Зона записи и git
|
||||
|
||||
Пишешь только в `platform/`. **Не коммитишь**: дерево готовишь и передаёшь оркестратору. Канон git — в
|
||||
`CLAUDE.md`. ⚠ Одна операция выходит за код зоны и разрешена явно: `tmctl migrate` по СТЕНДОВЫМ книгам
|
||||
зоны свежесобранным бинарём (§3.7) — это операция над данными стенда, не правка `backend/`.
|
||||
|
||||
## 2. Карта чтения — ПЯТЬ позиций, дальше только по их ссылкам
|
||||
|
||||
1. `platform/docs/ENGINEERING_STANDARDS.md` — целиком; **DoD §3 — закон** (каждый его пункт исполняется
|
||||
буквально, отступление = пинг).
|
||||
2. `platform/docs/STACK_DECISIONS.md` — разделы «Гейты батареи» (единственный носитель условий) ·
|
||||
рецепт стенда · §35 (монотонность `edit_wave` — правило, которое этот пак пере-подписывает).
|
||||
3. `platform/docs/DEFECT_REGISTER.md` — шапка/легенда + ТЕЛА адресуемых строк: `PD-425 402 403 404 405
|
||||
424 418 411 369 420 431 432 427 203 367 422 213 423 380 44`.
|
||||
4. `platform/docs/platform-PROGRESS.md` — пинг №20 (30.08) и **ПИНГ №21 (27.08, D39.158)** — носитель
|
||||
обязательства по обходу `--verify-bank` и СОСТАВА снятия (подавление флага при возобновлении +
|
||||
особый случай в спавне + персистентная колонка `bank_released`); вопросы sqlc-сессии.
|
||||
5. `docs/architecture/05-decisions-log.md` — ТОЛЬКО тело `D39.165` (греп `^## D39.165`), §2 «эпоха» —
|
||||
источник решения владельца для §3.2; остальной журнал не читать.
|
||||
|
||||
## 3. Работа
|
||||
|
||||
**Порядок при нехватке ресурса (ранжирование оркестратора):** first-class — §3.1 (деньги, теряемые
|
||||
молча) · §3.7 (обязательство, висящее с 27.08) · §3.3 (вход в живой прогон очереди №20); вторым
|
||||
эшелоном — §3.2 (вскроется конфликт с каноном — пинг, и пункт уезжает СЛЕДУЮЩИМ паком, не молчаливая
|
||||
отсрочка) · §3.6+§3.9 (дёшевы, тем же деревом); §3.4/§3.5/§3.8 — по остатку ресурса. Всё невзятое —
|
||||
диспозицией строкой в записке-плане §6; честная резка с доводом лучше молчаливой каши.
|
||||
|
||||
### 3.1 `PD-425` — обрыв клиента теряет запись о правке банка навсегда (деньги, делай РОВНО так по классу)
|
||||
|
||||
Дверь коррекций пишет пост-verb факт (`RecordBankMove`) на контексте ЗАПРОСА (`internal/httpapi/bank.go:149`):
|
||||
клиент закрыл вкладку до ответа — запись не легла, `bank_moved_at` NULL навсегда, второго писателя и
|
||||
свипа нет; дальше обычный прогон допускается без `--resnapshot` и умирает на снапшот-гарде движка ПОСЛЕ
|
||||
взятия холда. Средство «503, пере-шли документ» недостижимо — клиента уже нет. **Класс лечения зона
|
||||
назвала сама и уже дважды применила:** `WithTimeout(WithoutCancel(ctx), …)` —
|
||||
`platform/internal/httpapi/idempotency.go:151`=`WithoutCancel` (`settleCtx`; комментарий `:147-149` — дословно
|
||||
про обрыв клиента) и `internal/books/books.go:205,215` (`writeCtx`, тело — `internal/books/parse.go:271-272`).
|
||||
⚠ Тело `PD-425` в регистре несёт БИТЫЙ якорь `pgstore/idempotency.go:150` (там чтение ключа, detach нет) —
|
||||
пере-нацель его той же правкой регистра (гигиена §3.9). Делай тем же классом; деталь (таймаут, что именно
|
||||
накрывается) — реши сам и аргументируй. Пины свои: посадка «контекст отменён между verb и записью» обязана
|
||||
красить дефект и зеленеть с фиксом.
|
||||
|
||||
### 3.2 `PD-403`/`PD-404`/`PD-411`/`PD-405` — полоса и повторная продажа глав. РЕШЕНИЕ ВЛАДЕЛЬЦА ДАНО — исполняй, не пере-решай
|
||||
|
||||
Строки стоят «лечение за решением владельца» — **решение дано 28.08, D39.165 §2, релей дословный:**
|
||||
смена формы конвейера (добавили/убрали редактора) — **СОБЫТИЕ КНИГИ, как пере-нарезка, и счёт легально
|
||||
пересчитывается** при пересечении границы; канон уже открыл дверь («never moves backwards WITHIN one
|
||||
`structure_version`; cutting the book again recomputes both numbers» —
|
||||
`docs/architecture/14-api-contract/openapi.yaml:1554-1558`=`never moves backwards`; ⚠ якорь D39.165
|
||||
`1542-1545` дрейфанул — там сейчас RejectReason), нового исключения не изобретать. ⚠ **Носитель границы
|
||||
эпохи нотой НЕ решён — реши сам и аргументируй** в рамках: флаг монотонен (пин D39.153 §4б) · форму НЕ
|
||||
читать с последнего прогона · счёт пересчитывается только на СОБЫТИИ. Цена обеих дорог: пересчёт БЕЗ
|
||||
движения `structure_version` нарушает букву канона на направлении «вниз»; движение `structure_version`
|
||||
инвалидирует курсоры/идентификаторы пар/окна термов (`openapi.yaml:1233-1236`=`moves when the book is cut`).
|
||||
Если выбранная форма требует правки ФРАЗЫ канона (второе событие пересчёта рядом с пере-нарезкой) — это
|
||||
контрактный минор через ратификацию оркестратора: пинг ДО стройки, прецеденты миноров 0.7.0/0.8.0 есть.
|
||||
При этом:
|
||||
- ⚠ **Монотонность флага (D39.153 §4б) НЕ отменяется** — пин стоит, правка пина под зелень запрещена
|
||||
(D39.121). Меняется другое: пожизненный счёт книги перестаёт выводиться из ЖИВОГО флага.
|
||||
- ⚠ Ложный док-комментарий `recordWaveShape` — `internal/pgstore/sink.go:402-409`=`Monotone in one direction`
|
||||
(лгущий абзац `:406-409`; редакция D39.165 писала `405-408` — дрейф) — переписать/снести целиком вместе
|
||||
с правкой поведения, не механически диапазон строк.
|
||||
- ⛔ **Заново НЕ предлагать** четыре отвергнутые формы: счёт всегда по редакторской волне · читать форму
|
||||
с последнего прогона · немонотонный флаг · «какая фаза считается» как вопрос клиенту.
|
||||
- **§35 `STACK_DECISIONS.md` пере-подписать** той же работой — это правка ЗАПИСАННОГО правила зоны, не
|
||||
только кода; прежняя формулировка остаётся в истории с датой и причиной.
|
||||
- **`PD-411`** — мёртвые `runs.draft_done/draft_total/edit_done/edit_total` (два писателя, ноль
|
||||
читателей): запрет сноса был пер-паковым (P9); теперь снос миграцией — естественная часть этой же
|
||||
правки. Реши сам, этим ли паком; если нет — диспозиция строкой.
|
||||
- **`PD-405`** — прогон над книгой без материализованного дерева читает 0/total всю жизнь. Зона назвала
|
||||
два лечения: отказ старта до дерева ИЛИ полоса из progress-событий. Выбери и аргументируй; ложный
|
||||
комментарий `sink.go:219` снести.
|
||||
|
||||
### 3.3 `PD-402`, read-половина — экран не смеет показывать «готово» по чужому прогону (делай РОВНО так)
|
||||
|
||||
Write-гард уже закрыт (F12, `ErrNotResumable`, пин `TestAnOlderRunCannotBeResumedOverANewerOne`);
|
||||
осталась read-половина: `lastRun` берёт `order by started_at desc` — живой прогон обязан иметь приоритет
|
||||
над финишировавшим в карточке/полосе. ⚠ У `lastRun` ДЕСЯТЬ мест склейки на 30.08 (десятое —
|
||||
`pgstore/runs.go:132`, добавлено 28.08 ПОСЛЕ счёта «девять» из PD-44; пере-сочти сам грепом паттерна
|
||||
склейки, не голым словом — голое ловит комментарии) и он в ⛔-зоне sqlc — правка судится СВОИМИ тестами
|
||||
по каждому месту, не «зеленью батареи».
|
||||
|
||||
### 3.4 `PD-424` (+`PD-418`) — намертво заблокированная расплата обязана быть видимой и выводимой
|
||||
|
||||
Живой прогон с блокированной расплатой: `reopen` → вердикт `deferred` → `return nil` + `ClearRunDeferral`,
|
||||
счётчик не растёт никогда, холд заморожен, не видит ни одна поверхность `PD-385`, `run abandon` не берёт.
|
||||
**Приор зоны (опровергается аргументом):** `deferred` ⇒ `established=false`, блокированный расчёт =
|
||||
неудача владеющей фазы. `PD-418` (settling живого прогона без ручки) — тот же узел: реши, закрывается ли
|
||||
он той же правкой, и подпиши диспозицию.
|
||||
|
||||
### 3.5 `PD-369` (=П-21) + `PD-420` — легитимный запрос не имеет права получать 500
|
||||
|
||||
Конкуренция на одном ключе идемпотентности: `claimRounds=3`, 8 гонщиков отбирают гонку трижды → 500.
|
||||
Зона назвала две формы: граница по ВРЕМЕНИ либо явный `ErrKeyInFlight` → контрактный ответ. **Слово
|
||||
оркестратора: 500 на легитимном запросе недопустим; между двумя формами выбери сам и аргументируй**
|
||||
(учти словарь кодов контракта — новый код = вопрос, маппинг существующих — нет). `PD-420` — тот же узел
|
||||
(её диагноз НЕ установлен): порядок — СНАЧАЛА фикс `PD-369` (форма `ErrKeyInFlight` зеленит тест по
|
||||
построению — он этот error уже принимает), ПОТОМ пере-замер серией (≥80 итераций + параллельные батареи);
|
||||
флейк пережил фикс — тогда изоляция/скип с диагнозом строкой в регистр; скип ДО фикса — снятие пина, не
|
||||
вариант (D39.121). Вердикты посадок — по ДЕЛЬТЕ и топичности (DoD §3), красная чистая копия не маскирует
|
||||
дельту.
|
||||
|
||||
### 3.6 `PD-431` + `PD-432` — честность носителей (делай РОВНО так)
|
||||
|
||||
- `PD-431`: `Touch` (`internal/pgstore/sessions.go:49`) выбрасывает `RowsAffected` — апдейт в ноль строк
|
||||
неотличим от успеха, скольжение окна бездействия не проверяет ни один живой тест. **Слово
|
||||
оркестратора: поведение НЕ менять** (ноль строк — законная гонка с отзывом); лечение — честность
|
||||
проверки: запинить скольжение окна СКВОЗНЫМ тестом через `auth.Authenticator` с живым
|
||||
`*pgstore.Store` (сегодня их не связывает ни один тест). Если по ходу увидишь, что и поведение
|
||||
требует слова, — пинг, не правка.
|
||||
- `PD-432`: рецепт гейтов батареи в `STACK_DECISIONS.md` не говорит, что движковый бинарь стенда надо
|
||||
ПЕРЕСОБИРАТЬ из текущего `backend/` — допиши строку рецепта (свой док зоны; протухший `tmctl` даёт
|
||||
три красных теста «field … not found», читающиеся как дефект зоны). **Той же док-правкой:**
|
||||
команда-проверка четвёртого условия батареи (`cut -d: -f3 /proc/self/cgroup` ≠ `/init.scope`) УЖЕ
|
||||
стоит в «Гейтах батареи» и ОПРОВЕРГНУТА второй точкой `PD-423` (ложный отрицательный: тест зелен 5/5
|
||||
при `/init.scope`) — сними её или пере-подпиши как опровергнутую со ссылкой на `PD-423`; прежняя
|
||||
формулировка остаётся в истории с датой и причиной. Замену-кандидата (`cgroup.subtree_control`
|
||||
целевого среза) можно назвать только КАНДИДАТОМ — диагноз `PD-423` не установлен, строке дай
|
||||
диспозицию, не закрытие.
|
||||
|
||||
### 3.7 Снятие обхода `--verify-bank` — довести порядок D39.158 до конца (делай РОВНО так)
|
||||
|
||||
Порядок односторонний и записан: движок первым (залендён 27.08) → `tmctl migrate` по КАЖДОЙ книге →
|
||||
только потом платформа снимает обход. Сделай: пересобери `tmctl` из ТЕКУЩЕГО `backend/` → `tmctl
|
||||
migrate` по каждой стендовой книге зоны → сними обход в коде → живой пробой на стенде: стоп банка
|
||||
доезжает флажком движка, а не обходом.
|
||||
|
||||
**Состав снятия — по пингу №21, он ШИРЕ спавна:** (а) особый случай в спавне —
|
||||
`platform/internal/runs/spawn.go:170`=`!l.BankReleased` — снять РОВНО; (б) писатель `LiftBankStop`
|
||||
(`internal/runs/reconcile.go:1304`, `pgstore/runs.go:1180`) и (в) колонка `bank_released` с читателями
|
||||
полосы (`pgstore/readmodel.go:393,498,961`) — реши сам, этим ли паком: снос = НОВАЯ миграция (00016 не
|
||||
править) + пере-вывод сегмента полосы; (б)/(в) сцеплены — снять писателя, оставив колонку, значит
|
||||
заморозить `bank_released=false` и врать полосой (ось §5); не этим паком — диспозиция строкой, как у
|
||||
`PD-411`. ⚠ **Снимаемое поведение ЗАПИНЕНО:** `TestAResumedRunIsSpawnedWithoutTheSigningStop`
|
||||
(`platform/internal/runs/reconcile_test.go:707`=`WithoutTheSigningStop`; `:706` — «Mutation caught: passing
|
||||
l.VerifyBank unconditionally», т.е. ровно заказанная правка). **Пере-подпись этого пина заказана этим
|
||||
промтом** — как в §3.8: заказанная смена контракта, не подгонка под зелень (D39.121); пере-подписанные
|
||||
пины перечисли поимённо. Той же работой уходят обоснования сброса флага из фикс-раунда 28.08 (строка F10,
|
||||
`platform-PROGRESS.md:1467`): комментарий `spawn.go:159-169` («the owner's model») и док-коммент теста —
|
||||
оба описывают поведение, которое пинг №21 объявил лишним. Если найдёшь причину, по которой снимать рано, —
|
||||
пинг с уликой, не молчаливая отсрочка.
|
||||
|
||||
**Стенд УЖЕ СТОИТ** — второй по рецепту НЕ заводить: `~/.local/share/tmstand` (стендовая книга одна —
|
||||
`books/bk_WIUSGBQTIGWE4ZBY`; бинари в `bin/`, `tmctl` — `~/.local/bin/tmctl`); `W=~/tmstand-work` в
|
||||
рецепте — шаблон. Живой `tmplatformd` — демон ЗАКРЫТОЙ сессии оркестратора №19: убей по PID (⚠ не
|
||||
`pkill -f` — инцидент P11) и подними свой свежесобранный. Для живого пробоя $0-пары подними СВОЮ
|
||||
заглушку на `127.0.0.1:11434` (образец — `platform/internal/runner/translate_resnapshot_live_test.go:41`;
|
||||
ollama на хосте нет) и ⚠ гаси её на время `make check`: тест второго гейта при занятом порту скипается,
|
||||
а требование — скипов 0.
|
||||
|
||||
### 3.8 `PD-367` — интейк не принимает манифест, который свой же материализатор отверг бы (решение оркестратора)
|
||||
|
||||
Сегодня `{ChaptersTotal:120, пустой список}` заводит книгу, по которой можно СТАРТОВАТЬ И ОПЛАТИТЬ
|
||||
прогон. **Решено: пол самосогласованности — симметричный, интейк отказывает** (закон шва: незнакомое/
|
||||
несогласованное → не-деструктивно и громко). Это ПРАВКА ЗАПИНЕННОГО контракта интейка — расширение
|
||||
заказано этим промтом, правки пинов перечисли поимённо в отчёте (это не «подгонка под зелень», это
|
||||
заказанная смена контракта; сомнение — пинг). Батарея интейка ездит на документах без списка глав —
|
||||
фикстуры расширь, не обходи. Смежную `PD-213` (незнакомая версия манифеста ведёт к УДАЛЕНИЮ файла)
|
||||
реши тем же классом «незнакомое → не-деструктивно» или подпиши диспозицию строкой.
|
||||
|
||||
### 3.9 Гигиена регистра (дёшево, тем же деревом)
|
||||
|
||||
Закрыть `PD-427` (комментарий уже исправлен 29.08 — акт закрытия) и `PD-203` («предложено закрыть» ещё
|
||||
P8-REVIEW; проверь предикат и закрой либо оспорь) · перенести `PD-380` и `PD-44` (обе fixed) из-под
|
||||
чужих заголовков «Открытые» · завести строку на НЕПОКРЫТУЮ гоночную ветку `errIdentityRace`
|
||||
(`pgstore/identity.go:99-113` — ретрай при `on conflict … do nothing`, гонка двух первых логинов одной
|
||||
новой identity; ни один тест её не касается, все тестовые вызовы последовательные) с диспозицией:
|
||||
запинить конкурентным тестом ЛИБО доказать недостижимость; ⛔ снос — только с доказательством: ветка
|
||||
обслуживает ЛЕГИТИМНУЮ гонку логина, её снос = 500 на легитимном пути (класс §3.5) · `PD-422` НЕ
|
||||
трогать (гейчена проводкой `--max-units`, гейт оркестратора) — просто не забудь её в грепе по своим путям.
|
||||
|
||||
### 3.10 Границы
|
||||
|
||||
- ⛔ `backend/` не трогать (исключение — операция §3.7); ⛔ дверь выдачи не строить; ⛔ эскроу не строить;
|
||||
⛔ `PD-410` не лечить (отдельный пак).
|
||||
- ⛔ `observe.go` под sqlc не конвертировать, схему River в sqlc-конфиг не добавлять; склейки/read-модель —
|
||||
⛔-зона sqlc; выпущенные миграции не править (append-only; новые — можно).
|
||||
- Новая зависимость = строка в `STACK_DECISIONS.md` с датой и «зачем», ратифицирует оркестратор; Redis/ORM/
|
||||
OTel — записанные «нет».
|
||||
- Деньги: суммы не на провод/UI/INFO/метрики (D39.84); леджер append-only держит код.
|
||||
|
||||
## 4. Самопроверка ИСПОЛНЕНИЕМ (без неё работа не принята) — DoD §3 стандартов зоны, поимённо
|
||||
|
||||
- **`make check` целиком** при ТРЁХ гейтах + условии хоста (носитель условий — `STACK_DECISIONS.md`
|
||||
«Гейты батареи»); скипы считать КОМАНДОЙ и называть вслух; зелень = полный список пакетов + 0 FAIL.
|
||||
⚠ Статус четвёртого условия НЕ выводить из команды `/proc/self/cgroup` — она уже опровергнута второй
|
||||
точкой `PD-423` (ложный отрицательный) и пере-подписывается в рецепте по §3.6; суди по самому тесту
|
||||
(`TestARunIsBoundedByItsOwnCgroup` зелен при 0 скипов); красный — сначала проверь среду
|
||||
(`cgroup.subtree_control` среза, рецепт в `STACK_DECISIONS.md`), потом ищи дефект.
|
||||
- **Стенд:** пересобрать ВСЕ ТРИ бинаря, включая `tmctl` из текущего `backend/`; демона убивать ПО PID
|
||||
(⚠ не `pkill -f` — инцидент P11); `pipeline-zero` для второго гейта; `curl --noproxy '*'`; правил
|
||||
миграцию — пересоздай базу.
|
||||
- **Мутационные посадки — в КОПИИ дерева ВМЕСТЕ с каноном** (`cp -a --parents platform
|
||||
docs/architecture/14-api-contract <куда>/`); вердикт по ДЕЛЬТЕ против чистой базы ТОЙ ЖЕ копии и по
|
||||
ТОПИЧНОСТИ упавшего теста, не по цвету. Каждое заявленное свойство несущего пути — запинено тестом,
|
||||
ловящим мутацию; в отчёте назови, какой тест что пинит.
|
||||
- **Греп ОТКРЫТЫХ строк регистра по СВОИМ файлам ПОЛНЫМИ путями** — каждое совпадение получает
|
||||
диспозицию; якорь, убитый твоим переездом, чинишь ты.
|
||||
- Находки — строками в регистр ТЕМ ЖЕ деревом; правки чужих до-паковых тестов — поимённо.
|
||||
- ⛔ Тесты/голдены/гейты не подгонять под зелень (D39.121); несогласие — пинг.
|
||||
- **Дифф `^func Test` — исполнением**; интервальная самоверификация субагентом в середине пака.
|
||||
- **Разрешаю субагентов**; модель задавай явно; трудный вопрос — старшей модели.
|
||||
- ⚠ **Адверсариальный проход по СВОЕЙ готовой работе перед сдачей.** Направления: деньги, теряемые между
|
||||
verb и записью; экран, который врёт при гонке живого и финишировавшего; пересчёт счёта, продающий
|
||||
купленное; 500 на легитимном пути; зелёный тест, не проверяющий ничего (класс D39.171). Пока идёт
|
||||
проход — дерево не двигается: морозь или называй агенту коммит.
|
||||
|
||||
## 5. Оси ревью
|
||||
|
||||
**Деньги** (ни одна запись о деньгах не теряется молча; сверка леджера двумя путями) · **честность
|
||||
экрана** (полоса/карточка не врут ни при гонке, ни при смене формы) · **контрактное поведение**
|
||||
(интейк/идемпотентность/окно сессии отвечают то, что обещано, и это запинено). Вправе заменить ось с
|
||||
аргументом.
|
||||
|
||||
## 6. Записка-план и комплектность
|
||||
|
||||
До кода — записка-план в `platform/docs/platform-PROGRESS.md`: что берёшь, что не берёшь, чем докажешь;
|
||||
числа — свои, командами, не унаследованные из промта. Перед сдачей — механическая сверка состава против
|
||||
§3 таблицей: пункт → сделано/нет → чем доказано. Пропуск подписывается пропуском. **Последний абзац
|
||||
отчёта оказался планом или обещанием? Сделай сейчас.**
|
||||
|
||||
## 7. Канал вопросов и право отказаться
|
||||
|
||||
Конфликт промта с кодом/доками/регистром — **пинг через владельца, не интерпретация**. Есть право
|
||||
сказать «этого делать не надо» с аргументом (по любому пункту §3 — состав большой, честная резка с
|
||||
доводом лучше молчаливой каши).
|
||||
|
||||
⚠ Правки задания по ходу работы доезжают ТОЛЬКО релеем через владельца — отдельным его сообщением. Что
|
||||
не пришло релеем — не заказ. Полученную правку эхо-подтверди и вынеси отдельным пунктом отчёта.
|
||||
|
||||
## 8. Заявление = команда
|
||||
|
||||
Любое число и категорика — с командой получения; приёмка пере-ранит, клейм без пере-прогона = «со слов
|
||||
сессии». Утверждение без `file:line`/замера помечай словом «мнение».
|
||||
|
||||
## 9. Эхо-протокол старта
|
||||
|
||||
ДО первой правки — ≤10 строк: скоуп / инварианты / чего не делаешь. Отправь первым действием по адресу
|
||||
оркестратора из `/tmp/textmachine-channel` (механизм — `CLAUDE.md`; впиши туда СВОЙ блок первым делом).
|
||||
**Канала нет ⇒ НЕ искать**: вопрос секцией в отчёт, работа продолжается.
|
||||
|
||||
## 10. Obstacle reporting
|
||||
|
||||
Обязательная секция: что НЕ удалось и что осталось непроверенным. Пустой не бывает. Три исхода:
|
||||
«подтверждено» / «опровергнуто» / «не проверено» — третье не сваливать во второе.
|
||||
|
||||
## 11. Журнал
|
||||
|
||||
Записка-план, итоги и вопросы — ЗОННЫЙ `platform/docs/platform-PROGRESS.md` (в `docs/PROGRESS.md`
|
||||
платформа не пишет).
|
||||
|
|
@ -23,7 +23,7 @@
|
|||
|---|---|---|
|
||||
| Оркестратор | [ORCHESTRATOR_SESSION_PROMPT.md](ORCHESTRATOR_SESSION_PROMPT.md) | роль и нормы; счётчик роли — CURRENT-STATE |
|
||||
| Бэкенд | активного НЕТ | пак «писатель книги» **ПРИНЯТ И ЗАЛЕНДЖЕН 30.08** (**D39.175**, `8adcb86`): `tmctl build` — EPUB 3 + чистый txt из `BookExport`, шесть состояний честности, отказ exit 16 / `--partial`, пути в `StatusArtifacts.book_files`. Слово владельца: drift — НЕ дыра файла, дверь выдачи обязана сверять `BuildReport`. Приёмка: 4 линзы + верификатор на каждую находку, два дофикса до лендинга. Промт отработан — `archive/prompts/`. Открыто строками **238/239**; вопросы владельцу (лестница D25.1 · лейбл К-3 · RTL) — CURRENT-STATE |
|
||||
| Платформа | активного НЕТ | пак `sqlc` ПРИНЯТ И ЗАЛЕНДЖЕН 29.08 (**D39.172**): 40 запросов на типизированный слой, пин 1.31.1, `sqlc diff` в `make check`. ⚠ Решение принято НЕ доводом покрытия (3 из 42), а шестью ВЫЖИВШИМИ мутациями: `sqlgate` не видит Go-сторону вызова. Промт отработан — `archive/prompts/`. Открыто строками: `Touch` без проверки затронутых строк · `observe.go` неконвертируем |
|
||||
| Платформа | [PLATFORM_P12_SESSION_PROMPT.md](PLATFORM_P12_SESSION_PROMPT.md) | **НАПИСАН 30.08, ждёт запуска владельцем.** Пак P12 «долги под ногами»: 7 открытых major (PD-425 деньги · PD-402/405 ложь экрана · PD-403/404 повторная продажа глав — решение владельца D39.165 §2 релеем · PD-424 замороженный холд) + снятие обхода `--verify-bank` (обязательство D39.158) + PD-369/431/432 + гигиена регистра. Оба рубежа пройдены: опровергатель (3 линзы + верификаторы) дал **21 удержанную находку**, все применены. Прежний пак `sqlc` — D39.172, промт в архиве: 40 запросов на типизированный слой, пин 1.31.1, `sqlc diff` в `make check`. ⚠ Решение принято НЕ доводом покрытия (3 из 42), а шестью ВЫЖИВШИМИ мутациями: `sqlgate` не видит Go-сторону вызова. Промт отработан — `archive/prompts/`. Открыто строками: `Touch` без проверки затронутых строк · `observe.go` неконвертируем |
|
||||
| Полигон | [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); перечень первого касания — в зонном журнале |
|
||||
| Контракт | активного НЕТ | минор **0.8.0** ПРИНЯТ и заленджен 29.08 (**D39.169**) вместе с паком P11: кадр `session_ended` — отзыв сессии гасит открытый поток и НАЗЫВАЕТ причину; кадр СОЕДИНЕНИЯ, своего номера не потребляет. До него в тот же день — **0.7.0** (D39.166, пере-проход как член `RunRequest.re_pass`), **0.6.0** (D39.162/163) и **0.5.0** (D39.161). ⚠ Названная цена 0.7.0 СНЯТА 29.08: строка 231 закрыта паком «деньги» (D39.170) — читающий путь движка сворачивает банк, поэтому смета доезжает до покупателя ДО покупки |
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue