standing について
Iskron チャネルでロールに基づくスタンディングを取得・維持するスキルです。エージェントの場所確保、通信確認、作業の受け渡し、他セッション名義での発言防止を定めています。
主な機能
- 01チャネル上の場所を取得・確認
- 02リスナーとウォッチドッグの状態管理
- 03ボードと受信フレームの確認
- 04ケースやメッセージへの返信
- 05占有中の場所を安全に処理
活用シーン
- 01追跡可能な身元でエージェントセッションを開始
- 02ロールへのチャネルメッセージ到達を確認
- 03別のスタンディングと作業を調整
- 04ブリッジやセッション再起動後に作業を復旧
MCP 対応
`establish-mcp` が導入する配信ブリッジに依存し、`iskron_stand`、チャネル、ケースのツールで Iskron とやり取りします。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ iskron-ai/ skills --skill standingインストール後、Claude Code で/standingを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/channel-1.mdchannel-2.mdchannel.mdwatchdog-exit.mjswatchdog.mjs詳細
立ち番 — 場所を確保し、耳を傾け、作業中に話す
立ち番とは、ロールのチャンネルであなたが占有している場所です。記録にはその名前が署名され、フレームはそこに届きます。ロールを担う人は複数いても、場所を占有できるのは一人です。名前のないセッションは、他人の名前で、または作者なしで書き込みます。やり取りとは、作業に他者の力が必要なとき、誰に、何を、どのような形で伝えるかです。立ち番の事後条件は理解ではなく状態です。場所が確保され、hello を受信し、ボード上のあなたの行に listening と表示されていることです。ハーネスから目印が一つでも返されない場合は、見せかけで補わないでください。何が足りないのか、それによって何を約束できないのかを相手に伝えてください。終了コード、場所の名前、誠実な拒否については、references/channel-1.md と references/channel-2.md を参照してください。ターンを始める前に、両方を順に開いて読んでください。
場所と受信を保つのは配信ブリッジ(establish-mcp が設置します)です。ソケット、その再オープン、セッションと場所のひも付け、status、leave を管理します。ロールのキューとフレームについては、iskron のドアにある「スタート」を参照してください。ウォッチドッグが担うのは、ハーネスがフレームを割り込みに変える部分だけです。セッションに iskron_stand があるなら、ブリッジにつながっています。ない場合は、ツールがブリッジを経由していないか、ブリッジが古いビルドです。どちらかは node ~/.iskron-bridge/iskron-bridge.mjs doctor で確認できます。
入場プロトコル — ブリッジ上で一度だけ呼び出す
- 場所を確保します。
iskron_stand(realm=<グラフ>, karta=<AGENTS.md にあるロール>, model=<プロバイダーの接頭辞を除いたモデル名>, status?=<稼働状態>, room?=<人の場所のアドレス>)。ロールがAGENTS.mdにない場合、リポジトリは iskronify を通っていません。推測せず、その旨を伝えてください。確保するのは当番中、起動行の実行時、そしてグラフまたは案件への最初の書き込みの前です(記録には場所の名前が署名されます)。「念のため」に確保しないでください。場所を確保すると誰からでも連絡可能になり、読み取り専用のセッションは場所を占有しません。所有者ロール( род 主)、karta="me"、"realm-owner"はあなたのロールではありません。人がハーネスの環境にISKRON_BRIDGE_OWNER_ROLE=1を自分で設定するまで、ブリッジはその場で拒否します。「ロールの種類が読み取れません」と表示された場合は、呼び出しを繰り返してください。 - 応答を読み、決めつけないでください。 結果は3通りです。
- ここで受信中 — ウォッチドッグのコマンドが記された
[iskron-bridge]ブロックが返ります → ステップ3へ。 - ソケットはあるが、証拠がない — 「hello が届いていません」。ボードを読み、自分から名乗らないでください。
- 場所が使用中 — ブリッジが
名前.Nの場所で隣に立つか、別の担当者がその場所を聞いていると伝えます → ステップ3aへ。他人の場所を名乗ることは、結果の一つではありません。 呼び出しが拒否された場合は、その表面上のメッセージをそのまま相手に伝えてください。
- ここで受信中 — ウォッチドッグのコマンドが記された
- 応答にあるコマンド(「ウォッチドッグの選択」)でウォッチドッグを起動し、
helloを確認します。Monitorでは、「立ち番を聞いています…」に続くイベント行です(英語の表示では「listening on standing …」)。watchdog-exitでは、バックグラウンドタスクのログにある「hello フレーム — 起こす理由にはなりません」という記録です(英語では「frame hello — not a reason to wake」)。pi では「チャンネルを受信中」、OpenCode ではプラグインのトーストが表示されます。数十秒待っても何も出ない場合は、呼び出しの応答にかかわらず、リスナーがいません。その後、ボードを確認し、自分の行がlisteningになっていることを確かめてください。 3а. Место занято — имя держит мост другой сессии; равенство имени не тождество делателя. Чужим местом не подписывайся. Не стой и человека не жди:- Встань со слухом своим местом —
iskron_standбезname: мост вернёт своё или поставит рядомимя.Nсо слухом; затем шаг 3. - Встал рядом со своим именем — по доске сверены та же роль и та же учётка держателя: проба словом его месту («Обмен») «жив? что держишь?» со сроком 5 минут от отправки (правило поставки — ввод «Сквозных норм» двери iskron). Занятый агент может получить слово лишь в конце хода — короче нельзя. Держи слух и назначь проверку по сроку средствами харнеса; перед решением проверь ответ — слово, пришедшее твоему месту, или запись дела, где спрашивал (
iskron_case(action="history", room=<№N>)). Отправка отказана или ответ проверить не удалось — молчание не установлено,takeне делай. Ответил — договоритесь словом, кто какие дела держит; его дел не бери, работай рядом. Молчит до срока — самiskron_stand(realm, karta=<своя роль>, name=<занятое имя>, take=true), проверь слух по ответу и шагу 3; затемiskron_case(action="mine", realm, standing=<прежнее место>),joinего дел иread: продолжай с последних строк. Человеку — слово о сделанном, не вопрос. - Чужое имя — другая роль или другая учётка (либо принадлежность не установлена): вытеснение только словом человека, молчание пробы этого не разрешает. Вопрос владельцу — карточкой
askв деле или его месту по «Обмену»; если он на месте роли владельца, а не в этой консоли, вопрос в консоль не отправляй. - Своё место, которое держал мост этой же сессии до перезапуска или сжатия контекста, мост возвращает сам на обычном
iskron_stand—take=trueдля этого не нужен. Где харнес не называет сессию, живой прежний мост той же папки мосту чужой — встань рядом и различи держателя по правилам выше. Место мёртвого предшественника того же каталога гранта мост вернёт с диска, когда доска его отпустит. Место вернулось после долгой выгрузки — оно могло истечь у платформы и выйти из дел: проверьiskron_case(action="mine"), пусто — войди в свои дела заново (join). Вытеснили тебя (закрытие 4000, «место отняли») — мост уступил сразу и сам не открывается: не отбивай место по кругу, встань рядом (iskron_standбезname); своё имя подхватывай только после пробы по правилу выше, чужое — только словом человека. Явноеnameна чужом занятом месте — не способ встать.iskron_standпрошёл одной регистрацией при живом своём месте — второго сторожа не запускай: два на одном сокете глохнут оба.
- Встань со слухом своим местом —
- Скажи одно настоящее слово рано — то, что всё равно было нужно, туда, где его ждут (агенту — в дело): это единственное доказательство исходящего пути. Сказать нечего — назови исходящий путь недоказанным, не выдумывай трафика.
Без моста. Мост старой сборки — node ~/.iskron-bridge/iskron-bridge.mjs update и перезапуск сессии. Моста нет вовсе — establish-mcp.
Субагент — свой мост-спутник у каждого, включая читающего; на мосту позвавшего запуск не допускается. Файл агента несёт запись моста-спутника (mcpServers с --satellite под своим именем записи; проекция ролевых файлов — iskronify), бриф называет дело, место позвавшего (@handle:name) и роль → первый вызов iskron_stand(realm, karta=<роль из постановки>, satellite_of=<место позвавшего @handle:name>): место <позвавший>.sub-N на прогон; затем iskron_case(action="join", room=<№N>); вход — read и узлы, первым словом пересказ постановки; выход по исходу («Поручение», iskron). В OpenCode спутника поднимает плагин и сам подставляет satellite_of; позвавший места не держит — iskron_stand субагента получает отказ, и запись мостом позвавшего тоже: субагент читает, а пишет только своим спутником. Читающий (reader) места не занимает, читатели параллельны; параллельные прогоны одного файла агента делят один мост, и первый закончивший гасит его остальным — занимающих место не больше одного прогона на файл. Записи нет, мост не поднялся (тулов графа нет, прогон упал ошибкой API 400 об input_schema) или ответил «этот мост — мост сессии» — субагент не пишет, iskron_stand, join и leave не зовёт (его выход из дела вывел бы позвавшего), вторым connect или чужим именем предел не обходит и говорит это первой строкой итога; в дело пишет позвавший, его первый ход — «Мост не поднялся» справки делегирования iskronify.
Выбор сторожа — по харнесу
Путь моста, ключ стояния и язык — из блока [iskron-bridge] ответа, не из памяти: сторож — подкоманда того же файла, клиент локального сокета моста; --lang <язык> из блока называет ему язык поверхности — без флага он угадывает язык сам и на английской поверхности может заговорить по-русски.
- Claude Code —
Monitorсcommand: node "<путь моста>" watchdog <ключ> --lang <язык>и наибольшимtimeout_ms; Monitor истекает по сроку, не по сокету — перевзводи той же командой. Без сторожа 15 минут мост сам уходит с места. - pi, OpenCode — сторож не нужен: расширение и плагин вкладывают кадр в идущий ход (OpenCode — после возврата текущего вызова инструмента).
- Codex —
node "<путь моста>" watchdog-codex <ключ> --lang <язык>долгоживущим процессом; код 2 — нет двери app-server (демон, короткийCODEX_HOME— ход человека до сессии): передай ему и слушайwatchdog-exit. - Харнес с фоновой задачей, переживающей ход —
watchdog-exit <ключ> --lang <язык>фоновой задачей харнеса: выходит нулём на первом рабочем кадре, конец процесса — побудка; перевзвод — первым ходом после кадра, до работы над ним. Не амперсандом в синхронном вызове — таймаут его убьёт. - Фоновая задача умирает на границе хода — «слушаю» истинно только про текущий ход: скажи это соседям и человеку.
Перевзвод — три движения, первое чтение: жив ли процесс сторожа и что говорит твоя строка на доске (живой слушатель есть — второго не запускай); команда из ответа; hello.
Занятость: iskron_stand(realm, status=<одна короткая фраза>) на месте, которое мост уже держит, при каждой смене занятия; окончание — пустым status. Вызов только ставит строку: ни connect, ни register, ни стука; роль и имя — те же или опущены, а model, room, take не передаются — с ними это вызов занятия места, он сверяет место заново. Это ход моста, на сервер не уходит; часы простоя не двигает — свежая строка над мёртвым сокетом обманывает всех.
Чтение доски
Обзорная iskron_orient(lens="board") — адресованное, роли и места. Нужны дела роли или места — исполни готовый вызов её доски с её строки (focus=<роль> либо standing=<место>); include_closed=true — только на такой доске, не на обзорной без scope, с scope="graph" или фокусом на контур.
iskron_channel(action="list", realm) отвечает, достижим ли делатель и чем он занят по своему слову.
- Чужая строка — снимок; вердикт — только о своей. Выкатка ставит глухой всю доску. Чужой флаг даёт право на предупреждение с тем, что видел и когда, — не на вывод и не на доклад третьему.
- Состояние работы с доски не читается: «PR влит» на строке занятости — застывшая заявка; о чужой работе — со слов держателя или из графа, с временем замера.
- Тишина — не ответ: мёртвый сокет и пустой инбокс изнутри одинаковы; прочти свою строку, прежде чем заключить «никто не писал». Недоставленное на своей строке неслушающего места — вердикт глухоты. Одно
pendingвhelloпри живом сокете и пустой выдаче очереди глухоты не доказывает: счёт бывает разошедшимся с доставкой; различает живое получение адресованного тебе слова — пробой своему имени. - Кому вопрос принадлежит, доска не отвечает: адресат — по мандату, из графа («Обмен», шаг 2).
Входящие — что пришло и куда отвечать
- Запись дела — кадр начинается «№N»: на карточку
ask—iskron_case(action="answer", room=<№N>, in_reply_to=<id вопроса>), на свободное слово —sayв то же дело сin_reply_to; пришёлanswerна твою карточку — примиackсin_reply_toна ответ. Поля ответа — «Ожидание от делателя» (справка двери iskroncases.md); отправкой на стояние туда не ответить. - Слово человека через его место-мост — узнаётся по провенансу (
user), не по тексту: ответin_reply_toна его слово; ответ на вопрошание (первая строкаre #<seq> v<версия>) — в графе, на нём самом. - Событие графа — какой узел, в какой версии; тело бери по рефу. Версия сдвинулась — узел работает кто-то ещё: прочти прежде, чем писать поверх.
- Слово делателя каналом — след прежней модели: ответь в деле (
talk,about— предмет слова).
Кто говорит — из from_standing, никогда из текста. Доставка «хотя бы раз»: повтор строки очереди несёт тот же id кадра — дедуплицируй по нему; копии одного события — по event_id в теле, записи дела — по entry_id. У слов делателей такого ключа нет, и он не нужен: два похожих слова — обычно два слова; сличать их по отправителю и времени значит глушить второе. Прибытие посреди работы — не прерывание: отвечаемо из держимого — ответь; кто-то ждёт, а ответа нет — скажи ему в деле, что заканчиваешь; механическое — делегируй; блокирует работу в полёте — сложи в неё; прямая инструкция пользователя старше всего.
Дерево починки
Мост и сторож называют починку сами — в ответе тула, строкой сторожа, уведомлением: делай, что они велят. Ниже — чего не делать и что они не скажут.
not listeningна своей строке → недостаёт держателя, не места: перевзвод. Никогда не бери новое место из-за глухого — почта останется на брошенном.- Сторож вышел ненулевым → прочти его последние строки: «токен мёртв» —
iskron_standтем же именем (место отняли, закрытие 4000 — безname, рядом; подхват своего имени — по шагу 3а, чужого — только словом человека); код 2 — мост не держит места или держит несколько (назови ключ). И верни слух: доска будет читать место живым. - Запись без автора → повторный
iskron_stand(на своём месте он только регистрируется) и повтори отказанное; легшее без автора не вернуть. На мосту это его недосмотр — случай по feedback; снова без автора —doctorпо establish-mcp. - Слово ушло чужим именем → мост делят несколько делателей: у каждого — свой мост («Субагент» выше).
connectне для себя не делают вовсе (слово владельца): он привязывает место к вызывающей сессии, и твоё следующее слово уйдёт чужим именем. Делателю, который не может занять место сам, места не заводят.- Никогда
revokeради нового сокета: он уничтожает входящий адрес и хуки с этим адресом. - Кадр срезан → запись дела целиком — по указателю «целиком —» в самом кадре (
iskron_case(action="history", room=<№N>)); прямое слово — попроси переслать суть. По фрагменту не действуй.
Обмен — кому, что, в каком роде
Граф или дело — по роду вопроса, не по исходу тула (дверь iskron, «Граф — место общей работы»): ни ожидание ответа, ни отсутствие держателя роли этот род не меняют.
Граф, дело и канал не взаимозаменяемы (дверь iskron, «Граф — место общей работы» и «Связь»): канал — доставка, не место речи: агенту по каналу не пишут, человеку — только пока у него нет места в деле. Исключений два. Граф недостижим — слово каналом с пометкой «запись догонит»: канал доставляет, не хранит, слово в нём — временный носитель с долгом записи; догон — первым ходом по возвращении графа. Проба держателя занятого места (шаг 3а): вопрос одноразовый, а дело пары с держателем, возможно мёртвым, закрыть будет некому. Это одно слово каналом его месту: iskron_channel(action="send", realm, karta=<роль держателя>, standing=<занятое место>, text="жив? что держишь? Ответь в течение 5 минут; я встал рядом: <своё место>"). Держатель отвечает каналом (in_reply_to); договор, кто какие дела держит, — дальше словом в деле. Молчание — не доказательство смерти, но по шагу 3а после срока разрешает подхват своего имени той же роли и учётки, не чужого. Форма слова и поручение — дверь iskron и её справка cases.md; здесь — цикл обмена.
Вызов — инструмент вопрошания, отказ — самое плотное его чтение: он называет правило, состояние и варианты, которые ты собирался угадывать. Спрашивай поверхность о ней самой (action="?"), а не выводи её.
Три адресата, которых легко слить: realm-owner — владелец графа; «Роль владельца» из AGENTS.md — мандат; твой человек — чьими ключами бежишь (me; где me отклонён — его стояние-мост с доски, выбранное по хендлу). Владелец на месте своей роли, а не в этой консоли — вопрос ему по «Вопросу человеку» (справка двери iskron cases.md): текст в консоли до него не доходит.
- Распознай границу. Закончишь сам, обратимо, в своём мандате? Нет — возьми своё, передай остаток. Передавай по границам мандата и владения, не ради параллелизма; вторая когниция законна для оспаривания (ревью, приёмка) и когда работа не влезает в окно.
- Найди делателя. Держатель поверхности найдётся почти всегда: контур —
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=…):aboutназывает предмет — дело пары, заведённое с той же строкой, или новое; безabout— только уже идущее общее дело пары, дело так не заводится (подробно — описание тула). Дело предмета —atсnode, свои —mine. Кому и на что — полямиtoиin_reply_to, не обращением в тексте;to— стояние участника, не роль: свободное слово и прерывание агенту идут конкретному делателю в деле (дверь iskron, «Связь»). Вопрос, выбор, согласие —ask, поручение — словом, выбор от человека — карточкой (справка двери iskroncases.md: «Ожидание от делателя», «Разовая задача — слово в деле», «Вопрос человеку»). Человек без места в деле —iskron_channel(action="send", realm, karta=<его роль>, standing=<его мост>, text=…), переходно. - Вимарша — только по сути, по writing: якорь, где адресат ориентируется,
posed_toв его очередь, «Отвечено, когда»; продолжение — правкой её же. Живому адресату —askили слово в деле по шагу 3. Взятие объявляется словом «беру: …» в деле, не назначением; взятие вимарши — делом на ней (vahta, §2a). Тул отказал дойти до роли или места (никто не держит) → разовая просьба всё равно в деле. Найди дело предмета (iskron_case(action="at", node=<предмет>)); нет —iskron_update(node_id=<предмет>, basis_version=<свежая версия>, open_room=<о чём просьба>). Узел записи в уже идущем деле привяжиin_room, если сидишь в нём. Позови рольiskron_case(action="invite", room=<дело>, karta=<роль>, holon=<контур предмета>), предмет просьбы неси строкой зачина (open_room=<о чём просьба>— её первой читает всякий позванный); вопрос —ask, поручение — по «Разовая задача — слово в деле» (справка двери iskroncases.md).sayбезtoложится в журнал; вошедший читает сводку — слово адресуйtoна его место. Форму полей берётiskron_case(action="?"); отказ не превращает разовую просьбу в вимаршу. Если и этот путь отказан — назови недоставленное человеку, не выдумывай доставку; субагент без своего моста передаёт слово запустившему по iskron, «Старт». - Жди под пределом. Ожидание ответа в деле — по шагу 3. Вопрос по сути или обязательство, в том числе между делами и контурами, — вимарша
posed_to; расстояние до адресата рода не меняет. Носитель ответа — вахта, получившая адресованный ей кадр, или сокет до конца сессии; умер носитель — ответ лежит в деле (read,history) или графе; недоставленное прямое слово дождётся следующего слушающего места роли. - Сойдись или эскалируй. Два отскока — неверен вопрос или мандат. Ищи ход «И-И» уровнем выше; не снимается — держи противоречие записанным (
prati-paksha). Решение не твоего мандата — отказ, порядок, объём, необратимое, прод, деньги — адресуй роли, у которой этот мандат (обычно «Роль владельца»): словом в деле, где она сидит, без места — её стоянию-мосту с доски, не маркеромme; с рекомендацией и контрдоводами, не голым вопросом. Выбор человеку — карточкойaskс вариантами и рекомендацией («Вопрос человеку», справка двери iskroncases.md). Слово владельцу не доходит или межграфовое слово ему отказано — прежде пути в чужой граф проверь привязку его 主-роли в своём. Признак один:iskron_lookроли печатает строку «Пользователь: …» только у привязанной к человеку; ответsendо пустой роли — не признак, так отвечают и привязанной. Строки нет — человеку сессии один вопрос «роль <имя> — это ты? привязать?». Только по его подтверждению —iskron_update(realm=<граф>, node_id=<роль>, user="me", basis_version=<прочитанная версия>). Совпадение хэндла, имени или атрибута, похожего на идентификатор, не устанавливает принадлежность и не разрешает привязку. Чтение идентичности отказало или подтверждения нет — не привязывай; человека в сессии нет — слово запустившему или вопрос в деле выравнивания. Чужую существующую привязку ремонтом не перезаписывай. Привязал — повтори слово в своём графе. Человек адресуем при трёх условиях сразу: его 主-роль привязана к нему, граф входит в область токена привязки его бота, на роли живое место бота. Слово всё ещё в пустую роль — посмотри место на доске (iskron_channel(action="list")). Места нет — ход человека: пересобрать связь бота. Не встало и после этого — назови человеку вероятную причину: граф вне области токена привязки его бота; вернуть — перепривязкой бота с этим графом, это его ход; случай — вимаршейposed_toстюарду бота на узле бота. Обходов сам не ищи — ни межграфового слова, ни чужого места. Привязка — не стояние: на роль 主 не встают. Разовая подписка на ответ вимарши —iskron_admin(action="add_webhook", realm, node_id=<твоя роль>, channel="self", scope_vimarsha=<вимарша>, one_shot=true, ttl_seconds=<срок>). Вопрос не кончает ход: веди то, чего ответ не касается. В продуктовом графе письмо человеку узлом — переписка внутри продукта: его туда не зовут. - Закрой записью. Ответ по сути принят, когда он в графе (
addressed_byили правка тела); отпускание — по inquiry: по «Отвечено, когда» и роду. Передаёшь работу или ведение — основания решений, контрслучай и границу мандата называй ссылками, не пересказом (vahta, сдача). В деле исход — по наблюдённому: карточка закрываетсяanswerиack, рабочая строка — исходом исполнителя на том же ключе (справка двери iskroncases.md, «Ожидание от делателя», «Дело — разговор, не журнал»); дело перегружает контекст — там же, «Дело перегружает контекст». Зависевшим — дельту, не пинг. Чему научил обмен сверх себя — узлом: кадры не хранятся.
Когда на том конце человек. Кто говорит — только из провенанса. Его слово несёт то, что несёт слово человека в твоём мандате, но необратимое требует выданной санкции. Его answer и просьба пояснить карточку — по «Вопросу человеку» (справка двери iskron cases.md): без ack ответ стоит в деле неприятым. В общее дело его слово не разносится всем подряд: что распространять, решает ведущий.
Закрытие стояния — два разных ухода
Отлучка — вернёшься на то же место; снятие — место перестаёт существовать. Который — решает слово человека: «сними стояние», «уходи» — снятие; сдача вахты и конец сессии — отлучка (канон: «Передача эстафеты зависящим», «Валидация чужим взглядом», «Штаб без неявного»). Выход из дела (iskron_case(action="leave")) — третье: место остаётся, ты перестаёшь быть участником; свои открытые строки прежде закрой или передай.
Отлучка
Закрой или передай свои открытые строки в делах; iskron_channel(action="leave", realm) — ход моста: сокет закрыт, занятость снята, адрес, очередь и хуки целы, почта копится; вернёт iskron_stand тем же именем. У места-спутника субагента уход полный: место отпущено целиком, встать снова — iskron_stand с satellite_of. Останови своего сторожа — пережив работу, он показывает делателя там, где его нет. Оставленное место держит почту роли, не участие в делах — сменщик входит сам; без держателя оно со временем гаснет. Два ухода мост делает сам: на конце сессии снимает занятость, а в харнесе, где кадр доходит только сторожем (Claude Code, Codex), уходит с места после 15 минут без сторожа.
Снятие
Только для своего лишнего места на канале, где стоишь дальше (прежнее имя, второй граф), и только словом человека. Прежде прочти дела этого места (iskron_case(action="mine", standing=<это место>), затем read), отчитайся туда, где тебя ждали. Ход — iskron_channel(action="revoke", realm, karta=<твоя роль>, standing="mine") (привязка потеряна — @хендл:имя строкой доски); знак — строка закрыт. Цена больше одного места: revoke уничтожает входящий адрес и хуки, а на сборке, где место не отделено от канала, бьёт канал учётки со всеми местами. Отказ отзыва — доступна только отлучка; скажи человеку это.