19 KiB
Скратчпад оркестратора №23 — контроль исполнения лупа
⚠ Здесь НЕТ копий норм. Нормы живут в
docs/ORCHESTRATOR_SESSION_PROMPT.md, копия факта стареет молча (D39.112). Здесь только (а) указатели-чек-лист, по которому я прохожу ПЕРЕД выдачей и ПЕРЕД лендингом, (б) стоячие правила владельца на этот луп, (в) живая раскладка слотов и журнал выдач. Файл рабочий и умирает вместе с очередью №23.
Стоячие правила владельца на этот луп (слово 11.09)
- Выполнить ВСЕ промты, задуманные в
docs/NEAR_TERM_PLAN.md. - Советоваться со старшим коллегой (Fable 5, постоянный контекст) — при выдаче промта, при ратификации, при лендинге и при ЛЮБОМ сомнении.
- Каждый выдаваемый промт писан по ролевой ноте; сверяться с ролевым промтом всегда.
- Сессия обязана эхом вернуть промт (блок 9 — своими словами, не пересказом).
- Приёмка и лендинг — строго по нормам ролевого промта.
- Сессия доводит свой пак до конца САМА и не беспокоит владельца до готовности; финальное исполнение контролирую я.
- ⛔ Большинство паков идёт бэкенд-сессиям — следить за КАЧЕСТВОМ КОДА: никаких лишних велосипедов, воркэраундов и хаков ВОКРУГ проблемы. Нужно логически правильное работающее решение задачи, а не обход проблемы. Это отдельная ось приёмки, а не общее пожелание.
- Один промт на зону. Одновременно живут бэкенд · платформа · полигон · фронт; двух промтов одной зоны быть не может. Слот освобождается закрытием пака АКТОМ, а не сдачей работы.
- Пустые сессии владелец наспамил — роли назначаю сам, запускаю по одной и довожу до логического завершения.
- ⛔ АВТОНОМИЯ (слово 11.09, 03:00): владелец отошёл и вернётся, когда весь ближайший план ИСПОЛНЕН. Вопросы решаю сам, совещаясь со старшим коллегой; владельца не жду.
- Мерило любого решения — в этом порядке: (а) главные ценности продукта — КАЧЕСТВЕННЫЙ КОНСИСТЕНТНЫЙ ИИ-перевод длинных книг/ранобэ; (б) архитектура и чистый код; (в) рефакторинг только действительно необходимый; (г) ⛔ никакого велосипедостроения. Решение, выигрывающее у (б)–(г), но не служащее (а), — неверное решение.
Перед выдачей промта — механическая сверка (перечтение автором рубежом НЕ считается)
- 13 обязательных блоков — таблицей/грепом против §«Пишешь промт сессии?» (счёт равен нумерации).
- Опровергатель-субагент к самому промту («найди отсутствующее и противоречащее»).
- Блок 5 называет 2–4 уязвимых места ИМЕННО ЭТОГО пака — «сделай самопроверку» дефектна.
- Разметка свободы у каждого пункта: «ровно так» либо «реши сам и аргументируй».
- «Инструмент задан» — только после (а) что канон зовёт штатным, (б) не построено ли уже.
- Фантом-гард: каждая D-ссылка грепается до НОМЕРА ПУНКТА, не до тела ноты.
- Построчная сверка чужих путей/каналов против зонной таблицы
CLAUDE.md. - Полигон-пак — дополнительный абзац норм замеров (арм без фактора · дедуп+декой · критик полноты на каждую фазу · пре-рег фриз ДО платных вызовов · активная проверка живости прогона).
- Кодовый пак — свой абзац (вакуумный пин · клейм = команда · дифф
^func Testисполнением). - Пропорциональность: тяжесть аппарата соразмерна весу пака.
Перед лендингом
- Контроль завершённости ДО приёмки, механически (блок 13).
- Приёмка адверсариальная; дерево на время прохода заморожено ИЛИ верификатору выдан ГОТОВЫЙ путь.
- Скипы печатаются рядом с числом
ok. - Деньги — из сырого леджера двумя независимыми путями.
docs/scripts/counts.py --checkи--lintперед ратификационным коммитом.git diff -- <файл>по каждому файлу класса «пишет зона, коммитит оркестратор».- Коммит pathspec-формой; финал
git status --short. - Акт закрывает носители ТЕМ ЖЕ движением (ряды бэклога, реестр дефектов, таблица активных промтов).
Раскладка слотов (живая)
| Зона | Промт | Сессия | Состояние |
|---|---|---|---|
| бэкенд | BACKEND_CONSISTENCY_YOU_CAN_SHOW_SESSION_PROMPT.md |
textmachine-c9 | ⏳ приёмка, круг 2: шесть посадок выжили → дофикс сдан, жду финальную батарею. ⛔ F6 мною ОТМЕНЁН после пере-замера |
| платформа | — | — | 🟢 СЛОТ СВОБОДЕН (пак «правда у двери» закрыт актом D39.246) |
| полигон | POLYGON_INSTRUMENT_REPAIR_SESSION_PROMPT.md |
— | ⛔ готов, адресата НЕТ — все семь живых сессий отработали, свежую поднимает владелец |
| фронт | заморожен | — | разморозка по критерию NEAR_TERM_PLAN.md |
В очереди, написано и ждёт слота: BACKEND_FAILURE_YOU_CAN_SEE_SESSION_PROMPT.md (падение, которое
видно) — выдаётся СВЕЖЕЙ бэкенд-сессии сразу, как c9 закроется актом. Опровергатель по нему запущен.
Журнал выдач очереди №23
| # | зона | предмет | сессия | эхо | исход |
|---|---|---|---|---|---|
| 1 | бэкенд | структура глав, ДИЗАЙН | textmachine-50 | ✅ своими словами, с возражением | ✅ закрыт актом D39.245 (без сходимости) |
| 2 | платформа | правда у двери | textmachine-8e | ✅ своими словами, с контрактным пингом | ✅ закрыт актом D39.246 (с дофиксом) |
| 3 | полигон | холодный прогон A (платный) | textmachine-23 | ✅ | ✅ закрыт актом D39.247; строка 16 закрыта замером |
| 4 | — | ревью МОИХ записей (не пак зоны) | textmachine-9a | — | ✅ отчёт сдан; часть находок заландена 11.09 |
| 5 | бэкенд | консистентность, которую можно предъявить | textmachine-c9 | ✅ | ⏳ дофикс после шести выживших посадок |
| 6 | полигон | ремонт прибора | — | — | ⛔ готов, выдать некому; предлагался ed и 5c, обе отказались ПО НОРМЕ и обе правы |
⛔ БЛОКЕР ОЧЕРЕДИ (11.09): свежих сессий не осталось. Прочитано ЦЕЛИКОМ /tmp/textmachine-channel (13 блоков, 95 строк): ed · 5c · 50 · 8e · 23 · c9 · 9a — у каждой блок и отработанный пак; d8 мертва. Поднимает сессии ВЛАДЕЛЕЦ. Первый вопрос ему при возвращении. ⚠ Мой промах, из которого это вылезло: читал канал tail -60 над 95 строками и выбирал адресата по остатку ListAgents — норма ушла в ролевой промт и в CLAUDE.md.
Что я должен помнить, пока паки идут
- Ключи прогона A: путь выдан (
backend/.env), файл НЕ читать; живость ключей проверяется ПЕРВЫМ платным вызовом. Отказ по авторизации — стоп сессии и мой поход к владельцу. - Пре-рег-таблица прогона A приходит мне ДО фриза — читаю её прежде, чем потратится первый цент.
- Релей: улика прогона A про многоединичную главу идёт движковой сессии ОТ МЕНЯ отдельным сообщением с её эхо-подтверждением, не напрямую.
- Кросс-зонная цена перекроя (
unit_resolutionsплатформы, экспортные id термов) придёт от движковой сессии пунктом отчёта — отнести её платформе должен я.
К приёмке прогона A — проверить лично
- Фриз-коммит и девиация разошлись, и это ЗАКОННО, но должно быть названо. Бинари собраны из клона на
b0f5d89; драйверeval/door_to_file/drive.shправлен ПОСЛЕ фриза отдельным коммитом44b33d9(«адрес локального провайдера значит противоположное в двух фазах: обязателен в дыме, запрещён при деньгах на проводе»). Норма пака: девиация — НОВЫМ коммитом и ЯВНО в отчёте. ⇒ при приёмке сверить, что отчёт её называет, и что расхождение «бинариb0f5d89/ драйвер44b33d9» объявлено, а не замолчано.
Чему меня научили опровергатели 11.09 (не повторять)
- Санкция владельца, известная «со слов», носителем НЕ является. Оба пака ссылались на разрешение
платного прогона как на факт, а в дереве его не было ни строкой. Завёл носитель —
NEAR_TERM_PLAN.md§«Решения владельца». - Пак не заглянул в СВОЮ зону записи. Дизайн-пак заказывал то, что уже лежит в
backend/docs/дизайном-оф-рекорд и рабочим прибором. Теперь у каждого пака первым делом — «что уже лежит у тебя». - Трудность, которой нет. Я написал платформенной сессии, что валидация каталога обязана отличать первый прогон, — каталог создаётся на интейке ДО строки в БД, и различать нечего. Пин на недостижимую ветвь толкает сессию строить exemption, чтобы было что пинить.
- «Одно определение на две площадки» бывает недостижимо по построению — опросный путь замка не берёт, и контракт эту асимметрию ратифицировал. Мерило — число ОПРЕДЕЛЕНИЙ, а не площадок.
- ⛔ МОЙ КОММИТ УНЁС ЧУЖУЮ СЕКЦИЮ —
54f8f6c, 11.09. Я правил ОДНУ строку головы вdocs/PROGRESS.mdи взял файл pathspec-формой целиком, не сделавgit diff -- docs/PROGRESS.md; в тот же момент движковая сессия положила туда свою записку-план, и 32 вставки из 33 оказались её. История НЕ переписана (переписывание стёрло бы незакоммиченные правки параллельных сессий), содержимое цело, атрибуция восстановлена сообщением зоне. ⚠ Норма стояла в моём ролевом промте и не сработала, потому что я читал её как «про чужое в ИНДЕКСЕ». Ловится дёшево и постфактум: объём коммита против объёма своей правки — одна строка против тридцати трёх. - ⛔ «ЭТИ ДВА МЕХАНИЗМА НЕСОВМЕСТИМЫ» — УТВЕРЖДЕНИЕ О КОДЕ, И ЕГО НАДО СПРАШИВАТЬ У КОДА. Я написал в
платный пак, что портированная заглушка и провайдер
localнесовместимы («разные адаптеры»), и запретил бы сессии единственный штатный $0-стенд. Поймала зона: заглушка лежит В РЕПО с комментарием «the P9 live-probe's $0 stand-in, ported», а рядомzeroCostPipelineвыбирает модель поKind == "local". ⚠ Класс ошибки тот же, что «заказал уже построенное», только вывернутый: я объявил НЕВОЗМОЖНЫМ то, что построено и запинено. ⇒ прежде чем писать «несовместимо/невозможно/нечем», грепни предмет — отрицательное утверждение о дереве стоит команды ровно так же, как положительное. - ⛔ Я ПОСТАВИЛ ПИН, УТВЕРЖДАЮЩИЙ МОЛЧАНИЕ, НА САМЫЙ ДОРОГОЙ ГЕЙТ ПЛАТНОГО ПАКА. «Драйвер отказывает
при
vcs.modified=true» на бинаре из линкованного воркри выполняется всегда: строкvcs.*там НЕТ вовсе. Поймала зона на первом же замере, я пере-проверил чтением готовых бинарей. Норма ушла в ролевой промт (фриз-дерево — КЛОН, третье условие отказа — отсутствие штампа). ⚠ Класс знал я сам: он записан вCLAUDE.mdотдельной строкой про вакуумные пины — и всё равно воспроизвёл его там, где он стоит денег. - Атрибуция нормы к ноте проверяется телом ноты. Ссылка на
D39.108п.1 в моём ролевом промте фантомна: норма верна, нота о другом. Эррата внесена.
Долг, замеченный попутно (не терять)
- Якоря розданы не все. Платформе — 3 (её пак §4.5), движку — 3 (
backend/docs/DISCLOSURE_LAW_DESIGN.md, дизайн-пак §4.9). Полигонные 5 (docs/experiments/) НЕ вошли в пак прогона A сознательно: он платный и идёт по жёсткому порядку фаз, а док-гигиена потребовала бы релея посреди прогона. Отдать их с пере-выдачей «РЕМОНТА ПРИБОРА». Фронтовые 3 — зона заморожена, отдать первым касанием при разморозке. - Числа следующего бэкенд-пака пере-сняты МНОЮ, а не взяты из отчёта воркфлоу (11.09):
Spreadи вmining.go:383, и вbankexport.go:135описан дословно как «how many DISTINCT renderings the DRAFTS produced» — счёта по ОТГРУЖЕННОМУ тексту нет (контроль: 144 файла вinternal/pipeline); порог короткого ключаminKeyLenHan = 2с пер-записнымallow_short; точность глоссарного классаk6 = 0.0667вbooks/gu-zhenren/labels/metrics.json(контроль: у соседних классов 1.0, 0.8333, 0.1667, 0.0 — прибор спрошен у существующего предмета и различает). - 11 уехавших якорей в ЧУЖИХ зонах (
counts.py --lint, 11.09): полигон 5 (docs/experiments/) · бэкенд 3 (backend/docs/DISCLOSURE_LAW_DESIGN.md) · фронт 3 · платформа 3 — платформенные уже врезаны в её пак §4.5. Свои пять я починил (f9216cd). Остальные раздать ПАКАМИ их зон, не чинить самому. - Воркфлоу про банк памяти (
wm0j2l4kz) умер, отдав пустой файл — вопрос владельца «что банку памяти нужно для качества перевода» носителя не получил; пере-задать при паке «выдача, которую видит читатель».