Make two status boards point at the money path instead of retelling it, and record that a board carries status plus a pointer, never the mechanics

This commit is contained in:
heaven 2026-09-06 02:23:25 +03:00
parent ab0ab998a0
commit a049fa0b56
3 changed files with 12 additions and 2 deletions

View file

@ -33,6 +33,16 @@ Pathspec-форма `git commit -- <пути>` защищает от чужог
называла ОДИН файл, и ловушка сработала третий раз — на `platform-PROGRESS.md`**: правило было писано
про ЭКЗЕМПЛЯР, а не про КЛАСС, и потому не сработало там, где класс тот же. Класс: любой файл, куда
пишет зона, а коммитишь ты.
**СТАТУС-БОРД УКАЗЫВАЕТ, А НЕ КОПИРУЕТ — иначе одна правка становится четырьмя.** Замерено 06.09:
один денежный факт («платформенная половина построена, ставки за главу нет») жил В ЧЕТЫРЁХ файлах —
`15-money-path.md`, шапка `09-target-architecture.md`, `17-seam-inbound-law.md`, ряд бэклога. Сплошной
аудит увидел его как ОДИННАДЦАТЬ находок, и на каждую я писал правку заново; когда факт сменился,
менять пришлось все четыре, и три из них — пересказ. ⇒ **Механика живёт у своего ПРЕДМЕТА (денежный
путь — в `15-money-path.md`); борды и реестры несут СТАТУС плюс указатель на носитель.** Правило
проверяется вопросом «если этот факт завтра изменится, сколько файлов придётся тронуть?» — больше
одного значит копия. ⚠ Не относится к ЖУРНАЛУ решений: тела нот — улика по `D23.3`, они описывают
дерево на ДАТУ и не пере-писываются даже когда протухли; им нужна эррата, а не указатель.
**ВТОРАЯ ЛОВУШКА ТОГО ЖЕ РОДА — ПЕРЕ-НАВЕДЕНИЕ ЯКОРЕЙ СПЛОШНОЙ ЗАМЕНОЙ.** Правя протухшие `file:line`,
легко заменить строку пути ВЕЗДЕ. Но тот же путь стоит в доках дважды в разных ролях: как ЖИВАЯ ССЫЛКА
(её чинить надо) и как УЛИКА в описании дефекта — «код цитирует вот этот путь, а его удалили» (её

View file

@ -22,7 +22,7 @@
> | 3 Контракт t/e | ✅ ПОСТРОЕН ЗА `enabled:false`: `checks.RepairCandidates` (позиционная детекция) · read-only скан остатка · машинерия ремонта §15.2; **включение платного пути = решение владельца по замеру остатка**; эмпирика контракта: диффы ОТЛОЖЕНЫ (D39.108, экспы 19/20; D21.4/D21.10 закрыты), full-regen ПОДТВЕРЖДЁН, точечная починка как ЗАМЕНА редактора отклонена и принята формой «механический пре-гейт ПЕРЕД редактором» (D39.117; строка 142, строка 106 понижена) | пак-16 (D39.24), **D39.108**, **D39.117** |
> | 4 Память | ✅ ПОСТРОЕН + ДОСТРОЕН паком-20 + ✅ **ВХОДНАЯ ДВЕРЬ ПОСТРОЕНА (D39.158)**: $0-глагол `tmctl bank-apply` (проекция `--dry-run`, всё-или-ничего, байтовый no-op идемпотентен), писатель решений `internal/membank/decisions.go`, стоп банка — ФЛАЖОК, который движок чтит сам (память предъявления `bank_stop_presented`, схема store v16), класс отказа 15 `write_incomplete`. Роли носителей и поток «источники → вид → проекции» — `18-bank-ontology.md`; состав пака-20 (ТЕРМИНОЛОГ · флаговый стоп `--verify-bank` · двухсекционная редакторская инъекция · точечная ре-редактура · банкнота отдельным шиппинг-файлом · языковой экран `target_script`) — D39.4145/5053; ⚠ D39.104 п.2 ВНЕСЁН (испр. 05.09): инъекция схлопнута в ЕДИНЫЙ закон-блок, маркер ⟨проверить⟩ с провода СНЯТ — отработано вайр-батчем, пак принят D39.199 (`74ffe4f`), строка 134 закрыта; жанровый словарь ОТМЕНЁН (D39.47) | пак-1 · пак-11 · **пак-20 (D39.4145/47/5053)** |
> | 5 Качество | ✅ детерм. часть: `QualityReport` · число/omission-гард · DC/пак-13-чекеры · repair-остаток; семантический span-судья/полярность — НЕ строился (защита = editor-swap, D38.4) | D39.2 · D38.3 · пак-13 (`2f91b04`) · пак-16 |
> | 6 Export | ✅ **ПЛАТФОРМЕННАЯ половина ПОСТРОЕНА 06.09 (`D39.208`)**: цена читается из проекции движка по аллоулисту, `step_max` входит в холд АДДИТИВНО (⇒ последние главы покупаемы ПО ПОСТРОЕНИЮ, `PD-440` снят), заказ хранится идентичностью. ⚠ **Пол «последние две главы» снят ПО ПОСТРОЕНИЮ, а не замером** — живого прогона не было, и это остаётся верным. ✅ ДВИЖКОВАЯ половина ПОСТРОЕНА: `checks.ExportNormalize` на каждом финале; санитайзер-классы strip+export · **писатель книги: `internal/bookfile` + `tmctl build` (EPUB 3 + txt, D39.175)**; холодный прогон 31.08 предъявил собранный EPUB настоящего перевода, `epubcheck` 0/0/0/0. ✅ **ПЛАТФОРМЕННАЯ половина ПОСТРОЕНА 04.09, ЦИКЛ ЗАМКНУТ ЖИВЬЁМ** (`adf5e53`, D39.194): пользователь получил EPUB настоящего ПЛАТНОГО перевода ЧЕРЕЗ API, `epubcheck` 5.3.0 на СКАЧАННОМ файле 0/0/0/0. Дверь — три адреса (`createExport`/`getExport`/`downloadExport`), `202`+`Location`, поллинг с `Retry-After`, Range 206, TTL с уборкой, идемпотентность. Проверка вместо счёта: `grep -rn 'createExport\|getExport' platform/internal/ --include=*.go`НЕ пусто; операций в каноне 21, смонтировано **19** (испр. 05.09: `updateBook` смонтирован платформенным паком `7e2226a`). ⚠ **СТЕНА ДЕСЯТИ ГЛАВ СНЯТА 05.09, НО ПОЛ ОСТАЛСЯ — ДОЧИТАТЬ ДО КОНЦА ПО-ПРЕЖНЕМУ НЕЛЬЗЯ.** — движковый пак `81a89e9` (акт D39.206) снял стену: отказ резервации ЗАЩЁЛКИВАЕТ волну, а обязательный вызов ЖДЁТ settle; порог «короче десяти глав не переводится» СНЯТ, остаточный пол — одна резервация (~3 главы) и он ВЫВЕДЕН, не замерен. Разбор — `15-money-path.md`, греп `ЭРРАТА 05.09`. ⛔ **Инвариантный пол: даже при ОДНОМ воркере прирост потолка `2 × $0.03 = $0.06` меньше одной редакторской резервации (~$0.07), то есть ПОСЛЕДНИЕ ~2 ГЛАВЫ любой книги не покупаются** (`15-money-path.md`, греп `даже при ОДНОМ воркере`). Защёлка тут не помогает — она делает стоп штатным, а не финансирует последний вызов. Снимается ПЛАТФОРМЕННОЙ половиной (потолок ДЕНЬГАМИ, `D39.196`, строка 280), которая НЕ построена: `git grep -lE "StepMax|step_max" -- platform/` → пусто. ⚠ **Пол ВЫВЕДЕН, не замерен** (платного прогона не было — D39.206 п.6). ⇒ `PD-440` жив в ЭТОЙ половине: его волновая часть починена движком, денежная — нет | D39.2 · D38.3 · D39.175 · D39.178 |
> | 6 Export | ✅ **ПЛАТФОРМЕННАЯ половина ПОСТРОЕНА 06.09** — что именно и с какой ценой, ОДНИМ носителем: `15-money-path.md` §3 (акт `D39.208`). Здесь только статус, механика не дублируется. ✅ ДВИЖКОВАЯ половина ПОСТРОЕНА: `checks.ExportNormalize` на каждом финале; санитайзер-классы strip+export · **писатель книги: `internal/bookfile` + `tmctl build` (EPUB 3 + txt, D39.175)**; холодный прогон 31.08 предъявил собранный EPUB настоящего перевода, `epubcheck` 0/0/0/0. ✅ **ПЛАТФОРМЕННАЯ половина ПОСТРОЕНА 04.09, ЦИКЛ ЗАМКНУТ ЖИВЬЁМ** (`adf5e53`, D39.194): пользователь получил EPUB настоящего ПЛАТНОГО перевода ЧЕРЕЗ API, `epubcheck` 5.3.0 на СКАЧАННОМ файле 0/0/0/0. Дверь — три адреса (`createExport`/`getExport`/`downloadExport`), `202`+`Location`, поллинг с `Retry-After`, Range 206, TTL с уборкой, идемпотентность. Проверка вместо счёта: `grep -rn 'createExport\|getExport' platform/internal/ --include=*.go`НЕ пусто; операций в каноне 21, смонтировано **19** (испр. 05.09: `updateBook` смонтирован платформенным паком `7e2226a`). ⚠ **СТЕНА ДЕСЯТИ ГЛАВ СНЯТА 05.09, НО ПОЛ ОСТАЛСЯ — ДОЧИТАТЬ ДО КОНЦА ПО-ПРЕЖНЕМУ НЕЛЬЗЯ.** — движковый пак `81a89e9` (акт D39.206) снял стену: отказ резервации ЗАЩЁЛКИВАЕТ волну, а обязательный вызов ЖДЁТ settle; порог «короче десяти глав не переводится» СНЯТ, остаточный пол — одна резервация (~3 главы) и он ВЫВЕДЕН, не замерен. Разбор — `15-money-path.md`, греп `ЭРРАТА 05.09`. ⛔ **Инвариантный пол: даже при ОДНОМ воркере прирост потолка `2 × $0.03 = $0.06` меньше одной редакторской резервации (~$0.07), то есть ПОСЛЕДНИЕ ~2 ГЛАВЫ любой книги не покупаются** (`15-money-path.md`, греп `даже при ОДНОМ воркере`). Защёлка тут не помогает — она делает стоп штатным, а не финансирует последний вызов. Снимается ПЛАТФОРМЕННОЙ половиной (потолок ДЕНЬГАМИ, `D39.196`, строка 280), которая НЕ построена: `git grep -lE "StepMax|step_max" -- platform/` → пусто. ⚠ **Пол ВЫВЕДЕН, не замерен** (платного прогона не было — D39.206 п.6). ⇒ `PD-440` жив в ЭТОЙ половине: его волновая часть починена движком, денежная — нет | D39.2 · D38.3 · D39.175 · D39.178 |
> | 7 Гигиена | ✅ ПОСТРОЕН: реестр role→инъекция · вынос `foldModelWire` · снос сирот/`gatesEnabled` · **target-aware гейты ПО ДАННЫМ — П1 «цель-шов» (фаза 2, D39.64: `isRuTarget` удалён, `TargetActive`/`TargetScriptNonLatin`, токенизатор цели из `word_script`); остаток — ё-фолд/segmentation за подписью (бэклог-строка 14)** | D39.2 · паки 1116 · **фаза 2 (D39.64)** |
>
> **Общность (фаза 2) ИСПОЛНЕНА И ПРИНЯТА — D39.64**, отчёт `../archive/reports/GENERALITY_PHASE2_2026-08-01.md`: П0 хеш эмбед-данных (`embedded_version` в снапшоте) · П1 цель-шов (слой 7) · П2 скрипт-шов источника (`lang-script.txt`) · П3 нарезка/оценка (один дом `DenseScript`) · П4 манифест-по-каналам (`packAlgoVersion` не бампался); голден вердикт-нейтрален (0/172); П5 майнер гейтится второй книгой; 9 флагов §5 — очередь владельца (бэклог-строка 14). **Карта языковой привязки ВСЕГО движка — `../archive/reports/GENERALITY_RESEARCH_2026-07-31.md` (D39.60)**; пак-19 «голос/состояние» — D39.5456.

View file

@ -95,7 +95,7 @@
| дверь | откуда следует |
|---|---|
| `resnapshot --dry-run` | строка **124(в)**, глагол поименован там дословно. ⚠ Родня строки **231**: та просит ту же способность («оценить, ничего не покупая») со стороны ШВА, и решаться они, скорее всего, одним глаголом |
| ✅ **И ПРОЧИТАНА платформой с 06.09 (`D39.208`)**: числа декодируются по аллоулисту и входят в холд, а книге, чью цену движок не назвал, платформа ОТКАЗЫВАЕТ в продаже вместо догадки. Прежняя редакция: ⚠ движковая оценка $/глава — **ПОСТРОЕНА и опубликована 05.09** (`expected_usd` · `book_once_usd` · `step_max_usd` в `manifest --json`/`status --json`, лендинг `81a89e9`, акт D39.206); непостроена ПЛАТФОРМЕННАЯ половина — числа никем не читаются (`git grep -lE "StepMax|step_max" -- platform/` пусто) | строка **166**. Приоритет поднят: D39.165 §1 ратифицировал цену ОТ ОБЪЁМА исходника, и оценка перестала быть удобством. ⚠ Числа цены главы и их пере-пин под цены с 16.08 — только `15-money-path.md` §3 п.3, здесь копии нет |
| ✅ **И ПРОЧИТАНА платформой с 06.09** — механика ОДНИМ носителем: `15-money-path.md` §3 (акт `D39.208`). Прежняя редакция: ⚠ движковая оценка $/глава — **ПОСТРОЕНА и опубликована 05.09** (`expected_usd` · `book_once_usd` · `step_max_usd` в `manifest --json`/`status --json`, лендинг `81a89e9`, акт D39.206); непостроена ПЛАТФОРМЕННАЯ половина — числа никем не читаются (`git grep -lE "StepMax|step_max" -- platform/` пусто) | строка **166**. Приоритет поднят: D39.165 §1 ратифицировал цену ОТ ОБЪЁМА исходника, и оценка перестала быть удобством. ⚠ Числа цены главы и их пере-пин под цены с 16.08 — только `15-money-path.md` §3 п.3, здесь копии нет |
| `tmctl init` (форма В) | строка **170**; приоритет ПАДАЕТ после двери 199(а) — та забирает её главный довод |
**ПОСТРОЕНЫ по этому закону и из таблицы сняты** (форма читается по ним как по образцам): приём правок банка движковым глаголом `tmctl bank-apply` — 27.08, D39.158, развилка владения `book.yaml` (строка 199а) растворена · `--keys-file` — движок 27.08 (D39.158), передача с платформы 28.08 (P9/D39.162), строка **211** ЗАКРЫТА и блокером живого прогона больше не является (⚠ ⚠ испр. 05.09: строка **202** ЗАКРЫТА D39.200 — прогон отработал; её остаток о непокрытых поверхностях живёт строкой **255**) · путь артефакта в ответе движка — конверт `StatusArtifacts` в `status --json`/`manifest --json` (`project_db` · `bank_export` · `mined_delta` · `mined_rejects` · `book_files`, D39.162/D39.175), строка **213** сужена до одной строки ДЕВ-супервизора · consent-флаги `--resnapshot`/`--accept-rebill` от платформы — 28.08, D39.166, продаются членом `RunRequest.re_pass` (канон контракта 0.7.0+); гейт «строка 192» СНЯТ владельцем (D39.165).