Ratify the three product forks the owner settled: sell by source volume with a real stop, treat a pipeline-shape change as a book epoch, and open the door to the built re-pass
This commit is contained in:
parent
7d0c6f2f54
commit
157492d8ef
3 changed files with 49 additions and 6 deletions
File diff suppressed because one or more lines are too long
|
|
@ -1,4 +1,4 @@
|
|||
# Реестр D-нот — карта актуальности v2 (D1–D39.164;
|
||||
# Реестр D-нот — карта актуальности v2 (D1–D39.165;
|
||||
|
||||
> ⚠ **СЛАБОЕ МЕСТО, КОТОРОЕ БЫЛО ЗДЕСЬ (вписано 22.08, ЗАКРЫТО 24.08 — D39.157 п.6).** Колонка ТЕЛА
|
||||
> у нот D39.107…D39.123 говорила «жив», хотя тела уехали в слайс подрезкой D39.139; семнадцать строк
|
||||
|
|
@ -225,4 +225,5 @@
|
|||
| D39.162 | 28.08 | **Платформенный пак P9 принят и заленджен + контрактный минор 0.6.0**: дверь правок банка смонтирована синхронно, ключи доехали `--keys-file` (строка 211 закрыта), дубль конвенции пути снят (213 сужена), полоса стала СКВОЗНОЙ вместе с каноном, `PD-399` снят. Батарея пере-прогнана приёмкой с живым Postgres (793/18/0/0). Две мои диспозиции сессия опровергла исполнением, я принял; одну её рекомендацию (закрыть 186) отклонил — жив остаток. Р3 — архитектурный стоп `PD-410`, канон НЕ смягчён. | ✅ |
|
||||
| D39.163 | 28.08 | **Граница контракта получает ВТОРОЕ исключение — `Progress.stage`**, ограниченное двумя условиями: значение ВЫВОДИТСЯ платформой из тех же счётчиков (не проброс из движка) и словарь ОТКРЫТ (клиент рисует незнакомое нейтрально, версия не поднимается). Ради канона мультиязычности: пара с иной формой работы не требует нового клиента. Оговорка по `PD-410`: подпись — модель платформы, не отчёт движка. Третьего исключения нота НЕ разрешает. | ✅ |
|
||||
| D39.164 | 28.08 | **Бэкенд-пак «тихая порча» принят и заленджен**: ось `SystemMessages` склеивает системный ряд у провайдера с одним слотом (инъекция банка перестала теряться), дыра выдачи видна в потоке текста, порядок записи решений сменён на rejects-first и повтор документа сходится. Приёмка — четырьмя посадками оркестратора, все пойманы топично. Заказ §3.2 пере-формулирован находкой исполнителя (маркер существовал и ВРАЛ), подсказка промта про место правки отклонена с грунтом и это ратифицировано. Строки 208 и 193 закрыты, 141 наполовину; заведены 228/229/230. | ✅ |
|
||||
| D39.165 | 28.08 | **Три продуктовых развилки сняты словом владельца.** (1) Единица продажи: цена от ОБЪЁМА исходника — носитель `chapters.units_total`, известен на интейке за $0; потолок объёма в ДВИЖКЕ рядом с денежным; хвост качества в тариф и мерить; константу по сегодняшним числам НЕ калибровать (гейт — строка 202). Измерено: реальная глава $0.0115–$0.0190 против константы $0.03, «купить N глав» — денежная ручка с подписью «главы». (2) Смена формы конвейера — СОБЫТИЕ КНИГИ («эпоха»), канон уже разрешает пересчёт через границу `structure_version`; монотонность флага не отменяется. (3) Продажа пере-прохода: дверь к уже построенному движковому механизму, смета из `status --json` без долларов; ⚠ МИНА — первый продолжающий прогон после правки банка УПАДЁТ без `--resnapshot`, чинить первым. Область D39.144 п.1 сужена явно. | ✅ |
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Журнал решений оркестратора — контракт D1–D39.164 (живой файл: карта · эрраты · живые тела · голова D39.124+ (подрезка D39.139); тела закрытых эр — в слайсах `docs/archive/architecture/`, указатель ниже; реестр всех нот — `05-decisions-index.md`)
|
||||
# Журнал решений оркестратора — контракт D1–D39.165 (живой файл: карта · эрраты · живые тела · голова 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+).
|
||||
|
|
@ -989,3 +989,45 @@ device». Починено `TestMain`, проверено двумя прого
|
|||
канон запрещает это, пока в дереве живут чужие незакоммиченные правки. **Механизм плохой, а не
|
||||
человек:** зонный журнал — единственный файл, который две сессии правят одновременно, и защиты у него
|
||||
нет никакой.
|
||||
|
||||
## D39.165 — ТРИ ПРОДУКТОВЫХ РАЗВИЛКИ СНЯТЫ СЛОВОМ ВЛАДЕЛЬЦА: единица продажи, смена формы конвейера, продажа пере-прохода (28.08, оркестратор №19). ✅
|
||||
|
||||
**Основание — слово владельца 28.08** по итогам разведки четырьмя агентами (внешний рынок · археология репозитория · механика пере-прохода · измеримость цены). Числа ниже пере-мерены оркестратором лично на движковых леджерах, не приняты с чужих слов.
|
||||
|
||||
### 1. ЕДИНИЦА ПРОДАЖИ — `PD-410` получает направление лечения
|
||||
|
||||
**Измерено (мой запрос к `books/gu-zhenren/**/*.db`, $0):** настоящая полная цена главы — **средняя $0.0115–$0.0190**, медиана рядом, **максимум одной главы $0.0375**; константа продажи `pricing.DefaultPerChapter` — **$0.03**. То есть завышена в 1.6–2.6×, и отдельные главы её уже пробивают.
|
||||
|
||||
⚠ **Следствие важнее цифры и формулирует дефект точнее прежнего:** покупка «10 глав» отдаёт движку $0.30, а $0.30 на измеренном материале покупает **примерно 16–26 глав**; полоса при этом каппится на десяти. **Ручка «купить N глав» ничего не ограничивает — это денежная ручка с подписью «главы».**
|
||||
|
||||
**Хвост качества подтверждён данными** (наблюдение владельца): оплаченный брак виден в `request_log` с ИМЕНАМИ причин — `empty` (12 вызовов, $0.0128), `length` (10, $0.0122), `cjk_artifact`, `sanitizer_defect` (3 вызова = $0.0259, дороже средней главы). Доля ретраев+эскалаций гуляет **1.5% → 5.9% → 23%** между прогонами. Плоская константа такой разброс не описывает в принципе.
|
||||
|
||||
**РЕШЕНО, три части:**
|
||||
- **(а) Цена — от ОБЪЁМА ИСХОДНИКА, не константа.** Так устроен весь рынок перевода (DeepL — знаки, Smartcat — слова, ScribeShadow — объём книги): единица пре-котируема, потому что источник известен до первого вызова. ⚠ **Носитель у нас УЖЕ ЕСТЬ и он лучше знаков: `chapters.units_total`** — интейк пишет его вызовом `tmctl manifest` ($0, `platform/internal/books/parse.go:312` → `SaveStructure`) ДО первой оплаты, и юнит — это ровно то, за что платит движок. Посимвольных колонок заводить НЕ НАДО.
|
||||
- **(б) У продажи появляется НАСТОЯЩИЙ стоп — потолок объёма в ДВИЖКЕ рядом с денежным.** Прецедент внешний и штатный: OpenHands (`max_budget_per_task` + `max_iterations`), LiteLLM (budget + tpm/rpm). ⚠ **Выбор места сделан мной и обоснован:** резать волну на стороне платформы нельзя — она не владеет волной и не знает пер-юнитной цены заранее. Две грабли этих же систем забираем сразу: остановка обязана НАЗЫВАТЬ, по какому потолку встала (у OpenHands она молчит — известная жалоба), и проверяться ПЕРЕД началом юнита, а не после (у LiteLLM пост-фактум-проверка всегда пробивает потолок на один вызов).
|
||||
- **(в) Хвост качества — в тариф, и МЕРИТЬ.** Возврата за содержательный брак при HTTP 200 не даёт НИКТО из вендоров (Azure прямо биллит срез модерацией и `finish_reason: content_filter`), значит хвост структурно наш. Единственный найденный прецедент гейта качества ПЕРЕД списанием — Zendesk (резолюшн верифицируется отдельной моделью, не прошёл — не биллится), и он коммерчески работает. Телеметрия у нас уже есть: хвост отделяется тремя срезами (`checkpoints.attempt>0` · `checkpoints.escalation=1` · `request_log.ok=0 AND cost_usd>0`).
|
||||
- **⛔ (г) КОНСТАНТУ ПО СЕГОДНЯШНИМ ЧИСЛАМ НЕ КАЛИБРОВАТЬ.** Прогоны с редактурой — 10–11.07, редактор был другой моделью, книга ОДНА, а леджер по собственному признанию проекта — НИЖНЯЯ граница (живой замер D39.86: 3 вызова из 14 мимо, ≤13% неизвестности). Порядок величины знаем, цену — нет. Калибровка гейчена строкой **202** (прогон текущего стека насквозь), которую вчерашний лендинг разблокировал.
|
||||
|
||||
### 2. СМЕНА ФОРМЫ КОНВЕЙЕРА НА ЖИВОЙ КНИГЕ — форма «ЭПОХА» (`PD-403`/`PD-404`)
|
||||
|
||||
**Археология вскрыла, что проект отвечал на СОСЕДНИЙ вопрос дважды, и два ратифицированных ответа В КОМПОЗИЦИИ дают дефект.** D39.152 п.4: «сделано» = последний проход, который книга на ЭТОМ деплое реально получает, «whatever that is». D39.153 §4б: признак «есть ли редактор» — свойство книги и МОНОТОННОЕ, ратифицировано именно против отката счётчика назад. Монотонность защищает направление «редактора добавили» и МОРОЗИТ направление «редактора убрали». ⚠ И комментарий `platform/internal/pgstore/sink.go:405-408` утверждает, что снятие редактора «показывается как больше сделанных глав, что честно», — **его собственный код этого не делает** (сверено построчно).
|
||||
|
||||
**РЕШЕНО: смена формы конвейера — СОБЫТИЕ КНИГИ, как пере-нарезка, и счёт легально пересчитывается.** Канон уже открыл эту дверь: `chapters_done` «never moves backwards WITHIN one `structure_version`; cutting the book again recomputes both numbers» (`14-api-contract/openapi.yaml:1542-1545`) — то есть пересечение границы РАЗРЕШЕНО и нового исключения изобретать не нужно. Пользователь видит скачок, но ОБЪЯСНИМЫЙ.
|
||||
- ⚠ **Монотонность флага (D39.153 §4б) НЕ отменяется** — там стоит пин, и правка пина под зелень запрещена D39.121. Меняется другое: пожизненный счёт книги перестаёт выводиться из ЖИВОГО флага.
|
||||
- ⚠ **Ложный комментарий `sink.go:405-408` снести вместе с правкой** — он пережил своё основание и учит неверному.
|
||||
- **Заново НЕ предлагать** четыре формы, уже отвергнутые с доводом: счёт всегда по редакторской волне (D39.152 п.4 — живой денежный дефект) · читать форму с последнего прогона (PD-316, закрыто миграцией 00024) · немонотонный флаг (пин приёмки P7 его ловит) · рамка «какая фаза считается» как вопрос клиенту (отвергнута владельцем 20.08, и закрытый словарь стадий — D39.163).
|
||||
|
||||
### 3. ПРОДАЖА ПЕРЕ-ПРОХОДА — дверь к УЖЕ ПОСТРОЕННОМУ механизму
|
||||
|
||||
**Разведка установила: движковая половина построена практически целиком.** `translate --resnapshot` после `bank-apply` определяет затронутые термином юниты БАЙТ-СВЕРКОЙ отрендеренного запроса (точнее любого селектора), незатронутые пере-привязывает за **$0** (`backend/internal/pipeline/stagerun.go:88-107`, `repin.go`), считает смету ДО первого резерва и под порогом согласия — свой у книги, иначе `min($0.50, 5% × книги)` — **продолжает сам, без флагов** (`rebill.go`). Смета уже публикуется в `status --json` полями `rebill_units`/`rebill_usd`. ⚠ `redrive` для этого НЕ годится: он атакует только флагнутые чанки и никогда не трогает `DispOK`.
|
||||
|
||||
⚠ **МИНА, ВЗВЕДЁННАЯ НАШИМ ЖЕ ВЧЕРАШНИМ ЛЕНДИНГОМ — чинить ПЕРВЫМ.** Правка банка двигает снапшот, а движок при сдвинутом снапшоте **останавливается ГРОМКО**, если не передан `--resnapshot` (`stagerun.go:54-58`, текст отказа сверен). Платформа не передаёт ни его, ни `--accept-rebill` (`platform/internal/runner/engine.go:90-98`). До 28.08 это не кусало, потому что до движка не доезжало ничего; **вчера заленджены и ключи, и дверь — значит первый же продолжающий прогон после первой же правки банка УПАДЁТ.** Носитель — строка **199**(б).
|
||||
|
||||
⚠ **И канон противоречит сам себе на ДОЧИТАННОЙ книге, в двух фразах:** правка «takes effect on the NEXT run» (`openapi.yaml:505`), а поднять потолок можно только у ПРИОСТАНОВЛЕННОЙ книги и «finished work is not bought twice» (`openapi.yaml:590`). У дочитанной книги следующего прогона купить нечем — правка принята и умирает.
|
||||
|
||||
**РЕШЕНО — форма двери:** платформа читает смету из УЖЕ существующего `status --json` (два поля в `ingest/resync.go`), показывает «затронуто N юнитов» **БЕЗ долларов** (D39.84 — деньги на провод не ходят), допускает старт на книге с нулевым остатком, если банк двигался после последнего прогона, и спавнит `translate --resnapshot` с принятым согласием. Движок при этом $0. Ложится в закон шва D39.156 п.7 (проекция ПРЕЖДЕ мутации) и в строку `17-seam-inbound-law.md:102`, где эта дверь уже поименована будущей.
|
||||
|
||||
⚠ **ОБЛАСТЬ D39.144 п.1 СУЖЕНА ЯВНО, чтобы следующая сессия не увидела противоречия.** D39.144 запрещает ПРОЕКТИРОВАТЬ механику пост-ридинговых правок до итогов полигона (фаза Д), и разведка честно пометила «относится ли к запрету ПРОДАЖА пере-прохода» как НЕ УСТАНОВЛЕННОЕ. **Владелец снял это 28.08:** открыть дверь к уже построенному движковому механизму — НЕ то же самое, что проектировать продуктовый цикл пост-ридинга. Цикл (отдельная ручка «перегенерировать», `resnapshot --dry-run`, доезд правки до ЧЕРНОВИКА через сид) остаётся гейченным полигоном.
|
||||
|
||||
### ПОРЯДОК РАБОТ, вытекающий из решений
|
||||
**Мина и дверь — ОДИН пак:** оба закрываются теми же двумя флагами в одной функции сборки аргументов. Дальше — строка **202** (живой прогон текущего стека), потому что без неё цена не калибруется. Эпоха формы конвейера и потолок объёма — параллельно, они ни от чего не гейчены.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue