Give the polygon zone one prompt instead of three: the cold run takes the slot, the two older packs carry parking banners

This commit is contained in:
heaven 2026-09-11 03:16:33 +03:00
parent 4ce1f67e2b
commit c3a3ee904d
3 changed files with 285 additions and 0 deletions

View file

@ -0,0 +1,269 @@
# Промт: полигон-пак «ХОЛОДНЫЙ ПРОГОН A — от двери до ФАЙЛА, настоящая книга, настоящие деньги»
## 1. Какая проблема и что решит твой результат
Мы построили весь путь: гость заводит книгу → платформа берёт деньги в холд → движок переводит → человек
подписывает банк терминов → редакторская волна → выгрузка → файл. **Каждый кусок предъявлен по отдельности.
Книги, прошедшей его ЦЕЛИКОМ до конца, не было ни разу.** Это строка бэклога **16** дословно: «цена
ДОВЕДЁННОЙ ДО КОНЦА книги не измерена». Ближайшая попытка — 04.09 — дошла до скачанного EPUB, но упёрлась в
денежный потолок и до `exports.complete = true` не добралась.
**Твой результат:** одна настоящая книга (3 главы zh→ru) проведена от двери до файла, открытого человеком, и
**у каждого узла пути напечатано, ЧЕМ он предъявлен** — по трём независимым следам, а не по самоотчёту
движка. Плюс честный список того, что на этом пути сломано: прогон **ничего не чинит**, он только называет.
Зачем это сейчас: мы собираемся размораживать фронт и звать людей. Сегодня никто в проекте не может
ответить, что именно увидит первый гость, — и ни один трекер этого не знает, потому что знание такого рода
добывается только прохождением.
## 2. Зона записи и git
**Зона: `eval/` + `docs/experiments/`**, пинг оркестратору — секция «Полигон» в `docs/PROGRESS.md`.
**Сессия НЕ коммитит — КРОМЕ пре-рег-фризов**, и это единственное исключение во всём проекте (право
полигона). Фриз-коммит объявляется оркестратору ВСЛУХ до коммита. Канон git — `CLAUDE.md`
§«Git-координация мультисессий»: никаких `git add -A`, `reset --hard`, `checkout` поверх грязного дерева.
**`backend/` и `platform/` — ЧИТАТЬ, не править.** Соблазн будет: чтобы прогон поехал, не хватает
артефакта и, возможно, конфига. Класть их надо **в worktree-копию** (см. §4.2), а не в главное дерево —
`backend/.gitignore` знает только `/tmctl /tmvet /tmmutate`, всё остальное там станет untracked-мусором и
сломает фриз. `.env` **не читать** (гардрейл), путь к ключам передаётся переменной, см. §4.2.
⚠ Что должно пережить рестарт — в РЕПОЗИТОРИЙ, а не в скретчпад: скретчпад чистит не только твой процесс.
## 3. Карта чтения — ЗАКОН, дальше только по её ссылкам
1. `CLAUDE.md` — цели владельца и гардрейлы.
2. `docs/experiments/09-pilot-protocol.md` + `eval/README.md` — как устроена полигон-зона и пре-регистрация.
3. `docs/experiments/00-provider-quirks.md`**оплаченные** провайдерские факты; читать ДО первого платного
вызова. Цены и окна — греп `ПИК DEEPSEEK`.
4. `platform/docs/STACK_DECISIONS.md` §«Стенд разработчика» — рецепт подъёма стенда и инвентарь каналов шва.
5. Строки бэклога **16** и **224** (`docs/BACKLOG.md`, греп `^| N |`).
**Ратифицированное и замеренное, что нужно для работы (в теле промта, не искать):**
- **`D39.144`** — банк подписывается ВЕСЬ ОДНИМ ОК; резюм снимает стоп при ЛЮБОМ состоянии решений.
- **`D39.178`** — сборка выгрузки идёт `--partial`: **книга с дырами всё равно соберётся и откроется.**
Это ратифицировано и правильно — и это же главный способ, которым твой прогон может соврать (§5.1).
- **`D39.194` п.1** — цикл замкнут живьём 04.09, EPUB прошёл `epubcheck` 5.3.0; до `complete=true` не дошли.
- **Претрейн:** 蛊真人 узнаётся моделями 4 из 5. ⇒ **пак НЕ делает никаких утверждений о КАЧЕСТВЕ перевода.**
Узлы судятся механизмом — кадрами, флагами, леджером, — а не чтением текста. Это не осторожность, а
условие осмысленности: на знакомом моделям тексте суждение о качестве стоит ноль.
- **Норма денег полигона:** «не влезает в бюджет — СТОП и пинг, не резать молча». Подъём потолка просят при
СРАБАТЫВАНИИ стопа, а не по проекции: прогнозный запрос оставляет ложный след «владелец согласился на
пере-оплату», которой не было. ⚠ Носитель нормы — ролевой промт оркестратора; **ссылку на `D39.108` п.1 я
снял 11.09, пере-проверив: в теле ноты этой формулировки НЕТ** (нота — приёмка экспов 18/19/20). Норма
действует, атрибуция была ложной.
- **Живость длинного платного прогона проверяется АКТИВНО:** один вызов редактора законно идёт до ~21 минуты
(`attempt_max_s: 1240`). Сторожи по РОСТУ `events.jsonl` и числу строк `request_log`, а не по ожиданию
финального уведомления: зависшая задача от идущей неотличима по молчанию.
**Какие полигонные нормы здесь НЕ действуют и почему.** «Арм без фактора · дедуп + декой · пороги
различимости · запрет судьи-родственника» — это нормы СРАВНИТЕЛЬНОГО замера. Твой пак сравнением не
является: в нём одна рука, нет судейской линзы и нет слепого чтения. Поэтому вместо них действует
пре-регистрация ОЖИДАЕМЫХ ИСХОДОВ (§4.3) — она играет ту же роль: не даёт прочитать «ноль ошибок» как успех.
Не согласен — скажи с доводом, это законный ход.
## 4. Состав: четыре фазы. Порядок ЖЁСТКИЙ, содержимое — по разметке внутри
### 4.0 Фаза 0 — $0-ДЫМ ПО ЗАГЛУШКЕ. **Делай РОВНО так, и это первая работа пака**
**Ни одного платного вызова, пока дым не прошёл целиком.** Дым гоняет ТОТ ЖЕ драйвер и ТЕ ЖЕ сборщики
следов, что и платная фаза, но на заглушке провайдера (`~/tm-p9-work/fake_provider.py`; Go-порт —
`backend/internal/pipeline/translate_resnapshot_live_test.go`, греп `fake`; рецепт пайплайна на
`local-qwen3-8b``platform/docs/STACK_DECISIONS.md` §«Стенд разработчика»).
Что дым обязан доказать ДО денег: стенд поднят и порт отвечает ТВОЕМУ pid · гость заведён · книга принята ·
прогон стартовал · кадры доехали · узел подписи ответил · резюм прошёл · **выгрузка собралась и файл
скачался** · все три сборщика следов печатают то, что обещали. Дым идёт на ОТДЕЛЬНОЙ книге и отдельной
базе — платная книга обязана быть первой в своей.
⚠ Дым на заглушке **вырождает сами узлы** (майнинг, гейты, банк): на заглушечной прозе банку неоткуда взяться.
Это ожидаемо. Дым проверяет ТРУБУ, а не содержимое; содержимое проверяет фаза 2.
### 4.1 Предусловия стенда — **делай РОВНО так; список замерен 11.09, пере-проверь каждое**
Каждое из них СЕГОДНЯ не выполнено, и каждое способно сжечь «холодность» платной книги:
1. ⛔ **Артефакта контраста майнинга нет ни одного на файловой системе.** `CheckMiningContrast` откажет на
старте `translate` — это $0, но останется `failed`-прогон, а следующий старт той же книги пойдёт уже как
ПРОДОЛЖЕНИЕ, и книга перестанет быть холодной. Рецепт и пин — `docs/experiments/16-bank-mining.md:183`:
jieba 0.42.1 `dict.txt`, sha256 `7197c3211ddd98962b036cdf40324d1ea2bfaa12bd028e68faa70111a88e12a8`
(вне git по построению, воспроизводим; строка бэклога **251** — живое подтверждение, что на этой машине
его нет). ⚠ **Ловушка имени:** в конфигах путь называется `mining-contrast.zh.txt`
(`backend/configs/pipeline-c1.yaml:139`) и резолвится ОТ КАТАЛОГА `pipeline.yaml`, а источник артефакта
зовётся `jieba_dict_general_zh.txt` — это один файл под двумя именами, и греп по слову `contrast` в
доке его не находит: там он по-русски. Сверяй sha, а не имя.
2. `eval/.venv` не существует, jieba не установлен.
3. Кластер Postgres опущен (`~/.local/pgsql/bin/pg_ctl`, данные в `~/.local/share/tmstand/pgdata`, порт
55433). ⛔ **Кластер НЕ сносить и чужие базы не трогать:** в нём лежат данные платного прогона 04.09.
Заводи СВОЮ базу.
4. `epubcheck`/`java` на хосте нет — а валидатор скачанного файла нужен. Поставь ДО фриза и назови в пре-реге
(версию — числом).
5. Порт может отвечать ЧУЖИМ процессом (`PD-447`): опознавай стенд по pid-на-порту, а не по ответу.
6. На диске есть СТАРЫЕ стендовые копии `tmctl` (`PD-432`) — годится только бинарь из §4.2.
### 4.2 Фриз — **делай РОВНО так**
**Фриз = sha коммита ПЛЮС бинари, собранные из `git worktree add <путь> <sha>`.** Замер 11.09: сборка из
главного дерева даёт `vcs.modified=true` от ОДНОГО untracked-файла — то есть главное дерево негодный
источник. Драйвер перед каждым платным шагом печатает `go version -m` обоих бинарей и **ОТКАЗЫВАЕТ**, если
`vcs.modified=true` или revision ≠ фриз-sha. Артефакты (контраст, шаблоны) класть в worktree ПОСЛЕ сборки.
**В фриз-коммит идут:** `docs/experiments/24-<имя>.md` — пре-рег с таблицей ожидаемых исходов (§4.3), sha256
среза книги, список глав с `units_total` (снято $0 до фриза), провайдер и пайплайн; `eval/<каталог>/`
драйвер, обход HTTP, три сборщика следов и сверка; шаблон `book.yaml` с абсолютными путями в worktree.
**Без пере-фриза** (но печатается в отчёт): величина гранта, `TM_PLATFORM_HOLD_FACTOR_PERCENT`, TTL выгрузки.
**Граница:** меняется ЧТО покупается или чем судится — новый фриз-коммит и строка девиации в отчёте;
меняется СКОЛЬКО можно потратить — объявление в отчёте.
⚠ Правка собственного драйвера ПОСЛЕ фриза — тоже новый фриз, а не «поправил и поехал».
Ключи провайдера — **не читая `.env`**: путь передаётся переменной `TM_PLATFORM_ENGINE_KEYS_PATH`, платформа
отдаёт его движку аргументом `--keys-file`, мимо своего процесса.
### 4.3 Пре-регистрация ожидаемых исходов — **делай РОВНО так; это главный рубеж пака**
**До первого платного вызова** в фриз-коммите лежит таблица: **узел → что ДОЛЖНО произойти, числом или
строкой → чем это будет предъявлено (три следа) → что будет считаться ПРОВАЛОМ узла.**
Без неё ноль ошибок читается как успех, а любой исход — как ожидаемый.
**Три следа — это три РАЗНЫХ носителя, и они названы поимённо** (приор, снят разбором 11.09; пере-снимай
адреса командой): **(1) Postgres стенда** — `books` · `chapters` · `units` · `runs` · `run_attempts` ·
`reservations` · `credit_ledger` · `book_events` · `exports`; **(2) диск движка и systemd** — `events.jsonl`
в каталоге книги (кадры `hello/progress/unit_done/bank_stop/ceiling/spend/finished`), маркер выхода юнита,
`project.db`/`request_log` (читать `mode=ro` ПОСЛЕ выхода процесса), сайдкары `.bank.json` и
`mined-signature.yaml`, `journalctl --user -u tm-run-<run>-<n>`; **(3) HTTP и файл** — ответы ручек, SSE,
скачанные байты и их sha256.
**Деньги сходятся ЧЕТЫРЬМЯ числами, и они печатаются:** Σ `request_log.cost_usd` = `spend.committed_usd`
из кадра = Σ `credit_ledger` settlement = (грант баланс). Открытых резерваций на конце — 0.
### 4.4 Фаза 2 — платный прогон. **Книга задана, объём задан; всё остальное — твоё решение с доводом**
**Книга:** `books/gu-zhenren/coldrun-v16/guzhenren-ch1-10.gb18030.txt`, **главы 13** (≈4 юнита; глава 1
двухъединичная — **пере-проверь манифестом ДО фриза**, и если многоединичной главы в срезе нет, СТОП и пинг:
без неё редакторская волна не покажет своего худшего случая, а ради него прогон и затевается).
⚠ Имя эксперимента выбери НЕ `coldrun-a`: каталог `books/gu-zhenren/coldrun-a/` уже занят прогоном 24.08.
**Узел подписи банка — самое ценное место прогона, и у него известная дыра.** Платформа на стопе показывает
`total 0, signed 0` (строка **224**): у её секции предложений читателя нет. ⛔ **Узел засчитывается пройденным
ТОЛЬКО если движковый сайдкар показал предложения (`.bank.json` `proposed[] ≥ 1` либо
`mined-signature.yaml`), А платформа показала ноль** — тогда это измеренная дыра с уликой. Если предложений
нет и у движка — это ДРУГОЙ факт, и его надо назвать отдельно.
**Решение, которое принимаешь ты:** провести через дверь ОДНО настоящее решение по банку (рекомендация:
`approve`, подготовленный из сайдкара движка — единственный способ провести дверь правок по пути) либо
резюмить неподписанным (`D39.144` это разрешает). Выбор объяви в пре-реге ДО прогона, не после.
**Чего делать НЕЛЬЗЯ:** чинить найденное · править `backend/`/`platform/` · менять срез или пайплайн после
фриза без нового фриза · тихо пополнять баланс при срабатывании потолка · интерпретировать провайдерскую
аномалию без вендор-доки (`CLAUDE.md`: идём в официальную доку, НЕ гадаем).
### 4.5 Фаза 3 — $0 после прогона. **Состав делай РОВНО так, глубину выбирай сам**
1. **Сверка каждой строки пре-рег-таблицы** с фактом: ожидание → факт → сошлось/нет → чем предъявлено.
2. **Механический счёт расхождения форм по ОТГРУЖЕННОМУ тексту** (не по черновику): сколько канонических
терминов отданы более чем одной передачей и в каких главах. ⚠ Это МЕХАНИЧЕСКИЙ счёт, а не суждение о
качестве (§3, претрейн). Он нужен, потому что сегодня такой меры по финальному тексту не существует
вовсе: движок считает разброс форм по ЧЕРНОВИКУ на стопе майнинга.
3. **Список сломанного** — каждая находка строкой: что · где (`file:line` или таблица) · чем предъявлена ·
насколько уверен (замерено / прочитано / подозрение). Это будущие ряды бэклога; заводить их буду я.
## 5. Чем прогон вырождается — восемь способов, и их снятие. **Адверсариальный проход веди по ним**
Самое дорогое здесь — прогон, прошедший «зелено» и не измеривший ничего. Способы названы, снятия заданы:
1. ⛔ **Дверь выгрузки ВСЕГДА строит.** `--partial` ратифицирован: книга с дырами соберётся и откроется, и
файл на диске будет выглядеть успехом. **Снятие:** узел «выгрузка» пройден только при
`exports.complete = true` **и** нулевых счётчиках отчёта сборки (`pending/withheld/incomplete/stale/ghost`)
**и** `finished.outcome = clean` **и** `delivered = units_total` **и** всех `units.state='translated'`.
2. **Многоединичной главы фактически нет** (нарезка могла сдвинуться). **Снятие:** $0-манифест ДО фриза, пин
«≥1 глава с `units_total ≥ 2`», сверка после интейка; расхождение — стоп ДО оплаты.
3. **Пустота узла подписи прочтётся как «нечего подписывать»** — см. §4.4.
4. **Деньги мимо сверки.** Оплаченный `2xx` с оборванным телом выглядит таймаутом; обрыв ДО заголовков не
стоит ничего и не оставляет следа. **Снятие:** четырёхстороннее равенство §4.3 печатается числами; строки
`request_log` с непустым `err` или `finish_reason ≠ stop` перечисляются поимённо.
5. **Потолок посреди редактуры.** Проекция цены — НИЖНЯЯ граница (на 08.09 факт был ×3.6 от неё). Прогон
встанет `paused credit_exhausted` — это законное состояние, и экспорт после него соберёт частичную книгу
(см. п.1). **Снятие:** ожидаемый исход — `ready` и пустой `paused_reason`; `paused` = СТОП и пинг
оркестратору, без тихого пополнения.
6. **Чужой стенд и ложная зелень:** порт отвечает чужим процессом · ничьи базы в кластере · старый стендовый
`tmctl` · `vcs.modified=true`. **Снятие:** pid-на-порту · своя база · оба `go version -m` в отчёте ·
контрольное число «прогонов по этой книге = 1».
7. **Отказ на старте не бесплатен для ЭКСПЕРИМЕНТА** (артефакт контраста, §4.1 п.1): $0 по деньгам, но
книга после `failed` уже не холодная. **Снятие:** дым и предусловия — ДО загрузки платной книги; платная
книга получает свежий id.
8. **Претрейн** (§3): никаких суждений о качестве. **Снятие:** пре-рег объявляет это прямо.
**И общий мандат самопроверки ИСПОЛНЕНИЕМ:** ревью СВОЕГО кода драйвера, СВОИХ запросов и ПОЛУЧЕННЫХ
результатов. Самоотчёт «проверено» без исполнения регулярно оказывается ложным и здесь стоит денег.
Субагентов спавнить **РАЗРЕШЕНО и требуется** (иначе дефолт-запрет харнесса тихо победит), модель задавай
ЯВНО. ⛔ Отрицательный замер печатает КОНТРОЛЬНУЮ ВЕЛИЧИНУ рядом с нулём: «строк с ошибкой 0, строк прибор
прочёл 47». Не «проверено с контрольной строкой» — само число.
⛔ **Критик полноты — на КАЖДУЮ фазу, а не на пакет в конце.**
## 6. Предметные оси ревью
**Полигон/замеры:** пере-вывод чисел из СЫРЬЯ (не из чужой сводки); независимость сигналов — три следа
обязаны быть разными носителями, а не тремя проекциями одного; вывод на агрегате до вскрытия единиц запрещён.
**Деньги:** из сырого леджера ДВУМЯ независимыми путями; леджер — нижняя граница.
## 7. Записка-план ДО работы
До первой команды пришли оркестратору ≤15 строк: как ведёшь фазы · где ждёшь сопротивления · что считаешь
спорным в самом заказе. Пре-рег-таблица §4.3 присылается ОТДЕЛЬНО и до фриза — я её читаю.
## 8. Заявление = команда
Каждое число и каждая категорика — с командой, которой получены, и её выводом. **Число называет ДЕРЕВО**
(sha либо «рабочее дерево + что незакоммичено») **и ПОПУЛЯЦИЮ** (что именно посчитано).
## 9. Эхо-протокол старта
ДО первой команды пришли **оркестратору первым действием, по адресу из `/tmp/textmachine-channel`**
(`SendMessage`, роль `ОРКЕСТРАТОР`) ≤10 строк: скоуп · инварианты · не-делать — **СВОИМИ словами**.
Дословный пересказ промта подтверждает канал, но не понимание. Канала нет — эхо первой секцией отчёта.
## 10. Что НЕ удалось — обязательная секция отчёта
Что не проверено · что не воспроизвелось · где данных не хватило · какой узел пришлось объявить непройденным.
**«Не измерено» вместо догадки.** «Не проверено» ≠ «опровергнуто».
## 11. Канал вопросов и право отказаться
Конфликт промта с кодом или доками — **пинг оркестратору, НЕ интерпретация**. Право сказать «этого делать не
надо» с аргументом — есть, и такие развилки поощряются. Всё, что касается денег сверх названного потолка, —
через меня.
## 12. Прямой канал
`CLAUDE.md` §«Связь между сессиями»: `/tmp/textmachine-channel`, свой блок дописать первым делом, живость
адресата — `ListAgents`. Роли в файле нет или имя не отвечает ⇒ **КАНАЛА НЕТ, и это НОРМАЛЬНЫЙ случай:
сессии подряд НЕ опрашивать**, вопрос — секцией в отчёт.
## 13. Критерий завершённости
Работа завершена, когда: **каждая строка пре-рег-таблицы имеет исход** (сошлось · не сошлось с уликой ·
не проверено с причиной) · файл скачан и ОТКРЫТ, и это сказано отдельно · деньги сведены четырьмя числами ·
все находки перечислены с разметкой «замерено / прочитано / подозрение» · фриз-коммиты и девиации названы ·
артефакты в ДЕРЕВЕ, а не в письме · явное **«работа завершена, править не планирую»**.
**Пак доводится до конца САМОЙ сессией** (слово владельца 11.09): владельца не беспокоить, меня не тегать
«просто так» — приёмка идёт последней и вторым кругом тебе не служит.
## Деньги — ДВА числа, и они разные
**Ожидаемая трата ≈ $0.30** (замер 08.09: 10 глав за `committed = $1.259217` ⇒ ≈$0.13/глава; ⚠ вниз это не
масштабируется линейно — майнинг платится раз на книгу).
**Машинный КАП ≈ $2.32.5** — это ХОЛД, а не ожидание: книжный бонд на `c1` равен $2.00
(`budget_usd` + `classify_budget_usd`), и грант обязан быть не меньше холда, иначе допуск откажет.
Владелец санкционировал платный прогон, зная оба числа.
⛔ **Стоп-правила, каждое — остановка и пинг, а не решение сессии:**
- фактическая трата дошла до **$0.80** — стоп, пинг, ждёшь моего слова;
- прогон встал `paused credit_exhausted` — стоп и пинг (тихо не пополнять);
- срез оказался без многоединичной главы — стоп ДО оплаты;
- бинарь не из фриза (`vcs.modified=true` или чужой revision) — стоп до устранения.
## Отчёт
`docs/experiments/24-<имя>.md` (пре-рег + результаты) + `eval/<каталог>/` (драйвер и сборщики) + секция
«Полигон» в `docs/PROGRESS.md` + сообщение мне: таблица «узел → ожидание → факт → чем предъявлено» ·
четыре числа денег · список сломанного с разметкой уверенности · что сказал твой критик полноты по каждой
фазе · секция §10 · **что ты сам считаешь слабым местом прогона**.
⛔ Последний абзац отчёта — план или обещание? Значит работа не кончена: сделай сейчас.

View file

@ -1,5 +1,13 @@
# Промт: полигон-сессия «ФАЗА Д — доводка эксп-22/23» (заказ владельца 10.08)
> ⛔ **ПРИПАРКОВАН ОРКЕСТРАТОРОМ 11.09 — НЕ БРАТЬ БЕЗ ЕГО СЛОВА.** Владелец 11.09 ввёл норму «ОДИН промт на
> зону», а в полигонном слоте лежало ДВА промта сразу. Слот отдан холодному прогону A
> (`docs/POLYGON_COLD_RUN_A_SESSION_PROMPT.md`): он измеряет цену книги, доведённой ДО КОНЦА (строка **16**),
> и **тир-замером не является** — судейской линзы, сравнения рук и слепого чтения в нём нет, поэтому гейт
> «ремонт прибора идёт перед любым следующим ПЛАТНЫМ ЗАМЕРОМ» этим прогоном НЕ нарушается и остаётся в силе
> для фазы Д. Этот пак пере-выдаётся сразу после закрытия A актом. Содержимое ниже актуально, кроме адресов —
> пере-снимать командой.
Ты — полигон-сессия TextMachine. Зона записи: `eval/` + `docs/experiments/` + пинг в
`docs/PROGRESS.md` секция «Полигон». Сессия НЕ коммитит, кроме пре-рег-фризов (право полигона);
лендит оркестратор. Онбординг: `CLAUDE.md``docs/README.md``eval/README.md`

View file

@ -1,5 +1,13 @@
# Промт: полигон-сессия «РЕМОНТ ПРИБОРА» — линза слепого чтения и гигиена стенда
> ⛔ **ПРИПАРКОВАН ОРКЕСТРАТОРОМ 11.09 — НЕ БРАТЬ БЕЗ ЕГО СЛОВА.** Владелец 11.09 ввёл норму «ОДИН промт на
> зону», а в полигонном слоте лежало ДВА промта сразу. Слот отдан холодному прогону A
> (`docs/POLYGON_COLD_RUN_A_SESSION_PROMPT.md`): он измеряет цену книги, доведённой ДО КОНЦА (строка **16**),
> и **тир-замером не является** — судейской линзы, сравнения рук и слепого чтения в нём нет, поэтому гейт
> «ремонт прибора идёт перед любым следующим ПЛАТНЫМ ЗАМЕРОМ» этим прогоном НЕ нарушается и остаётся в силе
> для фазы Д. Этот пак пере-выдаётся сразу после закрытия A актом. Содержимое ниже актуально, кроме адресов —
> пере-снимать командой.
## 1. Какая проблема и что решит твой результат
Мы решаем денежный вопрос: стоит ли платить за сильного редактора. Решаем замером — судьи-модели