How to use
- Copy the installation command and review the source package before installing it in your own agent environment.
- Check the source document for required tools, credentials and supported hosts.
- Describe your input and desired deliverable; review the output against the source material.
npx skills add https://github.com/iskron-ai/skills --skill iskronifyBefore you start
- Installation does not include a model subscription, API allowance or permission to access your files.
- Repository stars and installation counts describe activity, not an independent quality or security test.
Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.
Repo-boost
Приведи текущий репозиторий к агентскому стандарту iskron: плотный AGENTS.md (читается каждую сессию каждым харнессом), REALITY.md рядом (таблица носителей реальности, читается по поводу — при поведенческой заявке и в брифе verifier/reviewer), CLAUDE.md-указатель, ритуалы сессии хуками и гейт качества. Конфиг ты генерируешь из скелетов — пользователь шаблонов не вставляет.
Деливерабл — интерфейс доверия. AGENTS.md и REALITY.md — производные виды: проекция источников (код, package.json, CI, файловая система, граф) плюс тонкий слой авторского суждения, который больше нигде не живёт. Контракт двуглав: плотность (каждая строка меняет поведение) и точность (каждая производная строка перепроверена против источника в этом прогоне). Плотная ложная строка хуже многословной.
Скелеты: references/agents-template.md (AGENTS.md: YAML-фронтматтер и тело) и references/reality-template.md (REALITY.md) — слоты <…> и заметки <!-- … -->. Заполни слоты, выброси неприменимые опциональные строки, вычисти каждую заметку и угловую скобку. Скелеты — что произвести; этот файл — как.
Контракт: `19`. Шаг 7 штампует это число в каждый AGENTS.md. Увеличивай на единицу, только когда перемена здесь или в скелетах делает уже сгенерированный файл неверным (секция или файл добавлены, переименованы, изъяты; ритуал изменён; имя тула выпало), никогда ради формулировок. То же число стоит первым словом в description — нарочно: триггер срабатывает по описанию, а в контексте сессии сходятся только описания скиллов и штамп AGENTS.md; расхождение копий ловит make validate. Конфиг со штампом-датой или без штампа — ниже любого числа: прогони полную дугу (правило запуска держит шаг «Выравнивание» двери iskron) и назови контракт, из которого пришёл конфиг.
Строка `AGENTS.md` расходится со скиллом — назови вслух, молча не выбирай: в деле постановщику, без дела — человеку. Штамп ниже контракта установленного iskronify — прав скилл, прогони; равен — дефект шаблона, фидбэк стюарду поставки скиллов (feedback). Правило стоит и в скелете («Держи этот файл честным») — для агента, этот скилл не загрузившего.
Редакция установленной поставки сверяется здесь. Всякий прогон — и всякий вывод «инструкция скилла неверна» (туда шлют feedback и entry) — начинается сверкой бегущего с выпущенным:
cat ~/.claude/plugins/cache/*/*/*/.claude-plugin/plugin.json # что у тебя бежит
gh release view --repo <репозиторий плагина> --json tagName # что существует
node ~/.iskron-bridge/iskron-bridge.mjs --version # какую сборку несёт копия мостаОтстал больше чем на патч — обнови поставку, перезапусти сессии харнесса и только потом гони дугу: конфиг из протухшего скилла наследует его дефекты. Число контракта этого не заменяет: оно движется с формой конфига, версия — с каждой отгрузкой.
Скелет инлайнит граф-агностичную дисциплину (Рабочие принципы, «Жизненный цикл сессии») в каждый AGENTS.md — сжато, по строке на правило, но инлайн, не указателем в граф или скилл: есть харнессы без хука старта, и файл обязан стоять сам.
Аудит → классификация → действие
Репозиторий — спектр, не «свежий или настроенный»; ловушка — «файл есть, значит, его факты верны». Аудируй каждую заботу против её источника и классифицируй:
- absent — выведи из источника; авторский слот без проверяемого источника — в дело выравнивания, никогда не выдумывай.
- stale — ре-спроецируй, перезаписав; записанное не тащи вперёд.
- correct — оставь.
Опаснее всего почти-верный конфиг: устаревшие строки среди доверенных — проверочный проход идёт по всему артефакту (Шаг 7).
Источник истины по заботам
| Забота | Источник истины | Как проверить |
|---|---|---|
| Версии, зависимости | package.json / pyproject.toml / go.mod / Cargo.toml + lockfile | прочитать |
| Команды build/test/lint/dev | scripts, Makefile/Justfile, CI-workflow | прочитать; --help/dry-run, где дёшево |
| Гейт качества | конфиг линтера, tsconfig, CI-yaml | прочитать |
| Раскладка: карта кода, ловушки среды | слот обложки «Раскладка» | слота нет — умолчание: один AGENTS.md, навигация по файлам — компактно в README компонента, готчи в графе; прогон README компонентов не пишет: пока README компонента нет, его карта — в «Структуре проекта» AGENTS.md, и первый, кто тронет компонент, переносит её в README. Отступление — раздел «Структура проекта» вместо README — только там, где README рядом с выходами запрещён (выходы уезжают потребителю); запрет действует на такие выходы, не на весь репо, и выводится из него самого. GOTCHAS.md в репо — чья-то раскладка: разреши по Шагу 1; пока источники её не разрешили — слот пустой, источник не согласовано — дело №N, файлы нетронуты |
| Структура проекта, path-алиасы | файловая система + конфиг бандлера; при раскладке «README компонента» — сами README | glob / list; таблица «компонент → README» сверяется существованием файлов |
| Nature, production statement, послабления | граф, код репо, слово агентов; принятые владельцем ограничения сохраняются | разрешить по порядку Шага 1; смена мандата или цены поломки без основания — принципиальный вопрос |
Носители реальности (REALITY.md) | граф, наблюдаемый кодом путь поставки, слово агентов | проверить достижимость канонического носителя; неизвестное — Ceiling, не выдуманный носитель |
| Проектные решения, why-клаузы, открытые вопросы | граф | iskron_orient / iskron_search |
| Состояние веток | git + форжа | git status / log; CLI форжи |
| Готчи | авторское; дом — по слоту «Раскладка» | только sanity-check — не автовыводить, не переносить между домами |
| Блоки канонов графа | узел-правило с attrs.prose_for_repos | iskron_search(realm=<граф>, q="", attrs_filter="prose_for_repos:**"); блок кладётся байт-в-байт на место из attrs.prose_anchor, ниже — только хвост репо; применимость — по attrs.scope, иначе по смыслу, сомнение — порядком Шага 1 |
Производные факты (верхние строки, блоки канонов) ре-проецируются каждый прогон; авторское суждение (готчи, why-клаузы, nature, носители) сохраняется, лишь сверяясь на здравость с кодом.
Контракт выхода — плотность и точность
- Императив агенту: «ориентируйся до кода», не «агенту следует».
- Каждая строка меняет то, что агент делает; иначе удали. Чек-лист, не эссе.
- Без проектных обоснований и пересказа графа — линкуй.
(why: …)— только для инварианта, который агент иначе нарушит. - Таблицы и буллеты, одна директива на буллет.
- Секция, растёкшаяся в абзацы, несёт обоснование — перенеси в граф.
Вне объёма — механика оркестрации (цепочки гейтов, суб-агентная проверка пушей, model-routing, многополосная координация): её дом — скилл оркестрации или граф; срез делегирования проецируется ролевыми файлами (Шаг 6), не прозой.
Пример: ❌ «Мы стараемся аккуратно обращаться с состоянием, потому что стор — единственное место данных, иначе демо может выглядеть сломанным.» ✅ «Persona-scoped UI читает роль через use-acting-context; перепроверь рендер при смене персоны. (why: устаревшее чтение показывает данные чужой роли.)»
Процедура
Идемпотентна: в зрелом репо прогоняй каждый self-check и действуй только по провалам; докладывай, что осталось.
Два такта
Кто исполняет прогон. Где харнес даёт субагентов, прогон исполняет субагент роли designer — и на вахте, и в интерактиве: у него свой мост-спутник, он пишет в граф; протокол — этот скилл. Нет субагентов, ролевого файла designer ещё нет (первый контакт, такт 1 до проекции, роли старше контракта) или спутник не поднялся — прогоняет сам агент. Прогон обновляет AGENTS.md и производные сам, не ждёт присутствия или подтверждения человека. Дело выравнивания ведёт позвавший (ведущий); designer работает в своём дочернем деле из строки запуска и дела выравнивания не ведёт (п. 5). Человека будит и ожидание держит ведущий, не designer, и только по принципиальному вопросу, не разрешённому графом, кодом и коллегами: designer возвращает его строкой partial. Вопросы прогона — порядком Шага 1 («Человек обычно не в треде»).
Такт 1 «встать» — без вопросов, до минуты, в любом репозитории. Первый такт при первом контакте, по слову «iskronify» или при найденном отставании конфига. Быстро разрешаемое — в файл с источником, остальное — дыркой в дело; затем такт 2 без ожидания человека.
- Адреса. Граф и роль — из слова человека, строки окна с адресом места или существующего
AGENTS.md. Граф не назван —iskron_realm(action="list"), сверь с записанным о репо и спроси коллег; не разрешилось, какой граф выбрать или создать, — принципиальный вопрос о границе проекта по Шагу 1, не угадывай имя. Создание —iskron_realm(action="create")по принятому выбору. Роль владельца — 主-роль человека твоих ключей (iskron_me(action="kartas")); перечень, где стоишь ты сам, — знак сбитой привязки: слот дыркой, вопрос — в деле выравнивания; ролей у человека нет — заведи svatantra-роль (Шаг 2). - Контур репозитория.
origin→хост/организация/репо→iskron_search(q="", node_type="holon", attrs_filter="repository:<значение>"). Нет —iskron_add_holon(containsот корня графа или контура репозиториев) сattrs.repositoryиopen_roomдела выравнивания. Один репозиторий — один контур. - Роль на репо.
iskron_search(q="", node_type="karta", steward_of=<контур>); нет —iskron_add_karta(manifested_as=adhikarin, мотивация — дистиллят того, что репо шипит) иstewardк контуру. Одна роль на репозиторий. - Обложка и файлы. Слоты — YAML-фронтматтер в начале
AGENTS.mdпо скелету и Шагу 7. Из графа и кода — «выведено»; из записанного ответа — «согласовано: кто», в том числе агент соседнего контура. Не разрешённое — пустое значение и источник «не согласовано — дело №N»; авторский слот не становится дыркой только потому, что человек отсутствует. «Жизненный цикл сессии» инлайнится из скелета.REALITY.md— таблицей разрешённых носителей; пока их нет, заголовок скелета и строка: «Носители ещё не установлены; дело выравнивания №N. До их установления поведенческие заявки не принимаются.» Таблица Reality вAGENTS.mdуже есть — переносится вREALITY.mdпо Шагу 7. - Дело выравнивания на контуре из п. 2 ведёт позвавший (ведущий): открытое уже есть (
iskron_case(action="at", node=<контур>)) — ведёт его; нет — открываетopen_roomу записи контура илиiskron_updateсуществующего, зачином до 64 знаков: «Выравнивание <репо> под контракт N». Прежде первой записи — назовись и войди (iskron_case(action="join")); стояние на вахту не нужно. Исполняешь сам — ведущий ты: назовисьiskron_channel(action="register", realm, karta=<роль на репо>, name=<выведенное имя>). Исполняет субагентdesigner— ведущий заводит ему дочернее дело (open_roomсparent_room— дело выравнивания) и ставит его №N в строку запуска;designerвстаёт спутником (iskron_standсsatellite_ofместа позвавшего, как вdelegation.md),registerпод выведенным именем не зовёт (имя — позвавшего), пишет строки «слот: …» и вопросы в дочернее дело, дела выравнивания не ведёт и выходит концом поручения (iskron_case(action="leave")). Каждый авторский слот — строка своим ключом «слот: <имя>» (partial— на ком, чего ждёт), вопрос — словом в деле. Вопросы прогона — порядком Шага 1 («Человек обычно не в треде»). Первое слово: «есть вопросы по проекту, за который я отвечаю, — ответьте или скажите, кто может ответить». Анкету, вопросы прогона, план и ход выравнивания в граф не пиши; в граф такт пишет только структуру (контур сrepository, роль) и готчи правилами (Шаг 7). - Хук старта и сторож памяти — из Шага 4 только
SessionStartи memory-guard; стабMEMORY.md(Шаг 5) — только над пустой или отсутствующей директорией памяти. Непустая — эвакуация по Шагу 5 в такте 2; до неё строка скелета о заморозке не утверждает завершения, а ссылается на строку дела выравнивания. Остальные хуки — такт 2. УказательCLAUDE.md— Шаг 7. - Стояние — не здесь: его занимает старт двери
iskron, только на вахту.
Отчёт — строки гроссбуха такта в деле выравнивания, затем свободным текстом, что открыто; такт по слову другого дела — слово-отчёт там, называющее дело выравнивания; затем эстафета Шага 7. Такт по слову дела — поручение: его строку закрываешь ты, тем же ключом, по наблюдённому исходу.
Такт 2 «доделать» — сам, не блокируя. Продолжи после такта 1; каждый следующий старт (шаг «Выравнивание» двери iskron) читает сводку дела из ключа «Согласование» фронтматтера — iskron_case(action="read"); писать — назвавшись и войдя, как в п. 5. Слоты разрешай графом, кодом и словом коллег по Шагу 1. Впиши значение и источник без переспроса, закрой строку «слот: …» ok. Ответ агента подписывается его именем, не именем владельца; повторного подтверждения человеком не требует. Полная дуга (Шаги 1, 3, 4, 6, гейт, хуки, ролевые агенты) идёт без человека; неразрешённый слот держит только зависимую часть. Все слоты разрешены — «Согласование» = «пусто», предложи закрыть (propose_close, свидетельство — строки слотов), если ведущий ты; иначе слово ведущему.
Шаг 1 — Разреши слоты (такт 2)
Не выбирай дефолты молча. Прочти граф, код репо и старый конфиг; чего они не разрешили — спроси у агентов соседних контуров в деле выравнивания. Запиши во фронтматтер значение и источник: Nature (не production — что ослаблено и почему), имя графа, «Стек», гейт (Шаг 3). Принятые авторские ограничения сохраняй; переспрос человеку нужен только для принципиального остатка.
Переход со старой анкеты. «Согласование» или дырка называет узел (#N), не дело, — форма прежнего контракта. Прочти узел (iskron_look): ответы с именем ответившего — в слоты «согласовано: кто»; открытые — строками «слот: <имя>» в дело выравнивания, пустое значение и источник не согласовано — дело №N во фронтматтер; узел-анкету отпусти (visarjana, reasoning «перенесён в дело №N»), чужой — слово автору.
Также согласуй:
- Кто владеет направлением — svatantra-роль владельца (主), создаётся в Шаге 2; принципиальные вопросы слотов — ей через ведущего в деле выравнивания, не анкетой в графе.
- Общее изменяемое состояние build/test (база, фиксированный порт, dev-сервер, глобальный кэш, облачная песочница): есть — зафиксируй по-полосную изоляцию готчей (агенты гоняют ветки конкурентно в отдельных worktree).
- Реальность →
REALITY.md. Установи из графа, кода и ответов коллег: куда приземляется изменение, какие эффекты производит, какие наблюдаемы и какой командой / URL / запросом, что агент достаёт сам, что требует пользователя. Дожимай до канонического носителя каждого класса: собранный артефакт, не исходники; живой эндпоинт, не хендлер; чистая установка, не тёплый кэш. Класс без достижимого наблюдения — в Ceiling с причиной; вывод о носителе не равен наблюдению поведения. Датированные замеры (сроки, версии, «наблюдено тогда-то») — узлами в граф, вREALITY.md— только нужное для наблюдения. ВAGENTS.md— раздел «Reality» указателем: прочтиREALITY.mdпрежде поведенческой заявки, первая строка таблицы названа, Ceiling — там. (Как таблица работает при закрытиях — скилл vahta, §3 «Работа и эстафета», абзац оreality-auditперед закрытием.) - Кросс-проектная память — умолчание шаблона: значение из скелета, источник
выведено: умолчание шаблона, без вопроса человеку. Личный граф@<handle>/mindесть у каждого, о нём не спрашивай: нет — заведи граф и роль по minding; маршрутизация и сообщение memory-guard всегда несут его ветку. Поведение агента настраивают только коммитящиеся файлы рабочего дерева (AGENTS.md, файл хуков) и граф проекта — никогда глобальный файл инструкций (~/.claude/CLAUDE.md,~/.config/opencode/AGENTS.md…), память харнесса, пользовательские хуки; о глобальном файле не спрашивай и не заводи. Установка поставки — доставка, не настройка. Предпочтение, влияющее на процесс и результат, — в AGENTS.md или граф проекта; личное — в@<handle>/mind. - Фидбэк-рефлексия — рефлексировать ли опыт о методе в конце сессии или на мерже и записывать стоящее в граф работы (контур инструмента, адресом стюарду, после проверки на дубли, случаем). Умолчание шаблона — да, источник
выведено: умолчание шаблона, без вопроса человеку: регион feedback-reflection скелета остаётся, хук мержа несёт такт. Нет — только по записанному слову (согласовано: кто): удали регион целиком. - Сосуществование с workflow-набором — только когда найден коэрсивный набор (его скиллы в списке или его директория в кэше плагинов; сегодня superpowers): (1) полный interop (рекомендуется) — подсекция из
references/superpowers-interop.md+ spec-write-хук; (2) только проза; (3) пропустить — назови риск: дизайн-сессии набора не осядут в граф.
Человек обычно не в треде. Прогон сам обновляет AGENTS.md и производные; присутствие человека не условие. Везде выше и ниже «согласуй», «спроси», «подтверди» для слота означают этот порядок:
- Сделай всё, что от ответа не зависит: аудит, выводимое, гейт, хуки.
- Сперва граф и код, затем братья — агенты соседних контуров. Неразрешённое — в одном деле выравнивания, строкой «слот: <имя>», не узлом и не делом на слот. Позови знающих коллег
iskron_case(action="invite"), вопрос —sayтам же; их ответ — в слот с их именем. Факт из графа или кода впиши как «выведено», основание назови в строке дела. - Только принципиальный остаток — человеку через ведущего дела. Смена мандата, принятого ограничения, цены поломки, выбор или создание графа (граница проекта, такт 1, п. 1) либо неразрешимый конфликт источников — принципиальное; отсутствие ответа или сведений само по себе — нет. Прежде эскалации назови, что проверено в графе и коде, кого спросил и почему это требует решения владельца.
designerвозвращает такой вопрос в отчёте и строкойpartial«слот: <имя> — на ведущем: принципиальный вопрос владельцу». Позвавший будит человека и держит ожидание:inviteего места; места нет — его роли с контуром (karta=<роль владельца>,holon=<контур репо>). Нет доступного места — вопрос остаётся в деле у ведущего; остальная работа продолжается. - Дырка, не догадка: значение слота
'', его источник'не согласовано — дело №N';Согласованиеназывает это дело. Непринципиальное неизвестное остаётся строкойpartialна знающем агенте или ведущем с тем, чего ждёт. Старт двери найдёт ответ и впишет без переспроса.
Отвеченное пишется сразу; один слот не держит остальные.
Шаг 2 — Бутстрап графа
- Графа нет — согласуй имя,
iskron_realm(action="create"). - Фокус-контур (граница проекта,
containsот корня) — спроектируйdesign, создайiskron_add_holon;#seq— в обложку. Контур несёт атрибут `repository` —хост/организация/репоизgit remote get-url origin, без протокола и.git(напримерgithub.com/iskron-ai/skills); по нему работаетattrs_filter="repository:…", и старт двери сверяет его с origin. Ставь при заведении и на рефреше; один контур — один репозиторий. - Делатель — стюард. Роль агента (
iskron_add_karta,manifested_as=adhikarin, мотивация — дистиллят Production statement) проведиstewardк фокус-контуру — эта роль, не старшая, иначе ориентация на контур не найдёт делателя. Нет svatantra-роли владельца — создай. Оба seq — в обложку. - Холон + стюард — корень поля интеграции; обход держит
integrity. Об «общих поверхностях» не спрашивай и списка в AGENTS.md не пиши; не найденная зависимость — дефект модели (design,weaving).
Шаг 3 — Гейт качества (строжайший в принятом мандате)
По каждому пункту: строжайший вариант для стека, трейд-офф одной строкой, источник по Шагу 1. Послабления — из принятого ограничения, откалиброванного ценой поломки, во фронтматтер по-инструментно; нового основания нет — принципиальный вопрос. Ужесточение уже-ослабленного гейта — обязательство рефакторинга: сперва измерь (прогон на предлагаемой строгости, число провалов); смена принятого ограничения без основания — тем же порядком владельцу, возможно отдельной веткой. Прочие части прогона её не ждут.
- Линтер максимально строгий (
@typescript-eslint/strict; RuffE,F,B,I,N,UP,RUF;golangci-lintширокий;clippy -- -D clippy::pedantic). - Форматтер, auto-fix on save + pre-commit (Prettier,
ruff format,gofumpt,rustfmt). - Тайпчекер strict, если есть (
tsc --strict,mypy --strict/pyright --strict). - Pre-commit-хук: линтер + форматтер + тайпчек по staged-файлам.
- Тесты + дисциплина (unit для библиотек; +integration для сервисов; +e2e для UI; порог покрытия для production) — в «Конвенции кода».
- CI: lint + typecheck + tests на каждый пуш, падает на предупреждениях; обязателен для
production. - Гейт — ВЫЗЫВАЕМЫЙ: один вызов, чья цепочка и есть правило (
npm run gate,make check,just check); вAGENTS.md— его имя, не список шагов; CI зовёт тот же вызов. Собранный руками гейт теряет шаг молча и кончается зелёным. Цепочку вынужденно собирают руками — запиши почему и чем проверяется полнота. - CI-паритет: всякая проверка, способная упасть, гейтит PR, не только post-merge (кодоген, генерация схем и доков, сборка образа, миграции) — дотяни до PR; неустранимый зазор — готчей.
Команды — в «Команды», дисциплина — в «Конвенции кода».
Шаг 4 — Хуки
Деливерабл — ритуалы, не файл. Определи харнессы репо и прошей поверхность каждого в рабочем дереве (hooks-файл Claude Code, plugin-директория OpenCode проекта; хуки Codex живут в CODEX_HOME, вне worktree, и не прошиваются) по references/harness-surfaces.md. Где поверхности нет — скажи, какой ритуал не автоматизирован: его держит проза «Жизненного цикла сессии». Конфиг формата, о котором гадаешь, не пиши.
Хук меряется ценой в контексте и тем, чему учит: одна строка и указатель на раздел AGENTS.md, не пересказ ритуала; срабатывание — на самом событии; не ставится, если та же строка приходит другим путём (описание тула, дверь скилла); не учит обратному правилу (не наказывает законный вопрос человеку). Блокирует только хук с однозначным путём (memory-guard).
Claude Code: хуки в .claude/settings.json (коммитится). Мержи, никогда не перезаписывай — записи других наборов остаются рядом в тех же массивах. Конверт: "<Событие>": [ { "matcher"?: …, "hooks": [ { "type": "command", "command": "… echo '{\"hookSpecificOutput\":{\"hookEventName\":\"<Событие>\",\"additionalContext\":\"<строка>\"}}' || true" } ] } ] — вложенность событие → массив → hooks легко перепутать. Открой `references/hooks.md` и спроецируй фильтры пуша и мержа оттуда байт-в-байт, с образцами проверки. Проецируя фильтр в JSON, удваивай каждую обратную косую (\n → \\n) и экранируй кавычки \": иначе фильтр не компилируется, хук молчит навсегда, а || true это прячет. Хуки прогон пишет сам, как всю дугу такта 2. Харнесс, спрашивающий разрешение на запись .claude/settings.json как на самомодификацию, — его ограничение, не норма: назови его словом в отчёте и проверь чтением, что запись легла. Хуки:
- `SessionStart` → прочитать раздел «Старт» двери
iskronдо действий; адреса репо (граф, фокус-контур, seq ролей агента и владельца); стояние только на вахту (слово «вахта»,start, адрес места из окна, кадр), однимiskron_stand;start <граф> <роль> <дело №N>входит в дело; у субагента свой мост-спутник (iskron_standсsatellite_of,join,leave— на нём), на мосту запустившего он в граф не пишет. Протокол старта не пересказывай. - `PostToolUse`/Bash — пуш:
git pushотработал (по исходу, справка не будит) → пуш не отгрузил ничего: самопроверка диффа, словарный проход по тексту PR, холодное ревью этапа (раздел о ревью AGENTS.md); отгрузка — мерж. - `PostToolUse`/Bash — мерж: мерж форжи слил PR (по исходу) либо подтяжка ствола (
git checkout main && git pull) → акты после мержа из «Жизненного цикла сессии» (проткать, продвинуть карту, модусы, закрыть по оси, reconcile, фидбэк-рефлексия, если согласована, словарный проход). - `PreToolUse` `Write|Edit|MultiEdit` — memory-guard: путь внутри локальной директории проектной памяти → блок (exit 2, маршрутизирующее сообщение в stderr).
- `PostToolUse` `Write|Edit` — spec-write (только полный interop, по interop-штампу AGENTS.md): путь похож на design/spec-док → напоминание, что запись дизайна — граф.
- Свежесть ветки — предложи pre-push-хук (
references/hooks.md).
Self-check: четыре базовых хука на месте (старт, пуш, мерж, memory-guard); хуков, снятых прежними контрактами (сторож незастывания на Stop, указатель момента writing на пишущих тулах), нет — на рефреше убери свои, не трогая чужих; spec-write есть тогда и только тогда, когда interop-штамп говорит full; SessionStart зовёт «Старт» двери iskron (не entry) с реальными адресами; фильтры пуша и мержа — байт-в-байт из references/hooks.md и проверены на образцах оттуда; ни одна чужая запись не выпала.
Шаг 5 — Гигиена репозитория
- Закоммить
.claude/settings.json, заигнорь.claude/settings.local.json; широкий игнор.claude/— добавь!.claude/settings.json. Проверьgit check-ignore -v .claude/settings.json .claude/settings.local.json. - Трекаемые secret/env:
git ls-files '.env*' '*secret*' '*local*'; трекается реальный (не.example) — в «Конвенции кода»: локальные правки не стейджить (git update-index --skip-worktree <file>), никогдаgit add -A/commit -a. - Директория проектной памяти (
~/.claude/projects/<encoded-path>/memory/): эвакуируй, затем заморозь. Решения и ограничения → граф; ритуалы → AGENTS.md; готчи → дом по «Раскладке»; состояние ветки → git и PR; серверы и датированные долги → граф проекта; собственное пользователя → его личный граф (minding); предпочтения — по Шагу 1. ЗатемMEMORY.md— однострочный стаб-запрет («состояние живёт в репо или графе — см. AGENTS.md, Persistence rules»), memory-guard блокирует дальше. Стаб поверх непрочитанного уничтожает то, что должен был переселить. - Форжа и CLI — выведи, не предполагай GitHub:
git remote -v→gh(GitHub),fj(Forgejo/Codeberg),glab(GitLab),tea(Gitea); проверь установку и вход, назови в «Git-воркфлоу» с командой наблюдения. Неопознанный хост — спроси. - «Стек», «Команды», «Структура проекта», «Конвенции кода» — реальное содержимое по зрелости; пусто в первый день — нормально,
TBD— нет. - `HANDOVER.md` не заводится, и AGENTS.md говорит почему (раздел скелета). Файл есть — эвакуируй по домам (git, PR с номером дела, дело, модусы узлов) и удали.
README.mdкорня — короткий, человеку, AGENTS.md не дублирует. README компонента по «Раскладке» — карта кода делателя, компактно; прогон их не пишет.
Шаг 6 — Ролевые суб-агенты делегирования
Доктрина и шаблоны файлов — references/delegation.md; прозой AGENTS.md не проецируется.
- Claude Code, всегда:
.claude/agents/reader.md,worker.mdиsearcher.md(средний тир),verifier.md,reviewer.md,weaver.mdиdesigner.md(верхний) — алиасыsonnet/opus;haiku— ни одной роли.verifierиreviewer— даже без рантайма: они делаютREALITY.mdи ритуал ревью исполнимыми;weaver— строку «граф догнать — на ткаче»,searcher— вопрос «что граф знает о X» вне окна сессии. - OpenCode (
opencode.json/.opencode/или слово пользователя):.opencode/agents/те же семь,mode: subagent, модель пришпилена в каждом файле из настройки пользователя (спроси или прочтиopencode.json); из референса id не копируй. - Запись моста-спутника — одна форма на все ОС (
delegation.md, «Форма записи одна на все ОС»):command: node,args—-eс кодом, собирающим путь к домашнему мосту изos.homedir(), затем--и--satellite; копируй блок из референса дословно. Проверена живьём на macOS (Claude Code 2.1.285); на Windows не сверена. Машинного пути в файле нет — он коммитится как есть. Прежняя проекция (sh -c, контракт до 18; абсолютный путь) — перепиши этим блоком. description— канал маршрутизации: триггер-образно — когда звать, что вернётся, чему не доверять.- Суждение, пишущее в граф (проектирование, прогон
iskronify, разбор слотов), идёт ролиdesigner; решения владельца и диалог остаются ведущему; приёмное (ревью диффа, приёмка утверждения) идёт холодному — ролевой файл законен; ткачество по событию и поиск по вопросу ограничены входом — тоже. - Мержи: одноимённый агент другого набора — вложи своё или переименуй свой (
iskron-reader). Своя прежняя проекция (тело прошлого контракта) — перепиши текущим телом; чужое тело — не трогай. - Self-check: файлы парсятся; каждый файл Claude Code несёт свою запись моста-спутника
iskron-sub-<роль>— общей записиiskron-sub(контракт до 17) ни в одном нет; форма записи —node -eиз референса,sh -cи машинного пути нет ни в одном;doctorиз корня репо показывает файлы проекта в разделе «субагенты» без строкНАДО:(есть — исполни их до отчёта); телаworker,verifier,reviewer,weaver,searcher,designerнесут вход в дело строкой запуска и на общем мосту не зовутiskron_stand,join,leave(readerв дело не пишет,searcherбез строки запуска — тоже); файловweaver,searcherиdesignerнет илиreaderпришпилен кhaiku(контракт до 18) — допиши и перепиши;verifierиreviewerчитаютREALITY.mdрепо; пришпиленные модели существуют; AGENTS.md не несёт доктрины делегирования (максимум указатель); чужие файлы не перезаписаны, свои прежние не оставлены. - Роль, спроецированная прогоном, в той же сессии может не зваться по имени (каталог ролей читается на старте) — скажи это в отчёте; холодное ревью этого прогона тогда идёт общим суб-агентом с телом роли в брифе, модель — параметром вызова, где харнесс даёт; где нет (OpenCode) — отчёт говорит, что шло моделью сессии.
Шаг 7 — Финализация
- Тело — в `AGENTS.md` (Codex и OpenCode читают нативно), таблица носителей — в `REALITY.md` корня. Указатель `CLAUDE.md` — только для Claude Code; форма по
git config core.symlinksи платформе: - симлинки работают:
ln -s AGENTS.md CLAUDE.md; - не работают (Windows): копия байт-в-байт — её читает буквально любой тул, но это второй источник истины: перегенерируется каждым прогоном, числится в «Что обновлять когда», правки — только в
AGENTS.md; либо однострочныйCLAUDE.mdс@AGENTS.md(без бэктиков: код-спан глушит импорт) — там, где копия хуже импорта, понятного одному Claude Code.
Работающий указатель любой формы не переделывай. Пер-харнессные детали (merge root→cwd у Codex, AGENTS.override.md) — references/harness-surfaces.md.
- Легаси-конфиг: скелеты — рама; производные факты ре-спроецируй, авторское сохрани, сверив с кодом; проектное без слота — в «Конвенции кода» или новую секцию. Таблица Reality внутри
AGENTS.md(контракт до 16) — переезжает вREALITY.mdстроками целиком, датированные наблюдения из неё — узлами в граф (не удаляются), вAGENTS.mdостаётся указатель. СодержательныйCLAUDE.md— влей вAGENTS.md, замени указателем. Файлы «Раскладки» не вливаются — только сверяются ссылки. Один источник на заботу. - Interop full / prose-only: подсекция
### Workflow-suite interop (superpowers)в конце «Жизненного цикла сессии» изreferences/superpowers-interop.md(только деплоируемая часть) со штампом*(interop: <full|prose-only> — verified against superpowers@<version> — re-check on suite upgrade)*; на рефрешах аудируй её как любую заботу. - Проверочный проход (на равных с плотностью): каждая производная строка обоих файлов против источника — весь артефакт, не только тронутое. Не привязывается к источнику — авторское суждение (сохрани) или догадка (вырежи).
- Проход плотности: «меняет ли строка то, что агент делает?» — режь нарратив и обоснования (в граф). Блоки канонов не трогаются — сверяются с узлом байт-в-байт.
- Автоматический чекер «заявленное vs фактическое» — согласованный не-дефолт; строить — только узкий пер-репо по именованным строкам, обобщённый — никогда. Дисциплина — пере-прогон.
- Штамп: хвостовая строка
AGENTS.md—*(iskronify: контракт <число из шапки>, штамп <YYYY-MM-DD> — прогони заново, когда описание установленного iskronify называет контракт выше или когда источники, из которых выведен этот файл, сдвинулись после этой даты.)*. На рефреше перезапиши; двух не оставляй. - Обложка — YAML-фронтматтер, от первой строки
---до закрывающей---, не раздел тела. Плоские пары ключей:'Граф': '@owner/slug (rN)'и'Граф — источник': 'выведено'; имена слотов — как в скелете, у каждого свой ключ— источниксо значениемвыведено/согласовано: кто/не согласовано — дело №N. Все значения — строки в одинарных кавычках; одинарную кавычку внутри удвой. Дырка — пустая строка значения и источник с делом; «Согласование» — дело либопусто. Старую таблицу перенеси без потери значений и источников, убери раздел «Обложка»; тело оставь ритуалам. Не добавляй служебные ключи харнесса (например,paths): это метаданные проекта, не фильтр загрузки инструкций.CLAUDE.md-симлинк продолжает указывать на тот же файл. Проверь YAML-парсером плоскость и строковые значения, а указатель — чтениемCLAUDE.mdпротивAGENTS.md. - Готчи в `AGENTS.md` не живут: узел графа на контуре, в файле и коде —
(граф, #N); приGOTCHAS.mdпо «Раскладке» — строка там со ссылкой на узел. - `REALITY.md` проверен: носители опираются на граф, код или названный ответ, их достижимость проверена либо ограничена Ceiling; ни одного датированного замера; раздел «Reality» в
AGENTS.md— указатель без строк таблицы. - Во фронтматтере ни одного пустого значения при источнике «не согласовано» без №дела и ни одного плейсхолдера
<…>скелета в значении; ни одна заметка<!-- … -->не пережила в обоих файлах. - Каждое имя скилла в проецируемых файлах (
AGENTS.md,REALITY.md, хуки, ролевые файлы) разрешается как записано на канале установки репо — сверь с живым реестром, не по памяти; невызываемое имя не падает, а молчит. Механической сверки в прокачиваемом репо может не быть — тогда вручную, как имена тулов по живой поверхности сервера. Тело, едущее в несколько харнессов (ролевой файл), формы вызова не несёт вовсе — называй вызовы тулов. - На бутстрап-пуше граф отражает перемену структурой (контур, роль, готчи, карта); ход выравнивания — строками дела.
- Передай эстафету: закончи тизером роадмапа (скилл
product-roadmap, quick-режим) по свежему репо, названным по имени. Назови обновлённые файлы и открытые слоты фронтматтера — дело №N, на ком и чего ждут; продолжение такта 2 не требует слова человека. Принципиальные вопросы владельцу — отдельно, с проверенными источниками; нет их — так и скажи. По поручению отчёт и остаток получает ведущий дела.

