Ratify the owner's platform answers as D39.176: no quotas, selling after the beta, resume stays an explicit action, and user-facing wording is delegated with an internationalisation requirement
This commit is contained in:
parent
07a2fca2c3
commit
fb4400dc66
4 changed files with 27 additions and 5 deletions
|
|
@ -1,6 +1,6 @@
|
|||
# Журнал прогресса
|
||||
|
||||
> **⟶ ТЕКУЩЕЕ СОСТОЯНИЕ** (на 2026-08-30, голова D39.175 — КУРС: движок и платформа до «работает и отдаёт результат», фронт ЗАМОРОЖЕН и P7 его НЕ размораживает (D39.147). **ОЧЕРЕДЬ №20** (единственный носитель — здесь; роль передана 30.08, №19 закрыт нотой передачи): **(1) РАЗРЫВ ЦИКЛА: книга не отдаётся файлом — ни одной стороной.** Канон обещает `createExport`/`getExport`, платформа их НЕ монтирует (смонтировано 15 операций из 20; нет также `getRun`, `updateBook`, `deleteBook`), а движок писателя не имеет вовсе — `tmctl export` пишет только в stdout (JSON `tm-export-v1` либо текст с аудит-баннерами). Греп `epub|fb2|docx` по движку даёт 21 хит, ВСЕ на стороне ингеста. Долг числится с P8 (`platform/BACKLOG.md` П-17), с тех пор легло пять паков и ни один его не взял. **Слово «отдаёт результат» сегодня ложно по букве** — ⚠ 30.08: ДВИЖКОВАЯ половина ЗАКРЫТА паком «писатель книги» (D39.175, `8adcb86`): `tmctl build` отдаёт EPUB 3 + чистый txt с шестью состояниями честности; открытой остаётся дверь платформы (п.4) · **(2) холодный прогон движка на текущем HEAD** — гейт строк 202/216, слово владельца 20.08: с 27.08 легло ~15 нот (шов, стоп банка флажком, схема v16, класс отказа 15, объёмный потолок, гейт схемы) и НИ ОДНА не проверена деньгами; ≈$0.05 · **(3) живой сквозной прогон через API платформы** — форма манифеста, сайдкара банка и карта причин флагов сочинены платформой САМОСТОЯТЕЛЬНО и первыми настоящими данными движка не проверялись · **(4) дверь выдачи** — строго ПОСЛЕ (3) (⚠ слово владельца 30.08: дверь ВСЕГДА строит файл — отказ юзеру не отдаётся, неполная книга уходит с пометкой, т.е. дверь зовёт `tmctl build --partial`; отказ по умолчанию остаётся операторской ручкой CLI; D29.1(б) «fail-closed» читать как «никогда молча» — честность несут пометки) · **(5) проводка `--max-units`** — снятие гейта, а не стройка: механизм в движке стоит (D39.170), живое основание гейта — `PD-422` · **(6) разморозка фронта** — ПОСЛЕ (4): зеркало отстало на четыре минора (0.4.0 против 0.8.0) и две ручки разъехались, размораживать раньше значит перегенерировать типы дважды. ⚠ **ДВА ЗАГЕЙЧЕННЫХ ТРИГГЕРА НАЖАТЫ И НЕ ОТРАБОТАНЫ** (`13-tech-debt-anchors.md` §Б-108): `go.work` — у платформы свой модуль есть, файла в корне НЕТ; вендор-сверка маппинга эффорта `deepseek-v4-pro` — сработала 13.08, носители противоречат, закрывается ТОЛЬКО вендор-докой. ⚠ **ЧТО В ПРЕЖНЕЙ ОЧЕРЕДИ БЫЛО НЕВЕРНО, проверено деревом 30.08:** пункт про `sqlc` отдельной сессией ИСПОЛНЕН (D39.172, `63fcee5`); «работа полигона в дереве НЕЗАКОММИЧЕНА, читать `git status -- eval/`» ОПРОВЕРГНУТО — она лежит коммитом `28c2d0f` на ветке `polygon`, запушена, в `main` не влита, а названная команда возвращает пустоту и уводит в вывод «работы нет»; «развязка git с origin» ОПРОВЕРГНУТА — `main` и `origin/main` на одном коммите.
|
||||
> **⟶ ТЕКУЩЕЕ СОСТОЯНИЕ** (на 2026-08-30, голова D39.176 — КУРС: движок и платформа до «работает и отдаёт результат», фронт ЗАМОРОЖЕН и P7 его НЕ размораживает (D39.147). **ОЧЕРЕДЬ №20** (единственный носитель — здесь; роль передана 30.08, №19 закрыт нотой передачи): **(1) РАЗРЫВ ЦИКЛА: книга не отдаётся файлом — ни одной стороной.** Канон обещает `createExport`/`getExport`, платформа их НЕ монтирует (смонтировано 15 операций из 20; нет также `getRun`, `updateBook`, `deleteBook`), а движок писателя не имеет вовсе — `tmctl export` пишет только в stdout (JSON `tm-export-v1` либо текст с аудит-баннерами). Греп `epub|fb2|docx` по движку даёт 21 хит, ВСЕ на стороне ингеста. Долг числится с P8 (`platform/BACKLOG.md` П-17), с тех пор легло пять паков и ни один его не взял. **Слово «отдаёт результат» сегодня ложно по букве** — ⚠ 30.08: ДВИЖКОВАЯ половина ЗАКРЫТА паком «писатель книги» (D39.175, `8adcb86`): `tmctl build` отдаёт EPUB 3 + чистый txt с шестью состояниями честности; открытой остаётся дверь платформы (п.4) · **(2) холодный прогон движка на текущем HEAD** — гейт строк 202/216, слово владельца 20.08: с 27.08 легло ~15 нот (шов, стоп банка флажком, схема v16, класс отказа 15, объёмный потолок, гейт схемы) и НИ ОДНА не проверена деньгами; ≈$0.05 · **(3) живой сквозной прогон через API платформы** — форма манифеста, сайдкара банка и карта причин флагов сочинены платформой САМОСТОЯТЕЛЬНО и первыми настоящими данными движка не проверялись · **(4) дверь выдачи** — строго ПОСЛЕ (3) (⚠ слово владельца 30.08: дверь ВСЕГДА строит файл — отказ юзеру не отдаётся, неполная книга уходит с пометкой, т.е. дверь зовёт `tmctl build --partial`; отказ по умолчанию остаётся операторской ручкой CLI; D29.1(б) «fail-closed» читать как «никогда молча» — честность несут пометки) · **(5) проводка `--max-units`** — снятие гейта, а не стройка: механизм в движке стоит (D39.170), живое основание гейта — `PD-422` · **(6) разморозка фронта** — ПОСЛЕ (4): зеркало отстало на четыре минора (0.4.0 против 0.8.0) и две ручки разъехались, размораживать раньше значит перегенерировать типы дважды. ⚠ **ДВА ЗАГЕЙЧЕННЫХ ТРИГГЕРА НАЖАТЫ И НЕ ОТРАБОТАНЫ** (`13-tech-debt-anchors.md` §Б-108): `go.work` — у платформы свой модуль есть, файла в корне НЕТ; вендор-сверка маппинга эффорта `deepseek-v4-pro` — сработала 13.08, носители противоречат, закрывается ТОЛЬКО вендор-докой. ⚠ **ЧТО В ПРЕЖНЕЙ ОЧЕРЕДИ БЫЛО НЕВЕРНО, проверено деревом 30.08:** пункт про `sqlc` отдельной сессией ИСПОЛНЕН (D39.172, `63fcee5`); «работа полигона в дереве НЕЗАКОММИЧЕНА, читать `git status -- eval/`» ОПРОВЕРГНУТО — она лежит коммитом `28c2d0f` на ветке `polygon`, запушена, в `main` не влита, а названная команда возвращает пустоту и уводит в вывод «работы нет»; «развязка git с origin» ОПРОВЕРГНУТА — `main` и `origin/main` на одном коммите.
|
||||
> - ⚠ **ОБЯЗАТЕЛЬСТВА ЛЕНДИНГА P9 ИСПОЛНЕНЫ — но НЕ лендингом** (снято оркестратором №20 30.08, сверено статусами регистра): `PD-400`.2 → `accepted-risk`, `PD-401` и `PD-166` → `fixed` перевёл аудит доков **D39.167** (`373ccc7`, 28.08), чья находка №1 и говорит: «регистр расходился с МОИМИ ЖЕ актами лендинга — четыре строки». Прежние два буллета висели здесь двое суток после исполнения, и проверочная команда одного из них сама возвращала `fixed`. **Урок в норму приёмки: акт лендинга, объявивший закрытие строки, обязан быть сверен статусом В ТОТ ЖЕ заход.**
|
||||
> - ⚠ **ЛЕНТА КОНТРАКТА за 27–28.08, свёрнуто аудитом 28.08 (D39.167):** **0.5.0** — D39.161 (снос отменённой пер-термной модели подписи + дверь правок банка) · **0.6.0** — D39.162/D39.163 (сквозная полоса прогресса; `Progress.stage` ВТОРЫМ и последним исключением границы) · **0.7.0** — D39.166 (покупка пере-прохода членом `RunRequest.re_pass`). Прожитые дампы приёмки P9 и P10 вынесены в `archive/PROGRESS-2026-08-backend.md` и в тела нот; здесь остаётся только лента версий.
|
||||
> - ⚠ **27.08: ВЫДАН ПРОМТ КОНТРАКТНОГО МИНОРА** (`CONTRACT_MINOR_SESSION_PROMPT.md`, пункт 2б очереди D39.156). **ВОПРОС ЗАКРЫТ СЛОВОМ ВЛАДЕЛЬЦА 27.08 (D39.160):** сквозная полоса прогресса (строка **200**) из минора ИСКЛЮЧЕНА и едет с паком (2в). Причина механическая: гейт платформы требует, чтобы объявленная деплоем версия равнялась канону, поэтому канон и деплой обязаны совпасть В МОМЕНТ ЛЕНДИНГА; снос двери этому не мешает (платформа свою половину снесла 22.08), а смена семантики прогресса мешает — сервер её не считает и не будет до пака (2в), и `0.5.0` у старого прогресса был бы ровно той ложью, против которой гейт стоит. Прежнее «одним куском» покупалось тем, что иначе фронт перегенерируется дважды, — но фронт ЗАМОРОЖЕН и перегенерируется один раз независимо от числа миноров. Промт ВЫДАН: прошёл оба рубежа роли, девять находок опровергателя применены.
|
||||
|
|
@ -8,7 +8,7 @@
|
|||
> - ⚠ **27.08: ВХОДНАЯ ДВЕРЬ ШВА ЗАКОНЧЕНА И ЗАЛЕНДЖЕНА (D39.158).** Четыре пака зоны бэкенда приняты одним деревом: $0-глагол приёма правок банка · стоп банка стал ФЛАЖКОМ в самом движке (память предъявленного, схема хранилища v16) · единая точка фиксации отчёта (шесть исходов, v2) · полоса отказов в два яруса с классом `write_incomplete`/exit 15 · пути решений только конвенцией. **Порядок деплоя обязателен: движок первым → `tmctl migrate` по каждой книге до прогонов → и только потом платформа снимает свой обход** (пинг в её журнале). Строки **211/212/213/218** закрыты, **191(б)/203(з)** пере-диспозиционированы (устранено, не обойдено), заведены **221–224**. Онтология банка записана — `architecture/18-bank-ontology.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; свежие фриз-коммиты полигона в дереве — НЕ трогать) · платформа и контракт — статус в строке выше, здесь НЕ дублируется (один носитель на факт) · **фронт ЗАМОРОЖЕН** (D39.136 п.2 + **D39.147: морозится ДАЛЬШЕ лендинга P7 — слово владельца 17.08; P7 зону НЕ размораживает, S5-промт не выдаётся, разморозка отдельным словом по достижении сквозного пути**; перечень первого касания зоны — синк зеркала на ТЕКУЩИЙ канон (не на «0.3.0»: канон с тех пор ушёл на 0.4.0 и уйдёт дальше строкой 200; оба минора уедут в ОДНУ перегенерацию — D39.152 п.7) + перегенерация типов + моки + гейт утечки конвейера + ФС-1..12 + Ф-63/Ф-28 + фразы В-11 по словарю кодов — не отменён, ждёт разморозки) · закрытые стройки эры — лентой нот: эмиттер D39.131 · P5/P6 D39.130/132 · migrate D39.134 · S4+0.2.3 D39.135 · DeepSeek-репин D39.137 (тела — D-лог и слайсы).
|
||||
> - **Открыто на владельце:** **после пака «писатель книги» (D39.175):** лестница D25.1 — какая ступень даёт читателю копию БЕЗ пометки и что печатать на титуле/в имени файла · лейбл главы без заголовка (сейчас цифры; словесный шаблон = одна строка `reader.txt` после ратификации К-3) (⚠ три вопроса пака ЗАКРЫТЫ словом владельца 30.08: экспорт юзеру — всегда строить, см. п.4 очереди · модель пометок подтверждена как построена — надпись о пропуске в файле, отдельный варнинг-слой в интерфейсе НЕ строим, машинный отчёт сборки остаётся внутренним носителем (дрейф) · RTL — снят до появления право-налевой целевой пары) · **развязка 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** (⚠ расхождение носителей СНЯТО 22.08 срезкой: второй носитель — фраза «возражение снято, и владелец назвал причину» — уехал в слайс `archive/PROGRESS-2026-08-10-15.md` вместе с хроникой, и её довод там читается целиком: Sol судил СВОЁ семейство, что запрещено D13.3. Живым остаётся ровно этот пункт на владельце; подтвердить или снять — при лендинге петель фазы Д) · фронт-вопросы зонного журнала: В-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, здесь не держатся.
|
||||
> - **Открыто на владельце:** **после пака «писатель книги» (D39.175):** лестница D25.1 — какая ступень даёт читателю копию БЕЗ пометки и что печатать на титуле/в имени файла · лейбл главы без заголовка (сейчас цифры; словесный шаблон = одна строка `reader.txt` после ратификации К-3) (⚠ три вопроса пака ЗАКРЫТЫ словом владельца 30.08: экспорт юзеру — всегда строить, см. п.4 очереди · модель пометок подтверждена как построена — надпись о пропуске в файле, отдельный варнинг-слой в интерфейсе НЕ строим, машинный отчёт сборки остаётся внутренним носителем (дрейф) · RTL — снят до появления право-налевой целевой пары) · ⚠ **ПЛАТФОРМЕННЫЙ ЛИСТ ЗАКРЫТ СЛОВОМ ВЛАДЕЛЬЦА 30.08 (D39.176):** квот нет (живём на покупке API, бонусы из админки) · продажа планируется, но не в бете · после пополнения баланса — явное действие пользователя (пункт «авто-резюм paused» СНЯТ) · фразы пользователя (В-3/К-6/Приложение А) ДЕЛЕГИРОВАНЫ проекту с требованием интернациональности: не литерал, а данные по коду причины и локали. Остался ОДИН платформенный пункт — `PD-421`: держит ли ОТКРЫТЫЙ поток событий сессию живой (переформулирован, ждёт слова) · **развязка git с origin** (локальная линия ИСТИННА, force-push его рукой; не пуллить) · Приложение А контракта (148: фразы — по словарю кодов 0.3.0, структура готова) · продуктовое слово «остановлена: лимиты» (В-3) · В-4/Ф-30 (глава без заголовка — движковая половина строка 160) · мини-проба флора 44 (одобрена, промт не выдан; число — после ре-пробы 188) · подпись денежного шага 46 · лист В-3+К-6 · **схема time-based DeepSeek** (доклад — архив-слайс `PROGRESS-2026-08-14-15`; рекомендация: пик оставить + операционное правило «прогоны в долины», scheduler не начинать без ответа вендора об отметке тарификации) · **вход ратификации фазы Д:** посылка «dspro дешевле glm» в пике ПЕРЕВЁРНУТА (×1.26 дороже, D39.137 п.4) · **возражение Sol по проходу `tier` эксп-23** (⚠ расхождение носителей СНЯТО 22.08 срезкой: второй носитель — фраза «возражение снято, и владелец назвал причину» — уехал в слайс `archive/PROGRESS-2026-08-10-15.md` вместе с хроникой, и её довод там читается целиком: Sol судил СВОЁ семейство, что запрещено D13.3. Живым остаётся ровно этот пункт на владельце; подтвердить или снять — при лендинге петель фазы Д) · фронт-вопросы зонного журнала: В-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 (полная цена холодного старта не измерена: у `coldrun-a`/`coldrun-b` нет НИ ОДНОГО редакторского вызова, хотя сама edit-волна отработала и оплачена — 58 вызовов волновым драйвером 23–25.07 на малых прогонах, плюс 648 до драйвера; ⚠ прежняя редакция писала «не гонялась НИ РАЗУ» — абсолют ложен, испр. оркестратором №19 по леджерам `~/books/gu-zhenren/**/*.db`; держит и оси голоса 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 залендены).
|
||||
|
|
@ -195,7 +195,7 @@
|
|||
| 237 | **Два загейченных триггера НАЖАТЫ и не отработаны** (реестр `13-tech-debt-anchors.md` §Б-108, сверено 30.08). **(а) `go.work`:** условие «появление Go-кода платформы» выполнено давно — `platform/go.mod` есть, `ls go.work` в корне даёт «No such file or directory». Ратифицировано D39.85 §8 п.4 (`docs/research/23-engine-platform-seam.md:66` = `go.work — коммитить, когда у платформы появится Go-код`); цена — один файл, по тому же §6 он решает только dev-удобство и не меняет ни видимости, ни версий. **(б) вендор-сверка маппинга эффорта `deepseek-v4-pro`:** вахта D39.92 сработала 13.08 changelog'ом вендора, а носители до сих пор ПРОТИВОРЕЧАТ (квирк-канон и `STACK.md` говорят «ручки у pro НЕТ»), и по гардрейлу владельца это закрывается ТОЛЬКО вендор-докой, а не выбором стороны. Держит жильца Д5 и калибровку цены редакторского арма. ⚠ **Класс важнее двух пунктов: спроектированный механизм без носителя события тихо становится долгом, и никто не проверяет, не нажат ли спусковой крючок.** | оркестратор | скоро | (а) один файл в корень; (б) заказ полигону на вендор-сверку | аудит очереди 30.08 |
|
||||
| 238 | **Деньги слепы к правке исходника НА МЕСТЕ при том же снапшоте.** `projectRebill` сверяет content-hash строки только в bank-only ветке со сдвинутым снапшотом; при том же снапшоте строка идёт как «$0 resume» без сверки — `translate` на такой книге перекупает юниты БЕЗ предупреждения в смете (воспроизведено финальным ревью пака: «2 units re-bought»). Экспорт эту правку теперь ВИДИТ (состояние stale, D39.175), денежная проекция `status` — нет | бэкенд | скоро | адресный фикс + посадка-тест | финальное ревью пака «писатель книги», D39.175 п.5 |
|
||||
| 239 | **`Status.checkWave` не видит исчезнувшую из конфига стадию** — то же слепое пятно, что закрыто у `Export` паком (строка со стадией вне текущего конфига = drift, `exportConfigDrift`): статус книги с удалённой edit-стадией рапортует черновики как полную книгу без дрейфа | бэкенд | скоро | перенести правило `exportConfigDrift` в `checkWave` + тест | финальное ревью пака «писатель книги», D39.175 п.5 |
|
||||
| 240 | **Оплаченный стоп подписи банка может исчезнуть МОЛЧА — единственная находка ревью P9, прожившая двое суток БЕЗ носителя** (Д3, `platform/docs/platform-PROGRESS.md:1583`=`Потеря/порча маркера выхода`; заведена оркестратором №20 30.08 при ревизии P9). Рестарт/ретрай проходит границу банка НАСКВОЗЬ: память предъявления (`bank_stop_presented`, схема v16) покрывает карту, движок продолжает одним WARN себе в журнал, а платформенный гард `LiftBankStop` (`platform/internal/runs/reconcile.go:1304`=`LiftBankStop`, писатель — `platform/internal/pgstore/runs.go:1185`=`LiftBankStop`) писан против движка ДО памяти v16 и этот путь не держит. Движковую половину бэкенд-сессия ОТКЛОНИЛА правом §9 («символ живёт в `platform/`, движковая половина здорова») — диспозиция принята, но платформенная половина не получила ни строки регистра, ни строки бэклога. ⚠ Узел ТОТ ЖЕ, что у снятия обхода `--verify-bank` (пинг №21): `LiftBankStop` + колонка `bank_released`, и пак P12 §3.7 их уже трогает — закрывать ОДНОЙ работой, не двумя | платформа (+бэкенд на сверку) | скоро (с §3.7 пака P12) | снять гард вместе с обходом либо доказать, что память v16 делает его недостижимым — с живой пробой на стенде | ревизия P9 оркестратором №20, 30.08 |
|
||||
| 240 | **Оплаченный стоп подписи банка может исчезнуть МОЛЧА — единственная находка ревью P9, прожившая двое суток БЕЗ носителя** (Д3, `platform/docs/platform-PROGRESS.md:1593`=`Потеря/порча маркера выхода`; заведена оркестратором №20 30.08 при ревизии P9). Рестарт/ретрай проходит границу банка НАСКВОЗЬ: память предъявления (`bank_stop_presented`, схема v16) покрывает карту, движок продолжает одним WARN себе в журнал, а платформенный гард `LiftBankStop` (`platform/internal/runs/reconcile.go:1304`=`LiftBankStop`, писатель — `platform/internal/pgstore/runs.go:1185`=`LiftBankStop`) писан против движка ДО памяти v16 и этот путь не держит. Движковую половину бэкенд-сессия ОТКЛОНИЛА правом §9 («символ живёт в `platform/`, движковая половина здорова») — диспозиция принята, но платформенная половина не получила ни строки регистра, ни строки бэклога. ⚠ Узел ТОТ ЖЕ, что у снятия обхода `--verify-bank` (пинг №21): `LiftBankStop` + колонка `bank_released`, и пак P12 §3.7 их уже трогает — закрывать ОДНОЙ работой, не двумя | платформа (+бэкенд на сверку) | скоро (с §3.7 пака P12) | снять гард вместе с обходом либо доказать, что память v16 делает его недостижимым — с живой пробой на стенде | ревизия P9 оркестратором №20, 30.08 |
|
||||
| 217 | **Скрипты полигона захардкодили АБСОЛЮТНЫЕ пути двух корней и не работают на этой машине вовсе.** ДВА РАЗНЫХ слома. **Корень репо** — смена пользователя: литерал в 121 файле, из них 104 дословно `REPO = Path("/home/ubuntu/projects/textmachine")`, портабельных форм всего 5. **Корень книг** — оба события порознь: литерал `/home/ubuntu/books` 86 файлов (пользователь), портабельный `Path.home()/"books"` 89 файлов (переезд каталога; на прежних машинах работал). Объединение 173 файла. Пользователь теперь `ubuntu-26`, книги переехали в `<репозиторий>/books` ⇒ ломается и то и другое, включая ЖИВОЙ гейт фазы Д `eval/conformance.py:48`=`REPO = Path("/home/ubuntu/projects/textmachine")`. Живых носителей 26 по корню книг (среди них портабельная форма преобладает 20:6) плюс корневые гейты и сборщики корпусов; остальное — скрипты закрытых эксп-12–16, их владелец велел ВЫБРОСИТЬ, а не чинить (D39.157 п.4а). Форма правки — за зоной; приор оркестратора: один модуль путей, корень резолвится МАРКЕРОМ вверх по дереву (движок так и делает — `backend/internal/miner/miner_parity_test.go:29`=`derived from the repository MARKER`), книги от него, обе ручки перекрываются env | полигон | скоро (блокирует любой прогон зоны) | пак путей полигона | переезд машины 24.08, №19 |
|
||||
| 219 | **Line-якоря в тела D-лога обречены съезжать, и механизм именно в дисциплине эррат.** Эрраты вписываются в КАРТУ ШАПКИ (append-only, D23.3), то есть в начало файла, — значит каждая эррата сдвигает номера строк ВСЕХ тел ниже, и любой якорь вида `05-decisions-log.md:NNN` умирает молча. ⚠ Замерено на себе 27.08: три эрраты за сессию убили якоря в `17-seam-inbound-law.md:120` и `research/25-seam-cold-review.md:5` (оба целили в `:232`, тело уехало на `:239`). Лечение — не пере-нацеливание (оно повторится через эррату), а СМЕНА ФОРМЫ якоря: в тела D-лога целиться номером ноты (`^## D39.106`), который стабилен навсегда, а не строкой. ⚠ Строка ОБЪЯВЛЕНА в CURRENT-STATE 24.08 и до 27.08 в таблице НЕ СУЩЕСТВОВАЛА — очередь три дня ссылалась на носитель, которого нет; поймано свипом якорей при выдаче контрактного минора | оркестратор | скоро (растёт с каждой эрратой) | `--lint` учит форму `файл:^## D<номер>`, живые якоря в D-лог переводятся на неё | ревью доков 24.08, механизм и отсутствие носителя — 27.08, D39.160 |
|
||||
| 220 | **Репо-широкий гейт доков бутстрапится пакетным менеджером ОДНОЙ зоны, и та заморожена.** Диспетчер `.git/hooks/pre-commit` зоно-нейтрален по построению (`for hook in */scripts/githooks/pre-commit`, `#!/bin/sh`, node не нужен) и судит `CLAUDE.md` + `docs/**` + `platform/docs/**` + `frontend/docs/**` (`docs/scripts/counts.py:500`=`ROOT / "CLAUDE.md"`), но единственный его УСТАНОВЩИК — `frontend/scripts/githooks/install.mjs`, вызываемый ключом `prepare` из `frontend/package.json`. Охват и бутстрап не совпадают ⇒ инструмент решает свою задачу не в полной мере. Проверено исполнением 24.08: на этой машине `.git/hooks/` содержал только `*.sample`, гейт МОЛЧАЛ, ничего не проверив, и поймал первые четыре дефекта только после ручной установки; сессия бэкенда или доков `npm install` не делает никогда. Приор: зоно-нейтральный установщик в `docs/scripts/githooks/` как ЕДИНСТВЕННЫЙ писатель диспетчера, `prepare` фронта зовёт его — фронтовая половина выписана пингом №19 в зонный журнал фронта. ⚠ Ручная установка — временная мера, пока строка открыта; записывать её как порядок работы ЗАПРЕЩЕНО (это ровно тот обход, цену которого называет шапка `CLAUDE.md`) | доки + фронт | скоро | зоно-нейтральный бутстрап + правка `prepare` при разморозке | аудит переезда 24.08, №19 |
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Реестр D-нот — карта актуальности v2 (D1–D39.175;
|
||||
# Реестр D-нот — карта актуальности v2 (D1–D39.176;
|
||||
|
||||
> ⚠ **СЛАБОЕ МЕСТО, КОТОРОЕ БЫЛО ЗДЕСЬ (вписано 22.08, ЗАКРЫТО 24.08 — D39.157 п.6).** Колонка ТЕЛА
|
||||
> у нот D39.107…D39.123 говорила «жив», хотя тела уехали в слайс подрезкой D39.139; семнадцать строк
|
||||
|
|
@ -236,3 +236,4 @@
|
|||
| D39.173 | 30.08 | **У движка появился гейт схемы**: каждый SQL-оператор компилируется `db.Prepare` против схемы, поднятой ПРОДОВОЙ цепью миграций во временный файл — раньше покрытие этого класса равнялось покрытию батареи. ОДИН новый тестовый файл, продовый код не тронут. Склейки не пропускаются, а раскладываются (перебор четырёх таблиц, условная сборка из двух ветвей). 70 операторов против схемы v16 за 0.02 с, пол экстрактора 65. Расхождений в живом коде нет. Внешнего не требуется — у SQLite схема это файл. | жив | ЖИВОЕ: гейт не доказывает верность оператора, только существование имён; пол 65 — суждение | движок гейты схема тесты |
|
||||
| D39.174 | 30.08 | **Передача роли оркестратора №19 → №20.** За смену принято пять паков (P11 + минор 0.8.0, движковые «деньги», починка двух зеленевших вхолостую store-тестов, `sqlc`, гейт схемы движка). Три урока смены: тихо-зелёное дороже красного · метод измерения бывает слабее предмета (покрытие сказало «почти ничего», решение приняли шесть выживших мутаций) · верный прогон при неверной гипотезе неотличим от «дефекта нет». Семь моих ошибок названы полностью, включая двойную ошибку атрибуции и лендинг без `make lint`. Что ловило лучше меня: опровергатель промта, охотник вне карты, линтер якорей, гейт чисел и сами сессии. | жив | ЖИВОЕ: очередь №20 в CURRENT-STATE; `PD-425` на оркестраторе; строка 237 — два нажатых триггера | передача процесс нормы |
|
||||
| D39.175 | 30.08 | **Бэкенд-пак «писатель книги» принят и заленджен** (`8adcb86`): `tmctl build` — EPUB 3 + чистый txt из `BookExport` (`internal/bookfile`, stdlib), шесть состояний честности (pending·withheld·incomplete·ghost·stale; drift — отчётом), отказ exit 16 / `--partial` с маркером на каждой дыре, пути в `StatusArtifacts.book_files`, `tm-export-v1` аддитивно, reader-слова — данные вне `Pack.Version()`. **Слово владельца: drift — НЕ дыра файла; дверь выдачи обязана сверять `BuildReport`.** Приёмка: 4 линзы + верификаторы, 2 дофикса до лендинга; epubcheck 0/0/0, оракул июля 14/14, `--plaintext` побайтово прежний. | жив | ЖИВОЕ: строка 236 сужена до двери платформы; хвосты — 238/239; вопросы владельцу — лестница D25.1, лейбл К-3, RTL | движок экспорт файл приёмка дрейф |
|
||||
| D39.176 | 30.08 | **Пакет слов владельца по платформе**: продуктовых КВОТ НЕТ (живём на покупке API, бонусы из админки — `П-12`/`PD-175` сняты как продуктовая развилка, техническая гигиена остаётся инженерной) · продажа ПЛАНИРУЕТСЯ, но не в бете (`П-7` отложен, не отменён) · после пополнения баланса прогон возобновляется ЯВНЫМ действием (пункт снят с листа) · фразы пользователя ДЕЛЕГИРОВАНЫ проекту с требованием ИНТЕРНАЦИОНАЛЬНОСТИ — не литерал, а данные по коду причины и локали (гейт `PD-246`/строка 204). Ключи: движок берёт `--keys-file` ИЛИ конвенционный `.env`; холодный прогон разблокирован, живой через API — нет (платформа читает свой путь). | жив | ЖИВОЕ: на владельце остался ОДИН платформенный пункт — `PD-421` (держит ли открытый поток сессию живой), переформулирован | платформа продукт владелец квоты фразы |
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Журнал решений оркестратора — контракт D1–D39.175 (живой файл: карта · эрраты · живые тела · голова D39.124+ (подрезка D39.139); тела закрытых эр — в слайсах `docs/archive/architecture/`, указатель ниже; реестр всех нот — `05-decisions-index.md`)
|
||||
# Журнал решений оркестратора — контракт D1–D39.176 (живой файл: карта · эрраты · живые тела · голова 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+).
|
||||
|
|
@ -1599,3 +1599,14 @@ head-1 это семнадцать бюджетируемых операций,
|
|||
3. **Приёмка** (воркфлоу: направление слепое к отчёту · охотник вне карты с мутационными посадками · пере-прогон клеймов · инвентарь шва чтением кода платформы; верификатор на каждую находку): ACCEPT×3 + ACCEPT_WITH_FIXES, 9 находок → два дофикса исполнены сессией до лендинга (паритет `CleanText` в TXT-заголовках/notice; `validate` судит заголовки ПОСЛЕ очистки), пере-проверены оркестратором. Батарея: трижды сессией + однажды оркестратором (18 пакетов ok, линтер 0, `-race`). Клеймы пере-прогнаны: epubcheck 5.3.0 `0/0/0`, cmp двух процессов, круг ингестом равенством абзацев, оракул июля 14/14, `--plaintext` побайтово прежний, JSON аддитивен — платформа жива (`ghost_units` отдельным полем, `unitState` не перевёрнут, конверт artifacts лишний ключ переживает), полигонные читалки не задеты.
|
||||
4. **Живые границы, не дефекты**: живой читалкой файл не открывался (валидатор ≠ читалка) · ветка `write_incomplete` между двумя rename написана, не исполнена · stale на стендовых книгах неразличим (все под дрейфом) · ghost-координата — старой нарезки · побайтовый детерминизм — в пределах одного Go-тулчейна.
|
||||
5. **Хвосты — носителями**: строки **238** (`projectRebill`/`status` слепы к правке исходника на месте при том же снапшоте — перекупка без предупреждения о деньгах) и **239** (`Status.checkWave` не видит исчезнувшую стадию — слепое пятно, закрытое у `Export` этим паком); строка **236 СУЖЕНА** до платформенной двери (`createExport`/`getExport` + `export_formats` из `bookfile.Formats`; дверь СТРОИТ `tmctl build`, не читает файл у БД); пинг платформе — интейк деструктивен на exit 11, недостижимо до двери. Вопросы владельцу (лестница D25.1: ступень копии без пометки и титул · лейбл главы без заголовка К-3 · опция «предупреждение вместо отказа» для ghost/stale · направление письма RTL) — CURRENT-STATE §«Открыто на владельце».
|
||||
|
||||
## D39.176 — ПАКЕТ СЛОВ ВЛАДЕЛЬЦА 30.08 ПО ПЛАТФОРМЕ: квот нет, продажа после беты, продолжение — руками, фразы делегированы с требованием интернациональности (30.08, оркестратор №20). ✅
|
||||
|
||||
**Основание — прямые ответы владельца 30.08** на лист продуктовых вопросов зоны, собранный ревизией пака P9 (три читателя по докам зоны; отфильтровано уже решённое — D39.165, D39.175).
|
||||
|
||||
1. **Продуктовых КВОТ НЕТ — вопрос снят целиком** (`П-12`, `PD-175`). Слово: «никаких квот, мы живём на покупке API; на аккаунты бонусы зачисляются из админки» — это подтверждает и продолжает уже действующее (грант = 0, начисление руками, `PD-104` закрыт словом 16.08). Следствия: ⛔ фри-тир-лимиты не проектировать, чисел не ждать; ⚠ **техническая половина строк ОСТАЁТСЯ, но перестаёт быть продуктовой развилкой** — число аплоадов ничем не ограничено, у статуса `rejected` нет выхода, каталоги-сироты не подметает никто: это операционная гигиена зоны (ретеншен + свип), решается ИНЖЕНЕРНО и без слова владельца, гейт — открытая регистрация, которой в закрытой бете нет.
|
||||
2. **Продажа ПЛАНИРУЕТСЯ, но не в бете; «как» ещё не решено.** Следствия: `П-7` остаётся отложенным (платёжный провайдер не выбирается и не проектируется — `PLATFORM_DIRECTION.md`), но **не отменённым**; к моменту решения о продаже подтягиваются возврат автогранта, суточный агрегатный потолок и `П-10` («честная $/глава», направление уже дано D39.165 §1а). Маркер для приоритета: бета остаётся закрытой.
|
||||
3. **После пополнения баланса прогон возобновляется ЯВНЫМ действием пользователя, а не сам.** Пункт «авто-резюм `paused`» висел в листе владельца с 08.08 в форме, умершей вместе с оконной моделью; зона записала вывод сама (`PLATFORM_DIRECTION.md`), владелец его подтвердил — **пункт снят с листа**, вывод зоны становится ратифицированным.
|
||||
4. **Фразы, которые видит пользователь (В-3 · К-6 · Приложение А), ДЕЛЕГИРОВАНЫ проекту** — слово: «оставляю проектирование фраз на вас, главное чтоб это было интернациональным». ⚠ Это не «свобода формулировки», а **инженерное требование**: фраза не может быть литералом ни в Go платформы, ни в TSX фронта — только данными, ключуемыми машинным кодом причины и локалью (механизм языков интерфейса уже построен, `ПТ-36`/`В-9`). Следствия: словарь фраз — носитель ДАННЫХ, один на продукт; `PD-246` (граница `attention`/`glance` — сегодня ДОГАДКА платформы по 15 причинам движка) закрывается вместе с ним, а не отдельно; строка **204** (движок не публикует причины флагов данными) становится его гейтом. Проектирование — оркестратор + зоны, подпись владельца больше не ожидается.
|
||||
5. **Осталось на владельце из платформенного листа — ОДИН пункт, и он переформулирован** (`PD-421`): держит ли ОТКРЫТЫЙ поток событий сессию живой. Владелец ответа не дал, попросив раскрыть предмет; вопрос переформулирован в терминах продукта и вынесен заново.
|
||||
6. ⚠ **Ключи провайдеров — развилка снята фактом, а не решением:** движок берёт их ДВУМЯ путями (`--keys-file` деплоя ПОБЕЖДАЕТ конвенционный `.env` рядом с `book.yaml` — `backend/cmd/tmctl/invocation.go:145`=`keys-file`), формат обоих — `KEY=VALUE`. Владелец 30.08 сообщил, что чинил ключи движка; **из этого следует, что холодный прогон движка (очередь №20 п.2) разблокирован, а живой прогон через API (п.3) — нет**: платформа читает СВОЙ путь (`TM_PLATFORM_ENGINE_KEYS_PATH`, `platform/internal/config/config.go:436`=`ENGINE_KEYS_PATH`), и по записи P9 живых ключей в нём не было. Лечение — операционное и $0: направить переменную платформы на уже заполненный файл (формат совпадает), проверять — прогоном, не чтением (гардрейл `.env` в силе, оркестратор файлов ключей не открывал).
|
||||
|
|
|
|||
|
|
@ -4,6 +4,16 @@
|
|||
> вопросы, предложения на ратификацию. В `docs/PROGRESS.md` платформа не пишет; оркестратор
|
||||
> читает этот журнал при каждом лендинге зоны (свип «решений владельца» — норма D39.99 п.4).
|
||||
|
||||
## ПИНГ оркестратора №20 → зоне платформы (30.08, слова владельца по продуктовому листу — D39.176)
|
||||
|
||||
Ревизия пака P9 собрала твой продуктовый лист и вынесла владельцу; ответы получены, ратификация — **D39.176**:
|
||||
- **Квот НЕТ** (`П-12`, `PD-175`): живём на покупке API, бонусы аккаунтам зачисляются из админки. Продуктовых чисел не жди — ⛔ фри-тир-лимиты не проектировать. ⚠ Техническая половина строк ОСТАЁТСЯ и становится ЧИСТО ИНЖЕНЕРНОЙ: ретеншен `rejected`, свип каталогов-сирот, потолок диска — решай сам без слова владельца; гейт — открытая регистрация, которой в закрытой бете нет.
|
||||
- **Продажа планируется, но НЕ в бете** (`П-7`): платёжный провайдер по-прежнему не выбирается и не проектируется; возврат автогранта, суточный агрегатный потолок и `П-10` подтягиваются к решению о продаже, не раньше.
|
||||
- **После пополнения баланса прогон возобновляется ЯВНЫМ действием пользователя** — твой вывод в `PLATFORM_DIRECTION.md` подтверждён владельцем и стал ратифицированным; пункт снят с листа.
|
||||
- **Фразы пользователя ДЕЛЕГИРОВАНЫ проекту с требованием ИНТЕРНАЦИОНАЛЬНОСТИ.** Подписи владельца на слова больше не ждать, но: ⛔ фраза не может быть литералом в Go — только данные, ключуемые машинным кодом причины и локалью. Следствие для `PD-246`: граница `attention`/`glance` перестаёт быть догадкой не подбором слов, а данными от движка (строка бэклога **204** — гейт). Проектирование словаря — с оркестратором, отдельным заходом.
|
||||
- **`PD-421`** (держит ли открытый поток сессию живой) — единственный платформенный пункт, оставшийся на владельце; переформулирован и вынесен заново.
|
||||
- ⚠ **Ключи:** владелец 30.08 починил ключи ДВИЖКА (конвенционный `.env` рядом с `book.yaml`). Твой путь — ДРУГОЙ: `TM_PLATFORM_ENGINE_KEYS_PATH` → `--keys-file`, и по записи P9 живых ключей в нём не было. Формат обоих файлов совпадает (`KEY=VALUE`), поэтому лечение операционное и $0 — направить переменную на уже заполненный файл; проверять ПРОГОНОМ, не чтением (гардрейл `.env`).
|
||||
|
||||
## ПИНГ оркестратора №20 → зоне платформы (30.08, после лендинга движкового пака «писатель книги», D39.175)
|
||||
|
||||
- Движок отдаёт книгу файлом: `tmctl build --config b.yaml [--format epub,txt] [--out path] [--partial]`; пути готовых файлов — `StatusArtifacts.book_files` в `status --json`/`manifest --json`, stdout — конверт `tm-build-v1`. Дверь `createExport`/`getExport` (П-17, «отложено в P8») при постройке обязана СТРОИТЬ (`tmctl build`) и отдавать построенное — НЕ читать файл, лежащий рядом с БД (там копия прежней сборки), — и сверять `BuildReport` (`config_drift`/`stale_unknown`): ратифицировано D39.175 п.2 словом владельца.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue