iskron-ai/skills

iskronify

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

ソースを見る

使い方

  1. インストールコマンドをコピーし、自分の環境へ導入する前にソースを確認します。
  2. 必要なツール、認証情報、対応環境を原文で確認します。
  3. 入力と成果物を指定し、出力を資料と照合します。
npx skills add https://github.com/iskron-ai/skills --skill iskronify

開始前の確認

  • 導入にはモデル契約、API枠、ファイルへのアクセス許可は含まれません。
  • スター数や導入数は活動の指標であり、独立した品質・安全性試験ではありません。
リポジトリの原文

見出し、例、コード、表、リンク、参照画像を含む原文を表示しています。

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 не требует слова человека. Принципиальные вопросы владельцу — отдельно, с проверенными источниками; нет их — так и скажи. По поручению отчёт и остаток получает ведущий дела.
同じリポジトリから

関連する Skills

すべての Skills
iskron-ai
コミュニティ

assembly

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

導入数
1
GitHub Stars
1
更新日
10月3日
iskron-ai
コミュニティ

feedback

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

導入数
1
GitHub Stars
1
更新日
10月3日
iskron-ai
コミュニティ

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

導入数
1
GitHub Stars
1
更新日
10月3日