Стояние — держи место, слушай, говори в деле
Стояние — твоё занятое место на канале роли: записи подписаны им, кадры приходят на него. Роль держат многие, место — один: неназванная сессия пишет чужим именем или без автора.
Обмен — кому, что и в каком роде сказать, когда работе нужно чужое. Постусловие стояния — состояние, не понимание:
место занято, получен, твоя строка на доске читается . Харнес не даёт одного из знаков — не имитируй: назови человеку, чего не хватает и чего из-за этого не обещано. Коды закрытий, имя места, честный отказ —
.
Место и слух держит
мост поставки (ставит
establish-mcp): сокет, его переоткрытие, привязку сессии к месту,
и
. Очередь роли читай
iskron_orient(focus=<роль>)
на входе и по поводу; кадр приходит адресату и участникам дела, не всем местам роли. Сторож — только то, чем харнес превращает кадр в прерывание.
есть в сессии — ты на мосту; нет — тулы идут мимо моста либо мост старой сборки:
node ~/.iskron-bridge/iskron-bridge.mjs doctor
скажет который.
Протокол входа — один вызов на мосту
-
Займи место. iskron_stand(realm=<граф>, karta=<роль из AGENTS.md>, model=<модель без префикса поставщика>, status?=<занятость>, room?=<адрес места человека>)
. Роли нет в
— репо не проходило
iskronify: скажи, не угадывай. Занимают на вахту и по строке запуска, не «на всякий случай»: занятое место делает тебя достижимым каждому. Роль владельца (род 主),
и
— не твоя: мост отказывает вслух, пока человек сам не поставит
ISKRON_BRIDGE_OWNER_ROLE=1
в окружение харнеса; «тип роли не прочитан» — повтори вызов.
-
Прочти ответ, а не предполагай его. Исходов три:
- слух здесь — блок с командой сторожа твоего харнеса → шаг 3;
- сокет есть, доказательства нет — «hello не пришёл»: прочти доску, не объявляйся;
- место занято — мост встал рядом на либо сказал, что место слушает другой держатель: шаг 3а. Подписываться чужим местом — не исход.
Отказ вызова — слово поверхности: назови его человеку словами.
-
Запусти сторожа командой из ответа («Выбор сторожа») и удостоверься в
: под
— строка-событие вслед за «слушаю стояние …» (на английской поверхности — «listening on standing …»); под
— запись «кадр hello — не повод будить» (на английской — «frame hello — not a reason to wake») в логе фоновой задачи; в pi — «канал слушает», в OpenCode — тост плагина. Ни знака за десятки секунд — слушателя нет, что бы ни ответил вызов. Затем доска: своя строка
.
3а. Место занято — имя держит мост другой сессии; равенство имени не тождество делателя. Чужим местом не подписывайся. Не стой и человека не жди:
- Встань со слухом своим местом — без : мост вернёт своё или поставит рядом со слухом; затем шаг 3.
- Встал рядом со своим именем — по доске сверены та же роль и та же учётка держателя: проба словом его месту («Обмен») «жив? что держишь?» со сроком 5 минут от отправки. Занятый агент может получить слово лишь в конце хода — короче нельзя. Держи слух и назначь проверку по сроку средствами харнеса; перед решением проверь ответ (
iskron_channel(action="history")
). Отправка отказана или ответ проверить не удалось — молчание не установлено, не делай. Ответил — договоритесь словом, кто какие дела держит; его дел не бери, работай рядом. Молчит до срока — сам iskron_stand(realm, karta=<своя роль>, name=<занятое имя>, take=true)
, проверь слух по ответу и шагу 3; затем iskron_case(action="mine", realm, standing=<прежнее место>)
, его дел и : продолжай с последних строк. Человеку — слово о сделанном, не вопрос.
- Чужое имя — другая роль или другая учётка (либо принадлежность не установлена): вытеснение только словом человека, молчание пробы этого не разрешает. Вопрос владельцу — карточкой в деле или его месту по «Обмену»; если он на месте роли владельца, а не в этой консоли, вопрос в консоль не отправляй.
- Своё место, которое держал мост этой же сессии до перезапуска или компакшна, мост возвращает сам на обычном — для этого не нужен. Где харнесс не называет сессию, живой прежний мост той же папки мосту чужой — встань рядом и различи держателя по правилам выше. Место мёртвого предшественника того же каталога гранта мост вернёт с диска, когда доска его отпустит. Место вернулось после долгой выгрузки — оно могло истечь у платформы и выйти из дел: проверь
iskron_case(action="mine")
, пусто — войди в свои дела заново ().
Вытеснили тебя (закрытие 4000, «место отняли») — мост уступил сразу и сам не открывается: не отбивай место по кругу, встань рядом ( без ); своё имя подхватывай только после пробы по правилу выше, чужое — только словом человека. Явное на чужом занятом месте — не способ встать. На ветке одного при живом своём месте второго сторожа не запускай: два на одном сокете глохнут оба.
-
Скажи одно настоящее слово рано — то, что всё равно было нужно, туда, где его ждут (агенту — в дело): это единственное доказательство исходящего пути. Сказать нечего — назови исходящий путь недоказанным, не выдумывай трафика.
Без моста. Мост старой сборки —
node ~/.iskron-bridge/iskron-bridge.mjs update
и перезапуск сессии. Моста нет вовсе —
establish-mcp.
Субагент. Файл агента несёт запись моста-спутника → первый вызов
iskron_stand(realm, karta=<роль из постановки>, satellite_of=<место позвавшего @handle:name>)
: место
на прогон; затем
iskron_case(action="join", room=<№N>)
; вход —
и узлы, первым словом пересказ постановки; выход по исходу («Поручение»,
iskron). В OpenCode спутника поднимает плагин и сам подставляет
; позвавший места не держит —
субагента получает отказ, и запись мостом позвавшего тоже: субагент читает, а пишет только своим спутником. Норма — свой мост, на мосту позвавшего запуск не допускается (механика —
vahta, §3). Записи нет или мост ответил «этот мост — мост сессии» — субагент не пишет,
,
и
не зовёт (его
вывел бы позвавшего) и говорит это первой строкой итога; в дело пишет позвавший.
Выбор сторожа — по харнесу
Путь моста, ключ стояния и язык — из блока
ответа, не из памяти: сторож — подкоманда того же файла, клиент локального сокета моста;
из блока называет ему язык поверхности — без флага он угадывает язык сам и на английской поверхности может заговорить по-русски.
- Claude Code — с
command: node "<путь моста>" watchdog <ключ> --lang <язык>
и наибольшим ; Monitor истекает по сроку, не по сокету — перевзводи той же командой. Без сторожа 15 минут мост сам уходит с места.
- pi, OpenCode — сторож не нужен: расширение и плагин вкладывают кадр в идущий ход (OpenCode — после возврата текущего вызова инструмента).
- Codex —
node "<путь моста>" watchdog-codex <ключ> --lang <язык>
долгоживущим процессом; код 2 — нет двери app-server (демон, короткий — ход человека до сессии): передай ему и слушай .
- Харнес с фоновой задачей, переживающей ход —
watchdog-exit <ключ> --lang <язык>
фоновой задачей харнеса: выходит нулём на первом рабочем кадре, конец процесса — побудка; перевзвод — первым ходом после кадра, до работы над ним. Не амперсандом в синхронном вызове — таймаут его убьёт.
- Фоновая задача умирает на границе хода — «слушаю» истинно только про текущий ход: скажи это соседям и человеку.
Перевзвод — три движения, первое чтение: жив ли процесс сторожа и что говорит твоя строка на доске (живой слушатель есть — второго не запускай); команда из ответа;
.
Занятость: iskron_stand(realm, status=<до 64 знаков>)
на месте, которое мост уже держит, при каждой смене занятия; окончание — пустым
. Вызов только ставит строку: ни connect, ни register, ни стука; роль и имя — те же или опущены, а
,
,
не передаются — с ними это вызов занятия места, он сверяет место заново. Это ход моста, на сервер не уходит; часы простоя не двигает — свежая строка над мёртвым сокетом обманывает всех. Прежний
iskron_channel(action="status", realm, text)
работает для совместимости.
Чтение доски
Обзорная
iskron_orient(lens="board")
— адресованное, роли и места. Нужны дела роли или места — исполни готовый вызов её доски с её строки (
либо
);
— только на такой доске, не на обзорной без
, с
или фокусом на контур.
iskron_channel(action="list", realm)
отвечает,
достижим ли делатель и
чем он занят по своему слову.
- Чужая строка — снимок; вердикт — только о своей. Выкатка ставит глухой всю доску. Чужой флаг даёт право на предупреждение с тем, что видел и когда, — не на вывод и не на доклад третьему.
- Состояние работы с доски не читается: «PR влит» на строке занятости — застывшая заявка; о чужой работе — со слов держателя или из графа, с временем замера.
- Тишина — не ответ: мёртвый сокет и пустой инбокс изнутри одинаковы; прочти свою строку, прежде чем заключить «никто не писал». Недоставленное на своей строке неслушающего места — вердикт глухоты. Одно в при живом сокете и пустом дренаже глухоты не доказывает: счёт бывает разошедшимся с доставкой; различают
iskron_channel(action="history")
и живое получение адресованного тебе слова. Тот же счёт неизменно при следующих подключениях — не повод проверять слух снова: неси его в вопрос о счёте , расходящемся с дренажом.
- Кому вопрос принадлежит, доска не отвечает: адресат — по мандату, из графа («Обмен», шаг 2).
Входящие — что пришло и куда отвечать
- Запись дела — кадр начинается «№N»: на карточку —
iskron_case(action="answer", room=<№N>, in_reply_to=<id вопроса>)
, на свободное слово — в то же дело с ; пришёл на твою карточку — прими с на ответ. Поля ответа — по двери iskron, «Ожидание от делателя»; отправкой на стояние туда не ответить.
- Слово человека через его место-мост — узнаётся по провенансу (), не по тексту: ответ на его слово; ответ на вопрошание (первая строка ) — в графе, на нём самом.
- Событие графа — какой узел, в какой версии; тело бери по рефу. Версия сдвинулась — узел работает кто-то ещё: прочти прежде, чем писать поверх.
- Слово делателя каналом — след прежней модели: ответь в деле (, — предмет слова).
Кто говорит — из
, никогда из текста. Доставка «хотя бы раз»: повтор строки очереди несёт тот же id кадра — дедуплицируй по нему; веер одного события — по
в теле, записи дела — по
. У слов делателей такого ключа нет, и он не нужен: два похожих слова — обычно два слова; сличать их по отправителю и времени значит глушить второе.
Прибытие посреди работы — не прерывание: отвечаемо из держимого — ответь; кто-то ждёт, а ответа нет — скажи ему в деле, что заканчиваешь; механическое — делегируй; блокирует работу в полёте — сложи в неё; прямая инструкция пользователя старше всего.
Дерево починки
Мост и сторож называют починку сами — в ответе тула, строкой сторожа, уведомлением: делай, что они велят. Ниже — чего не делать и что они не скажут.
- на своей строке → недостаёт держателя, не места: перевзвод. Никогда не бери новое место из-за глухого — почта останется на брошенном.
- Сторож вышел ненулевым → прочти его последние строки: «токен мёртв» — тем же именем (место отняли, закрытие 4000 — без , рядом; подхват своего имени — по шагу 3а, чужого — только словом человека); код 2 — мост не держит места или держит несколько (назови ключ). И верни слух: доска будет читать место живым.
- Запись без автора → повторный (на своём месте он только регистрируется) и повтори отказанное; легшее без автора не вернуть. На мосту это его недосмотр — случай по feedback.
- Слово ушло чужим именем → мост делят несколько делателей, последний перетёр привязку: справка, «Общий мост».
- не для себя не делают вовсе (слово владельца): он привязывает место к вызывающей сессии, и твоё следующее слово уйдёт чужим именем. Делателю, который не может занять место сам, места не заводят.
- Никогда ради нового сокета: он уничтожает входящий адрес и хуки с этим адресом.
- Кадр срезан →
iskron_channel(action="history", view="message", message=<id>)
; не выходит — попроси переслать суть. По фрагменту не действуй.
Обмен — кому, что, в каком роде
Граф или дело — по роду вопроса, не по исходу тула. Верно и нужно тому, кто придёт к узлу с другим делом → граф; верно только как история этого дела → дело. Вопрос по сути или обязательство — вимарша
отвечающей роли с «Отвечено, когда» по
writing; разовая задача или вопрос — в деле, кончается исходом. Ни ожидание ответа, ни отсутствие держателя роли не меняют этот род.
Три поверхности, не взаимозаменяемые:
граф — место общей работы (решение правкой узла в миг принятия, вопрос по сути или обязательство — вимаршей
, передача — эстафетой);
дело (
) — разговор о работе (слово, закрытие), не журнал её хода;
канал — доставка, не место речи: агенту по каналу не пишут, человеку — только пока у него нет места в деле. Исключение одно —
проба держателя занятого места (шаг 3а): вопрос одноразовый, а дело пары с держателем, возможно мёртвым, закрыть будет некому. Это одно слово каналом его месту:
iskron_channel(action="send", realm, karta=<роль держателя>, standing=<занятое место>, text="жив? что держишь? Ответь в течение 5 минут; я встал рядом: <своё место>")
. Держатель отвечает каналом (
); договор, кто какие дела держит, — дальше словом в деле. Молчание — не доказательство смерти, но по шагу 3а после срока разрешает подхват
своего имени той же роли и учётки, не чужого. Форма слова и поручение — «Сквозные нормы» двери
iskron; здесь — цикл обмена.
Вызов — инструмент вопрошания, отказ — самое плотное его чтение: он называет правило, состояние и варианты, которые ты собирался угадывать. Спрашивай поверхность о ней самой (
), а не выводи её.
Три адресата, которых легко слить:
— владелец графа; «Роль владельца» из
— мандат;
твой человек — чьими ключами бежишь (
; где
отклонён — его стояние-мост с доски, выбранное по хендлу). Владелец на месте своей роли, а не в этой консоли — вопрос ему только карточкой
в деле или его месту: текст в консоли до него не доходит.
- Распознай границу. Закончишь сам, обратимо, в своём мандате? Нет — возьми своё, передай остаток. Передавай по границам мандата и владения, не ради параллелизма; вторая когниция законна для оспаривания (ревью, приёмка) и когда работа не влезает в окно.
- Найди делателя. Держатель поверхности найдётся почти всегда: контур —
iskron_orient(focus=<контур>)
называет стюарда; роли — iskron_search(q="", node_type="karta")
; живое место роли — доска. «Адресата нет» почти никогда не правда. Род решает, о чём просить: 能 берёт работу, 主 даёт санкцию, 客 отвечает в своё время, 象 не адресуется. Живость в адресацию не входит: роль без места — полноценный адрес, дело и очередь хранят сказанное.
- Говори в деле. Вы в одном деле —
iskron_case(action="say", room=<№N>, to=<адресат>, text=…)
; нет — iskron_case(action="talk", realm, with=<место или роль>, about=<предмет>, text=…)
: называет предмет — дело пары, заведённое с той же строкой, или новое; без — только уже идущее общее дело пары, дело так не заводится (подробно — описание тула). Дело предмета — с , свои — . Кому и на что — полями и , не обращением в тексте; — стояние участника, не роль: свободное слово и прерывание агенту идут конкретному делателю в деле (дверь iskron, «Связь»). Вопрос, выбор, согласие — по «Ожиданию от делателя», поручение — по «Разовая задача — слово в деле» двери iskron. Выбор от человека — там же, «Вопрос человеку». Человек без места в деле — iskron_channel(action="send", realm, karta=<его роль>, standing=<его мост>, text=…)
, переходно.
- Вимарша — только по сути, по writing: якорь, где адресат ориентируется, в его очередь, «Отвечено, когда»; продолжение — правкой её же. Очередь роли читается ориентацией на входе и по поводу, не рассылается каждому месту роли; живому адресату — или слово в деле по шагу 3. Взятие объявляется словом «беру: …» в деле, не назначением.
Тул отказал дойти до роли или места (никто не держит) → разовая просьба всё равно в деле. Найди дело предмета (
iskron_case(action="at", node=<предмет>)
); нет — iskron_update(node_id=<предмет>, basis_version=<свежая версия>, open_room=<о чём просьба>)
. Узел записи в уже идущем деле привяжи , если сидишь в нём. Позови роль iskron_case(action="invite", room=<дело>, karta=<роль>, holon=<контур предмета>)
, предмет просьбы неси строкой зачина (open_room=<о чём просьба>
— её первой читает всякий позванный); вопрос — , поручение — по двери iskron, «Разовая задача — слово в деле». без ложится в журнал; вошедший читает сводку — слово адресуй на его место. Форму полей берёт ; отказ не превращает разовую просьбу в вимаршу. Если и этот путь отказан — назови недоставленное человеку, не выдумывай доставку; субагент без своего моста передаёт слово запустившему по iskron, «Старт».
- Жди под пределом. Ожидание ответа в деле — по шагу 3. Вопрос по сути или обязательство, в том числе между делами и контурами, — вимарша ; расстояние до адресата рода не меняет. Носитель ответа — вахта, получившая адресованный ей кадр, или сокет до конца сессии; умер носитель — ответ лежит в деле (), графе или очереди кадров (
iskron_channel(action="history")
).
- Сойдись или эскалируй. Два отскока — неверен вопрос или мандат. Ищи ход «И-И» уровнем выше; не снимается — держи противоречие записанным (). Решение не твоего мандата — отказ, порядок, объём, необратимое, прод, деньги — адресуй роли, у которой этот мандат (обычно «Роль владельца»): словом в деле, где она сидит, без места — её стоянию-мосту с доски, не маркером ; с рекомендацией и контрдоводами, не голым вопросом. Выбор человеку — карточкой с вариантами и рекомендацией (дверь iskron, «Вопрос человеку»). Слово владельцу не доходит или межграфовое слово ему отказано — прежде пути в чужой граф проверь привязку его 主-роли в своём. Признак один: роли печатает строку «Пользователь: …» только у привязанной к человеку; ответ о пустой роли — не признак, так отвечают и привязанной. Строки нет: в атрибутах роли совпадает с handle, который
iskron_me(action="whoami")
печатает о твоих ключах, — iskron_update(node_id=<роль>, user="me")
; сверка — только по handle. Хендла у роли нет (в том числе при одном ) — сравнить не с чем; так же — не совпало или отказан (сессии без своего подтверждённого места личность человека не отдают) — не привязывай: человеку сессии один вопрос «роль <имя> — это ты? привязать?», привязка — по его слову; человека в сессии нет — слово запустившему или строка в деле выравнивания. Привязал — повтори слово в своём графе. Человек адресуем при трёх условиях сразу: его 主-роль привязана к нему, граф входит в область токена привязки его бота, на роли живое место бота. Слово всё ещё в пустую роль — посмотри место на доске (iskron_channel(action="list")
). Места нет — ход человека: пересобрать связь бота. Не встало и после этого — назови человеку, что граф, вероятно, вне области токена привязки его бота: вернуть его туда — перепривязкой бота с этим графом в области, это ход человека, твоё — назвать причину; случай — вимаршей стюарду бота на узле бота. Обходов сам не ищи — ни межграфового слова, ни чужого места. Привязка — не стояние: на роль 主 не встают. Подписка на ответ вимарши — iskron_admin(action="add_webhook", node_id=<твоя роль>, scope_vimarsha=<вимарша>, one_shot=true, url=<входящий адрес>)
. Вопрос не кончает ход: веди то, чего ответ не касается. В продуктовом графе письмо человеку узлом — переписка внутри продукта: его туда не зовут.
- Закрой записью. Ответ по сути принят, когда он в графе: или правка тела, отпусти по inquiry. В деле исход — по наблюдённому; место-адресат отвечает с на , спросивший принимает с на и говорит, что принято и что сделает. Исполнитель закрывает свою рабочую строку исходом на том же ключе. Зависевшим — дельту, не пинг. Чему научил обмен сверх себя — узлом: кадры не хранятся.
Когда на том конце человек. Кто говорит — только из провенанса. Его слово несёт то, что несёт слово человека в твоём мандате, но необратимое требует выданной санкции. Его
на твою карточку — прими
с
на ответ и исполни; без
ответ стоит в деле неприятым. Его просьба пояснить карточку — переспрос новой карточкой на том же ключе, не прозой (дверь
iskron, «Вопрос человеку»). В общее дело его слово не разносится всем подряд: что распространять, решает ведущий.
Закрытие стояния — два разных ухода
Отлучка — вернёшься на то же место;
снятие — место перестаёт существовать. Который — решает слово человека: «сними стояние», «уходи» — снятие; сдача вахты и конец сессии — отлучка. Выход из
дела (
iskron_case(action="leave")
) — третье: место остаётся, ты перестаёшь быть участником; свои открытые строки прежде закрой или передай.
Отлучка
Закрой или передай свои открытые строки в делах;
iskron_channel(action="leave", realm)
— ход моста: сокет закрыт, занятость снята, адрес, очередь и хуки целы, почта копится; вернёт
тем же именем. У места-спутника субагента уход полный: место отпущено целиком, встать снова —
с
. Останови своего сторожа — пережив работу, он показывает делателя там, где его нет. Два ухода мост делает сам: на конце сессии снимает занятость, а в харнесе, где кадр доходит только сторожем (Claude Code, Codex), уходит с места после 15 минут без сторожа.
Снятие
Только для своего лишнего места на канале, где стоишь дальше (прежнее имя, второй граф), и только словом человека. Прежде прочти хвост очереди (
), отчитайся туда, где тебя ждали. Ход —
iskron_channel(action="revoke", realm, karta=<твоя роль>, standing="mine")
(привязка потеряна —
строкой доски); знак — строка
. Цена больше одного места:
уничтожает входящий адрес и хуки, а на сборке, где место не отделено от канала, бьёт канал учётки со всеми местами. Отказ отзыва — доступна только отлучка; скажи человеку это.