Issue audited bank fixpack and editor probe prompts, ratify wire-law doctrine D39.104, close remaining owner questions, backlog row 134, saga trimmed per owner norm

This commit is contained in:
heaven 2026-08-04 22:02:29 +03:00
parent 271f8b0adf
commit d653aa1531
5 changed files with 100 additions and 3 deletions

View file

@ -0,0 +1,37 @@
# Промт бэкенд-сессии: ФИКС-ПАК БАНКА «КЛАСТЕРЫ + НАБЛЮДАЕМОСТЬ» (строка 128, + хвост 129)
**Выдан 04.08.2026, оркестратор №13, по санкции владельца 04.08 (зафиксирована D39.103 п.1; гейт строки 128 снят) и D39.102.** Ты — бэкенд-сессия. Зона записи: `backend/` (код+тесты+puml тем же коммитом-пакетом) + отчёт `docs/archive/reports/BANK_CLUSTER_FIXPACK_2026-08-XX.md` + пинг в `docs/PROGRESS.md` секция «Бэкенд». **НЕ коммитишь** — дерево готовишь, лендит оркестратор. ⚠ В дереве живёт ЧУЖОЕ: `platform/*` (модифицированный и новый, ждёт приёмки P0) — не трогать и не «прибирать». **Деньги: $0 — платных вызовов НЕТ вообще**; тесты и голден локально. Перекупка бэнк-батчей случится на следующем живом прогоне — в пак не входит, её цену только НАЗВАТЬ в отчёте.
**Первый деливерабл — эхо-блок ≤10 строк** (как понял скоуп · четыре работы + хвост · инварианты · что вне скоупа; подтверждения не жди).
## §0. Рамка
Вход пака — research/24 §G (принят D39.102; детальный дизайн-синк уровня функций — черновик `docs/archive/reports/DRAFT_BANK_ARBITRATION_V1_2026-08-04.md` §G, читать ЕГО) + находки приёмки D39.102 п.3. Замеры-основания: химера семьи на границе батча (research/24 §B4: одна модель, батч 0 слитно / батч 2 раздельно), 18/149 невидимых противоречий консолидаций на живом банке, «почему у терма такой dst» неответимо по артефактам (§A7), 8/45 голда = одна конвенция семьи.
**Инварианты (не трогать):** эмиссия auto/draft — терминолог не может ничего утвердить (`terminologist.go:31-35`); `Select`/пост-чек/эскалация; семантика Merge/AttachKWIC (кроме опц-перфа); ратифицированное «банкнота парсится только finish=stop» (`05-decisions-log.md:624,730`). **НЕ строить** (закрыто числами D39.102): равноправный совет · кросс-модельные веса · self-consistency · селекция из вариантов · отказ-сигнал · эмбеддинг-фетч. **G4 (кластерный роутинг) в пак НЕ входит** — это правило дизайна замера строки 5, кода сейчас не требует. **Ревью-вопрос общности:** «заработает ли пара, которой в репо НЕТ, без правки Go?» — семьи/асимметрия имя-реалия = ДАННЫЕ пары; пара без данных ⇒ канал инертен.
## §1. Онбординг (карта, целиком не читать; жаргон — `docs/glossary.md`)
`CLAUDE.md` (цели+гардрейлы) → CURRENT-STATE `docs/PROGRESS.md``research/24` §A/§B4/§G + черновик §G → D39.102 · D39.69 (три примитива банка) · D39.65 (со-батчинг чинит серию) → код: `internal/terminology/{terminology.go,series.go,classify.go}` · `internal/pipeline/{terminologist.go,mining.go,banknote.go}` · `internal/miner/miner_emit.go` · `internal/membank/memory.go` · `internal/lang/` (данные: `script-series.txt`) → `12-go-style-notes.md` §0.
## §2. Работы
**G1. `DetectFamilies` рядом с `DetectSeries`** (`terminology/series.go`). Вход тот же `[]Candidate` + параметры семей из ДАННЫХ пары (расширение `script-series.txt` новой колонкой или соседний файл — реши и обоснуй; НЕ Go-константы). Правила: имена (тип после классификатора) — общая ПРЕФИКС-морфема ≥2 рун; реалии — общая СУФФИКС-морфема ≥MinRootRunes (head-final письмо); асимметрия имя/реалия — тоже данные. Без транзитивного замыкания: якорь = сама корневая морфема; кандидат входит в ≤1 семью; специфичный длинный корень бьёт короткий, затем большая семья; **серия сильнее семьи ТОЛЬКО при несовпадающих корнях** — серия и семья, делящие одну корневую морфему (转-случай), СЛИВАЮТСЯ в один батч-юнит. Выход — тот же `map[string]int`, мёржится с seriesID перед `Batch` (со-батч готов — `terminology.go:917-960`; oversize-WARN — у вызывающего, `terminologist.go:276-281` через `BatchRunes` `:969-973`). Туда же два фикса приёмки: (а) **многорунные модификаторы серий** — 十一转 (3 руны) выпадает из 2-рунной серии 一转…九转 на ранге 11 и серия рвётся по батчам; форму реши сам: отдельное правило серия-канала (переменная длина модификатора) ЛИБО слияние с семьёй по общему корню — критерий один: линейка рангов 1..12 держится ОДНИМ батч-юнитом, существующее поведение равнодлинных серий не регрессирует; (б) **майнерские containment-пары** (元海 ⊂ 元海空窍, оба mined) — сегодня без Related и без атомарности в батчере (`terminology.go:195-198` считает только banknote-only) — в один юнит тем же механизмом.
**G2. `ConsolidationConflicts(cands, out)`** (`terminology/terminology.go`) — тонкий брат `CanonConflicts`: те же containment+`lexemeSubset` (`:787-812`), но правая сторона — консолидации ТЕКУЩЕГО прогона между собой. Вызов в `runTerminologist` после сборки `out` (рядом с `terminologist.go:335`); WARN с именованными парами + счётчик в `terminologyResult` + колонка стоп-таблицы. $0, evidence-сторона, не фолдится.
**G3. Наблюдаемость арбитража.** (а) `BankStopRow` += `Signals []string` (уже вычисляются per-VARIANT и выбрасываются — печатай сигналы ТОП-варианта, либо вплети по-вариантно в Variants-строку — реши), `Invented bool` (норм-dst ∉ вариантов черновиков), `Conf int`; (б) третье поле «уверенность 0100» в ответе терминолога — строка в `prompts/zh-ru/terminologist.md` (дата-правка; PromptSHA двигает батчи тем же разом, что G1); ⚠ ловушка парсера: числовой хвост ` \d{1,3}` снять КАК conf ДО ре-джойна полей (`terminology.go:880-885`), иначе молча въедет в dst; **запрещённая форма зафиксирована D39.102**: conf — только сортировка листа ревью «сначала неуверенное», никаких кросс-модельных сравнений и «скор решает»; (в) `reasoning_content` в схему НЕ заводить (debug-сайдкар за флагом, вне снапшота); (г) находки приёмки: **alias-джойн подписной карты** — предложения, пришедшие через алиас кластера, не попадают в note представителя (`miner_emit.go:242`, `mining.go:354-364`; маршрут aliasOwner в Merge уже есть — `terminology.go:160-192`), карта расходится со стоп-таблицей; **имена эвиктнутых** — рядом с `NEvicted` детальный список (форму хранения выбери БЕЗ новой миграции схемы — ловушка неидемпотентных миграций v8v14, строка 49а); **per-batch «спросили N / ответили M»** + WARN на ПУСТОЙ ответ батча (`terminologist.go:296-299` — сейчас молчаливый continue) и классификатора (`:403-404` — пустой ответ молча; WARN на непустой мусор уже есть, `:412-414`); тест `TestTerminologistEmptyReplyIsLoud` покрыть НАСТОЯЩЕЙ пустой веткой (сейчас фикстура непустая — имя теста врёт).
**G5. `foldVariants`:** счёт голосов по `NormalizeTargetForm`-фолду при показе сырых форм; рядом со spread — «конвенций» (folded spread); Via-провенанс при фолде не терять first-wins'ом (`terminology.go:228-234` — консенсус может пометиться «proposed for алиас»): агрегировать прямые+алиасные честно. Косметика (топ двигается 1/75) — делать заодно с G3.
**Хвост 129 (банкнота-парсер).** `banknote.go:236`: `dst := parts[1]` голым при 3-польном формате — «Фан␣␣Юань» банкует полу-имя, хвост уезжает в тип и падает в `"term"`. Фикс: ре-джойн середины, когда ПОСЛЕДНЕЕ поле ∈ `bankTypeOK` (`banknote.go:73-74`, закрытый словарь), иначе весь хвост в dst (2-польная строка); зеркалить дисциплину ре-джойна терминолога (`terminology.go:875-890`). Тест на «Фан␣␣Юань» в обеих формах. Цена фолда: авто-банк изменится только на реальных случаях двойного пробела — в отчёте назвать, нашёлся ли хоть один в артефактах `~/books/gu-zhenren/coldrun-a/` (замороженный эталон, ТОЛЬКО чтение).
**Опции (только если чисто ложатся, $0):** перф строки 37 — `AttachKWIC` через готовый Aho-Corasick (`membank/memory.go:872-918`); гигиена `BanknoteTruncated` — колонка недостижима в проде (`banknote.go:341` жёсткий false): либо честно провести флаг из исчерпанного length-ретрая, либо снести ветку+колонку+стейл-коммент (поведение «finish=stop-only» НЕ менять — ратифицировано); `NoDst` — узкий префикс-матч испорченного сентинела («⟦TM-NO-DST⟧.», кавычки) до `wellFormedLemma`.
## §3. Фолд-ось и голден (обязательная секция отчёта)
Состав батчей терминолога → `RequestHash` бэнк-батчей: G1+G3(промпт)+**G5** двигают их ОДНИМ разом — перекупка центовая, волны/снапшоты книг НЕ двигаются (проверь и предъяви: snapshot id волн не меняется). ⚠ G5 — НЕ только печать: фолд-счёт и Via меняют drafts-строки на wire (`terminology.go:441-449`, `:643-653`). Вне снапшота — только G2 и печать стоп-таблицы. Голден: если payload бэнк-батчей в голдене меняется — пере-захват ОДИН раз, явно названный в отчёте (не тихо); голден-счётчики волн обязаны пройти БЕЗ пере-захвата.
## §4. Самопроверка и СТОП
Гардрейлы, задеваемые работами: **`backend/.env` НЕ читать** · **PUML не рендерить в svg/png** (владелец смотрит расширением). Мандат 12.07: ревью ИСПОЛНЕНИЕМ своего кода + явный бэкенд-ревью после кода. Вся батарея (`go build ./... && go vet ./... && go test ./...`) зелёная; archguard-тесты не трогать. Отчёт: что сделано по каждой работе с `file:line` · девиации от этого промта с причинами · фолд-предъявление §3 · чего НЕ сделал и почему · **план верификации эффекта на следующем ХОЛОДНОМ прогоне** (D39.103 п.1; что и как смотреть — назвать конкретно). Пинг в PROGRESS «Бэкенд» кратко. **СТОП — приёмка оркестратора** (адверсариальная, клеймы пере-проверяются исполнением).

View file

@ -0,0 +1,39 @@
# Промт полигон-сессии: РЕДАКТОРСКИЙ ПРОВОД ПОД ДОКТРИНОЙ ЗАКОНА (D39.104) + фронтир-пасс по голду
**Выдан 04.08.2026, оркестратор №13, по санкциям владельца 04.08 (D39.103/104).** Ты — полигон-сессия. Зона записи: `eval/bank_arbitration/` (расширяешь готовый харнесс) + отчёт `docs/experiments/18-editor-wire-probe.md` + пинг в `docs/PROGRESS.md` секция «Полигон». Сырьё моделей — durable `~/books/gu-zhenren/bank-arbitration/` (префикс `edp-*`). **НЕ коммитишь** — лендит оркестратор. ⚠ Чужое в дереве (`platform/*`) не трогать; `coldrun-a` — только чтение.
**Деньги (жёстко):** проба A ≤ **$0.30** (~2630 вызовов v4-pro на high с reasoning-хвостами; **до первого платного вызова ОБЯЗАТЕЛЬНА смета/`--plan`-dry-run**, смета выше потолка = СТОП+релей до запуска, не после); проба C ≤ **$0.50** — «go» владельца получен (D39.103 п.3), см. §C. Каждая проба **пре-регистрируется** (критерии ДО первого платного вызова и до вскрытия результатов — норма D39.61 и `eval/README.md` §Правила; пре-рег ФРИЗИТСЯ: либо пре-рег-коммитом — единственное исключение полигона из «не коммитить», CLAUDE.md, — либо релеем текста оркестратору до запуска). Превышение потолка = СТОП+релей. Деньги по пробам отдельно и суммой; «заявление = команда» — каждое число с командой, приёмка пере-ранит.
**Первый деливерабл — эхо-блок ≤10 строк** (как понял скоуп · армы и потолки · план пре-регов · что вне скоупа; подтверждения не жди — но пре-рег-фриз ДО платных вызовов обязателен).
**Онбординг (карта; целиком доки не читать; жаргон — `docs/glossary.md`):** `CLAUDE.md` (цели+гардрейлы) → `research/24` шапка+§C → `eval/bank_arbitration/inject_probe.py` (дизайн-образец пробы) и `consilium_probe.py` (протокол пассов/персиста) → `backend/prompts/zh-ru/editor.md` + `backend/internal/lang/data/injection.txt` + `backend/internal/membank/memory.go:739-829` (рендер блока) → `docs/experiments/00-provider-quirks.md` (шапка + DeepSeek).
## §0. Контекст и доктрина (не пере-открывать)
research/24 §C (принят D39.102): на ТРАНСЛЯТОР-проводе инъекция поднимает следование канону 43%→95%, неверная строка законом принимается 6/6, маркер ⟨проверить⟩ поведенчески пуст (Δ=0). По редактору: rerun2 (23.07) и мини-прогон гоняли edit-волну прод-путём С ЖИВЫМ канон-блоком, но (а) изолированного замера эффекта блока (контроль без блока) не было; (б) **двухсекционка с unverified-секцией (пак-20, 26.07) не была в платной волне НИ РАЗУ**; (в) реакция на неверную строку не мерена.
**Доктрина D39.104 (проба её ВЕРИФИЦИРУЕТ, а не решает):** банк на проводе — ЗАКОН для всех ролей НЕЗАВИСИМО от статуса строки; право «перевести иначе, если сомнительно» УПРАЗДНЕНО (канал разнобоя между параллельными главами); свобода — только по ОБЛАСТИ употребления: игра слов / разбор знаков / буквальное не-терминное прочтение передаются по смыслу пассажа с сохранением узнаваемости канонической формы. Ошибки банка чинятся уровнем выше (терминолог+гейты+подпись), не ролью. Статус строк (draft/auto) и подписная таблица владельца НЕ меняются — доктрина о ПРОВОДЕ. Найденное приёмкой противоречие инструкций (editor.md «СТРОГО по глоссарию» против editor_unverified_header «вправе перевести иначе») снимается кандидат-редакцией §B.
Гардрейлы: `.env` НЕ читать · DeepSeek thinking НЕ отключать · `00-provider-quirks.md` шапка+DeepSeek-секция ПЕРЕД вызовами · слаги live-фактчеком `/models` · аномалия → вендор-дока, не гадать. ⚠ Вахта deepseek-v4-pro (реестр строки 108): при аномалии редакторского арма — пере-проба + вендор-changelog; при запуске позже 05.08 — вендор-changelog сверить ДО платных вызовов; `medium` на DeepSeek не ставить.
## §A. Проба A — редактор под законом
Модель: боевой редактор **deepseek-v4-pro ИНТЕРИМ** (D39.22). **Wire-поля — ровно как edit-стадия шиппинг-конфига c1, явным списком в отчёт:** `few_shot: false` (блок `---FEWSHOT---` ДРОПАЕТСЯ) · temperature шиппинга (0.4, сверь по `pipeline-c1.yaml`) · **reasoning-параметр на v4-pro НЕ СЛАТЬ ВОВСЕ** (квирк 3а: не слать = high; «low» маппится в high, «off» = no-op) · `max_tokens` ≥ флора v4-pro **16000** (`models.yaml:166`). Вход байт-близко движку: system из `prompts/zh-ru/editor.md` (рендер-переменные как движок — `render.go`), блок банка ВТОРЫМ system (формат строк как `editorLines`, `membank/memory.go:798-829`: «- src → «dst»» с тире и «-кавычками), user — оригинал+черновик (`{{text}}`+`{{draft}}`). Заголовок блока — **КАНДИДАТ-редакция §B** (единый закон-блок; в движок НЕ вносить — строка 134 после пробы). Окна: те же 6 окон источника, что в `inject_probe.py`; **черновики — с транслятор-арма B тамошнего сырья** (уже персистированы, $0; канон-конформный черновик = сильнейший тест вытеснения).
Армы: **(A0)** без блока банка — изолированный контроль (его не было никогда) · **(A1)** единый закон-блок §B, ВЕРНАЯ строка · **(A2)** единый закон-блок, НЕВЕРНАЯ строка (цена неверного закона на редакторе: принятие/вытеснение против оригинала) · **(AM)** метаязыковое окно: найди на стенде 10 глав пассаж, где термин разбирается/обыгрывается буквально (ранние главы Гу Чжэньжэня разбирают природу центрального термина; не найдётся — собери минимальный синтетический из фраз книги и назови это честно), гони с законом+оговоркой и с законом-без-оговорки (2 вызова): работает ли оговорка области (пассаж передан по смыслу) и **не ТЕЧЁТ ли она** (leakage: в ОБЫЧНЫХ окнах A1/A2 — заголовок с оговоркой — отклонений от закона быть не должно) · **(A5) посаженные дефекты черновика:** в каждое из 6 окон-черновиков посади по ОДНОМУ дефекту каждого из двух классов (итого 6+6): (к1) слово-абракадабра/несуществующее слово, (к2) смысловое искажение против оригинала (например, инвертированное действие); список посадок дословно в пре-рег; арм без банк-блока; метрика — «исправлено X из Y» ПО КАЖДОМУ классу (первый замер класса «чинит ли редактор дефекты черновика»).
Метрики (скоринг тем же regex-методом харнесса; ⚠ голд/wrong-регексы взаимно не пересекаются — проверь на 元海/真元-классе): исполнение закона (A1: каноническая форма в выходе); принятие/вытеснение неверной (A2); **межоконная КОНСИСТЕНТНОСТЬ**: судьба ОДНОЙ строки одинакова во всех 6 окнах A2? — печатать счётом; leakage оговорки (AM против A1/A2); фикс-рейт дефектов (A5).
**Пре-рег критерии:** «закон исполняется» — A1 ≥5/6 канонических; «цена ошибки» — A2 печатается числом без порога (это цена, не экзамен); «консистентность держится» — единогласие ≥5/6 однонаправленных решений в A2; «оговорка работает» — метаязыковый пассаж передан по смыслу при законе+оговорке И сломан при законе-без-оговорки; «оговорка ТЕЧЁТ» — ≥2/6 отклонений от закона в обычных окнах с оговоркой ⇒ формулировку сузить и пере-гнать ТОТ арм, где зафиксирован leakage (в потолке); A5 — «X из Y» по классам, порога нет (первый замер). Средние исходы (ровно 4/6 и т.п.) — «неопределённо на N=6», печатать, не абсорбировать.
## §B. Кандидат-редакции заголовков (для пробы; в движок — строка 134 ПОСЛЕ пробы)
Единый закон-блок редактора вместо двухсекционки (обе секции читаются одинаково ⇒ секция одна; статус строк для владельца живёт в подписной таблице, НЕ на проводе): заголовок на базе текущего `editor_header` (`injection.txt`) + оговорка области: «…; глоссарий обязателен для употреблений термина КАК термина: игру слов, разбор знаков, буквальное прочтение передавай по смыслу пассажа, сохраняя узнаваемость канонической формы». Маркер ⟨проверить⟩ на проводе НЕ рендерится (пуст поведенчески — research/24 §C; минус токены). Транслятор-заголовок — та же логика (закон + оговорка области, без слова «неподтверждённые»). Точные тексты зафиксируй пре-регом; расхождение с этим эскизом — девиация с обоснованием. `editor.md` НЕ править: строка «СТРОГО по приведённому глоссарию» остаётся как есть (противоречие снимает новый заголовок, не правка промпта).
## §C. Проба C — фронтир-пасс по голду («go» дан — D39.103 п.3; потолок $0.50)
Data-sharing на ключе OpenAI отключён (слово владельца, D39.103 п.3). Цены ТОЛЬКО с прайс-страницы вендора — напечатать в отчёт и пинг. Вопрос: «сколько докупает ум» — фронтир-модель тем же терминолог-протоколом, что research/24 §B3 (`consilium_probe.py`, 63 строки, 5 батчей), против чемпиона glm-5 25/45. Кандидаты: **deepseek-v4-pro** (сильнейший DeepSeek ростера) + 12 свежих фронтира OpenAI, названных владельцем («терра»/«луна» — на слух НЕ верить: слаги ТОЛЬКО live `/models`; слаг однозначно не опознан → СТОП+релей, не гадать). Пре-рег: «фронтир оправдан для роли», если парно ≥ +5 к glm-5 на 45 голд-термах И цена/книга (методика §B5 research/24) названа; меньше — «не оправдан» (легитимно). Сырьё персистить как пассы.
## §D. Отчёт и СТОП
`docs/experiments/18-editor-wire-probe.md`: пре-реги дословно · таблицы по армам со знаменателями · вскрытые глазами единицы (по одной с каждой стороны минимум) · деньги · «заявление = команда» · критик полноты · адверсариальный проход author≠reviewer (соло-самопроверка платные пробы не закрывает, норма 01.08). Краткий пинг — PROGRESS «Полигон» СВЕРХУ. Самопроверка исполнением ОБЯЗАТЕЛЬНА (свой код + сформированные запросы + результаты — D37). **СТОП — приёмка оркестратора.**

View file

@ -1,7 +1,7 @@
# Журнал прогресса
> **⟶ ТЕКУЩЕЕ СОСТОЯНИЕ** (на 2026-08-04, голова D39.101; сессия оркестратора №12 ЗАКРЫТА — передача №13).
> - **ПЕРЕДАЧА №12 → №13 (D39.101, 04.08) — задача (i) ИСПОЛНЕНА: приёмка банк-арбитража ЗАВЕРШЕНА (D39.102, 04.08).** research/24 + харнесс + черновик ПРИНЯТЫ и залендены; все числа чисты пере-раном (12-агентный воркфлоу 8/8 CONFIRMED · 23/23 адресов §A по HEAD · деньги из сырья $0.107334 ≈ леджер; расхождение пинга = склейка инкрементов C+E — маркер в «Полигоне»); строки 128132 заведены (фикс-пак банка 128 — ГЕЙТ подписи владельца), строка 5 пере-скоуплена (консилиум закрыт классом; остаток — рецензент спорных кластеров при ре-пробе 74); **4 вопроса владельцу — D39.102 п.4**. Дальше бэкенд-очередь: промт пака экрана 46 (D39.94 п.3: фикстура 113 ПЕРВОЙ, денежный шаг ТОЛЬКО с подписью владельца) · малый пак tools/go.mod (строка 118, D39.97 п.4) · блокеры контракта 99/100/101/103/125. **Вахта deepseek-v4-pro: триггер «>05.08» НАСТУПАЕТ** — при аномалии редакторского арма пере-проба + вендор-changelog (реестр 108; `medium` на DeepSeek не ставить). Открыто на владельце: 116 (порог подан) · мини-проба 44 «low+16k» (~$0.05) · подпись денежного шага 46 · лист В-3+К-6 (фразы замечаний) · запуск S3 (первым шагом правки спеки D39.100) · **4 вопроса банка (D39.102 п.4: мини-голд алиасов · «Гуюэ» слитно = пар-норма? · проба редакторского провода ~$0.05 · промт фикс-пака 128)**. **P0 ОТРАБОТАЛА к моменту передачи**: отчёт + дизайн-ответы К-4/К-7/К-12/П-5 предложениями — `platform/docs/platform-PROGRESS.md` (батарея зелёная, healthz/readyz против живого Postgres 18.4 — со слов журнала, НЕ перепроверено); живое дерево `platform/*` целиком, включая модифицированный `go.mod`, ждёт **ПРИЁМКИ №13** — не трогать и не заметать коммитом; там же ТРИ открытых вопроса, один — ВЛАДЕЛЬЦУ (авто-резюме `paused` после сброса лимитов). Вопросы владельцу из отчёта банка ПОДНЯТЫ приёмкой (D39.102 п.4).
> - **ПЕРЕДАЧА №12 → №13 (D39.101, 04.08) — задача (i) ИСПОЛНЕНА: приёмка банк-арбитража ЗАВЕРШЕНА (D39.102, 04.08).** research/24 + харнесс + черновик ПРИНЯТЫ и залендены; все числа чисты пере-раном (12-агентный воркфлоу 8/8 CONFIRMED · 23/23 адресов §A по HEAD · деньги из сырья $0.107334 ≈ леджер; расхождение пинга = склейка инкрементов C+E — маркер в «Полигоне»); строки 128132 заведены (фикс-пак банка 128 — ГЕЙТ подписи владельца), строка 5 пере-скоуплена (консилиум закрыт классом; остаток — рецензент спорных кластеров при ре-пробе 74); **4 вопроса владельцу — D39.102 п.4**. Дальше бэкенд-очередь: промт пака экрана 46 (D39.94 п.3: фикстура 113 ПЕРВОЙ, денежный шаг ТОЛЬКО с подписью владельца) · малый пак tools/go.mod (строка 118, D39.97 п.4) · блокеры контракта 99/100/101/103/125. **Вахта deepseek-v4-pro: триггер «>05.08» НАСТУПАЕТ** — при аномалии редакторского арма пере-проба + вендор-changelog (реестр 108; `medium` на DeepSeek не ставить). Открыто на владельце: 116 (порог подан) · мини-проба 44 «low+16k» (~$0.05) · подпись денежного шага 46 · лист В-3+К-6 (фразы замечаний) · запуск S3 (первым шагом правки спеки D39.100) · **вопросы банка ЗАКРЫТЫ ВСЕ (D39.103/104): (i) алиасы отложены до длинного прогона · (ii) «Гуюэ» = не чинить, канал сида (фикс-пак 128 обязателен) · (iii)/(iv) промты ВЫДАНЫ · фронтир-«go» дан (§C пробы, ≤$0.50) · ДОКТРИНА ИНЖЕКТА ратифицирована (D39.104: закон везде по статусу + оговорка области; дата-правка заголовков = строка 134 после пробы)**. **P0 ОТРАБОТАЛА к моменту передачи**: отчёт + дизайн-ответы К-4/К-7/К-12/П-5 предложениями — `platform/docs/platform-PROGRESS.md` (батарея зелёная, healthz/readyz против живого Postgres 18.4 — со слов журнала, НЕ перепроверено); живое дерево `platform/*` целиком, включая модифицированный `go.mod`, ждёт **ПРИЁМКИ №13** — не трогать и не заметать коммитом; там же ТРИ открытых вопроса, один — ВЛАДЕЛЬЦУ (авто-резюме `paused` после сброса лимитов). Вопросы владельцу из отчёта банка ПОДНЯТЫ приёмкой (D39.102 п.4).
> - **Сессия №12 (0304.08) — закрыта, всё принято и заленжено:** пак стандартов + дофикс archguard (D39.96/97: `.golangci.yml` 0 issues · `make battery` = единая точка входа · tmvet/archguard 38 посадок, 9/9 мутаций · x/net 0.57 живой пробой PASS 3/3 · конфиги 112 → **платные прогоны разблокированы**) · фронт S2 + дофикс по ревью (D39.98) · **контракт API v0, форма OpenAPI 3.1, строка 95 закрыта** (D39.99: три пасса приёмки, 19/19 находок вправлено, типы фронта ГЕНЕРЯТСЯ из спеки) · решения владельца К-1/К-8(→ПТ-35/П-5)/К-5/К-6/К-3 + **платформа открыта промтом P0** (D39.100) · git-канон v2 «коммитит только оркестратор» разнесён по носителям (D39.98). Лендинги: `e8d4ac0``0e64efe` (бэкенд, 7 коммитов) · `02872b6``94a24b7` (фронт/контракт/платформа/доки, 9).
> - **Сделано (сводно; детали — D-лог и архив-слайсы):** Ф0 ✅ · Ф1-инфра ✅ · арх-ресет D39 (7 слоёв, паки 1116) ✅ · паки 17 «канал B» · 18 «долги» · 19 «голос/состояние» · 20 «банк+терминолог» ✅ (D39.2628/31/4156) · мини-прогон (D39.37) и ХОЛОДНЫЙ прогон (D39.58: recall банка 0.918/0.980, банк приходит переведённым) приняты · полигон-пакеты 58, ToS-речек (D39.57), Р6+P4 (D39.61) закрыты · **карта языковой привязки движка (D39.60): 149 сайтов/45 файлов, книго-ось чиста (4), ja→ru безопасно без правки Go, en→ru — нет** · Р1Р4 закрыты целиком (D39.63: Р2 = ЗНАЧЕНИЕ, Р4 = норма потолка recall) · **ФАЗА 2 ОБЩНОСТИ ✅ (D39.64: П0 эмбед-хеш · П1 цель-шов · П2 скрипт-шов, ko-баг закрыт · П3 нарезка · П4 манифест-по-каналам; голден вердикт-нейтрален 0/172, майнер-парити EXACT)** · жанровый словарь отменён как класс (D39.47) · петля ремонта построена и НЕ включена (D39.38).
> - **Курс:** ОБЩНОСТЬ ✅ → КАЧЕСТВО БАНКА ✅ → ПАКЕТ-ЧЕКЕРОВ ✅ (D39.5978) → **ФРОНТ-ЭРА открыта** (D39.81100: зоны `frontend/`+`platform/` живые, контракт API ратифицирован). Развилка блокера 0731 решена вариантом (б) и ИСПОЛНЕНА (D39.87/91: `reasoning_effort:"low"` черновику + ручка эффорта бэнк-ролям, код `553f1a3`); отладочный прогон C не стартовал ⇒ **строка 16 жива и оси голоса 13б без данных**; пак экрана 46 — дизайн заморожен (D39.92 п.1 + D39.93), промт ждёт выдачи; coldrun-b фаза C заморожена чекпойнтом — легитимный исход (D39.86); эталон денег/поведения — coldrun-a (read-only). Числа и хроника закрытых паков — D-лог D39.7997, сюда НЕ дублируются.
@ -75,11 +75,12 @@
| 48 | Направленная банкнота — вернуться по замеру покрытия терминолога | бэкенд | когда-нибудь | отдельное решение | D39.42 |
| 48а | **Серийный шаринг банка** — РЕАЛИЗАЦИЯ (экспорт подписанного глоссария как сид-YAML следующей книги серии; спойлер-окна плющатся в since_ch=0); контракт round-trip держится тестом, самой фичи нет | бэкенд | когда-нибудь (перед второй книгой серии) | отдельное решение | D39.42 задел (а), PACK20_BANK_BUILD З-а |
| 48б | **Импорт «оригинал + чужой перевод» как режим данных терминолога** (target-агностичный вход есть контрактом; сам режим + провенанс источника + юр-сторона в юр-пакете) | бэкенд/владелец | когда-нибудь | отдельное решение + Ф2.5 (юр) | D39.42 задел (б), PACK20_BANK_BUILD З-б |
| 128 | **Фикс-пак банка (вход §G research/24, класс D39.71):** G1 семейный со-батч из ПАР-ДАННЫХ (имя=префикс/реалия=суффикс, без транзитивности, серия сильнее семьи; + многорунные модификаторы серий — 十一转 рвёт со-батч равнодлинности на ранге 11; + майнерские containment-пары в один юнит) · G2 intra-run `ConsolidationConflicts` ($0; 18/149 на живом банке) · G3 наблюдаемость (Signals/Invented/Conf в стоп-таблицу · ловушка числового хвоста ParseReply · alias-джойн подписной карты `miner_emit.go:242` — владелец подписывает, не видя alias-рендерингов · имена эвиктнутых при NEvicted · per-batch спросили/ответили + WARN на пустой ответ батча/классификатора) · G5 счёт голосов по нормализованной форме + Via-провенанс фолда (первый-выигрывает врёт на wire) · опции: перф 37 (Aho-Corasick в membank готов) · гигиена (мёртвая колонка `BanknoteTruncated` + стейл-комменты · NoDst-префикс-матч для латиница-target). Цена фолда: перекупка бэнк-батчей один раз (центы), волны/снапшоты не двигаются; G2/G3 — evidence-сторона, вне снапшота | бэкенд | скоро (ГЕЙТ: подпись владельца — вопрос №4 D39.102 п.4) | фикс-пак одним промтом | D39.102, research/24 §G |
| 128 | **Фикс-пак банка (вход §G research/24, класс D39.71):** G1 семейный со-батч из ПАР-ДАННЫХ (имя=префикс/реалия=суффикс, без транзитивности, серия сильнее семьи; + многорунные модификаторы серий — 十一转 рвёт со-батч равнодлинности на ранге 11; + майнерские containment-пары в один юнит) · G2 intra-run `ConsolidationConflicts` ($0; 18/149 на живом банке) · G3 наблюдаемость (Signals/Invented/Conf в стоп-таблицу · ловушка числового хвоста ParseReply · alias-джойн подписной карты `miner_emit.go:242` — владелец подписывает, не видя alias-рендерингов · имена эвиктнутых при NEvicted · per-batch спросили/ответили + WARN на пустой ответ батча/классификатора) · G5 счёт голосов по нормализованной форме + Via-провенанс фолда (первый-выигрывает врёт на wire) · опции: перф 37 (Aho-Corasick в membank готов) · гигиена (мёртвая колонка `BanknoteTruncated` + стейл-комменты · NoDst-префикс-матч для латиница-target). Цена фолда: перекупка бэнк-батчей один раз (центы), волны/снапшоты не двигаются; вне снапшота — G2 и печать (G5 двигает wire, аудит промта) | бэкенд | **скоро — САНКЦИОНИРОВАН владельцем 04.08 (D39.103 п.1), ПРОМТ ВЫДАН** (`docs/BACKEND_BANK_CLUSTER_FIXPACK_SESSION_PROMPT.md`) | фикс-пак одним промтом | D39.102, D39.103, research/24 §G |
| 129 | **Банкнота-парсер теряет хвост многословного dst** (находка приёмки №13 против клейма A10): `banknote.go:236` берёт `parts[1]` голым при 3-польном формате — «Фан Юань» с двойным пробелом банкует полу-имя «Фан», хвост уезжает в колонку типа и падает в `"term"`; ре-джойн терминолога (`terminology.go:880-885`) ровно этот класс чинит с комментарием. Фикс = ре-джойн середины при последнем поле ∈ закрытому словарю типов; двигает observed → авто-банк (memory_version там, где случай реален) — цену назвать при выдаче | бэкенд | скоро (хвостом 128 либо отдельно) | малое касание | D39.102 п.3 |
| 130 | **emitRankCap × writeAutoBank: терм, выпавший из топ-200, МОЛЧА стирается из авто-банка посреди книги**`miner_emit.go:119-123` кап ДО эмиссионных фильтров (seed/rejects слотов НЕ освобождают — исключаются после капа), `mining.go:448-460` перезапись файла целиком без мерджа против «накопительного» замысла пака-20; оплаченная консолидация теряется, редактор теряет ⟨проверить⟩-constraint без сигнала; FL-3 ратифицирован ДО авто-провода D39.42 — взаимодействие не ратифицировалось. Минимум $0 = дифф старого/нового авто-файла + WARN с именами; накопительный мердж/освобождение слотов — СТОП-решение (двигает банк → memory_version) | бэкенд | скоро | $0-минимум + СТОП-решение | D39.102 п.3 |
| 131 | **Кап инъекции не считает маркер и гендер-ноты**: `glossaryLineTokens` бюджетирует только «src → dst» (`memory.go:512-515` против рендера `:698-708`) — авто-книга (все строки Ambiguous с ⟨проверить⟩) превышает `glossary_token_budget` ~на 4060% при budget 800; биллинг/потолки компенсированы (резервация по фактическому рендеру, `stagerun.go:469-477`), сам кап не исполняется. Фикс двигает состав инъекций → RequestHash → перекупка волн ⇒ СТОП-решение с названной ценой | бэкенд | когда-нибудь | СТОП-решение | D39.102 п.3 |
| 132 | **Стойкий (пост-ретрайный) аутедж ТОЛЬКО банк-провайдера валит весь ран** вопреки коммент-контракту «optional step never aborts» (`terminologist.go:630-634` — деградация только на ceiling; транспортные ретраи гасят transient, `httpllm.go:126-160`; потерь нет — чекпойнты реплеятся за $0): решить — деградировать в «термы неконсолидированы»+WARN либо честно переписать коммент | бэкенд | когда-нибудь | малое касание через СТОП-решение | D39.102 п.3 |
| 134 | **Дата-правка инжект-заголовков под доктрину D39.105** (единый закон-блок редактора вместо двухсекционки · оговорка ОБЛАСТИ употребления · снятие маркера ⟨проверить⟩ с провода; статусы строк и подписная таблица НЕ меняются): кандидат-тексты — §B промта пробы 18; вносить ПОСЛЕ отчёта пробы (двигает рендер → RequestHash → перекупка, цену назвать при внесении) | бэкенд | скоро (ГЕЙТ: отчёт пробы 18) | малое касание | D39.104 п.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-шаги миграций v8v14 не идемпотентны вопреки шапке `migrate.go:9-11`** (полу-применённая БД не сходится; счётчик версий скрывает) — находка критика полноты пака-19 | бэкенд | когда-нибудь | отдельное решение | D39.56, PACK19_BUILD §6.9 |
| 50 | F3-остаток идемпотентности | бэкенд | когда-нибудь | отдельное решение | D39.34(4) |

View file

@ -15,7 +15,7 @@
- `experiments/` — эмпирика полигона: [00-provider-quirks.md](experiments/00-provider-quirks.md) — **читать перед любым вызовом провайдера**; [08-cost-model-v2.md](experiments/08-cost-model-v2.md) — денежная модель; [09-pilot-protocol.md](experiments/09-pilot-protocol.md) — пилот Ф2.5; остальные 0116 — отчёты закрытых экспериментов (судьба — в баннерах/D-логе).
- `research/` — фактура ресёрчей 0124; у принятых — ревью-шапки, часть тел под ⚠ superseded: **читай баннер прежде содержимого**. Ключевые для навигации: 15 голос · 16 ридер-IDE · 17 внешняя критика · 18 рычаги качества · 19 нарезка · 20 банк-майнинг · 21 обзор транспорта · 22 доменные харнессы · 23 шов движок↔платформа (читать перед любым кодом стыка) · 24 арбитраж банка (ПРИНЯТ D39.102: консилиум закрыт классом, вход фикс-пака банка — §G).
- [PROGRESS.md](PROGRESS.md) — журнал: CURRENT-STATE + **ЕДИНЫЙ БЭКЛОГ** (единственный трекер) + живой хвост хроники. НЕ источник решений.
- Активные хендофф-промты сессий (состав обновляется при каждом лендинге — норма D39.80): [ORCHESTRATOR_SESSION_PROMPT.md](ORCHESTRATOR_SESSION_PROMPT.md) (роль/нормы; состояния не дублирует) · [POLYGON_PACKAGE4_SESSION_PROMPT.md](POLYGON_PACKAGE4_SESSION_PROMPT.md) (полигон, отложен) · **платформа: [../platform/docs/PLATFORM_SESSION_PROMPT.md](../platform/docs/PLATFORM_SESSION_PROMPT.md) (P0 ИСПОЛНЕН 04.08 — ждёт приёмки №13, D39.101 п.3-iv; дерево `platform/*` не залендено, не трогать)** · фронт: `frontend/docs/S3_SESSION_PROMPT.md` (замок ОТКРЫТ — контракт ратифицирован D39.99; первый шаг — правки спеки по D39.100). Зонные журналы фронта/платформы — `frontend-PROGRESS.md` / `platform-PROGRESS.md` в их зонах (решение владельца 04.08: прогресс зон только там). **Бэкендного активного промта НЕТ** — пак стандартов + дофикс archguard исполнены, приняты и залендены (D39.96/97, 04.08; промты в `archive/prompts/`); следующие бэкендные: пак экрана 46 (промт ждёт выдачи по D39.94 п.3) и малый пак tools/go.mod (строка 118, D39.97 п.4). Банк-арбитраж: исполнен, ПРИНЯТ и заленден (D39.102, 04.08); следующий бэнк-шаг — фикс-пак строки 128 (ГЕЙТ: подпись владельца, D39.102 п.4).
- Активные хендофф-промты сессий (состав обновляется при каждом лендинге — норма D39.80): [ORCHESTRATOR_SESSION_PROMPT.md](ORCHESTRATOR_SESSION_PROMPT.md) (роль/нормы; состояния не дублирует) · [POLYGON_PACKAGE4_SESSION_PROMPT.md](POLYGON_PACKAGE4_SESSION_PROMPT.md) (полигон, отложен) · **платформа: [../platform/docs/PLATFORM_SESSION_PROMPT.md](../platform/docs/PLATFORM_SESSION_PROMPT.md) (P0 ИСПОЛНЕН 04.08 — ждёт приёмки №13, D39.101 п.3-iv; дерево `platform/*` не залендено, не трогать)** · фронт: `frontend/docs/S3_SESSION_PROMPT.md` (замок ОТКРЫТ — контракт ратифицирован D39.99; первый шаг — правки спеки по D39.100). Зонные журналы фронта/платформы — `frontend-PROGRESS.md` / `platform-PROGRESS.md` в их зонах (решение владельца 04.08: прогресс зон только там). **Бэкенд: [BACKEND_BANK_CLUSTER_FIXPACK_SESSION_PROMPT.md](BACKEND_BANK_CLUSTER_FIXPACK_SESSION_PROMPT.md)** (фикс-пак банка, строка 128+129; санкция D39.103) · **Полигон: [POLYGON_EDITOR_WIRE_PROBE_SESSION_PROMPT.md](POLYGON_EDITOR_WIRE_PROBE_SESSION_PROMPT.md)** (редактор под доктриной закона D39.104 ≤$0.30 + фронтир-пасс ≤$0.50, «go» дан). Следующие бэкендные в очереди: пак экрана 46 (промт ждёт выдачи по D39.94 п.3) и малый пак tools/go.mod (строка 118, D39.97 п.4). Банк-арбитраж: исполнен, ПРИНЯТ и заленден (D39.102, 04.08).
- Зоны фронта (чужие, читать при касании стыка; каждая ведёт СВОЙ зонный бэклог — единый бэклог их строк не принимает, D39.84): [../frontend/](../frontend/) — веб-интерфейс: промт фронт-сессий S0S7 + [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..П-5) + `docs/` (промт P0 · зонный журнал `platform-PROGRESS.md`).
- `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).

View file

@ -1479,3 +1479,23 @@ API-529-долг закрыт: 8-осевой refute-by-default воркфлоу
**4. Вопросы владельцу** (подняты отчётом, приёмка подтверждает): (i) мини-голд алиасов §E-1 research/20 (висит с 17.07) — делать?; (ii) «Гуюэ» слитно — пар-норма Палладия для составных фамилий (данные класса Z-B3, чинит 8/45) или вкус книги (канал — сид)?; (iii) санкция пробы редакторского провода двухсекционки (~$0.05); (iv) выдать промт фикс-пака 128 одним паком (перекупка бэнк-батчей — центы)? Рекомендация оркестратора: (ii) пар-норма и (iv) да.
**5. Гигиена лендинга:** путь промта в шапке research/24 → архив; аннотации приёмки в §A4/§D; пинг «Полигон» получил закрывающий маркер с поправкой арифметики; README/CURRENT-STATE актуализированы; `platform/*` не тронуто; сырьё (84 json) сверено sha256-манифестом до/после пере-ранов — байт-нетронуто; `gold.jsonl`/`forms_dump.json` пере-раном воспроизведены байт-в-байт.
## D39.103 — РЕШЕНИЯ ВЛАДЕЛЬЦА 04.08 (приёмка №13): фикс-пак 128 санкционирован, проба редакторского провода санкционирована, фронтир-«go» дан, алиасы отложены; ДВА ПРОМТА ВЫДАНЫ (04.08). ✅
**1. Фикс-пак банка (строка 128) САНКЦИОНИРОВАН** — гейт вопроса №4 D39.102 п.4 снят. Промт `docs/BACKEND_BANK_CLUSTER_FIXPACK_SESSION_PROMPT.md` ($0-пак; холодный аудит перед выдачей: 34 опоры подтверждены, 8 дефектов вправлено). Эффект верифицируется следующим холодным прогоном — план верификации обязателен в отчёте пака.
**2. Проба редакторского провода САНКЦИОНИРОВАНА** — промт `docs/POLYGON_EDITOR_WIRE_PROBE_SESSION_PROMPT.md` (≤$0.30; аудит перед выдачей: 17 опор, 9 дефектов вправлено). Армы: изолированный контроль без блока (его не было никогда) · закон · цена неверного закона · метаязыковое окно (оговорка области + leakage) · посаженные дефекты черновика «исправлено X из Y» + межоконная консистентность. Уточнение к экспам: rerun2/мини-прогон гоняли edit-волну с ЖИВЫМ канон-блоком; не было изолированного контроля и двухсекционки в платной волне.
**3. Фронтир-пасс: «go» ДАН** (data-sharing на ключе OpenAI отключён — слово владельца; ≤$0.50). Кандидаты: deepseek-v4-pro + свежие OpenAI, названные владельцем как «терра»/«луна» — слаги/цены ТОЛЬКО live-фактчеком, цены в отчёт и пинг.
**4. Мини-голд алиасов (§E-1): ОТЛОЖЕН до первого длинного прогона** (на 10-глав стенде фарм тощий) — вопрос (i) D39.102 п.4 закрыт.
**5. Находка диалога:** противоречие инструкций редактора — `editor.md:7` «СТРОГО по приведённому глоссарию» против `editor_unverified_header` «вправе перевести иначе». Снято доктриной D39.104.
## D39.104 — ДОКТРИНА ИНЖЕКТА РАТИФИЦИРОВАНА: банк на проводе — ЗАКОН для всех ролей независимо от статуса строки; свобода — только по ОБЛАСТИ употребления; «Гуюэ» закрыт (04.08). ✅
**1. Доктрина** (слова владельца: «надо давать везде одинаково; если кто-то ошибся — это уровнем выше»; финал — «фиксируем так»): банк на проводе = ЗАКОН для всех ролей, независимо от статуса строки; право «перевести иначе, если сомнительно» УПРАЗДНЕНО — это канал разнобоя между параллельными главами по построению, а настоящие юзкейсы свободы (игра слов · разбор знаков · буквальное не-терминное прочтение) от статуса строки не зависят и получают узкую оговорку ОБЛАСТИ употребления, действующую на все строки одинаково. **Принятая цена:** неверная авто-строка едет консистентно до ревью (чинится одной правкой банка + ре-эдитом; разнобой не чинится ничем). **Остаточный риск:** оговорка как лазейка — под leakage-метрикой пробы. Инвариант D39.42 §C2-7 не задет: статусы draft/auto и подписная таблица не меняются — доктрина о ПРОВОДЕ. Ошибки чинятся уровнем выше (терминолог+гейты+подпись) ⇒ фикс-пак 128 — главный рычаг качества банка.
**2. Форма на проводе:** единый закон-блок редактора вместо двухсекционки; маркер ⟨проверить⟩ с провода снимается (поведенчески пуст — research/24 §C; минус токены); транслятор-заголовок — та же логика. Кандидат-тексты — §B промта пробы; внесение в движок — **строка 134** ПОСЛЕ отчёта пробы (двигает рендер → RequestHash → перекупка, цену назвать при внесении).
**3. «Гуюэ» (вопрос (ii) D39.102) ЗАКРЫТ: не чинить** — расхождение с голдом = вкус, канал сида; конвенцию в проде держит сам банк инжектом; ру-специфика этого класса на голде ровно одна (замер research/24 §F1) ⇒ отдельный аудит транскрипционных правил не заводится. Зависимость принята владельцем: **фикс-пак 128 обязателен** — без него авто-банк даёт не конвенцию, а химеру.