From 867df8f79fa212deb41955ef294f52b35fb5d29c Mon Sep 17 00:00:00 2001 From: heaven Date: Thu, 27 Aug 2026 21:35:40 +0300 Subject: [PATCH] Move the orchestrator address out of prompts into a tmp file that dies with the environment, and forbid sessions from hunting when the channel is simply absent --- docs/ORCHESTRATOR_SESSION_PROMPT.md | 33 ++++++++++++++++------------- docs/PLATFORM_P9_SESSION_PROMPT.md | 27 ++++++++++++----------- 2 files changed, 31 insertions(+), 29 deletions(-) diff --git a/docs/ORCHESTRATOR_SESSION_PROMPT.md b/docs/ORCHESTRATOR_SESSION_PROMPT.md index b14d7cc5..7fc8e1d6 100644 --- a/docs/ORCHESTRATOR_SESSION_PROMPT.md +++ b/docs/ORCHESTRATOR_SESSION_PROMPT.md @@ -63,22 +63,25 @@ D-нотами → синхронизация доков → ответы вла 10. Obstacle reporting («что НЕ удалось / не проверено») — обязательная секция отчёта. 11. Канал вопросов («конфликт промта с кодом/доками → пинг через владельца, НЕ интерпретация») + право сессии сказать «этого делать не надо» с аргументом. -12. **ПРЯМОЙ КАНАЛ С ОРКЕСТРАТОРОМ — обязателен, три части, все три (заказ владельца 27.08).** - Без него сессия, нашедшая глупость в промте или упёршаяся в реализации, ищет тебя опросом всех - подряд — и чаще молчит. - - **(а) Живое имя.** Впиши в промт СВОЁ имя сессии, снятое `ListAgents` в момент выдачи, и как - им пользоваться (`SendMessage`). ⚠ **Имя НЕ вечно.** Замерено 27.08: в одном разговоре - `textmachine-87` стал `textmachine-33`, а весь список соседей сменился — причина, названная - владельцем, рестарт окружения (WSL). Точная механика смены НЕ измерена; достоверно одно — - **имя это живой адрес, а не долговечный**, и одного его НЕДОСТАТОЧНО. - - **(б) Эхо-рукопожатие.** Эхо-протокол (блок 9) сессия шлёт ПЕРВЫМ ДЕЙСТВИЕМ мне, а не пишет в - пустоту. Двойная польза: канал проверяется тогда, когда чинить его дёшево, и я вижу понимание - скоупа ДО работы. Не дошло — значит адрес протух, и это выясняется на первой минуте, а не на - третий день. - - **(в) Фолбэк, который не протухает: ВЛАДЕЛЕЦ.** Имя умерло — сессия пишет владельцу, он - пере-передаёт. Это единственный вечный канал, и он же уже канон («пинг через владельца»). +12. **ПРЯМОЙ КАНАЛ С ОРКЕСТРАТОРОМ — обязателен (заказ владельца 27.08).** Без него сессия, + нашедшая глупость в промте или упёршаяся в реализации, ищет тебя опросом всех подряд — и чаще + молчит. + - **Носитель — ФАЙЛ `/tmp/textmachine-channel`, а НЕ адрес внутри промта.** Промт указывает на + файл; имя живёт в файле. Пишешь его при старте роли и при каждой смене своего имени + (`ListAgents` — источник имени). Форма — `key=value`, парсер не нужен. + - **Почему именно `/tmp`, и это не небрежность:** имя сессии не переживает рестарт окружения, и + файл обязан умирать вместе с ним. Тогда «файла нет» и «канала нет» — ОДИН факт, а не два, + которые надо сверять. Класть его в репозиторий НЕЛЬЗЯ: переживший рестарт файл — это + протухший адрес, выглядящий живым. + - **Правило для сессии, которое промт обязан нести дословно: КАНАЛА НЕТ ⇒ НЕ ИСКАТЬ.** Файла + нет или имя не отвечает — вопрос уходит секцией «вопросы оркестратору» в отчёт, и работа + продолжается. Опрашивать сессии подряд ЗАПРЕЩЕНО: это шум, который ничего не находит. + - **Эхо-рукопожатие.** Эхо-протокол (блок 9) сессия шлёт ПЕРВЫМ ДЕЙСТВИЕМ по адресу из файла. + Канал проверяется тогда, когда чинить его дёшево, и ты видишь понимание скоупа ДО работы. + Эхо не дошло — канала нет, и обе стороны узнают это на первой минуте. + - **Вечный фолбэк — ВЛАДЕЛЕЦ.** Он пере-передаёт. Это уже канон («пинг через владельца»). -Плюс к любому промту: **прямой канал (блок 12) — проверить, что имя снято `ListAgents` СЕГОДНЯ, а не скопировано из прошлого промта** · построчная сверка инструкций с путями/каналами ВНЕ зоны сессии против зонной +Плюс к любому промту: **прямой канал (блок 12) — проверить, что `/tmp/textmachine-channel` написан ЭТОЙ сессией роли, а не остался от прошлой** · построчная сверка инструкций с путями/каналами ВНЕ зоны сессии против зонной таблицы CLAUDE.md (D39.99 п.4) · состав против ВСЕХ листов владельца (реестр требований · зонные журналы · его явные просьбы; пропуск подписывается пропуском) · фантом-гард: каждая цитируемая D-ссылка грепается по D-логу · mid-flight аддендумы доезжают ТОЛЬКО релеем — владелец пере-передаёт diff --git a/docs/PLATFORM_P9_SESSION_PROMPT.md b/docs/PLATFORM_P9_SESSION_PROMPT.md index df1ea1f0..c93ec88e 100644 --- a/docs/PLATFORM_P9_SESSION_PROMPT.md +++ b/docs/PLATFORM_P9_SESSION_PROMPT.md @@ -232,19 +232,18 @@ $0 и не должен их двигать. Рядом уже есть `chapter ## §10. Как со мной связаться — прямой канал -**Оркестратор №19, имя сессии `textmachine-33` (ref `635445`), снято `ListAgents` 27.08 при выдаче.** -Пиши `SendMessage` с `to: "textmachine-33"`. +**Адрес живёт в файле `/tmp/textmachine-channel`, не здесь.** Прочитай его — там имя моей сессии и +чем писать (`SendMessage`). Имя в промте я НЕ пишу нарочно: оно протухает, а протухший адрес в +документе выглядит живым и стоит сессии дня. -**Пиши, не копи.** Поводы, по которым молчать хуже, чем написать: нашёл глупость или ошибку в этом -промте (сегодня их находили в КАЖДОМ моём промте — по девять в одном) · пункт заказа оказался уже -исполненным или вредным · упёрся в реализации и видишь развилку, которую я не назвал · нужен факт из -чужой зоны, которую тебе не читать. +**Пиши, не копи.** Поводы, по которым молчать хуже: нашёл глупость или ошибку в этом промте (сегодня +их находили в КАЖДОМ моём промте — в одном девять, две из них убили бы работу) · пункт заказа +оказался уже исполненным или вредным · упёрся в развилку, которую я не назвал · нужен факт из чужой +зоны, которую тебе не читать. -⚠ **Если имя не отвечает — оно протухло, и это нормально.** Имена не переживают рестарт окружения: -замерено 27.08 — в одном разговоре `textmachine-87` стал `textmachine-33`, и весь список соседей -сменился, после того как владелец перезапустил WSL. Тогда: -1. `ListAgents` — посмотреть живые сессии; -2. **и сразу писать ВЛАДЕЛЬЦУ** — он пере-передаст. Это единственный канал, который не протухает, - и он же канон («пинг через владельца»). - -Не трать ходы на опрос всех сессий подряд, чтобы найти меня, — спроси владельца. +⚠ **КАНАЛА НЕТ ⇒ НЕ ИСКАТЬ.** Файла нет или имя не отвечает — значит оркестратора сейчас нет, и это +НОРМАЛЬНЫЙ случай, а не авария (файл лежит в `/tmp` именно затем, чтобы умирать вместе с адресом). +Тогда: +1. **НЕ опрашивай сессии подряд** в поисках меня — это шум, который ничего не находит; +2. положи вопрос секцией **«вопросы оркестратору»** в свой отчёт и **продолжай работу**; +3. владелец прочитает отчёт и пере-передаст — он единственный вечный канал.