# Промт: полигон-сессия «РЕМОНТ ПРИБОРА» — линза слепого чтения и гигиена стенда > ⛔ **АРХИВ — ЗАКРЫТО СЛОВОМ ВЛАДЕЛЬЦА 11.09: «полигон это вообще не наш скоуп».** Заказ снят не по > качеству промта и не по исчерпанию предмета: зона выведена из работы целиком. **Инструкции отсюда НЕ > ИСПОЛНЯТЬ** (правило архива). Пере-открывается только новым словом владельца; до тех пор содержимое — > история, а не задание. ⚠ Ссылки на этот файл из журнала решений и старых отчётов сознательно не > правлены: тела нот не переписываются, и их адреса указывают в историю. > ✅ **ВЫДАН 11.09 — прежний баннер парковки снят.** Полигонный слот освободился закрытием холодного > прогона A актом `D39.247`, и норма «один промт на зону» больше не нарушается. Содержимое ниже > актуально, **кроме адресов — пере-снимай их командой, дерево двигалось**. > > ⛔ **И теперь твой гейт заперт не абстрактно, а конкретным заказом: следующий платный замер уже > назван и ждёт тебя** — §4.5. Пока линза меряет не то, он покупать числа не пойдёт. ## 1. Какая проблема и что решит твой результат Мы решаем денежный вопрос: стоит ли платить за сильного редактора. Решаем замером — судьи-модели вслепую выбирают лучший вариант редактуры. **Прибор сегодня меряет НЕ ТО, что мы редактору заказали.** Судимой роли предписано «сверяй смысл черновика с исходным текстом, исправляй искажения», а первичная **блокирующая** линза — «точность ОТНОСИТЕЛЬНО ЧЕРНОВИКА». Редактор, правильно ушедший от черновика ради оригинала, по главной линзе выглядит хуже. ⚠ **Осторожно с масштабом — это ратифицировано с оговоркой (`D39.215` п.3 ПЛЮС эррата 10.09-г в шапке журнала: сама нота несёт усиление, которое здесь и снимается — читать её только вместе с эрратой):** доказано ПРОТИВОРЕЧИЕ КОНСТРУКЦИИ; **величина искажения НЕ ЗАМЕРЕНА**. Оркестратор сначала написал «прибор систематически наказывает» — и это было преувеличением: в сыром массиве такая пометка встречается ОДИН раз. Твой пак — не «доказать вред», а починить конструкцию и **дать величине носитель**. Твой результат: следующий замер редакторского тира отвечает на вопрос, который мы задаём, а не на соседний. ⛔ **Этот пак идёт ПЕРЕД любым следующим платным замером, включая продолжение фазы Д** (промт `POLYGON_EXP2223_REDO_SESSION_PROMPT.md`). Причина не в очереди, а в смысле: пока линза меряет не то, каждый следующий замер тира стоит меньше, чем кажется. ## 2. Зона и git **Зона записи: `eval/` + `docs/experiments/`**, пинг оркестратору — секция «Полигон» в `docs/PROGRESS.md`. **Сессия НЕ коммитит**, кроме пре-рег-фризов — это право полигона и единственное исключение. Чужие зоны не трогать. `.env` не читать. ## 3. Карта чтения — ЗАКОН 1. `CLAUDE.md` — цели и гардрейлы. 2. Строка **319** бэклога (`docs/BACKLOG.md`, греп `^| 319 |`) — предмет целиком. 3. `eval/dovodka/blind-read/PREREG-2-BLIND-READ.md` — §5 (линзы) и §8. 4. `eval/dovodka/prereg-4axes/stand/editor-p9.md` — инструкция судимой роли. 5. Строки **300**, **265**, **143** бэклога. **Ратифицированное — в теле промта:** - **`D39.216` (мандат владельца, 06.09), делай РОВНО так**: чинить **без хаков**; где форма не тянет — развязать или переписать. «Дешевле подпереть» доводом не является; отступление — **с ценой**. - **Комментарий/проза не доказывают поведение**; источник утверждения о смысле — прогон. ⚠ Грепом в `CLAUDE.md` не ищи — норма живёт нотой `D39.214`. - **Число называет ДЕРЕВО и ПОПУЛЯЦИЮ.** Сегодня на этом погорели три роли подряд: один и тот же счёт дал разные величины, потому что считали разные популяции. - **Рядом с нулём — контрольная величина** (`CLAUDE.md`). - **Эмпирика на знакомых моделям текстах — предварительная**; вес имеет замер на целевом жанре. ## 4. Состав и разметка свободы ### 4.1 Три эрраты в носителях замера — **делай РОВНО так**, первым касанием, $0 ⛔ **Форма — БАННЕР В ШАПКЕ. Тела документов НЕ ПРАВИТЬ.** Оба заморожены, и пре-регистрация ценна именно неизменяемостью: правка тела уничтожает то, ради чего фриз делался. 1. `RESULT-2-BLIND-READ.md` — «правильный ответ по построению — ничья» противоречит собственному тексту того же отчёта и измеренному расхождению рук. 2. `PREREG-2-BLIND-READ.md` §8 — выпало унаследованное ограничение «опора судьи — ЧЕРНОВИК, не оригинал». Верни баннером, назвав, откуда выпало. 3. `PREREG-2-BLIND-READ.md` §5 — правило решения готово выдать «одна рука не хуже по точности» из НЕПРОХОЖДЕНИЯ теста, что отчёт результата запрещает дословно. **Горизонт: до всего остального.** Три дешёвые правки не должны ждать дорогого пака. ### 4.2 Гигиена стенда (строки 300, 265) — **реши сам, аргументируй** Обе помечены «до следующего платного замера»: ⚠ **ДИАГНОЗ ИСПР. 10.09 — болезнь ДРУГАЯ.** Замер: `git worktree list` даёт ОДНУ строку, соседнего воркри нет вовсе. Настоящая поломка — МЁРТВЫЙ АБСОЛЮТНЫЙ КОРЕНЬ: `langpack_root` в шести yaml стенда указывает в `/home/ubuntu/projects/textmachine-main/...`, а каталога `/home/ubuntu` не существует; тот же литерал несут 118 из 290 py-файлов `eval/`. Носитель — строка бэклога **217**. ⇒ чинить пути, а не сторож между ветками. Прежний диагноз: репо-широкий сторож не дотягивается до соседнего воркри, и питоново зеркало держит ВТОРУЮ копию таблицы плейсхолдеров движка, уже разошедшуюся. ⚠ По зеркалу: **не переписывать копию, а убрать второй носитель**, если это возможно без хаков (`D39.216`); невозможно — предъяви почему и поставь сверку, которая краснеет при расхождении. ### 4.3 Линза (главное) — **делай РОВНО так в части источника, реши сам в части формы** ⛔ **ВРЕЗКА 11.09, И ОНА ИДЁТ ПЕРЕД ВСЕМ ОСТАЛЬНЫМ В ЭТОМ ПУНКТЕ.** Читатель со стороны (движковая сессия, которая этот пак НЕ брала) возразил по существу, и возражение принято мною как находка: **«линза судит относительно ЧЕРНОВИКА, а роли предписано сверять с ИСХОДНИКОМ» может быть дефектом НОРМАТИВА, а не прибора** — и тогда починка на уровне судейского промта окажется велосипедом вокруг настоящего вопроса. ⇒ **начни не с правки линзы, а с вопроса: что именно мы просим у редактора и относительно ЧЕГО это вообще проверяемо.** Инструкция судимой роли (`eval/dovodka/prereg-4axes/stand/editor-p9.md`) и линза (`PREREG-2-BLIND-READ.md` §5) — два носителя ОДНОГО заказа, и разойтись мог любой из них. **У тебя есть право ответить «линзу править не надо, надо править заказ роли»** — с доводом это полноценное исполнение пункта, а не отказ. Но ответ должен быть выведен, а не выбран: покажи, какой из двух носителей старше, чем другой, и чем это установлено. Обвязка сверки с **исходником** уже написана в этом дереве — `eval/dovodka/judge-prompts/`. **Нужно пере-подключение готового, а не второй прибор.** Заказ: линза, судящая правку **против исходника**, плюс норматив судейства из строки **143** — **разброс инструмента ДО замера** и **объявленный порог различимости**. Без второго первое бессмысленно: односудейный вердикт при разбросе 33 % не различает ничего. ⛔ **Граница:** это ремонт ЗАМЕРНОГО прибора. Судейская роль внутри движка — другой предмет, не касаться. ### 4.4 Семь уехавших якорей в ТВОИХ доках — **делай РОВНО так**, $0 Линтер якорей (`python3 docs/scripts/counts.py --lint`) сегодня даёт **12** проблемных якорей на **128** живых доках, и **семь из них — в зоне полигона**; чинит их владелец зоны, то есть ты. Замер 11.09, дословно: * `docs/experiments/00-provider-quirks.md:163` — `backend/internal/llm/httpllm.go:517-522`, ожидалось `SystemMessagesSingle` * `docs/experiments/00-provider-quirks.md:164` — `backend/configs/models.yaml:137`, ожидалось `system_messages: single` * `docs/experiments/00-provider-quirks.md:164` — `backend/internal/llm/httpllm.go:528`, ожидалось `func toOpenAIMessages` * `docs/experiments/23-editor-tier.md:5274` — `backend/configs/models.yaml:137`, ожидалось `system_messages: single` * `docs/experiments/23-editor-tier.md:5276` — `backend/internal/llm/httpllm.go:528`, ожидалось `func toOpenAIMessages` * `docs/experiments/23-editor-tier.md:7739` — `backend/configs/pipeline-c1.yaml:95`, ожидалось `×2 дешевле glm` * `docs/experiments/23-editor-tier.md:7740` — `backend/configs/pipeline-arm-glm.yaml:6`, ожидалось `×2 дешевле). glm-5 держим ЖИВЫМ` ⛔ **Чини НОМЕР СТРОКИ, а не текст ожидания.** Токен `` =`подстрока` `` описывает, что должно быть в цели; если подогнать токен под то, что там оказалось, якорь позеленеет и перестанет что-либо стеречь — это ровно подгонка под зелень, запрещённая `D39.121`. Найди, куда УЕХАЛА цель, и поправь адрес. Цель исчезла насовсем — это находка, и тогда правится утверждение дока, а не якорь. ### 4.5 ЧТО ТВОЙ ГЕЙТ ОТПИРАЕТ — заказ на следующий платный замер · **прочти, не исполняй** Этот пункт **не работа**, а контекст: замер, который пойдёт СРАЗУ после твоего лендинга, и знать его надо, чтобы чинить прибор под настоящий вопрос, а не под воображаемый. **Вопрос:** у редактора (`deepseek-v4-pro`) в боевом конфиге стоит `reasoning: "off"`, что на этом классе моделей означает «ничего не слать» ⇒ едет вендор-дефолт `high`. Размышление у DeepSeek считается ВНУТРИ выходных токенов, и на живом прогоне книги 11.09 это дало **$0.106472 = 25.4 % цены книги, потраченных на вызовы без единого знака текста**. Ось «`off` против `low`» на движке измеряется ОТДЕЛЬНЫМ КОНФИГОМ КНИГИ — это ДАННЫЕ, правки Go не требуется (`00-provider-quirks.md` §3г, действующая редакция). ⛔ **И у рычага есть цена, уже замеренная с другой стороны:** `effort: "low"` **ПЕРЕ-ВООРУЖАЕТ эхо-мину** — на плотном CJK с ослабленным размышлением модель воспроизводимо возвращает ИСХОДНИК под HTTP 200. Единственная чистая проба на `low` была на АНГЛИЙСКОЙ паре и предупреждения не снимает. ⇒ замер обязан идти на **плотном CJK**, и у него ДВА выхода, а не один: сколько пустоты сняли И сколько эха получили. **Почему это касается твоего пака.** Замер сравнивает ДВЕ РУКИ на одном входе — то есть он ровно того класса, ради которого твой гейт и стоит: при неоткалиброванном разбросе инструмента и необъявленном пороге различимости (строка **143**) «`low` не хуже» выйдет из непрохождения теста, а не из результата. **Твоя §4.3 — то, что делает этот замер осмысленным.** Если по ходу починки ты увидишь, что для ЭТОГО вопроса норматив судейства нужен иной, — скажи это в отчёте: заказ ещё не выдан, и твоё слово его поправит. ### 4.6 Чего в паке НЕТ — **не делай** Не продолжать фазу Д · не строить второй судейский прибор · не править тела замороженных документов · не трогать движок и платформу · **не гнать замер §4.5** — он выдаётся отдельным паком после твоего лендинга. ## 5. Мандат самопроверки ИСПОЛНЕНИЕМ — механизм назван; «перечитал сам» его не удовлетворяет 1. **Проверка своей же починки её собственным вопросом.** Ты чинишь прибор — спроси у результата не «зелено ли», а **«то ли он мерит»**. Артефакт: два-три конкретных случая, где старая линза и новая дают РАЗНЫЙ ответ, с текстом обоих ответов. 2. **Опровергатель отдельным субагентом.** ⚠ Харнесс по умолчанию субагентов не спавнит — **тебе разрешено и требуется**. Модель задай ЯВНО (`fable`), одного-двух хватит. Мандат: «найди отсутствующее и противоречащее», а не «проверь, всё ли хорошо». 3. **Проверка формы эррат исполнением:** после части 4.1 — `git diff` показывает ТОЛЬКО шапки. Соблазн «заодно поправить тело» здесь максимальный, а цена — уничтоженный фриз. ## 6. Оси ревью — характер «Полигон / замеры» Из таблицы приёмки: **пере-вывод чисел из СЫРЬЯ** и **независимость сигналов**. Обе твои: любое число в отчёте выводится из сырого массива заново, а не цитируется из прежнего отчёта. ## 7. Записка-план ДО работы ≤15 строк оркестратору: что берёшь по каждой части · какой вопрос новая линза будет задавать и какой НЕ будет · где ждёшь сопротивления. ## 8. Заявление = команда Числа и категорика — с командой и её выводом. Пере-считанное из сырья — с указанием, из какого файла и какой популяции. ## 9. Эхо-протокол старта ≤10 строк ДО работы: скоуп · инварианты · не-делать. ## 10. Что НЕ удалось — обязательная секция Что не проверено, что не воспроизвелось, где данных не хватило. **«Не измерено» вместо догадки.** ## 11. Канал вопросов и право отказаться Конфликт промта с носителями — пинг, не правка. **Право сказать «этого делать не надо»** с аргументом: в частности, если по документам окажется, что противоречие линзы описано мимо, — это самый ценный ответ. ## 12. Прямой канал `CLAUDE.md` §«Связь между сессиями»: `/tmp/textmachine-channel`, свой блок первым делом, живость — через `ListAgents`. ⚠ Роли нет или файла нет — **нормальный случай**: вопрос секцией в отчёт, сессии подряд не опрашивать. ## Деньги Части 4.1 и 4.2 — **$0**. Часть 4.3 до фриза — **$0**. ⛔ **Первый платный вызов — только после фриза и только по санкции владельца через оркестратора. Санкции на замер этот промт НЕ несёт.** Если упрёшься в «это можно предъявить только платным прогоном» — пинг, а не решение. ## Отчёт Секция «Полигон» в `docs/PROGRESS.md` + сообщение оркестратору: что построено · чем предъявлено (команда и вывод) · два-три случая расхождения старой и новой линзы из §5.1 · что сказал опровергатель и что ты с этим сделал · секция §10 · **что ты сам считаешь слабым местом своей работы**.