Ratify the extended frontend freeze, sync its carriers, land the honesty-pack prompt, and record the code inventories as backlog row 193 and a scale note
This commit is contained in:
parent
65a5c54c37
commit
3ffbc2e71d
6 changed files with 208 additions and 8 deletions
190
docs/BACKEND_HONESTY_PACK_SESSION_PROMPT.md
Normal file
190
docs/BACKEND_HONESTY_PACK_SESSION_PROMPT.md
Normal file
|
|
@ -0,0 +1,190 @@
|
|||
# Промт: бэкенд, пак «честные числа и статусы» — строки 176 · 181 · 172-г · 187
|
||||
|
||||
> Выдан оркестратором №18, 16.08.2026. Запуск — по слову владельца.
|
||||
> Вес пака — лёгкий-средний: четыре точечных места, приёмка инлайн.
|
||||
|
||||
## 0. Зачем (проблема, понятная без истории проекта)
|
||||
|
||||
Движок — CLI (`tmctl`), который переводит книгу платными вызовами LLM и которым снаружи управляет
|
||||
процесс-супервизор (платформа). Наружу он сообщает три вещи: **число денег**, **код выхода** и
|
||||
**вердикт гейта**. Сегодня в четырёх местах сообщаемое расходится с происходящим:
|
||||
|
||||
1. **Число, на которое оператор даёт согласие при пере-покупке, посчитано по СТАРЫМ ценам.** Цены
|
||||
провайдера сменились 16.08 (до ×4.4 в пике), проекция пере-покупки складывает исторический
|
||||
`cost_usd`, а резерв и расчёт считают новой таблицей. Оператор соглашается на одну сумму, платит
|
||||
другую. Траты защищены потолками — врёт именно ЧИСЛО СОГЛАСИЯ (строка 181).
|
||||
2. **Паника Go-рантайма неотличима от успеха.** Непойманная паника даёт exit 2, а 2 в контракте
|
||||
означает «завершено, есть флагнутые главы» — потребитель записывает упавшему посреди работы
|
||||
прогону «готово». Деньги при этом целы (считаются из `status --json`), врёт статус (строка 176).
|
||||
3. **Ратифицированный порог приёмки классификатора не доехал до тестового рига.** Владелец 15.08
|
||||
подписал ВЫБОРОЧНУЮ форму порога, риг требует прежнюю — и сам предупреждает, что порог и выборка
|
||||
расходятся. Ближайший прогон вахты упадёт ложно (строка 172-г).
|
||||
4. **Два комментария кода описывают снятое поведение** — читатель кода получает неверный закон о том,
|
||||
что попадает в `memory_version` (строка 187).
|
||||
|
||||
**Что решит твой результат:** ни одно из четырёх мест больше не врёт, и каждое прибито тестом,
|
||||
который на до-фиксном коде ПАДАЕТ. После пака можно честно пере-прогонять старую книгу (сейчас
|
||||
нельзя — п.1) и честно читать исход прогона снаружи (п.2).
|
||||
|
||||
## 1. Зона записи и git
|
||||
|
||||
Пишешь ТОЛЬКО в `backend/`. Итог сессии — краткой записью в `docs/PROGRESS.md`, секция «Бэкенд»
|
||||
(это единственный файл вне `backend/`, куда тебе можно писать).
|
||||
|
||||
**Ты не коммитишь — лендит оркестратор.** `git add` / `git commit` / `git reset` / `git checkout` /
|
||||
`git stash` не звать вовсе; файлы застейдженными не оставлять.
|
||||
Карв-аут к «пишешь только в `backend/`»: **пробные проекты в `~/books/…` — легитимная запись** (они вне
|
||||
git, и норма «персист, не scratch» требует, чтобы сырьё платной пробы легло рядом с проектом пробы, а
|
||||
не в `/tmp`). Это касается только пункта 5.
|
||||
⚠ **В дереве прямо сейчас работают ДВЕ чужие живые сессии** — полигон (`eval/`, `docs/experiments/`)
|
||||
и платформа (`platform/`). Их незакоммиченные файлы читать можно, трогать — нельзя ни при каких
|
||||
обстоятельствах. `.env` не читать никогда (там ключи). `frontend/` не трогать.
|
||||
|
||||
## 2. Карта чтения (≤5, больше не нужно)
|
||||
|
||||
1. `CLAUDE.md` — гардрейлы и инвариант общности (Go не ветвится по языковой паре).
|
||||
2. `backend/README.md` + `docs/architecture/12-go-style-notes.md` §0 — норматив зоны.
|
||||
3. Тела строк **176 · 181 · 172-г · 187** в таблице «Бэклог» файла `docs/PROGRESS.md` — это ЗАКАЗ;
|
||||
в них лежат `file:line` отправные точки. Строки писала нейросеть: якоря могли уплыть, формулировка
|
||||
могла устареть — **код первичен**, расхождение строки с кодом называй вслух в отчёте.
|
||||
4. `docs/architecture/05-decisions-log.md`: **D39.131** (половина 0–5 контракта кодов выхода) ·
|
||||
**D39.134 п.2** (полоса отказов 10–19 и её обещание) · **D39.137** (пере-пин цен — откуда взялась
|
||||
строка 181). Греп по номеру: сначала живой файл, потом слайсы `docs/archive/architecture/`.
|
||||
5. `docs/experiments/00-provider-quirks.md` — **только если** дойдёт до пункта 5 (живой прогон вахты).
|
||||
|
||||
Всё остальное — код, и его ты достаёшь сам.
|
||||
|
||||
## 3. Состав
|
||||
|
||||
Пункты 1–4 — **«делай РОВНО так» по ПРЕДМЕТУ** (что чинится, решено); **форма фикса внутри — твоя,
|
||||
аргументируй в отчёте**. Отступление от предмета = пинг, не интерпретация.
|
||||
|
||||
**1. Строка 181 — число согласия на пере-покупку.** Проекция пере-покупки обязана считать ТОЙ ЖЕ
|
||||
ценовой таблицей, которой считают резерв и расчёт, а не складывать исторические суммы. Отправные
|
||||
точки заказа: `internal/pipeline/rebill.go` (сложение исторического `cost_usd`; гейт согласия и его
|
||||
порог), `internal/pipeline/stagerun.go` (резерв и сеттл новой таблицей). **Тест обязателен и обязан
|
||||
падать на до-фиксном коде** (сценарий: единицы куплены по старой цене → цена сменилась → согласие
|
||||
спрашивают на новую сумму). ⚠ Комментарий `rebill.go` про «over-estimating is the safe direction»
|
||||
после фикса обязан стать правдой или уйти.
|
||||
**`projected_book_usd` у `status` — В СКОУПЕ, а не «проверь и назови»**: заказ строки утверждает ту же
|
||||
болезнь, и оставить её значит оставить `status` врущим. ⚠ **Развилка, которую обязан разрешить явно:**
|
||||
сам ПОРОГ согласия тоже считается из этой проекции — починить числитель новой таблицей и оставить базу
|
||||
порога исторической значит получить полу-исторический гейт. Реши обе половины вместе и назови решение
|
||||
в отчёте; считаешь, что вторая половина не влезает — **пинг**, а не тихое сужение.
|
||||
|
||||
**2. Строка 176 — паника не должна читаться как успех.** Непойманная паника рантайма обязана
|
||||
приходить наружу кодом, который потребитель прочтёт как ПРОВАЛ.
|
||||
|
||||
⚠ **Обе полосы кодов — ЗАМОРОЖЕНЫ, это шов, их словарь двигается только ратификацией.**
|
||||
- **0–5 не трогать** (ратифицированный словарь, D39.131; шапка `cmd/tmctl/main.go`). В частности
|
||||
**exit 2 НЕ переносить**: значение «завершено с флагами» зашито у потребителя намертво
|
||||
(`platform/internal/ingest/exit.go:24,89` · `platform/internal/runs/reconcile.go:484` → `ready`), и
|
||||
«развести номера, оставив полосу 10–19 нетронутой» **сломает шов, не нарушив буквы этого запрета** —
|
||||
каждый честно флагнутый прогон станет `failed`, а чтение денег сломается вместе с ним.
|
||||
- **10–19 не расширять и для паники НЕ использовать** — полоса обещает «ничего не произошло, ничего
|
||||
не потрачено, ничего не записано» (D39.134 п.2г), а паника случается посреди оплаченной работы;
|
||||
посадить её на 19 значит соврать наоборот.
|
||||
- **Безопасное направление:** код, который сегодняшняя платформа читает как `failed` — то есть **1**
|
||||
либо номер ВНЕ обеих полос. Выбрал не 1 — аргумент в отчёт и пинг, потому что это словарь шва.
|
||||
|
||||
⚠ **Ловушка, на которой фикс выглядит зелёным и молчит на настоящем пути:** платный путь исполняется
|
||||
пулом воркер-горутин (`internal/pipeline/waverun.go:260`), а `recover` в `main`/`run` ловит только
|
||||
главную горутину. **Предмет — «паника ЛЮБОЙ горутины движка не читается как успех»**, и тест обязан
|
||||
это покрывать; фикс, падающий только на синтетической панике в main, заказ не закрывает.
|
||||
Стек паники обязан доехать до stderr: диагностика важнее лаконичности.
|
||||
|
||||
**Попутно тем же касанием** (сам заказ строки): usage-строка `cmd/tmctl/invocation.go:96` не знает
|
||||
команд `migrate` / `backup` / `seed-lint`. ⚠ Её байты запинены тестом замороженного контракта
|
||||
(`cmd/tmctl/invocation_test.go:23`) — **обновить тест ВМЕСТЕ со строкой здесь санкционировано**
|
||||
(ратифицированная правка контракта, D39.134 п.3): это не подгонка под зелень, и §4-запрет сюда не
|
||||
применяется. Любая ДРУГАЯ правка замороженных байтов — пинг.
|
||||
|
||||
**3. Строка 172-г — выборочный порог в риг вахты.** Внести ратифицированную форму порога
|
||||
(**D39.136 п.6б: «≥4/5 прогонов при N=5 достигают 6/6»**) в `internal/pipeline/live_reprobe_test.go`
|
||||
вместо действующего «6/6 на КАЖДОМ прогоне». Комментарий рига, объявляющий расхождение порога и
|
||||
выборки открытым вопросом владельца, обязан быть переписан: вопрос ЗАКРЫТ, сошлись на выборочной
|
||||
форме. Риг под тегом `live` — компилируемость проверяется `make battery` (в `vet` оба набора тегов).
|
||||
⚠ **Порог не «смягчить», а внести ратифицированный.** Подгонять гейт под желаемый результат
|
||||
недопустимо; если считаешь ратифицированную форму неверной — пиши пинг, не правку.
|
||||
⚠ Ратифицирована форма **для N=5**; риг допускает переопределение размера выборки переменной
|
||||
окружения — зафиксируй в коде и комментарии, что порог определён на N=5, а иное N выводит прогон
|
||||
из-под гейта (изобретать формулу для произвольного N — не твоя работа, это ратификация).
|
||||
|
||||
**4. Строка 187 — два лживых комментария.** `internal/pipeline/snapshot.go` («auto/draft исключены
|
||||
per D8») и докстринг `internal/membank/memory.go` («Approved-only») описывают до-паковое поведение;
|
||||
код с пака-20 сворачивает в хеш КАЖДУЮ строку любого статуса. $0, поведение не двигается.
|
||||
|
||||
**5. Живой прогон вахты весов — ТОЛЬКО при явной санкции владельца в твоём запуске.** Если
|
||||
санкция названа: прогнать риг из п.3 живьём (`TM_LIVE=1 TM_CLASSIFY6_CONFIG=<стендовый book.yaml>
|
||||
go test -tags live -run TestLiveClassifierHarmSet -v ./internal/pipeline/`), сырьё персистить рядом с
|
||||
проектом пробы, ЛЕДЖЕР не сбрасывать, принимать только `finish=stop`, потратить не больше названной
|
||||
владельцем суммы. ⚠ **Стартовать вне пиковых окон DeepSeek (01–04 и 06–10 UTC)** — в пике вызов
|
||||
стоит вдвое; суммы копеечные, но правило стоячее. **Санкции нет в твоём запуске — пункт НЕ исполняется**, и это не obstacle, а
|
||||
норма: платные вызовы без явно названной суммы запрещены.
|
||||
|
||||
**Чего НЕ делать (жёстко).**
|
||||
- Не трогать ничего, что двигает провод: тела промптов, состав инъекции, версии снапшота,
|
||||
`RequestHash`, `memory_version`, голден. Этот пак **wire-нейтрален** — все правки обязаны оставить
|
||||
голден бит-в-бит; расхождение голдена = стоп и пинг, а не пере-съём голдена.
|
||||
- Не чинить попутно другие строки бэклога, даже если увидишь. Увидел — **в отчёт списком находок**,
|
||||
оркестратор заведёт строки.
|
||||
- Не ветвить Go-логику по языковой паре (инвариант общности): ревью-вопрос «заработает ли на паре,
|
||||
которой в репо нет, без правки Go».
|
||||
- Не запускать платных вызовов вне пункта 5.
|
||||
|
||||
## 4. Самопроверка ИСПОЛНЕНИЕМ (обязательный механизм, не перечитывание)
|
||||
|
||||
- **Батарея:** `cd backend && make battery` — EXIT=0, и в её хвосте список SKIP: каждый скип объясни
|
||||
(скип, который ты не объяснил, читается как непокрытое место).
|
||||
- **Голден бит-в-бит** — командой (`go test ./internal/pipeline/ -run Golden -count=1`), а не
|
||||
«батарея прошла»; результат в отчёт.
|
||||
- **Фиксы пунктов 1 и 2 (включая usage-строку) прибиты тестом, падающим на до-фиксном коде** — покажи
|
||||
это ИСПОЛНЕНИЕМ: временно откати свой фикс (в рабочем дереве, без git-команд), покажи красный,
|
||||
верни. Формулировка «тест добавлен» без красного до-фиксного прогона не принимается.
|
||||
**Для пунктов 3 и 4 требование НЕ применяется и имитировать его не надо:** п.4 — правка двух
|
||||
комментариев, поведения не двигает вовсе; п.3 живёт под тегом `live`, и «красный до-фиксный прогон»
|
||||
там означал бы платный вызов, запрещённый вне п.5. Их доказательство другое: п.3 — компиляция ОБОИХ
|
||||
тег-сетов (`make battery` гоняет `vet` по обоим) плюс юнит на пороговую арифметику, если она
|
||||
выносима из платного пути; п.4 — цитата кода против цитаты комментария в отчёте.
|
||||
- **Дифф `^func Test` — исполнением**: `grep -rh '^func Test' backend --include='*_test.go' | wc -l`
|
||||
до и после; удалённых имён тестов быть не должно (проверь по именам, не по числу).
|
||||
- **Править или удалять существующий тест/голден/гейт ради зелени — НЕДОПУСТИМО.** Несогласие с
|
||||
тестом — пинг, а не правка.
|
||||
- **Адверсариальное ревью финалом — механизмом: субагенты РАЗРЕШЕНЫ и ожидаются, спавнь.** ≥2
|
||||
независимых ревьюера по финальному диффу, author≠reviewer: (а) **денежная линза** — по строке 181
|
||||
пере-считать вручную, из сырого леджера, число согласия ДВУМЯ независимыми путями и сверить с тем,
|
||||
что печатает движок. ⚠ **Только на КОПИИ стендовой БД, вне живого проекта** — `translate` пишет в
|
||||
проект ещё до гейта согласия (пре-флайт бэкап), и «проба на живом» испортит и стенд, и улику;
|
||||
(б) **линза шва** — инвентарь ВСЕХ кодов выхода и их потребителей ЧТЕНИЕМ кода платформы
|
||||
(`platform/internal/ingest/`, `platform/internal/runs/`), а не по твоему списку: изменил ли пункт 2
|
||||
то, что платформа читает. Плюс **свои посадки-мутации** в новые тесты (не из ожидаемого тобой
|
||||
списка). **Артефакт — таблица «находка → диспозиция»** в отчёте; ноль находок = не верить прогону,
|
||||
спавнить третьего.
|
||||
Считаешь, что для этого пака вернее другие оси ревью, — **замени с аргументом**; молча сузить нельзя.
|
||||
- **Записка-план:** перед сдачей — таблица «пункт заказа 1–5 → исполнено (где) / отказ (почему)»,
|
||||
механической сверкой против §3, а не по памяти.
|
||||
- Сессия длинная — **интервальная самоверификация субагентом** против §3 и §4 в середине работы, не
|
||||
только в конце.
|
||||
|
||||
## 5. Дисциплина отчёта
|
||||
|
||||
- **Заявление = команда.** Каждое число и каждая категорика отчёта — с командой, которой получены;
|
||||
приёмка их пере-ранит. Эрудиция не улика: либо `file:line`/замер, либо пометка «мнение».
|
||||
- **Перед отправкой отчёта сверь КАЖДЫЙ клейм с результатом инструмента ЭТОЙ сессии** — не с памятью
|
||||
о том, как обычно бывает.
|
||||
- **Последний абзац отчёта — план или обещание? Значит, сделай это сейчас**, а не пиши про это.
|
||||
- **Obstacle reporting — обязательная секция:** что НЕ удалось · что не проверено · где остановился и
|
||||
почему. Пустая секция при непустой работе не бывает.
|
||||
- Плотность, а не объём. Без саги, без пересказа диалога, без шаблонных оговорок.
|
||||
|
||||
## 6. Канал вопросов и право отказа
|
||||
|
||||
Промт против кода, доков или спеки — **пинг через владельца, НЕ интерпретация**: промт писала
|
||||
нейросеть, и он может быть неправ. Право сказать «этого делать не надо» — есть, с аргументом; такое
|
||||
возражение ценнее тихой девиации. Промежуточный вопрос, блокирующий работу, — тоже пинг: не гадай.
|
||||
|
||||
## 7. Старт и сдача
|
||||
|
||||
**Эхо-протокол:** первым деливераблом — ≤10 строк «скоуп / инварианты / чего не делаю», ДО работы.
|
||||
**Сдача:** запись в `docs/PROGRESS.md` секция «Бэкенд» (записка-план · команды · таблица
|
||||
адверсариального ревью · obstacle · список находок вне заказа), дерево НЕзакоммиченное.
|
||||
|
|
@ -1,14 +1,14 @@
|
|||
# Журнал прогресса
|
||||
|
||||
> **⟶ ТЕКУЩЕЕ СОСТОЯНИЕ** (на 2026-08-16, голова D39.146 — ЗАКРЫТИЕ СЕССИИ №17, передача №18. ОЧЕРЕДЬ №18 (единственный носитель — здесь): (а) приёмка живого P7 → лендинг → S5-промт + разморозка фронта · (б) лендинг петель полигона — ⚠ в дереве НЕзадокументированная работа 16.08 (`eval/dovodka/PLAN-16-08.md`, `ja6.py`, `naklon.py`, свежие фризы) без записи в журнале, состав выяснить у полигона · (в) вахта весов V4-Pro-0813 с порогом 116 в риге (172-г) · (г) свободные бэкенд: 160 Этап 0, 181 (дедлайн — первый пере-прогон) · (д) строка 148 после фраз владельца; лента нот эры — реестр `architecture/05-decisions-index.md`). Оркестраторов ДВА (решение владельца 07.08): этот — движок/платформа/фронт/доки; параллельный (РОЛЬЮ, без номера — счётчик один, D39.112 п.6) — приёмка полигона. Одновременно не запускаются; CURRENT-STATE ведут оба, чужие строки не трогают. Норма изоляции панелей после инцидента отката чужих файлов — D39.113, гардрейлы в CLAUDE.md.
|
||||
> **⟶ ТЕКУЩЕЕ СОСТОЯНИЕ** (на 2026-08-17, голова D39.147 — КУРС: движок и платформа до «работает и отдаёт результат», фронт морозится ДАЛЬШЕ лендинга P7. ОЧЕРЕДЬ №18 (единственный носитель — здесь): (а) приёмка живого P7 → лендинг **БЕЗ S5 и без разморозки** (D39.147: P7 зону не размораживает) · (а2) промт бэкенд-пака честности выдан — `BACKEND_HONESTY_PACK_SESSION_PROMPT.md` (176 · 181 · 172-г · 187; п.5 живой вахты — только при названной владельцем сумме), запуск по слову владельца · (б) лендинг петель полигона — ⚠ в дереве НЕзадокументированная работа 16.08 (`eval/dovodka/PLAN-16-08.md`, `ja6.py`, `naklon.py`, свежие фризы) без записи в журнале, состав выяснить у полигона · (в) вахта весов V4-Pro-0813 с порогом 116 в риге (172-г) · (г) свободные бэкенд: 160 Этап 0, 181 (дедлайн — первый пере-прогон) · (д) строка 148 после фраз владельца; лента нот эры — реестр `architecture/05-decisions-index.md`). Оркестраторов ДВА (решение владельца 07.08): этот — движок/платформа/фронт/доки; параллельный (РОЛЬЮ, без номера — счётчик один, D39.112 п.6) — приёмка полигона. Одновременно не запускаются; CURRENT-STATE ведут оба, чужие строки не трогают. Норма изоляции панелей после инцидента отката чужих файлов — D39.113, гардрейлы в CLAUDE.md.
|
||||
> - **Эра №15 закрыта — семь приёмок, все ПРИНЯТЫ и залендены**; лента, коммиты и разборы — D39.109–123 (D-лог) и реестр нот `architecture/05-decisions-index.md`; снимок прежних бюллетеней этой шапки — архив-слайс `-08-02-04`.
|
||||
> - **ЖИВОЕ:** полигон — **фаза Д ИДЁТ** (заказ 10.08; деньги санкционированы 15.08 напрямую полигону — ⚠ числа потолка в носителях расходятся, фактическую цепь сверить при лендинге петель; ja-книга `enkan_no_hate_ja`; при ратификации фазы Д в D-ноту: декой-правило + обязательный кросс-семейный опровергатель приёмки — одобрены 10.08; свежие фриз-коммиты полигона в дереве — НЕ трогать) · **платформа — P7 ЗАПУЩЕН 16.08** (промт `platform/docs/PLATFORM_P7_SESSION_PROMPT.md`, строит по канону 0.3.0; приёмка — очередь №18; первым шагом пака — рантбук migrate end-to-end, предусловие выката) · **фронт ЗАМОРОЖЕН** (D39.136 п.2; разморозка = лендинг P7 + первое касание зоны: зеркало 0.3.0 + перегенерация типов + моки + гейт утечки конвейера + ФС-1..12 + Ф-63/Ф-28 + фразы В-11 по словарю кодов) · **контракт 0.3.0 ФИНАЛЕН в каноне** (батч+дофикс D39.142/143 · модель подписи «один ОК» D39.144 · дочистка D39.145; зеркало фронта отстаёт ратифицированно) · закрытые стройки эры — лентой нот: эмиттер D39.131 · P5/P6 D39.130/132 · migrate D39.134 · S4+0.2.3 D39.135 · DeepSeek-репин D39.137 (тела — D-лог и слайсы).
|
||||
> - **ЖИВОЕ:** полигон — **фаза Д ИДЁТ** (заказ 10.08; деньги санкционированы 15.08 напрямую полигону — ⚠ числа потолка в носителях расходятся, фактическую цепь сверить при лендинге петель; ja-книга `enkan_no_hate_ja`; при ратификации фазы Д в D-ноту: декой-правило + обязательный кросс-семейный опровергатель приёмки — одобрены 10.08; свежие фриз-коммиты полигона в дереве — НЕ трогать) · **платформа — P7 ЗАПУЩЕН 16.08** (промт `platform/docs/PLATFORM_P7_SESSION_PROMPT.md`, строит по канону 0.3.0; приёмка — очередь №18; первым шагом пака — рантбук migrate end-to-end, предусловие выката) · **фронт ЗАМОРОЖЕН** (D39.136 п.2 + **D39.147: морозится ДАЛЬШЕ лендинга P7 — слово владельца 17.08; P7 зону НЕ размораживает, S5-промт не выдаётся, разморозка отдельным словом по достижении сквозного пути**; перечень первого касания зоны — зеркало 0.3.0 + перегенерация типов + моки + гейт утечки конвейера + ФС-1..12 + Ф-63/Ф-28 + фразы В-11 по словарю кодов — не отменён, ждёт разморозки) · **контракт 0.3.0 ФИНАЛЕН в каноне** (батч+дофикс D39.142/143 · модель подписи «один ОК» D39.144 · дочистка D39.145; зеркало фронта отстаёт ратифицированно) · закрытые стройки эры — лентой нот: эмиттер D39.131 · P5/P6 D39.130/132 · migrate D39.134 · S4+0.2.3 D39.135 · DeepSeek-репин D39.137 (тела — D-лог и слайсы).
|
||||
> - **Открыто на владельце:** **развязка git с origin** (локальная линия ИСТИННА, force-push его рукой; не пуллить) · Приложение А контракта (148: фразы — по словарю кодов 0.3.0, структура готова) · продуктовое слово «остановлена: лимиты» (В-3) · В-4/Ф-30 (глава без заголовка — движковая половина строка 160) · мини-проба флора 44 (одобрена, промт не выдан; число — после ре-пробы 188) · подпись денежного шага 46 · лист В-3+К-6 · авто-резюм paused (вопрос платформы) · **схема time-based DeepSeek** (доклад — архив-слайс `PROGRESS-2026-08-14-15`; рекомендация: пик оставить + операционное правило «прогоны в долины», scheduler не начинать без ответа вендора об отметке тарификации) · **вход ратификации фазы Д:** посылка «dspro дешевле glm» в пике ПЕРЕВЁРНУТА (×1.26 дороже, D39.137 п.4) · **возражение Sol по проходу `tier` эксп-23** (пере-судить починенным ригом или оставить с записанным возражением — секция «Полигон») · фронт-вопросы зонного журнала: В-7 (плотность; держит Ф-54) · В-8 (слово состояния в дереве) · В-9 (языки интерфейса — механизм готов, ПТ-36) · Ф-38 (вкладка «Замечания»). Закрытые пункты листа (PD-104 · В-10 · В-11-форма · Ф-56/57/61/62/63 · Ф-28 · ПТ-33-граница · 116 · 126 · 172-пин · PD-203 · санкции фазы Д · дизайн 160/161 · title) — в нотах D39.136–145, здесь не держатся.
|
||||
> - **Сделано (сводно)** — снимок ленты закрытых эр в [archive/PROGRESS-2026-08-04-09.md](archive/PROGRESS-2026-08-04-09.md); детали — D-лог и слайсы.
|
||||
> - **Курс:** ОБЩНОСТЬ ✅ → КАЧЕСТВО БАНКА ✅ → ПАКЕТ-ЧЕКЕРОВ ✅ (D39.59–78) → **ФРОНТ-ЭРА** (D39.81–100: зоны живые, контракт API ратифицирован) → **шов/платформа/движковые блокеры построены** (D39.106–123). Хвосты курса живут строками: 16 (edit-волна не гонялась НИ РАЗУ — держит и оси голоса 13б/24) · 46 (дизайн заморожен D39.92/93, промт ждёт выдачи) · coldrun-b фаза C заморожена чекпойнтом легитимно (D39.86; эталон денег/поведения — coldrun-a, read-only); развилка 0731 решена и исполнена (D39.87/91, код `553f1a3`).
|
||||
> - **Горизонт (D39.62/67, освежён D39.95):** **ДОБОР ИДЕАЛА** (первым прогоном: оси голоса 24 · авто-режим · цена 16; жильцы ролей решаются ДО прогона эксп-22 — строка 149 · веса K1–K12 13а · вне-претрейн чекпоинт 55; остаток арбитража банка = рецензент спорных кластеров при ре-пробе 74 — D39.102) → ВТОРАЯ ПАРА живьём (ja→ru; преп 81) → МАСШТАБ → пилот Ф2.5 (гейт резюме-строки 80; строки 62–68, 85) → Ф3 ридер-IDE (69–71). **Стоячие:** ToS-триггер 25.10 · Ш-2 до go1.27 (⚠ + x/text Unicode 17 тем же тулчейном — строка 119, реестр §Б-108 справочника якорей) · платные прогоны разблокированы (проба провода — D39.97, конфиги 112 залендены).
|
||||
> - **Стек (полная карта роль→модель→конфиг→квирки — [STACK.md](STACK.md), D39.126):** draft deepseek-v4-flash thinking-ON `low` **⚠0731** → терминолог (та же модель) → editor deepseek-v4-pro БИЛИНГВ ИНТЕРИМ (топология ПОДТВЕРЖДЕНА при неразличимости жильцов — D39.117; закон-блок ОБЯЗАТЕЛЕН — строка 134; glm-5 резерв; вахта маппинга эффорта pro — §Б-108) → судья gemini (Ф2, в движке НЕ построен — строка 33); канал B Mistral+grok; ~$0.85/ранобэ (D30.4, пере-калибровка при следующем платном прогоне). ⚠ **Вендор-факты 13–15.08 (пере-пин ИСПОЛНЕН и ПРИНЯТ, D39.137):** таблица цен запинена ПИКОМ (flash 0.44/1.32 · pro 1.32/3.96/кэш-хит 0.044 за 1M; счёт шиппинг-c1 = 100% DeepSeek ⇒ ×4.2–4.4 в пике / ×2.1–2.2 в долине — замер по трём прогонам); у pro эффорт стал настраиваемым low/high/max (квирк 3а устарел — вахта §Б-108 сработала); ⚠ ВЕСА pro сменились под тем же слагом (V4-Pro-0813, класс D39.61) — вахта-риг готов (остаток 172); ⚠ посылка интерим-редактора «dspro дешевле glm» в пике ПЕРЕВЁРНУТА (×1.26 дороже — вход ратификации фазы Д, D39.137 п.4); покупки фазы Д на deepseek до 16.08 16:00 UTC — по старым ценам. ⚠ **ВЕСЬ банковый контур (банкнота+терминолог+классификатор) в shipping-c1 НЕ включён** — жив ран-локальным конфигом книги (строка 140; сверка STACK.md 09.08 — факт шире прежней декларации «одна банкнота»); эскалация в shipping за `budget_usd: 0` (STACK.md §примечания).
|
||||
> - **ЕДИНЫЙ БЭКЛОГ — секция «Бэклог» ниже** (одна таблица, единственный трекер; каждая петля обязана иметь диспозицию: решено / отложено-с-записью / отклонено; ведёт оркестратор). **СЧЁТ ОЧЕРЕДИ на 16.08 (скриптом по таблице — `python3 docs/scripts/counts.py`; обновлять при каждом лендинге):** всего **149** строк · зона бэкенд **73** строго / **103** широко (175 пере-скоуплена D39.134; 176/177 заведены 15.08; 178 — D39.136; 179 ЗАКРЫТА D39.138; 180/181 — D39.137; 182 — wire-батч, аудит 15.08; 183–187 — контракт-ревью 28, D39.138; 188–190 — аудит бэклога, D39.140; 191/192 — модель подписи банка и пост-ридинговый цикл, D39.144) (⚠ колонки счётчик читает С КОНЦА — испр. D39.116) · **блокеров очереди 0**, платные прогоны разблокированы · «скоро» **35** (перечень — грепом по таблице, рукописный список снят D39.126) · гейт-строки эксп-22: 55·153 (плюс 150 — руки владельца); строка 5 — остаток гейчен ре-пробой 74, носитель события теперь строка 188 (аудит D39.140); остальное «когда-нибудь». ⚠ Счёт — НИЖНЯЯ граница долга, не потолок (разбор — легенда таблицы ниже).
|
||||
> - **ЕДИНЫЙ БЭКЛОГ — секция «Бэклог» ниже** (одна таблица, единственный трекер; каждая петля обязана иметь диспозицию: решено / отложено-с-записью / отклонено; ведёт оркестратор). **СЧЁТ ОЧЕРЕДИ на 17.08 (скриптом по таблице — `python3 docs/scripts/counts.py`; обновлять при каждом лендинге):** всего **150** строк · зона бэкенд **73** строго / **104** широко (175 пере-скоуплена D39.134; 176/177 заведены 15.08; 178 — D39.136; 179 ЗАКРЫТА D39.138; 180/181 — D39.137; 182 — wire-батч, аудит 15.08; 183–187 — контракт-ревью 28, D39.138; 188–190 — аудит бэклога, D39.140; 191/192 — модель подписи банка и пост-ридинговый цикл, D39.144; 193 — молчащие дыры выдачи, D39.147) (⚠ колонки счётчик читает С КОНЦА — испр. D39.116) · **блокеров очереди 0**, платные прогоны разблокированы · «скоро» **36** (перечень — грепом по таблице, рукописный список снят D39.126) · гейт-строки эксп-22: 55·153 (плюс 150 — руки владельца); строка 5 — остаток гейчен ре-пробой 74, носитель события теперь строка 188 (аудит D39.140); остальное «когда-нибудь». ⚠ Счёт — НИЖНЯЯ граница долга, не потолок (разбор — легенда таблицы ниже).
|
||||
> - Архивы хроники: `archive/PROGRESS-2026-07-04-10.md` (D31) · `-10-13` (D39.6-гигиена) · `-13-25` (стройка паков 11–16, rerun2) · **`-25-31` (паки 17–20 · мини-прогон · полигон-пакеты 5–8 · ToS · холодный прогон; D39.26–58)** · **`-08-01-02` (сессии №9/№10: общность · качество банка · coldrun-b · открытие фронта/платформы; D39.59–90, срез D39.105)** · **`-08-02-04` (сессии №11–№13: ручки эффорта · стандарты · контракт API · платформа P0 · банк-арбитраж; D39.91–105 + снимок шапки эры №15)** · `-08-04-09` (пинги закрытых паков эры №15) · **`-08-14-15` (закрытые бэкенд-записи №16–17: эмиттер шва · migrate · пере-пин DeepSeek; вынесено D39.139)**. Записи ниже — живой хвост (№16+, эра D39.124+; подрезка D39.139).
|
||||
|
||||
## Бэклог (ЕДИНЫЙ, собран 26.07, актуализация 04.08 D39.99/D39.101; правки — только через оркестратора)
|
||||
|
|
@ -134,12 +134,13 @@
|
|||
| 190 | **Кросс-СЕМЕЙНЫЙ проход контракт-ревью** (не-Claude опровергатели; буква заказа владельца D39.136 п.5 «кросс-модели», исполненная в ревью только кросс-тирами Claude — ограничение честно заявлено research/28 §7/§10): проверка вердиктов доклада моделью другого семейства полигонным контуром; жила только колонкой «ЖИВОЕ» реестра нот — аудит D39.140 дал строку | полигон | когда-нибудь (после фазы Д; перед лендингом батча 183 — если владелец захочет второй рубеж) | полигон-слот с внешним провайдером | research/28 §10, аудит D39.140 |
|
||||
| 191 | **Подпись банка = ОДИН ОК всему банку (модель владельца 16.08, D39.144)** — пер-термный полный набор решений НЕ гейт нигде: (а) контракт поправлен (409-полноты снят с resume, `pending_decisions` информационный — исполнено D39.144); (б) **движок**: verify_bank-пауза снимается командой resume с решениями «как есть», нерешённое едет авто-строками с пометкой — авто-провод D39.42 п.3 УЖЕ так работает, проверить/ослабить только границу самой паузы; (в) **платформа**: канал решений P7 строится накопительным БЕЗ гейта полноты + проводка «resume = снятие стопа» до движка; (г) пост-ридинговый цикл правок — выселен строкой **192** (носитель думания) | бэкенд+платформа | скоро (**P7 запущен** — (в) исполняется им; (б) сверка границы паузы движка — внутри P7 чтением кода, правка движка при расхождении = пинг №18) | (б) малое касание движка · (в) внутри P7 | слово владельца 16.08, D39.144, D39.42 п.3 |
|
||||
| 192 | **Пост-ридинговый цикл правок банка — «наше подумать» владельца 16.08 (записано, чтобы не потерялось; точную механику «не продумал ещё никто и нигде» — его слово).** UX-модель целиком: юзер нажал перевод → черновая волна + майнинг вместе → на фронте появляются ЧЕРНОВОЙ перевод и ЧЕРНОВОЙ банк · подписывается ВЕСЬ банк одним ОК (D39.144) → перевод уходит в доработку · дальше юзер ЧИТАЕТ, и его опции: поправить термин в банке ЛИБО добавить свой → кнопка «поправить» → пере-генерация, которая по ВХОЖДЕНИЯМ правит запрошенное. Открытые вопросы дизайна: что именно перегенерируется (вхождения ключа · затронутые юниты · со сметой и согласием?) · нужен ли движковый ТОЧЕЧНЫЙ РЕДАКТОР (полигон над этим работает — фаза Д) · форма в контракте (ручки нет) и на экране. Уже лежит под ногами: движковый re-edit по ключу банка со сметой и $0-пере-пином ПОСТРОЕН (строка 49: `repin.go`/`rebill.go`, D39.42 п.5/D39.45) · пометка неподписанных строк · дельта-чтение банка (0.3.0). НЕ проектировать до полигонных итогов; затем дизайн-пак на их результатах → слово владельца → стройка | владелец+полигон → бэкенд/контракт/фронт | когда-нибудь (триггер: итоги фазы Д по точечному редактору) | дизайн-пак после полигона → слово владельца → стройка | слово владельца 16.08, D39.144 п.1 |
|
||||
| 193 | **Дыры выдачи МОЛЧАТ в самом тексте книги** (инвентарь №18, всё грунтовано кодом): выпавший c-lite-член юнита исчезает из отгруженного текста БЕЗ маркера — читатель получает склейку без пропущенного куска и признака в тексте нет (`internal/pipeline/export.go:211-223`) · флагнутый юнит отдаётся пустым `final_text` (`:324-329`) · платформа поверх сознательно срезает `flag_reason`/`detail` до трёх значений (`platform/internal/ingest/export.go:21-24`) ⇒ на читательской поверхности дыра есть, а причины нет · и ни один гейт не отказывается выдать дырявую книгу: `export` возвращает успех даже при 100% pending (`cmd/tmctl/render.go:474-475` — «export is an audit projection, not a run verdict»), лестницы `run_complete/structurally_complete/publishable` в коде 0 вхождений. Родня: 141 (сноска без слова-заголовка уезжает дырой) и «политика красных» строки 49 — брать ОДНИМ касанием с ассемблером, врозь не имеет смысла | бэкенд (+платформа) | скоро (вместе с 49) | маркер дыры в тексте + причина на провод + отказ отдавать дырявое как готовое | инвентарь №18, **D39.147** п.2б |
|
||||
| 49 | **Этапы Б+В спеки D15.2** (content-addressed resume / `guard_hash` — D39.31 сознательно не строил) ; этап В = tmctl export-контракт D29.1 (annot-v1 · цвет-мап+rollup · политика красных fail-closed) + операторский протокол-документ релиза гендер-твиста (D5.1): сам механизм УЖЕ построен — until_ch-правка → точечный re-edit со сметой и $0-пере-пином (`repin.go`/`rebill.go`, D39.42 п.5/D39.45) | бэкенд | скоро (ПОДТЯНУТА D39.81: annot-v1 = источник замечаний для фронта — критический путь подключения) | отдельное решение (annot-половина — по контракту 14, D39.99) | D39.34(4), D33 п.5, D39.81 |
|
||||
| 49а | **ALTER-шаги миграций v8–v14 не идемпотентны вопреки шапке `migrate.go:9-11`** (полу-применённая БД не сходится; счётчик версий скрывает) — находка критика полноты пака-19 | бэкенд | когда-нибудь | отдельное решение | D39.56, PACK19_BUILD §6.9 |
|
||||
| 50 | F3-остаток идемпотентности | бэкенд | когда-нибудь | отдельное решение | D39.34(4) |
|
||||
| 51 | `human_override` LOCK (D29 п.1г, в коде 0 вхождений) | бэкенд | когда-нибудь | отдельное решение | D39.34(4) |
|
||||
| 52 | **Ф2-гейты вне идеала**: морфо-гейты канцелярита + L1-лемматизация (python-сайдкар) · полный OpenCC · опциональный пре-перевод гейт ; состав явно: канцелярит + РОД (строка 82) + класс Ф2-гейтов карты 04-unhappy (обсцен-гейт/феминитивы/время сцены — состав решить паком) ; + класс идиоматики (свип-хвост, D39.73): сехоуюй-словарь · вэньянь-классификатор (zh) · васэй-эйго ложные друзья (к ja-паку 81) — данные пары или закрытие «банк книги покрывает» тем же паком | бэкенд | когда-нибудь | отдельное решение | D39.34(4) |
|
||||
| 54 | Масштаб целой книги: волны/каденс/потолки/ETA на сотнях глав (гоняли максимум 10; книга 7,78 млн симв., ~2284 раздела) | бэкенд | когда-нибудь (последним по курсу) | МАСШТАБ | D39.33, CURRENT-STATE |
|
||||
| 54 | Масштаб целой книги: волны/каденс/потолки/ETA на сотнях глав (гоняли максимум 10; книга 7,78 млн симв., ~2284 раздела). ⚠ **Дописка инвентаря №18 (D39.147 п.2г):** жёстких потолков размера в коде НЕТ, но исходник читается в память целиком (`chunk/ingest.go:98`), чтения стора беспагинационны под `opTimeout = 10s` (`store/store.go:39`) и бюджеты нарезки калиброваны на 25 главах (`config/pipeline.go:126-138`) — ни одно из трёх на 2283 главах не проверено ничем | бэкенд | когда-нибудь (последним по курсу) | МАСШТАБ | D39.33, CURRENT-STATE |
|
||||
| **— ПОЛИГОН (кандидаты пакетов) —** | | | | | |
|
||||
| 55 | **`dialogue_dash` мерить только на невиданном тексте** (подогнан под 蛊真人; цифры мини-прогона аргументом не считаются) ; расширено до вне-претрейн чекпоинта целиком: r-коэффициенты exp01/08 · precision чекеров · частота эха · чистовик exp15-выводов ; + arity-полоса паспорта (D29.2г): решить — dialogue_dash покрывает диалоговую половину или мерить (D39.73). **Частично закрыта эксп-21 (D39.117):** направление главного вывода воспроизведено на чистом en-материале (узнавание 1/5), $0-довесок исполнен частично; **срез эксп-21 НЕ купил** (главный zh-замер на книге 4/5, без пинга) — остаток = неконтаминированный zh-срез | полигон | скоро (эксп-22 Ф0 — повторный ЖЁСТКИЙ заказ, стоп при неисполнимости) | эксп-22 | D39.37(4), D39.40, D39.46, D39.108, **D39.117** |
|
||||
| 56 | Ёфикатор/санитайзер-классы не размечены (§6.5 отчёта пакета-6) | полигон | когда-нибудь | полигон-пакет | D39.46, CURRENT-STATE |
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
- `research/` — фактура ресёрчей 01–28; у принятых — ревью-шапки, часть тел под ⚠ superseded: **читай баннер прежде содержимого**. Ключевые для навигации: 15 голос · 16 ридер-IDE · 17 внешняя критика · 18 рычаги качества · 19 нарезка · 20 банк-майнинг · 21 обзор транспорта · 22 доменные харнессы · 23 шов движок↔платформа (транспорт superseded D39.106) · 25 холодное ревью шва — форма D39.106, отвергнутые альтернативы, требования к эмиттеру (читать перед любым кодом стыка) · 24 арбитраж банка (ПРИНЯТ D39.102: консилиум закрыт классом, вход фикс-пака банка — §G) · 26 официальные практики Anthropic (D39.121: записка-план, сниппеты хендоффов, карта «уже делаем/перенять») · **28 контракт-ревью API v0 (ПРИНЯТ D39.138: решения владельца 16.08 — §8, состав батча 0.3.0 — §5; НОСИТЕЛЬ для исполняющих сессий, читать оригинал, не пересказ)**.
|
||||
- [PROGRESS.md](PROGRESS.md) — журнал: CURRENT-STATE + **ЕДИНЫЙ БЭКЛОГ** (единственный трекер) + живой хвост хроники. НЕ источник решений.
|
||||
- `scripts/counts.py` — **производные числа доков считаются им, а не руками** (голова по трём носителям · счёт очереди и зон · вес открытых строк регистра платформы · полнота реестра нот); `--check` даёт ненулевой код на расхождении; `--lint` — линтер file:line-якорей живых доков (D39.126). Его же зовёт зонный хук `scripts/githooks/pre-commit` при коммите, задевающем D-лог или PROGRESS — предупреждает, не блокирует. Заведено по D39.112 п.5б: голова отставала трижды у трёх разных оркестраторов.
|
||||
- Активные хендофф-промты сессий (состав обновляется при каждом лендинге — норма D39.80): [ORCHESTRATOR_SESSION_PROMPT.md](ORCHESTRATOR_SESSION_PROMPT.md) (роль/нормы; состояния не дублирует) · **Батч 0.3.0 ОТРАБОТАН ЦЕЛИКОМ (D39.142+D39.143): канон 0.3.0 финален**, промт в `archive/prompts/`, отчёт — `archive/reports/CONTRACT_BATCH_0.3.0_REPORT.md` · **Полигон: [POLYGON_EXP2223_REDO_SESSION_PROMPT.md](POLYGON_EXP2223_REDO_SESSION_PROMPT.md)** — фаза Д доводки эксп-22/23 ИДЁТ (заказ владельца 10.08; потолки фазы поднимал владелец напрямую — числа в CURRENT-STATE; выводы 22/23 заморожены до неё), хендофф живой сессии — [POLYGON_PHASE_D_HANDOFF.md](POLYGON_PHASE_D_HANDOFF.md) (испр. оркестратором №18: файл заленден `67e3260`, в составе не значился) · [POLYGON_PACKAGE4_SESSION_PROMPT.md](POLYGON_PACKAGE4_SESSION_PROMPT.md) (отложен). **Фронт: ЗОНА ЗАМОРОЖЕНА (D39.136 п.2)** — S4 ИСПОЛНЕН и ПРИНЯТ (D39.135, лендинг `267aa35`; контракт 0.2.3 в каноне; промт в `frontend/docs/archive/`); разморозка = лендинг P7 + гейт S5 (~~В-10~~ закрыт 16.08 «вежливость» · фразы В-11 — форма из ревью 28: клиент рисует по машинному `code`, после батча 183); живой smoke против дев-стенда легитимен и во фризе; фикс-лист ФС — запись приёмки 15.08 в зонном журнале · **Платформа: активного промта НЕТ** — P6 + дофикс ИСПОЛНЕНЫ и ПРИНЯТЫ (D39.132, промты в `platform/docs/archive/`); **P7 ЗАПУЩЕН 16.08, сессия ЖИВАЯ**: `platform/docs/PLATFORM_P7_SESSION_PROMPT.md` (читающая поверхность по финальному канону 0.3.0 + модель ошибок + форварды + PD-104 + демонтаж гейта полноты банка; приёмка — оркестратор №18) · **Бэкенд: активного промта НЕТ** — пере-пин цен DeepSeek ИСПОЛНЕН и ПРИНЯТ (D39.137, лендинг `76049bb`; промт в `archive/prompts/`), потолки снова защищают; `tmctl migrate` — D39.134 (`d55edd4`), деплой эмиттер-бинаря разблокирован. Эмиттер шва ИСПОЛНЕН и ПРИНЯТ (D39.131, промт в архиве). Все ОТРАБОТАННЫЕ промты — в `archive/prompts/`, отчёты с ревью-шапками — в `archive/reports/`; статусы паков — CURRENT-STATE и D-лог, здесь не дублируются. Зонные журналы фронта/платформы — `frontend-PROGRESS.md` / `platform-PROGRESS.md` в их зонах (прогресс зон только там, D39.100).
|
||||
- Активные хендофф-промты сессий (состав обновляется при каждом лендинге — норма D39.80): [ORCHESTRATOR_SESSION_PROMPT.md](ORCHESTRATOR_SESSION_PROMPT.md) (роль/нормы; состояния не дублирует) · **Батч 0.3.0 ОТРАБОТАН ЦЕЛИКОМ (D39.142+D39.143): канон 0.3.0 финален**, промт в `archive/prompts/`, отчёт — `archive/reports/CONTRACT_BATCH_0.3.0_REPORT.md` · **Полигон: [POLYGON_EXP2223_REDO_SESSION_PROMPT.md](POLYGON_EXP2223_REDO_SESSION_PROMPT.md)** — фаза Д доводки эксп-22/23 ИДЁТ (заказ владельца 10.08; потолки фазы поднимал владелец напрямую — числа в CURRENT-STATE; выводы 22/23 заморожены до неё), хендофф живой сессии — [POLYGON_PHASE_D_HANDOFF.md](POLYGON_PHASE_D_HANDOFF.md) (испр. оркестратором №18: файл заленден `67e3260`, в составе не значился) · [POLYGON_PACKAGE4_SESSION_PROMPT.md](POLYGON_PACKAGE4_SESSION_PROMPT.md) (отложен). **Фронт: ЗОНА ЗАМОРОЖЕНА (D39.136 п.2)** — S4 ИСПОЛНЕН и ПРИНЯТ (D39.135, лендинг `267aa35`; контракт 0.2.3 в каноне; промт в `frontend/docs/archive/`); ⚠ **разморозка БОЛЬШЕ НЕ привязана к P7** — слово владельца 17.08 (D39.147): зона морозится дальше лендинга P7, S5-промт не выдаётся, курс — движок и платформа до «работает и отдаёт результат»; разморозка отдельным словом. Перечень первого касания (зеркало 0.3.0 · типы · моки · гейт утечки · ФС-1..12 · Ф-63/Ф-28 · фразы В-11 по словарю кодов; ~~В-10~~ закрыт «вежливость») не отменён, ждёт разморозки; живой smoke против дев-стенда легитимен и во фризе; фикс-лист ФС — запись приёмки 15.08 в зонном журнале · **Платформа: активного промта НЕТ** — P6 + дофикс ИСПОЛНЕНЫ и ПРИНЯТЫ (D39.132, промты в `platform/docs/archive/`); **P7 ЗАПУЩЕН 16.08, сессия ЖИВАЯ**: `platform/docs/PLATFORM_P7_SESSION_PROMPT.md` (читающая поверхность по финальному канону 0.3.0 + модель ошибок + форварды + PD-104 + демонтаж гейта полноты банка; приёмка — оркестратор №18) · **Бэкенд: [BACKEND_HONESTY_PACK_SESSION_PROMPT.md](BACKEND_HONESTY_PACK_SESSION_PROMPT.md) ВЫДАН 17.08, запуск по слову владельца** (пак «честные числа и статусы»: строки 176 · 181 · 172-г · 187; п.5 живой вахты весов исполняется ТОЛЬКО при названной владельцем сумме) — ранее: пере-пин цен DeepSeek ИСПОЛНЕН и ПРИНЯТ (D39.137, лендинг `76049bb`; промт в `archive/prompts/`), потолки снова защищают; `tmctl migrate` — D39.134 (`d55edd4`), деплой эмиттер-бинаря разблокирован. Эмиттер шва ИСПОЛНЕН и ПРИНЯТ (D39.131, промт в архиве). Все ОТРАБОТАННЫЕ промты — в `archive/prompts/`, отчёты с ревью-шапками — в `archive/reports/`; статусы паков — CURRENT-STATE и D-лог, здесь не дублируются. Зонные журналы фронта/платформы — `frontend-PROGRESS.md` / `platform-PROGRESS.md` в их зонах (прогресс зон только там, D39.100).
|
||||
- Зоны фронта (чужие, читать при касании стыка; каждая ведёт СВОЙ зонный бэклог — единый бэклог их строк не принимает, D39.84): [../frontend/](../frontend/) — веб-интерфейс: промт фронт-сессий S0–S7 + [STACK_DECISIONS.md](../frontend/docs/STACK_DECISIONS.md) (пины версий точными числами и ловушки, сверены с вебом 02.08) + [BACKLOG.md](../frontend/docs/BACKLOG.md) · [../platform/](../platform/) — SaaS control plane: README + [BACKLOG.md](../platform/BACKLOG.md) (П-1..П-14) + `docs/` (зонный журнал `platform-PROGRESS.md` · регистр дефектов · архив промтов P0–P5).
|
||||
- `archive/` — история ([правила архива](archive/README.md)): закрытые промты (`prompts/`) · отчёты с ревью-шапками (`reports/` — на них ссылаются приёмки) · исполненные арх-доки (`architecture/`) · слайсы хроники `PROGRESS-*.md`. Инструкции оттуда не исполнять.
|
||||
- Диаграммы: [../backend/docs/components.puml](../backend/docs/components.puml) · [../backend/docs/pipeline.puml](../backend/docs/pipeline.puml) — дом рядом с кодом (D39.80), правятся бэкендом одним коммитом с кодом; вручную НЕ рендерить (владелец смотрит PlantUML-расширением VS Code).
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Реестр D-нот — карта актуальности v2 (D1–D39.146; строка 167; титул — носитель головы, бампать при каждом аппенде — испр. оркестратором №17 15.08 по аудиту: отставал на четыре ноты)
|
||||
# Реестр D-нот — карта актуальности v2 (D1–D39.147; строка 167; титул — носитель головы, бампать при каждом аппенде — испр. оркестратором №17 15.08 по аудиту: отставал на четыре ноты)
|
||||
|
||||
> Одна строка на КАЖДУЮ ноту журнала решений: № · дата · суть · статус · где тело · темы. Ведёт оркестратор при лендингах: новая нота = новая строка ТЕМ ЖЕ коммитом (полноту сторожит `docs/scripts/counts.py --check`). Суть и статус здесь — НАВИГАЦИЯ, не контракт: при конфликте побеждает ТЕЛО ноты (живой [`05-decisions-log.md`](05-decisions-log.md) → слайсы `../archive/architecture/05-decisions-*.md`). Несущие эрраты к фактам старых нот живут в шапке живого D-лога — их читать ОБЯЗАТЕЛЬНО, реестр их не дублирует. Темы (для грепа оси «какой закон по X»): деньги · шов · банк · промпт · судья · гейты · контракт · платформа · фронт · полигон · ToS · общность · процесс · нарезка · голос · инфра · модели.
|
||||
> Родословная: прозаическая карта D1–D39.28 (ревизии D31–D38.2) пересобрана в реестр докс-паком 167 (09.08.2026, №16): извлечение 6+6 агентов по worksheet `../archive/reports/DOC_AUDIT_INVENTORY_2026-08-09.md`, полнота сверена скриптом против заголовков всех шести файлов. «тело: жив» = живой D-лог; «слайс N» = `../archive/architecture/05-decisions-N.md`.
|
||||
|
|
@ -199,3 +199,4 @@
|
|||
| D39.144 | 16.08 | Модель подписи банка — слово владельца напрямую: подписывается ВЕСЬ банк одним ОК (пер-термная масс-подпись — инерция контрактной линии, движок и так авто-продолжает с неподписанным D39.42 п.3); канон поправлен микро-правкой (409-полноты снят с resume, pending_decisions информационный, bank_decisions_incomplete удалён, гейты пере-раны); пост-ридинговые правки банка → пере-генерация по вхождениям — направление, механику не проектировать до полигона; строка 191, аддендум P7, пинг фронту; вопрос BankTerm.decision снят как стоящий на ложной посылке | ЖИВОЕ: строка 191; P7 — запуск владельцем | жив | контракт банк владелец фронт платформа |
|
||||
| D39.145 | 16.08 | Промт P7 пересобран (слово владельца: перечитать после батча, без воды): два рубежа D39.141 — автор-перечтение (7 протуханий, худшее «кадр конца разбора» против канона) + опровергатель (8 HIGH: построенный гейт полноты reconcile.go:934-938 — демонтаж заказан явно; недочистка D39.144 — эррата 16.08-д, канон/компаньон дочищены; экспорт в P8 явно; structure_version/genre/halt_reason/heading/Note.code влиты); форма — конкретика ~120 строк, правило пофайлового диффа против required канона; PD-241 императивом | ЖИВОЕ: P7 готов, запуск — слово владельца | жив | платформа промпт контракт процесс |
|
||||
| D39.146 | 16.08 | Закрытие сессии №17, передача №18: лента D39.134–145 (приёмки migrate/S4/DeepSeek, контракт-ревью+батч+дофикс — канон 0.3.0 финален, модель подписи один ОК, аудит бэклога потерь 0, реструктуризация роли); очередь №18 — приёмка запущенного P7 → S5+разморозка фронта, лендинг петель фазы Д, вахта весов с порогом 116, свободные 160/181; CURRENT-STATE ужат, доки проверены двумя аудиторами готовности | ЖИВОЕ: очередь — CURRENT-STATE | жив | хендофф оркестратор |
|
||||
| D39.147 | 17.08 | Слово владельца напрямую №18: фронт морозится ДАЛЬШЕ лендинга P7 (условие разморозки D39.136 п.2 амендировано — P7 зону не размораживает, S5 не выдаётся, разморозка отдельным словом), курс — движок и платформа до «работает и отдаёт результат», моки фронта при разморозке уступают дев-стенду платформы; инвентарь трёх аудитов кодом: ассемблера книги нет нигде и export всегда exit 0 (строка 49), дыры выдачи молчат в тексте (новая 193), боевой конфиг без банкового контура = 140 внутри wire-батча 182, беспагинационные чтения стора под 10s (дописка 54), платформа после P7 читаема но без экспорта и эскроу (136/137/П-18), блокирующих строк движка 18 из 103 и два тяжелейших не про код (54, 16) | ЖИВОЕ: курс и условие разморозки | жив | процесс фронт платформа владелец |
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Журнал решений оркестратора — контракт D1–D39.146 (живой файл: карта · эрраты · живые тела · голова D39.124+ (подрезка D39.139); тела закрытых эр — в слайсах `docs/archive/architecture/`, указатель ниже; реестр всех нот — `05-decisions-index.md`)
|
||||
# Журнал решений оркестратора — контракт D1–D39.147 (живой файл: карта · эрраты · живые тела · голова D39.124+ (подрезка D39.139); тела закрытых эр — в слайсах `docs/archive/architecture/`, указатель ниже; реестр всех нот — `05-decisions-index.md`)
|
||||
|
||||
> **⟶ КАРТА АКТУАЛЬНОСТИ (ревизия D31, продлена до D38.2 [12.07]; исторические записи ниже НЕ переписываются — дисциплина D23.3).** Работая с контрактом (греп номера: живой файл → слайсы, целиком НЕ читать — D39.125), держи под рукой, что чем перекрыто:
|
||||
> ⚠ **Эррата 09.08 (D39.125):** D39.111 п.1 предписывал промту S3 «максимум = баланс МИНУС открытые холды» — формула ОШИБОЧНА (вычитание дважды), исправлена D39.115 п.2(а): максимум = Balance КАК ЕСТЬ; тело D39.111 живёт ниже в этом файле (голова D39.106+).
|
||||
|
|
@ -463,3 +463,11 @@
|
|||
**3. Гигиена передачи:** CURRENT-STATE ужат (лента закрытых строек и закрытые пункты листа владельца — указателями на ноты); строки 169/186/191 приведены к «P7 запущен»; README/09-target/реестр требований актуализированы; журналы зон срезаны в зонные архивы по слову владельца (фронт 2434→469 строк — `frontend-PROGRESS-S0-S4.md`; платформа 1843→152 — `platform-PROGRESS-P4-P6.md`); секция «Полигон» ужата (закрытые записи эксп-22/23 — в слайс `PROGRESS-2026-08-14-15.md`, живое: CONFIRM/DENY-листы и фаза Д).
|
||||
|
||||
**4. Аудиты готовности (два Опуса, полный контекст) — диспозиции.** ОБЩИЙ («готова ~90%, 3 блокера»): полигонные доки фазы Д, жившие только в индексе с 15.08, ЗАКОММИЧЕНЫ (`67e3260` — потеря при reset исключена) · очередь №18 сведена в ЕДИНСТВЕННЫЙ носитель CURRENT-STATE (пункты а–д, вкл. потерянные «лендинг петель полигона» и «строка 148») · денежные литералы фазы Д ($4.50/$6.74) СНЯТЫ с README/CURRENT-STATE — числа в носителях расходились ($6.85/цепь промта), честный указатель «сверить фактическую цепь при лендинге петель» · ⚠ дереву добавлена запись: полигон работал 16.08 БЕЗ записи в журнале (`PLAN-16-08.md`, `ja6.py`, `naklon.py`) — состав выяснять при лендинге · глоссарий/компаньон-зеркало/провенанс реестра/два якоря migrate.go/чейнджлог-шапка — починены · норма «обязательство с адресатом вне зоны закрывается файлом ВНЕ зоны» — в закон роли (жила только памятью) · ОТКЛОНЕНО: вынос живых тел D22+ из D-лога (осознанная структура диеты D39.125). ЗОННЫЙ («платформа готова, фронт нет без двух правок»): компаньон дочищен от гейта полноты в §2.9 и «15 кодов»→16 — пятое и шестое места недочистки D39.144 (к эррате 16.08-д) + мёртвые якоря mining.go:201 · фронту — дописка-пинг о четырёх нормах, сменивших знак (зеркало отстаёт ратифицированно · метка «Глава N» теперь ОБЯЗАННОСТЬ клиента · Ф-31/В-6 закрыты, EventCeiling снят · В-11 на словарь 0.3.0 + дев-стенд P6 существует) · платформе — дозакладка протухших мест зоны к §4.6 промта (релей). (16.08.2026, оркестратор №17) ✅
|
||||
|
||||
## D39.147 — СЛОВО ВЛАДЕЛЬЦА 17.08 (напрямую №18): ФРОНТ МОРОЗИТСЯ ДАЛЬШЕ ЛЕНДИНГА P7, курс — движок и платформа до состояния «работает и отдаёт результат» (17.08). ✅
|
||||
|
||||
**1. Решение (первоисточник — владелец, дословный смысл).** «Фронт морозим ещё дальше. Нам нужно довести бэкенд и платформу до логического какого-то завершения, чтоб они работали и отдавали что-то. А фронт будем накручивать уже на готовую функциональность и спиливать оттуда лишние моки, которые неплохо бы держать где-то на уровне бэкендов или как-то ещё отдельно.» ⇒ **условие разморозки D39.136 п.2 АМЕНДИРОВАНО: лендинг P7 зону БОЛЬШЕ НЕ размораживает**, S5-промт не выдаётся; разморозка — отдельным словом владельца по достижении сквозного пути. Входы первого касания зоны (зеркало 0.3.0 · типы · моки · гейт утечки конвейера · ФС-1..12 · Ф-63/Ф-28 · фразы В-11) не отменены — они ждут РАЗМОРОЗКИ, а не лендинга P7. Направление по мокам: мок-мир фронта уступает реальному источнику (дев-стенд платформы существует с P6, D39.132); форма («на уровне бэкендов или отдельно») — вопрос дизайна при разморозке, сейчас не проектируется.
|
||||
|
||||
**2. Инвентарь под этот курс (три читающих аудита №18, всё грунтовано кодом; знание, не заказ — носители названы).** (а) **Движок не умеет отдать книгу:** `tmctl export` пишет только stdout — JSON либо ленту с баннерами `=== CHAPTER n CHUNK m ===` (`cmd/tmctl/render.go:477`, баннер флагнутого `:502`); ассемблера в файл нет ни в движке, ни в платформе, а `export` возвращает успех даже при 100% pending — «never an exit-2 sentinel … export is an audit projection, not a run verdict» (`cmd/tmctl/render.go:474-475`) — лестницы `run_complete/structurally_complete/publishable` в коде 0 вхождений. Носитель — **строка 49** (этап В D15.2), подтверждена кодом, вес не меняется. (б) **Дыры выдачи молчат в самом тексте** — новая **строка 193**. (в) **Боевой конфиг переводит «голым»** (0 вхождений терминолога/банкноты/майнера/классификатора/голоса/репейра в `configs/pipeline-c1.yaml`, `escalation.budget_usd: 0`): это **строка 140**, и её внесение ратифицированно живёт в wire-батче **182** — одним касанием перед первым платным прогоном; отдельной развилки нет (уточнение владельца 17.08 на вопрос №18). (г) **Масштаб:** жёстких потолков размера в коде нет, но чтения стора беспагинационны под `opTimeout = 10s` — **дописка в строку 54**. (д) **Платформа после P7 — «читаемая», не «законченная»:** экспорт-ручки отложены в P8 явно, денежный контур = холд-с-обрезкой без эскроу (перерасход срезается до холда и остаётся текстом в колонке, `platform/internal/pgstore/credits.go:212-235`), сверки с провайдером нет — **строки 136/137, П-18** зоны. (е) Раскладка бэклога движка по критерию «мешает ли сквозному пути»: 103 строки зоны, блокирующих **18** (+6 спорных), и два тяжелейших — **54** и **16** — не про код вовсе: книгу больше 10 глав и редакторскую волну не гоняли НИ РАЗУ, их закрывает только платный прогон.
|
||||
|
||||
**3. Синхронизировано этим же коммитом:** CURRENT-STATE · `README.md` · ПТ-20 реестра требований · пинг в зонный журнал фронта. Очередь №18: приёмка P7 → лендинг **без** S5 и без разморозки; промт бэкенд-пака честности (176 · 181 · 172-г · 187) выдан и ждёт слова владельца на запуск. (17.08.2026, оркестратор №18) ✅
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@
|
|||
|
||||
| ID | Требование (источник) | Статус | Носитель / доказательство |
|
||||
|---|---|---|---|
|
||||
| ПТ-20 | Ридер-IDE: VS Code-подобный фронт агентного перевода (V0-п.20/23) | ⭕ | research/16 принят (D29); строки 69–71; F3-brief — D29 п.3. Ф3 ОТКРЫТА 02.08 (D39.81): фронт-сессия живёт на моках; контракт API ратифицирован (D39.99, живой **0.2.3** — D39.135; целостное ревью ПРИНЯТО D39.138 — заказан ломающий батч **0.3.0**, строка 183); платформа построена до потребительской половины шва: вход/кредиты/квоты (P0–P3) + раннер P4 (D39.123) + интейк `POST /books` со стоп/резюмом (D39.130) + exit-словарь/фолд юнитов/дев-стенд (P6, D39.132); фронт — S3.5–S4 приняты (оболочка · слой данных · i18n · путь «файл→прогресс», D39.127/129/135), **зона ЗАМОРОЖЕНА до P7 (D39.136 п.2)** |
|
||||
| ПТ-20 | Ридер-IDE: VS Code-подобный фронт агентного перевода (V0-п.20/23) | ⭕ | research/16 принят (D29); строки 69–71; F3-brief — D29 п.3. Ф3 ОТКРЫТА 02.08 (D39.81): фронт-сессия живёт на моках; контракт API ратифицирован (D39.99, живой **0.2.3** — D39.135; целостное ревью ПРИНЯТО D39.138 — заказан ломающий батч **0.3.0**, строка 183); платформа построена до потребительской половины шва: вход/кредиты/квоты (P0–P3) + раннер P4 (D39.123) + интейк `POST /books` со стоп/резюмом (D39.130) + exit-словарь/фолд юнитов/дев-стенд (P6, D39.132); фронт — S3.5–S4 приняты (оболочка · слой данных · i18n · путь «файл→прогресс», D39.127/129/135), **зона ЗАМОРОЖЕНА, и с 17.08 морозится ДАЛЬШЕ лендинга P7** (D39.136 п.2 + D39.147: сначала движок и платформа до «работает и отдаёт результат», фронт накручивается на готовую функциональность) |
|
||||
| ПТ-21 | Параллельное чтение двух текстов с выравниванием по смыслам (V0-п.21); выравнивание грубое, по единицам экспорта — принято владельцем 02.08, спаны внутри текста не строятся | 🔶 | механизм готов: `tmctl export --pairs` выравнивает пары побайтно по единицам редактуры (`internal/pipeline/export.go:89-93`); якорь = **edit-unit**, НЕ чанк (переформулировано D39.84 — финальный текст существует только на уровне юнита, ~1.9 юнита/главу, местами глава = один блок; читалка обязана это выдерживать); UI-читалка = Ф3 (этап S6) |
|
||||
| ПТ-22 | Настройки от человека: 18+, жанр и т.п. (V0-п.22) | 🔶 | `book.yaml` (labels) данными; UI = Ф3. ⚠ ЖАНР из продукта ВЫКИНУТ словом владельца 16.08 (D39.138 п.2в, строка 184: ни на чём не ветвится, влияние не измерено; снимается из промптов/брифа/контракта/формы) |
|
||||
| ПТ-23 | Веб-ПЕРВЫЙ фронт; SEO/ранжирование Google — куки, страницы-сироты, актуальные алгоритмы (V5-п.2); продукт = **SaaS**, не локальное приложение (решение владельца 02.08, D39.81 — натив-прицел V0-п.26 СНЯТ этим решением, вернуть только новым словом владельца); SEO только под Google, Яндекс снят; рынок глобальный; десктоп = PWA первым шагом, Tauri по явным триггерам (решения владельца 02.08, D39.84) | ⭕ | строка 71 (Ф3-бриф); SEO вошёл в стек-дизайн ДО выбора (D39.84, требование исполнено): двухконтурный деплой — SPA `app.<домен>` целиком под noindex + статический публичный контур ≤3 кликов от главной (лечение страниц-сирот), `frontend/docs/STACK_DECISIONS.md` §4; SSR-вопрос закрыт этим решением |
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue