iskron-ai/skills

iskronify

КОНТРАКТ AGENTS.md: 19.

View source

How to use

  1. Copy the installation command and review the source package before installing it in your own agent environment.
  2. Check the source document for required tools, credentials and supported hosts.
  3. Describe your input and desired deliverable; review the output against the source material.
npx skills add https://github.com/iskron-ai/skills --skill iskronify

Before 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.
Original skill document

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/devscripts, 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 компонента» — сами READMEglob / list; таблица «компонент → README» сверяется существованием файлов
Nature, production statement, послабленияграф, код репо, слово агентов; принятые владельцем ограничения сохраняютсяразрешить по порядку Шага 1; смена мандата или цены поломки без основания — принципиальный вопрос
Носители реальности (REALITY.md)граф, наблюдаемый кодом путь поставки, слово агентовпроверить достижимость канонического носителя; неизвестное — Ceiling, не выдуманный носитель
Проектные решения, why-клаузы, открытые вопросыграфiskron_orient / iskron_search
Состояние ветокgit + форжаgit status / log; CLI форжи
Готчиавторское; дом — по слоту «Раскладка»только sanity-check — не автовыводить, не переносить между домами
Блоки канонов графаузел-правило с attrs.prose_for_reposiskron_search(realm=<граф>, q="", attrs_filter="prose_for_repos:**"); блок кладётся байт-в-байт на место из attrs.prose_anchor, ниже — только хвост репо; применимость — по attrs.scope, иначе по смыслу, сомнение — порядком Шага 1

Производные факты (верхние строки, блоки канонов) ре-проецируются каждый прогон; авторское суждение (готчи, why-клаузы, nature, носители) сохраняется, лишь сверяясь на здравость с кодом.

Контракт выхода — плотность и точность

  1. Императив агенту: «ориентируйся до кода», не «агенту следует».
  2. Каждая строка меняет то, что агент делает; иначе удали. Чек-лист, не эссе.
  3. Без проектных обоснований и пересказа графа — линкуй. (why: …) — только для инварианта, который агент иначе нарушит.
  4. Таблицы и буллеты, одна директива на буллет.
  5. Секция, растёкшаяся в абзацы, несёт обоснование — перенеси в граф.

Вне объёма — механика оркестрации (цепочки гейтов, суб-агентная проверка пушей, 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 без ожидания человека.

  1. Адреса. Граф и роль — из слова человека, строки окна с адресом места или существующего AGENTS.md. Граф не назван — iskron_realm(action="list"), сверь с записанным о репо и спроси коллег; не разрешилось, какой граф выбрать или создать, — принципиальный вопрос о границе проекта по Шагу 1, не угадывай имя. Создание — iskron_realm(action="create") по принятому выбору. Роль владельца — 主-роль человека твоих ключей (iskron_me(action="kartas")); перечень, где стоишь ты сам, — знак сбитой привязки: слот дыркой, вопрос — в деле выравнивания; ролей у человека нет — заведи svatantra-роль (Шаг 2).
  2. Контур репозитория. origin → хост/организация/репо → iskron_search(q="", node_type="holon", attrs_filter="repository:<значение>"). Нет — iskron_add_holon (contains от корня графа или контура репозиториев) с attrs.repository и open_room дела выравнивания. Один репозиторий — один контур.
  3. Роль на репо. iskron_search(q="", node_type="karta", steward_of=<контур>); нет — iskron_add_karta (manifested_as=adhikarin, мотивация — дистиллят того, что репо шипит) и steward к контуру. Одна роль на репозиторий.
  4. Обложка и файлы. Слоты — YAML-фронтматтер в начале AGENTS.md по скелету и Шагу 7. Из графа и кода — «выведено»; из записанного ответа — «согласовано: кто», в том числе агент соседнего контура. Не разрешённое — пустое значение и источник «не согласовано — дело №N»; авторский слот не становится дыркой только потому, что человек отсутствует. «Жизненный цикл сессии» инлайнится из скелета. REALITY.md — таблицей разрешённых носителей; пока их нет, заголовок скелета и строка: «Носители ещё не установлены; дело выравнивания №N. До их установления поведенческие заявки не принимаются.» Таблица Reality в AGENTS.md уже есть — переносится в REALITY.md по Шагу 7.
  5. Дело выравнивания на контуре из п. 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).
  6. Хук старта и сторож памяти — из Шага 4 только SessionStart и memory-guard; стаб MEMORY.md (Шаг 5) — только над пустой или отсутствующей директорией памяти. Непустая — эвакуация по Шагу 5 в такте 2; до неё строка скелета о заморозке не утверждает завершения, а ссылается на строку дела выравнивания. Остальные хуки — такт 2. Указатель CLAUDE.md — Шаг 7.
  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 и производные; присутствие человека не условие. Везде выше и ниже «согласуй», «спроси», «подтверди» для слота означают этот порядок:

  1. Сделай всё, что от ответа не зависит: аудит, выводимое, гейт, хуки.
  2. Сперва граф и код, затем братья — агенты соседних контуров. Неразрешённое — в одном деле выравнивания, строкой «слот: <имя>», не узлом и не делом на слот. Позови знающих коллег iskron_case(action="invite"), вопрос — say там же; их ответ — в слот с их именем. Факт из графа или кода впиши как «выведено», основание назови в строке дела.
  3. Только принципиальный остаток — человеку через ведущего дела. Смена мандата, принятого ограничения, цены поломки, выбор или создание графа (граница проекта, такт 1, п. 1) либо неразрешимый конфликт источников — принципиальное; отсутствие ответа или сведений само по себе — нет. Прежде эскалации назови, что проверено в графе и коде, кого спросил и почему это требует решения владельца. designer возвращает такой вопрос в отчёте и строкой partial «слот: <имя> — на ведущем: принципиальный вопрос владельцу». Позвавший будит человека и держит ожидание: invite его места; места нет — его роли с контуром (karta=<роль владельца>, holon=<контур репо>). Нет доступного места — вопрос остаётся в деле у ведущего; остальная работа продолжается.
  4. Дырка, не догадка: значение слота '', его источник 'не согласовано — дело №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; Ruff E,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 не требует слова человека. Принципиальные вопросы владельцу — отдельно, с проверенными источниками; нет их — так и скажи. По поручению отчёт и остаток получает ведущий дела.
from this repository

More skills

All skills
iskron-ai
Community

assembly

Используй для сборки графа — центрального ритуала 時-цикла: усмотреть узор над полем вопрошания и деятельности и произвести 形, карту сборки. Триггеры: «собери граф», «сборка», «пересборка», «что здесь по сути происходит», «повестка», assemble the realm, reassemble, map the transformations. Также когда orient показывает несгруппированное поле: много свободных вимарш, стена top-level крий. Distinct from weaving (ремонт существующего), design (пути от целей), inquiry (жизнь одной вимарши). Нужны тул

installs
1
GitHub stars
1
Updated
Oct 3
iskron-ai
Community

feedback

Опыт сессии становится тем, что можно починить, — слово агента о скиллах и тулах, которыми он работал. Срабатывает сам на нетривиальном опыте: правило пропустило случай, описание солгало о поверхности, починка сработала не по причине, у шага не было знака. Триггеры: «фидбэк», «дай обратную связь», feedback, «запиши, что не сработало», «скилл подвёл». Кладёт случай в граф работы на узел инструмента, адресно его стюарду, проверив, не сказано ли то же. Композирует writing. Нужны тулы iskron.

installs
1
GitHub stars
1
Updated
Oct 3
iskron-ai
Community

product-roadmap

Используй, чтобы собрать продуктовый роадмап GitHub-репозитория — или мультирепо-продукта (org или набор репо как один продукт) — выведенный из issues и PR через граф рассуждений. Триггеры: «собери роадмап из issues/PR», «роадмап по продукту», «что в этом репо делать дальше», roadmap from repo/github, roadmap for my org, multi-repo roadmap, quick roadmap, product-roadmap. Отыгрывает мейнтейнера: проверенная почва настоящего, взвешенный бэклог как шабда, направления (bianhua), рендер graph+markdo

installs
1
GitHub stars
1
Updated
Oct 3