15 KiB
15 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. - Акт закрывает носители ТЕМ ЖЕ движением (ряды бэклога, реестр дефектов, таблица активных промтов).
Раскладка слотов (живая)
| Зона | Промт | Сессия | Состояние |
|---|---|---|---|
| бэкенд | CHAPTER_STRUCTURE_DESIGN_SESSION_PROMPT.md |
textmachine-50 | ✅ выдан · эхо · записка-план · работает |
| платформа | PLATFORM_TRUTH_AT_THE_DOOR_SESSION_PROMPT.md |
textmachine-8e | ✅ выдан · эхо · записка-план · минор 0.14.0 ратифицирован по её пингу |
| полигон | POLYGON_COLD_RUN_A_SESSION_PROMPT.md (ред. 2) |
textmachine-23 | ✅ выдан · жду эхо; два прежних промта зоны припаркованы |
| фронт | заморожен | — | разморозка по критерию NEAR_TERM_PLAN.md |
Журнал выдач очереди №23
| # | зона | предмет | сессия | эхо | исход |
|---|---|---|---|---|---|
| 1 | бэкенд | структура глав, ДИЗАЙН | textmachine-50 | ✅ своими словами, с возражением | идёт |
| 2 | платформа | правда у двери | textmachine-8e | ✅ своими словами, с контрактным пингом | идёт |
| 3 | полигон | холодный прогон A (платный) | textmachine-23 | ждём | выдан |
Что я должен помнить, пока паки идут
- Ключи прогона A: путь выдан (
backend/.env), файл НЕ читать; живость ключей проверяется ПЕРВЫМ платным вызовом. Отказ по авторизации — стоп сессии и мой поход к владельцу. - Пре-рег-таблица прогона A приходит мне ДО фриза — читаю её прежде, чем потратится первый цент.
- Релей: улика прогона A про многоединичную главу идёт движковой сессии ОТ МЕНЯ отдельным сообщением с её эхо-подтверждением, не напрямую.
- Кросс-зонная цена перекроя (
unit_resolutionsплатформы, экспортные id термов) придёт от движковой сессии пунктом отчёта — отнести её платформе должен я.
Чему меня научили опровергатели 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". ⚠ Класс ошибки тот же, что «заказал уже построенное», только вывернутый: я объявил НЕВОЗМОЖНЫМ то, что построено и запинено. ⇒ прежде чем писать «несовместимо/невозможно/нечем», грепни предмет — отрицательное утверждение о дереве стоит команды ровно так же, как положительное. - Атрибуция нормы к ноте проверяется телом ноты. Ссылка на
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) умер, отдав пустой файл — вопрос владельца «что банку памяти нужно для качества перевода» носителя не получил; пере-задать при паке «выдача, которую видит читатель».