iskronify
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseRepo-boost
Repo-boost
Приведи текущий репозиторий к агентскому стандарту iskron: плотный (читается каждую сессию каждым харнессом), рядом (таблица носителей реальности, читается по поводу — при поведенческой заявке и в брифе /), -указатель, ритуалы сессии хуками и гейт качества. Конфиг ты генерируешь из скелетов — пользователь шаблонов не вставляет.
AGENTS.mdREALITY.mdverifierreviewerCLAUDE.mdДеливерабл — интерфейс доверия. и — производные виды: проекция источников (код, , CI, файловая система, граф) плюс тонкий слой авторского суждения, который больше нигде не живёт. Контракт двуглав: плотность (каждая строка меняет поведение) и точность (каждая производная строка перепроверена против источника в этом прогоне). Плотная ложная строка хуже многословной.
AGENTS.mdREALITY.mdpackage.jsonСкелеты: (: YAML-фронтматтер и тело) и () — слоты и заметки . Заполни слоты, выброси неприменимые опциональные строки, вычисти каждую заметку и угловую скобку. Скелеты — что произвести; этот файл — как.
references/agents-template.mdAGENTS.mdreferences/reality-template.mdREALITY.md<…><!-- … -->Контракт: . Шаг 7 штампует это число в каждый . Увеличивай на единицу, только когда перемена здесь или в скелетах делает уже сгенерированный файл неверным (секция или файл добавлены, переименованы, изъяты; ритуал изменён; имя тула выпало), никогда ради формулировок. То же число стоит первым словом в — нарочно: триггер срабатывает по описанию, а в контексте сессии сходятся только описания скиллов и штамп ; расхождение копий ловит . Конфиг со штампом-датой или без штампа — ниже любого числа: прогони полную дугу (правило запуска держит шаг «Выравнивание» двери ) и назови контракт, из которого пришёл конфиг.
25AGENTS.mddescriptionAGENTS.mdmake validateiskronСтрока расходится со скиллом — назови вслух, молча не выбирай: в деле постановщику, без дела — человеку. Штамп ниже контракта установленного — прав скилл, прогони; равен — дефект шаблона, фидбэк стюарду поставки скиллов (feedback). Правило стоит и в скелете («Держи этот файл честным») — для агента, этот скилл не загрузившего.
AGENTS.mdiskronifyРедакция установленной поставки сверяется здесь. Всякий прогон — и всякий вывод «инструкция скилла неверна» (туда шлют 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将当前仓库对齐到 iskron 的 Agent 标准:紧凑的 (每个运行载体(harness)每次会话都会读取)、同目录下的 (现实载体表,按需读取——在行为请求以及 / 的任务简报中)、 指针、基于钩子的会话仪式和质量门禁。配置由你从骨架模板生成——用户无需手动插入模板。
AGENTS.mdREALITY.mdverifierreviewerCLAUDE.md交付物是信任接口。 和 属于派生产物:是对各类来源(代码、、CI、文件系统、图谱)的投影,加上一层仅存在于此的少量主观判断。合约包含两个核心要求:紧凑性(每一行都会改变 Agent 行为)和准确性(每一行派生内容都在本次运行中与来源进行过交叉验证)。一行紧凑的错误内容比冗长的废话更糟糕。
AGENTS.mdREALITY.mdpackage.json骨架模板包括:(用于生成 :包含 YAML 前置元数据和正文)和 (用于生成 )——模板中包含 格式的插槽和 格式的注释。请填充插槽,删除不适用的可选行,清理所有注释和尖括号占位符。骨架模板定义要生成什么;本文件定义如何生成。
references/agents-template.mdAGENTS.mdreferences/reality-template.mdREALITY.md<…><!-- … -->合约版本:。第7步会将这个版本号戳记到每个 中。仅当本文件或骨架模板的变更导致已生成的文件失效时(例如新增、重命名、删除了章节或文件;仪式流程变更;工具名称移除),才将版本号加1,仅为措辞优化的话不要升级。 的第一个词也是同一个版本号——这是刻意设计的:触发逻辑根据描述匹配,而在会话上下文中只会比对技能描述和 的戳记;副本的不一致会被 捕获。如果配置的戳记是日期格式或没有戳记——视为版本低于任何数字版本:请运行完整流程(启动规则由 iskron 门户的「对齐」步骤管控),并说明配置对应的合约版本。
25AGENTS.mddescriptionAGENTS.mdmake validate如果 的内容与技能不一致——请明确指出,不要默默选择适用版本:有任务的话告知任务发起人,没有任务的话告知人工。如果戳记版本低于已安装的 合约版本——以技能为准,重新运行;如果版本相等——则是模板缺陷,请向技能交付管理员反馈(feedback)。骨架模板中也有这条规则(「保持文件真实可信」)——针对未加载本技能的 Agent 生效。
AGENTS.mdiskronify已安装的技能版本需在此处核验。 每次运行——以及每次得出「技能指令有误」的结论时(需提交 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).
仓库的状态是连续的,而非「全新的」或「已配置的」二元状态;常见陷阱是「文件存在,所以里面的内容都是对的」。请针对每一项配置对照其来源进行审计,并分类为:
- absent(缺失) — 从来源推导生成;无法通过可验证来源填充的主观插槽——归入对齐任务,绝对不要编造。
- stale(过期) — 重新投影并覆盖;不要沿用旧有内容。
- correct(正确) — 保留原样。
最危险的是几乎正确的配置:可信内容中夹杂着过期行——验证流程会检查整个产物(第7步)。
Источник истины по заботам
各配置项的真实来源
| Забота | Источник истины | Как проверить |
|---|---|---|
| Версии, зависимости | | прочитать |
| Команды build/test/lint/dev | scripts, | прочитать; |
| Гейт качества | конфиг линтера, | прочитать |
| Раскладка: карта кода, ловушки среды | слот обложки «Раскладка» | слота нет — умолчание: один |
| Структура проекта, path-алиасы | файловая система + конфиг бандлера; при раскладке «README компонента» — сами README | glob / list; таблица «компонент → README» сверяется существованием файлов |
| Nature, production statement, послабления | граф, код репо, слово агентов; принятые владельцем ограничения сохраняются | разрешить по порядку Шага 1; смена мандата или цены поломки без основания — принципиальный вопрос |
Носители реальности ( | граф, наблюдаемый кодом путь поставки, слово агентов | проверить достижимость канонического носителя; неизвестное — Ceiling, не выдуманный носитель |
| Проектные решения, why-клаузы, открытые вопросы | граф | |
| Состояние веток | git + форжа | |
| Готчи | авторское; дом — по слоту «Раскладка» | только sanity-check — не автовыводить, не переносить между домами |
| Блоки канонов графа | узел-правило с | |
Производные факты (верхние строки, блоки канонов) ре-проецируются каждый прогон; авторское суждение (готчи, why-клаузы, nature, носители) сохраняется, лишь сверяясь на здравость с кодом.
| 配置项 | 真实来源 | 验证方式 |
|---|---|---|
| 版本、依赖 | | 读取文件 |
| build/test/lint/dev 命令 | scripts、 | 读取文件;成本低的话用 |
| 质量门禁 | linter 配置、 | 读取文件 |
| 布局:代码地图、环境陷阱 | 「布局」前置元数据插槽 | 没有该插槽时的默认规则:仅一个 |
| 项目结构、路径别名 | 文件系统 + 打包工具配置;采用「组件 README」布局时——以组件 README 为准 | glob / 列目录;「组件 → README」对照表需验证文件是否存在 |
| 项目性质(Nature)、生产环境声明、放宽规则 | 图谱、仓库代码、Agent 确认信息;所有者已接受的限制需保留 | 按第1步的顺序验证;无依据地变更授权范围或故障成本属于原则性问题 |
现实载体( | 图谱、代码可观测的交付路径、Agent 确认信息 | 验证标准载体的可访问性;未知的归入 Ceiling(上限),不要编造载体 |
| 项目决策、why 说明、待解决问题 | 图谱 | |
| 分支状态 | git + 代码托管平台 | |
| 陷阱(Gotcha) | 主观判断;归属按「布局」插槽规则 | 仅做合理性检查——不要自动推导,不要在不同归属间迁移 |
| 图谱规范块 | 带有 | |
派生事实(顶部行、规范块)每次运行都会重新投影;主观判断(陷阱、why 说明、项目性质、载体)会保留,仅对照代码做合理性校验。
Контракт выхода — плотность и точность
输出合约——紧凑性与准确性
- Императив агенту: «ориентируйся до кода», не «агенту следует».
- Каждая строка меняет то, что агент делает; иначе удали. Чек-лист, не эссе.
- Без проектных обоснований и пересказа графа — линкуй. — только для инварианта, который агент иначе нарушит.
(why: …) - Таблицы и буллеты, одна директива на буллет.
- Секция, растёкшаяся в абзацы, несёт обоснование — перенеси в граф.
Вне объёма — механика оркестрации (цепочки гейтов, суб-агентная проверка пушей, model-routing, многополосная координация): её дом — скилл оркестрации или граф; срез делегирования проецируется ролевыми файлами (Шаг 6), не прозой.
Пример: ❌ «Мы стараемся аккуратно обращаться с состоянием, потому что стор — единственное место данных, иначе демо может выглядеть сломанным.» ✅ «Persona-scoped UI читает роль через ; перепроверь рендер при смене персоны. (why: устаревшее чтение показывает данные чужой роли.)»
use-acting-context- 对 Agent 的指令用祈使句:比如「先定位到代码再操作」,而非「Agent 应该先定位到代码」。
- 每一行都要改变 Agent 的行为;否则就删掉。要检查清单,不要散文式描述。
- 不要包含项目背景说明和图谱内容复述——用链接代替。仅用于说明 Agent 可能违反的不变量。
(why: …) - 用表格和列表,每个列表项只包含一条指令。
- 如果某个章节散落成大段文字且包含背景说明——将其迁移到图谱中。
不在范围内:编排机制(门禁链、子 Agent 推送检查、模型路由、多通道协调):这些属于编排技能或图谱的范畴;委托相关的内容通过角色文件投影(第6步),而非文字描述。
示例:❌ 「我们会小心处理状态,因为 store 是唯一的数据源,否则 demo 可能会显示异常。」 ✅ 「Persona-scoped UI 通过 读取角色;切换角色时请重新验证渲染结果。(why: 过期的读取会显示其他角色的数据。)」
use-acting-contextПроцедура
流程
Идемпотентна: в зрелом репо прогоняй каждый self-check и действуй только по провалам; докладывай, что осталось.
本流程是幂等的:在成熟仓库中,运行所有自检项,仅针对失败项进行处理;最后报告剩余问题。
Два такта
两个阶段
Кто исполняет прогон. Граф прогона — контур, роль, атрибуты, дело выравнивания — ведёт сам агент: это ремесло графа («Сквозные нормы» двери ). Объёмную проекцию файлов (, ролевые файлы, хуки) он может отдать субагенту роли — у того свой мост-спутник; нет субагентов, ролевого файла ещё нет (первый контакт, такт 1 до проекции, роли старше контракта) или спутник не поднялся — проецирует сам. Прогон обновляет и производные сам, не ждёт присутствия или подтверждения человека. Дело выравнивания ведёт позвавший (ведущий); работает в своём дочернем деле из строки запуска и дела выравнивания не ведёт (п. 5). Человека будит и ожидание держит ведущий, не , и только по принципиальному вопросу, не разрешённому графом, кодом и коллегами: возвращает его вопросом в итоге. Вопросы прогона — порядком Шага 1 («Человек обычно не в треде»).
iskronAGENTS.mddesignerdesignerAGENTS.mddesignerdesignerdesignerТакт 1 «встать» — без вопросов, до минуты, в любом репозитории. Первый такт при первом контакте, по слову «iskronify» или при найденном отставании конфига. Быстро разрешаемое — в файл с источником, остальное — дыркой в дело; затем такт 2 без ожидания человека.
- Адреса. Граф и роль — из слова человека, строки окна с адресом места или существующего . Граф не назван —
AGENTS.md, сверь с записанным о репо и спроси коллег; не разрешилось, какой граф выбрать или создать, — принципиальный вопрос о границе проекта по Шагу 1, не угадывай имя. Создание —iskron_realm(action="list")по принятому выбору. Роль владельца — 主-роль человека твоих ключей (iskron_realm(action="create")); перечень, где стоишь ты сам, — знак сбитой привязки: слот дыркой, вопрос — в деле выравнивания.iskron_me(action="kartas")видит только привязанные роли: прежде чем заводить svatantra-роль (Шаг 2), ищи её в графе —kartas. Он отдаёт все 主-роли графа: роль владельца — та, чейiskron_search(q="", node_type="karta", manifested_as="svatantra")в атрибутах совпал с handle изhandle; такая есть — не заводи, не выбирается — один вопрос человеку сессии, какая из найденных его. Привязку роли владельца проверь по шагу «Сойдись или эскалируй» скилла standing.iskron_me(action="whoami") - Контур репозитория. →
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-фронтматтер в начале по скелету и Шагу 7. Из графа и кода — «выведено»; из записанного ответа — «согласовано: кто», в том числе агент соседнего контура. Не разрешённое — пустое значение и источник «не согласовано — дело №N»; авторский слот не становится дыркой только потому, что человек отсутствует. «Жизненный цикл сессии» инлайнится из скелета.
AGENTS.md— таблицей разрешённых носителей; пока их нет, заголовок скелета и строка: «Носители ещё не установлены; дело выравнивания №N. До их установления поведенческие заявки не принимаются.» Таблица Reality вREALITY.mdуже есть — переносится вAGENTS.mdпо Шагу 7.REALITY.md - Дело выравнивания на контуре из п. 2 ведёт позвавший (ведущий): открытое уже есть () — ведёт его; нет — открывает
iskron_case(action="at", node=<контур>)у записи контура илиopen_roomсуществующего, зачином до 64 знаков: «Выравнивание <репо> под контракт N». Прежде первой записи — назовись и войди (iskron_update); стояние на вахту не нужно. Исполняешь сам — ведущий ты: назовисьiskron_case(action="join"). Проекцию файлов исполняет субагентiskron_channel(action="register", realm, karta=<роль на репо>, name=<выведенное имя>)— ведущий заводит ему дочернее дело (designerсopen_room— дело выравнивания) и ставит его №N в строку запуска;parent_roomвстаёт спутником (designerсiskron_standместа позвавшего, как вsatellite_of),delegation.mdпод выведенным именем не зовёт (имя — позвавшего), вопросы слотов говорит словом в дочернем деле, в граф не пишет, дела выравнивания не ведёт и выходит концом поручения (register). Неразрешённый, ждущий слот можно держать строкой «слот: <имя>» (iskron_case(action="leave")— на ком, чего ждёт) — по желанию; разрешённый — значение и источник во фронтматтер, без строки; вопрос — словом в деле. Вопросы прогона — порядком Шага 1 («Человек обычно не в треде»). Первое слово: «есть вопросы по проекту, за который я отвечаю, — ответьте или скажите, кто может ответить». Анкету, вопросы прогона, план и ход выравнивания в граф не пиши; в граф такт пишет только структуру (контур сpartial, роль) и готчи правилами (Шаг 7).repository - Хук старта и сторож памяти — из Шага 4 только и memory-guard; стаб
SessionStart(Шаг 5) — только над пустой или отсутствующей директорией памяти. Непустая — эвакуация по Шагу 5 в такте 2; до неё строка скелета о заморозке не утверждает завершения, а ссылается на строку дела выравнивания. Остальные хуки — такт 2. УказательMEMORY.md— Шаг 7.CLAUDE.md - Стояние — не здесь: его занимает старт двери , только на вахту. Отчёт — слово в деле выравнивания: что разрешено, что открыто; такт по слову другого дела — слово-отчёт там, называющее дело выравнивания; затем эстафета Шага 7. Такт по слову дела — поручение, и его исход по наблюдённому говоришь словом в том деле.
iskron
Такт 2 «доделать» — сам, не блокируя. Продолжи после такта 1; каждый следующий старт (шаг «Выравнивание» двери ) читает сводку дела из ключа «Согласование» фронтматтера — ; писать — назвавшись и войдя, как в п. 5. Слоты разрешай графом, кодом и словом коллег по Шагу 1. Впиши значение и источник во фронтматтер без переспроса; строка ожидания «слот: …», если слот её держал, снимается тем же ходом (), разрешённому без ожидания строка не заводится. Ответ агента подписывается его именем, не именем владельца; повторного подтверждения человеком не требует. Полная дуга (Шаги 1, 3, 4, 6, гейт, хуки, ролевые агенты) идёт без человека; неразрешённый слот держит только зависимую часть. Все слоты разрешены — «Согласование» = «пусто», предложи закрыть (, свидетельство — слоты фронтматтера со значениями и источниками), если ведущий ты; иначе слово ведущему.
iskroniskron_case(action="read")okpropose_close谁来执行流程。 运行的图谱逻辑——边界、角色、属性、对齐任务——由 Agent 自身主导:这属于图谱的职责(iskron 门户的「跨域规范」)。文件的批量投影(、角色文件、钩子)可以委托给 角色的子 Agent——它有自己的卫星桥接器;如果没有子 Agent、 角色文件还不存在(首次接触、第一阶段投影前、角色早于合约)或者卫星桥接器未启动——则由 Agent 自行投影。流程会自动更新 及派生文件,无需等待人工到场或确认。对齐任务由发起者(主导方)负责; 在自己的子任务中按启动指令工作,不负责对齐任务(第5点)。只有主导方(而非 )会在遇到原则性问题时唤醒人工并等待回复——这些问题无法通过图谱、代码和同事解决: 会在最终结果中将其作为问题返回。流程中的问题按第1步的规则处理(「人工通常不在线程中」)。
AGENTS.mddesignerdesignerAGENTS.mddesignerdesignerdesigner第一阶段「启动」—— 无需提问,1分钟内完成,适用于任何仓库。 首次接触时、收到「iskronify」指令时或发现配置过期时执行第一阶段。能快速验证的内容直接写入文件并标注来源,其余的作为缺口记入任务;之后无需等待人工,直接进入第二阶段。
- 地址确认。 图谱和角色——从人工指令、窗口中的位置地址行或已有的 中获取。如果未指定图谱——运行
AGENTS.md,与仓库的已有记录比对,并询问同事;如果仍无法确定选择或创建哪个图谱——属于第1步规定的项目边界原则性问题,不要猜测图谱名称。如需创建——按确认的选择执行iskron_realm(action="list")。所有者角色是你密钥对应用户的主角色(iskron_realm(action="create"));如果列表中出现你自己的角色——说明绑定异常:插槽留空,问题记入对齐任务。iskron_me(action="kartas")仅能看到已绑定的角色:在创建 svatantra 角色(第2步)之前,先在图谱中搜索——kartas。它会返回图谱中的所有主角色:所有者角色是其属性中的iskron_search(q="", node_type="karta", manifested_as="svatantra")与handle返回的 handle 一致的那个;如果存在就不要创建,如果无法确定——就问会话中的人工一个问题:找到的角色中哪个是他的。所有者角色的绑定请按 standing 技能的「对齐或升级」步骤验证。iskron_me(action="whoami") - 仓库边界。 从 提取
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 - 封面与文件。 插槽——按骨架模板和第7步要求填充 开头的 YAML 前置元数据。从图谱和代码推导的标记为「推导得出」;从已记录的回复得到的标记为「已确认:确认人」,包括相邻边界的 Agent 确认的内容。未验证通过的——值为空,来源标记为「未对齐 — 任务#N」;主观插槽不会仅仅因为人工不在场就变成缺口。「会话生命周期」从骨架模板内联到文件中。
AGENTS.md是已确认的载体列表;如果还没有载体,保留骨架模板的标题和一行说明:「载体尚未确认;对齐任务#N。在载体确认前,不接受行为请求。」如果REALITY.md中已经有 Reality 表格——按第7步迁移到AGENTS.md中。REALITY.md - 对齐任务 由第2步中边界的发起者(主导方)负责:如果已有开放任务()——就负责该任务;如果没有——在边界记录上创建
iskron_case(action="at", node=<边界>)或open_room现有任务,任务简介不超过64字符:「将 <仓库> 对齐到合约版本N」。在第一条记录之前——请先表明身份并加入任务(iskron_update);无需值守。如果你自行执行——你就是主导方:通过iskron_case(action="join")注册身份。文件投影由iskron_channel(action="register", realm, karta=<仓库角色>, name=<推导的名称>)子 Agent 执行——主导方为其创建子任务(designer的open_room设为对齐任务),并在启动指令中注明子任务编号#N;parent_room作为卫星加入(执行带designer的satellite_of,指向发起者的位置,如iskron_stand中所述),无需以推导的名称调用delegation.md(名称用发起者的),插槽相关问题在子任务中以消息形式提出,不写入图谱,不负责对齐任务,在委托结束时退出(register)。未解决的待处理插槽可以用「插槽:<名称>」的形式记录(iskron_case(action="leave")字段说明负责人和待办事项)——可选;已解决的——将值和来源写入前置元数据,删除该行;问题以消息形式发送到任务中。流程中的问题按第1步的规则处理(「人工通常不在线程中」)。第一句话:「我负责的项目有几个问题,请解答或者告知谁能解答。」不要将问卷、流程问题、计划和对齐进度写入图谱;本阶段仅向图谱写入结构信息(带partial属性的边界、角色)和规则形式的陷阱(第7步)。repository - 启动钩子和内存守卫 —— 从第4步中仅配置 和 memory-guard;
SessionStart占位文件(第5步)——仅在内存目录为空或不存在时创建。如果内存目录非空——在第二阶段按第5步进行迁移;在此之前,骨架模板中关于冻结的行不会声明完成,而是引用对齐任务的对应行。其余钩子在第二阶段配置。MEMORY.md指针在第7步配置。CLAUDE.md - 值守 —— 不在本阶段:由 iskron 门户的启动流程负责,仅在值守时执行。
报告以消息形式发送到对齐任务中:说明哪些已解决,哪些仍开放;如果本阶段是由其他任务的消息触发的——就在该任务中发送回复报告,并提及对齐任务;然后转交第7步的接力。如果本阶段是由任务消息触发的委托——则将观察到的结果以消息形式回复到该任务中。
第二阶段「完善」—— 自动执行,不阻塞。 在第一阶段之后继续;每次后续启动(iskron 门户的「对齐」步骤)都会从前置元数据的「对齐状态」键读取任务摘要——;写入时需先表明身份并加入,如第5点所述。按第1步的规则,通过图谱、代码和同事的消息验证插槽。无需反复确认,直接将值和来源写入前置元数据;如果之前有「插槽:…」的等待行,同一操作中即可移除(),无需等待的已解决插槽不会创建该行。Agent 的回复用其自己的名称签名,而非所有者的名称;无需人工二次确认。完整流程(第1、3、4、6步、质量门禁、钩子、角色 Agent)无需人工参与;未解决的插槽仅阻塞依赖它的部分。所有插槽都解决后——「对齐状态」设为「无」,如果你是主导方,提议关闭任务(,证明材料为带值和来源的前置元数据插槽);否则告知主导方。
iskron_case(action="read")okpropose_closeШаг 1 — Разреши слоты (такт 2)
第1步 — 验证插槽(第二阶段)
Не выбирай дефолты молча. Прочти граф, код репо и старый конфиг; чего они не разрешили — спроси у агентов соседних контуров в деле выравнивания. Запиши во фронтматтер значение и источник: Nature (не — что ослаблено и почему), имя графа, «Стек», гейт (Шаг 3). Принятые авторские ограничения сохраняй; переспрос человеку нужен только для принципиального остатка.
productionПереход со старой анкеты. «Согласование» или дырка называет узел (), не дело, — форма прежнего контракта. Прочти узел (): ответы с именем ответившего — в слоты «согласовано: кто»; открытые — строками «слот: <имя>» в дело выравнивания, пустое значение и источник во фронтматтер; узел-анкету отпусти (, reasoning «перенесён в дело №N»), чужой — слово автору.
#Niskron_lookне согласовано — дело №NvisarjanaТакже согласуй:
- Кто владеет направлением — svatantra-роль владельца (主), создаётся в Шаге 2; принципиальные вопросы слотов — ей через ведущего в деле выравнивания, не анкетой в графе.
- Общее изменяемое состояние build/test (база, фиксированный порт, dev-сервер, глобальный кэш, облачная песочница): есть — зафиксируй по-полосную изоляцию готчей (агенты гоняют ветки конкурентно в отдельных worktree).
- Реальность → . Установи из графа, кода и ответов коллег: куда приземляется изменение, какие эффекты производит, какие наблюдаемы и какой командой / URL / запросом, что агент достаёт сам, что требует пользователя. Дожимай до канонического носителя каждого класса: собранный артефакт, не исходники; живой эндпоинт, не хендлер; чистая установка, не тёплый кэш. Класс без достижимого наблюдения — в Ceiling с причиной; вывод о носителе не равен наблюдению поведения. Датированные замеры (сроки, версии, «наблюдено тогда-то») — узлами в граф, в
REALITY.md— только нужное для наблюдения. ВREALITY.md— раздел «Reality» указателем: прочтиAGENTS.mdпрежде поведенческой заявки, первая строка таблицы названа, Ceiling — там. (Как таблица работает при закрытиях — скилл vahta, §3 «Работа и эстафета», абзац оREALITY.mdперед закрытием.)reality-audit - Кросс-проектная память — умолчание шаблона: значение из скелета, источник , без вопроса человеку. Личный граф
выведено: умолчание шаблонаесть у каждого, о нём не спрашивай: нет — заведи граф и роль по minding; маршрутизация и сообщение memory-guard всегда несут его ветку. Поведение агента настраивают только коммитящиеся файлы рабочего дерева (AGENTS.md, файл хуков) и граф проекта — никогда глобальный файл инструкций (@<handle>/mind,~/.claude/CLAUDE.md…), память харнесса, пользовательские хуки; о глобальном файле не спрашивай и не заводи. Установка поставки — доставка, не настройка. Предпочтение, влияющее на процесс и результат, — в AGENTS.md или граф проекта; личное — в~/.config/opencode/AGENTS.md.@<handle>/mind - Фидбэк-рефлексия — рефлексировать ли опыт о методе в конце сессии или на мерже и записывать стоящее в граф работы (контур инструмента, адресом стюарду, после проверки на дубли, случаем). Умолчание шаблона — да, источник , без вопроса человеку: регион feedback-reflection скелета остаётся, хук мержа несёт такт. Нет — только по записанному слову (
выведено: умолчание шаблона): удали регион целиком.согласовано: кто - Сосуществование с workflow-набором — только когда найден коэрсивный набор (его скиллы в списке или его директория в кэше плагинов; сегодня superpowers): (1) полный interop (рекомендуется) — подсекция из + spec-write-хук; (2) только проза; (3) пропустить — назови риск: дизайн-сессии набора не осядут в граф.
references/superpowers-interop.md
Человек обычно не в треде. Прогон сам обновляет и производные; присутствие человека не условие. Везде выше и ниже «согласуй», «спроси», «подтверди» для слота означают этот порядок:
AGENTS.md- Сделай всё, что от ответа не зависит: аудит, выводимое, гейт, хуки.
- Сперва граф и код, затем братья — агенты соседних контуров. Неразрешённое — в одном деле выравнивания, вопросом по двери iskron, «Ожидание от делателя»; строка «слот: <имя>» — по желанию, на отдельном от карточки ключе («Ключ вопроса не перекрывай строкой работы» там же), не узел и не дело на слот. Позови знающих коллег
ask; поручение —iskron_case(action="invite")сsayна место по «Разовая задача — слово в деле» двери. Ихtoпримиanswer, ответ — в слот с их именем. Факт из графа или кода впиши как «выведено», без строки дела; неочевидное основание — словом в деле.ack - Только принципиальный остаток — человеку через ведущего дела. Смена мандата, принятого ограничения, цены поломки, выбор или создание графа (граница проекта, такт 1, п. 1) либо неразрешимый конфликт источников — принципиальное; отсутствие ответа или сведений само по себе — нет. Прежде эскалации назови, что проверено в графе и коде, кого спросил и почему это требует решения владельца. возвращает такой вопрос в отчёте; ведущий говорит его словом в деле (строка «слот: …» — по желанию). Позвавший будит человека и держит ожидание:
designerего места; места нет — его роли с контуром (invite,karta=<роль владельца>). Нет доступного места — вопрос остаётся в деле у ведущего; остальная работа продолжается.holon=<контур репо> - Дырка, не догадка: значение слота , его источник
'';'не согласовано — дело №N'называет это дело. Непринципиальное неизвестное ждёт знающего агента или ведущего — словом в деле, строка по желанию. Старт двери найдёт ответ и впишет без переспроса. Отвеченное пишется сразу; один слот не держит остальные.Согласование
不要默默选择默认值。请读取图谱、仓库代码和旧配置;无法通过这些验证的内容——在对齐任务中询问相邻边界的 Agent。将值和来源写入前置元数据:项目性质(Nature)(不是简单的 ——要说明哪些规则放宽了以及原因)、图谱名称、「技术栈」、质量门禁(第3步)。已接受的主观限制需保留;仅原则性的剩余问题才需要询问人工。
production从旧问卷迁移。 如果「对齐状态」或缺口引用的是节点()而非任务——这是旧合约的格式。读取节点():带回复人姓名的回答——填入「已确认:确认人」插槽;未解决的——以「插槽:<名称>」的形式记入对齐任务,前置元数据中值为空,来源标记为;问卷节点可以释放(,理由为「已迁移到任务#N」),如果是他人的节点——告知作者。
#Niskron_look未对齐 — 任务#Nvisarjana还需确认以下内容:
- 方向负责人 —— 所有者的 svatantra 角色(主角色),在第2步创建;插槽的原则性问题——通过对齐任务的主导方转达给她,不要用图谱中的问卷形式。
- build/test 的共享可变状态(数据库、固定端口、dev 服务器、全局缓存、云沙箱):如果存在——通过陷阱规则记录各通道的隔离要求(Agent 会在独立的 worktree 中并发运行不同分支)。
- 现实载体 → 。从图谱、代码和同事的回复中确认:变更落地到哪里,会产生什么效果,哪些是可观测的,用什么命令 / URL / 请求观测,哪些是 Agent 可以自行获取的,哪些需要用户操作。尽量落实到每个类别的标准载体:是构建后的产物,而非源码;是活的接口,而非 handler;是干净安装,而非热缓存。没有可观测方式的类别——归入 Ceiling 并说明原因;对载体的推断不等于实际观测到的行为。带日期的测量数据(期限、版本、「当时观测到的」)——作为节点存入图谱,
REALITY.md中仅保留观测所需的信息。REALITY.md中的「Reality」章节用指针形式:提示在行为请求前先读AGENTS.md,说明表格第一行的含义,Ceiling 也在该文件中。(关闭任务时表格的处理方式见 vahta 技能第3节「工作与接力」中关闭前REALITY.md的段落。)reality-audit - 跨项目内存 —— 模板默认值:值来自骨架模板,来源为,无需询问人工。每个人都有个人图谱
推导得出:模板默认,不要询问相关问题:如果不存在——按 minding 技能创建图谱和角色;memory-guard 的路由和消息始终会包含该分支。仅工作目录中提交到仓库的文件(AGENTS.md、钩子文件)和项目图谱可以配置 Agent 行为——绝对不要用全局指令文件(@<handle>/mind、~/.claude/CLAUDE.md…)、运行载体的内存、用户自定义钩子;不要询问也不要创建全局文件。安装技能是交付,不是配置。影响流程和结果的偏好——放在 AGENTS.md 或项目图谱中;个人偏好——放在~/.config/opencode/AGENTS.md中。@<handle>/mind - 反馈反思 —— 是否在会话结束或合并时反思关于方法的经验,并将有价值的内容写入工作图谱(工具边界,发给管理员,经去重后以案例形式记录)。模板默认值为 是,来源为,无需询问人工:骨架模板的 feedback-reflection 区域保留,合并钩子会触发该流程。否 —— 仅当有书面确认时(
推导得出:模板默认):完全删除该区域。已确认:确认人 - 与工作流套件共存 —— 仅当检测到强制套件时(其技能在列表中,或其目录在插件缓存中;目前是 superpowers):(1) 完全互操作(推荐)—— 引入 中的子章节 + spec-write 钩子;(2) 仅文字说明;(3) 跳过 —— 说明风险:套件的设计会话内容不会沉淀到图谱中。
references/superpowers-interop.md
人工通常不在线程中。 流程会自动更新 及派生文件;人工到场不是必要条件。上下文中所有针对插槽的「确认」、「询问」、「验证」都遵循以下顺序:
AGENTS.md- 先完成所有不依赖回复的工作:审计、可推导的内容、质量门禁、钩子。
- 先查图谱和代码,再问同事——相邻边界的 Agent。 未解决的内容——放在同一个对齐任务中,通过 iskron 门户的 指令提问,状态为「等待负责人回复」;「插槽:<名称>」行是可选的,放在与任务卡片不同的键下(同处的「不要用工作行覆盖问题键」规则),不要为单个插槽创建节点或任务。用
ask邀请知情的同事;委托任务用iskron_case(action="invite")指令,say指向对应位置,遵循 iskron 门户「一次性任务——任务内消息」的规则。收到他们的to后回复answer,将答案连同他们的名字填入插槽。从图谱或代码中得到的事实标记为「推导得出」,不需要在任务中记录行;不明显的依据可以在任务中发消息说明。ack - 仅原则性的剩余问题——通过任务主导方转达给人工。 变更授权范围、已接受的限制、故障成本,选择或创建图谱(项目边界,第一阶段第1点),或者来源间存在无法解决的冲突——这些属于原则性问题;仅仅是没有回复或信息本身不算原则性问题。在升级之前,请说明你在图谱和代码中验证了什么,询问了哪些人,以及为什么这需要所有者决策。会在报告中返回这类问题;主导方将其以消息形式发送到任务中(可选添加「插槽:…」行)。发起者会唤醒人工并等待回复:用
designer邀请其位置;如果没有位置——邀请其与边界关联的角色(invite,karta=<所有者角色>)。如果没有可用的位置——问题保留在主导方的任务中;其余工作继续进行。holon=<仓库边界> - 是缺口,不是猜测:插槽值为 ,来源为
'';「对齐状态」会引用该任务。非原则性的未知内容等待知情 Agent 或主导方的回复——以任务消息形式,可选添加行。门户启动流程会找到答案并自动填入,无需反复确认。'未对齐 — 任务#N'
已得到答复的内容立即写入;单个插槽不会阻塞其他工作。
Шаг 2 — Бутстрап графа
第2步 — 图谱引导
- Графа нет — согласуй имя, .
iskron_realm(action="create") - Фокус-контур (граница проекта, от корня) — спроектируй
contains, создайdesign;iskron_add_holon— в обложку. Контур несёт атрибут#seq—repositoryизхост/организация/репо, без протокола иgit remote get-url origin(например.git); по нему работаетgithub.com/iskron-ai/skills, и старт двери сверяет его с origin. Ставь при заведении и на рефреше; один контур — один репозиторий.attrs_filter="repository:…" - Делатель — стюард. Роль агента (,
iskron_add_karta, мотивация — дистиллят Production statement) проведиmanifested_as=adhikarinк фокус-контуру — эта роль, не старшая, иначе ориентация на контур не найдёт делателя. Нет svatantra-роли владельца и поиск такта 1, п. 1 её не нашёл — создай; привязка — по тому же шагу standing. Оба seq — в обложку.steward - Холон + стюард — корень поля интеграции; обход держит . Об «общих поверхностях» не спрашивай и списка в AGENTS.md не пиши; не найденная зависимость — дефект модели (
integrity,design).weaving
- 如果没有图谱——确认名称后执行 。
iskron_realm(action="create") - 核心边界(项目边界,根节点的 子节点)—— 按
contains规则设计,执行design创建;iskron_add_holon写入前置元数据。边界必须带有#seq属性——值为从repository提取的git remote get-url origin,不带协议和主机/组织/仓库(例如.git);github.com/iskron-ai/skills基于该属性工作,门户启动流程也会将其与 origin 比对。创建和刷新时都要设置该属性;一个边界对应一个仓库。attrs_filter="repository:…" - 执行者是管理员(steward)。 Agent 角色(,
iskron_add_karta,动机为生产环境声明的提炼)通过manifested_as=adhikarin关联到核心边界——是这个角色,而非更高级的角色,否则边界定位会找不到执行者。如果没有所有者的 svatantra 角色,且第一阶段第1点的搜索也没找到——就创建;绑定按 standing 技能的同一步骤执行。两个 seq 都写入前置元数据。steward - Holon + steward 是集成领域的根节点;由 负责遍历。不要询问「公共接口」相关问题,也不要在 AGENTS.md 中写列表;找不到的依赖属于模型缺陷(
integrity、design范畴)。weaving
Шаг 3 — Гейт качества (строжайший в принятом мандате)
第3步 — 质量门禁(在已接受的授权范围内尽可能严格)
По каждому пункту: строжайший вариант для стека, трейд-офф одной строкой, источник по Шагу 1. Послабления — из принятого ограничения, откалиброванного ценой поломки, во фронтматтер по-инструментно; нового основания нет — принципиальный вопрос. Ужесточение уже-ослабленного гейта — обязательство рефакторинга: сперва измерь (прогон на предлагаемой строгости, число провалов); смена принятого ограничения без основания — тем же порядком владельцу, возможно отдельной веткой. Прочие части прогона её не ждут.
- Линтер максимально строгий (; Ruff
@typescript-eslint/strict;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— его имя, не список шагов; CI зовёт тот же вызов. Собранный руками гейт теряет шаг молча и кончается зелёным. Цепочку вынужденно собирают руками — запиши почему и чем проверяется полнота.AGENTS.md - CI-паритет: всякая проверка, способная упасть, гейтит PR, не только post-merge (кодоген, генерация схем и доков, сборка образа, миграции) — дотяни до PR; неустранимый зазор — готчей.
Команды — в «Команды», дисциплина — в «Конвенции кода».
针对每一项:选择技术栈支持的最严格方案,用一行说明权衡,来源按第1步规则。放宽规则需基于已接受的限制(由故障成本校准),按工具类别写入前置元数据;如果没有新的依据——属于原则性问题。收紧已放宽的门禁 需要有重构的承诺:先测量(按提议的严格度运行,统计失败数);无依据地变更已接受的限制——按同样流程转给所有者,可能需要单独开分支。流程的其他部分不会等待这项工作。
- Linter 采用最严格配置(;Ruff 启用
@typescript-eslint/strict规则集;E,F,B,I,N,UP,RUF启用广泛规则;golangci-lint)。clippy -- -D clippy::pedantic - 格式化工具,保存时自动修复 + pre-commit 检查(Prettier、、
ruff format、gofumpt)。rustfmt - 类型检查器 启用 strict 模式(如果支持)(、
tsc --strict/mypy --strict)。pyright --strict - Pre-commit 钩子:对暂存文件运行 linter + 格式化工具 + 类型检查。
- 测试 + 规范(库需要单元测试;服务需要加集成测试;UI 需要加端到端测试;生产环境需要覆盖率阈值)—— 写入「代码规范」。
- CI:每次推送都运行 lint + 类型检查 + 测试,警告即失败;生产环境项目必须启用。
- 门禁是可调用的:一条命令即可运行整个检查链(、
npm run gate、make check);just check中只写命令名,不列步骤;CI 也调用同一个命令。手动拼接的门禁会悄悄漏掉步骤,最终显示通过。如果不得不手动拼接检查链——说明原因以及如何验证完整性。AGENTS.md - CI 一致性:任何可能失败的检查都要作为 PR 的门禁,而不是仅在合并后运行(代码生成、schema 和文档生成、镜像构建、迁移)——都要前移到 PR 阶段;无法消除的差异——记录为陷阱。
命令写入「命令」章节,规范写入「代码规范」章节。
Шаг 4 — Хуки
第4步 — 钩子
Деливерабл — ритуалы, не файл. Определи харнессы репо и прошей поверхность каждого в рабочем дереве (hooks-файл Claude Code, plugin-директория OpenCode проекта; хуки Codex живут в CODEX_HOME, вне worktree, и не прошиваются) по . Где поверхности нет — скажи, какой ритуал не автоматизирован: его держит проза «Жизненного цикла сессии». Конфиг формата, о котором гадаешь, не пиши.
references/harness-surfaces.mdХук меряется ценой в контексте и тем, чему учит: одна строка и указатель на раздел AGENTS.md, не пересказ ритуала; срабатывание — на самом событии; не ставится, если та же строка приходит другим путём (описание тула, дверь скилла); не учит обратному правилу (не наказывает законный вопрос человеку). Блокирует только хук с однозначным путём (memory-guard).
Claude Code: хуки в (коммитится). Мержи, никогда не перезаписывай — записи других наборов остаются рядом в тех же массивах. Конверт: — вложенность легко перепутать. Открой и спроецируй фильтры пуша и мержа оттуда байт-в-байт, с образцами проверки. Проецируя фильтр в JSON, удваивай каждую обратную косую ( → ) и экранируй кавычки : иначе фильтр не компилируется, хук молчит навсегда, а это прячет. Хуки прогон пишет сам, как всю дугу такта 2. Харнесс, спрашивающий разрешение на запись как на самомодификацию, — его ограничение, не норма: назови его словом в отчёте и проверь чтением, что запись легла. Хуки:
.claude/settings.json"<Событие>": [ { "matcher"?: …, "hooks": [ { "type": "command", "command": "… echo '{\"hookSpecificOutput\":{\"hookEventName\":\"<Событие>\",\"additionalContext\":\"<строка>\"}}' || true" } ] } ]событие → массив → hooksreferences/hooks.md\n\\n\"|| true.claude/settings.json- → прочитать раздел «Старт» двери
SessionStartдо действий; адреса репо (граф, фокус-контур, seq ролей агента и владельца); стояние только на вахту (слово «вахта»,iskron, адрес места из окна, кадр), однимstart;iskron_standвходит в дело; у субагента свой мост-спутник (start <граф> <роль> <дело №N>сiskron_stand,satellite_of,join— на нём), на мосту запустившего он в граф не пишет. Протокол старта не пересказывай.leave - /Bash — пуш:
PostToolUseотработал (по исходу, справка не будит) → пуш не отгрузил ничего: самопроверка диффа, словарный проход по тексту PR, холодное ревью этапа (раздел о ревью AGENTS.md); отгрузка — мерж.git push - /Bash — мерж: мерж форжи слил PR (по исходу) либо подтяжка ствола (
PostToolUse) → акты после мержа из «Жизненного цикла сессии» (протки, продвинуть карту, модусы по свидетельству, закрыть по оси, reconcile, фидбэк-рефлексия, если согласована, словарный проход; у работы по ссылке от агента — только семя превращения и модусы поставки). Сообщение хука называет и исключение — тем же списком, что разделgit checkout main && git pull, иначе ритуал и хук расходятся.AGENTS.md PreToolUse— memory-guard: путь внутри локальной директории проектной памяти → блок (exit 2, маршрутизирующее сообщение в stderr). Маршрут — из слотов сообщенияWrite|Edit|MultiEdit|NotebookEdit: граф проекта по имени из «Граф» фронтматтера, раздел персистентности — заголовком, как он стоит вreferences/hooks.md, на языке файла, и личный графAGENTS.md.@handle/mindPostToolUse— spec-write (только полный interop, по interop-штампу AGENTS.md): путь похож на design/spec-док → напоминание, что запись дизайна — граф.Write|Edit- Свежесть ветки — предложи pre-push-хук ().
references/hooks.md
OpenCode: плагин в по образцу . Поток событий один на сервер OpenCode машины: плагин проекта видит и прочие события сессий всех каталогов, и приветствие с адресами этого репо, легшее в чужую сессию, ставит её под чужую роль. Подписчик пишет только в сессию своего каталога: каталог события ( события или его ) сверяется с канонизированными (realpath, при ошибке — строка, без завершающего разделителя) — одна папка приходит то , то , и сырое сравнение теряет свою сессию; чужая — пропуск. Хуки будит только вызов в каталоге экземпляра; от них требуется одно — исполняться как написаны, без неопределённых имён и бросков, кроме guard на пути памяти. Приветствие несёт те же адреса, что , отказ guard'а — тот же маршрут, что memory-guard Claude Code: слоты шаблона образца (, , , ) заполняются из фронтматтера AGENTS.md, — его заголовком, как он стоит в файле, — в плагине репо угловых скобок не остаётся. Проверка — из корня репо , на прогоне и на рефреше: код 1 — дыра или поломка (строка называет плагин, что случилось, и починку), перепиши по образцу, прогони снова, назови в отчёте. Нет в домашнего моста (мост старше) или нет самого моста (файла нет, отвечает ) — прочти каждый глазами по этому правилу и назови в отчёте, что ревизор не гонялся.
.opencode/plugins/references/harness-surfaces.mdctx.event.subscribesession.createdlocation.directorydatactx.location.directory/tmp/…/private/tmp/…ctx.tool.hookSessionStart<Граф><Фокус-контур><Роль агента><Роль владельца><Раздел персистентности>node ~/.iskron-bridge/iskron-bridge.mjs check-ritualscheck-rituals--helpnodeMODULE_NOT_FOUND.opencode/plugins/*Self-check: четыре базовых хука на месте (старт, пуш, мерж, memory-guard); хуков, снятых прежними контрактами (сторож незастывания на , указатель момента writing на пишущих тулах), нет — на рефреше убери свои, не трогая чужих; spec-write есть тогда и только тогда, когда interop-штамп говорит ; зовёт «Старт» двери (не ) с реальными адресами; фильтры пуша и мержа — байт-в-байт из и проверены на образцах оттуда; отказ memory-guard — в хуке и в плагине OpenCode — называет граф репо, раздел персистентности заголовком из и , без угловых скобок; голый запрет без маршрута (контракт до 24) — перепиши; (или чтение по правилу) не нашёл в дыры и поломки; ни одна чужая запись не выпала.
StopfullSessionStartiskronentryreferences/hooks.mdAGENTS.md@handle/mindcheck-rituals.opencode/plugins/*交付物是仪式流程,不是文件。 先确定仓库使用的运行载体,然后按 的说明,为每个运行载体在工作目录中植入钩子(Claude Code 的 hooks 文件、项目的 OpenCode 插件目录;Codex 的钩子存在 CODEX_HOME 中,不在工作目录里,不需要植入)。如果某个运行载体没有对应的钩子接口——说明哪些仪式没有自动化:由「会话生命周期」的文字描述负责。不确定格式的配置不要写。
references/harness-surfaces.md钩子的价值取决于上下文成本和它传递的信息:仅一行内容加指向 AGENTS.md 章节的指针,不要复述仪式流程;在对应事件触发时执行;如果同样的信息可以通过其他途径(工具描述、技能门户)传递,就不要加钩子;不要传递反向规则(不要惩罚合理的人工提问)。只有路径明确的钩子(memory-guard)才会阻塞操作。
Claude Code:钩子配置在 中(需提交到仓库)。要合并,绝对不要覆盖——其他套件的配置要保留在同一个数组中。配置格式:—— 的嵌套结构很容易搞混。请打开 ,将推送和合并过滤器从那里逐字节投影过来,包含验证示例。将过滤器投影为 JSON 时,每个反斜杠都要双写( → ),引号要转义 :否则过滤器无法编译,钩子会永远静默,而 会掩盖这个问题。钩子配置由流程自动写入,和第二阶段的所有工作一样。如果运行载体将写入 视为自修改操作而请求权限——这是它的限制,不是规范:请在报告中说明,并通过读取验证写入是否成功。
.claude/settings.json"<事件>": [ { "matcher"?: …, "hooks": [ { "type": "command", "command": "… echo '{\"hookSpecificOutput\":{\"hookEventName\":\"<事件>\",\"additionalContext\":\"<字符串>\"}}' || true" } ] } ]事件 → 数组 → hooksreferences/hooks.md\n\\n\"|| true.claude/settings.json钩子列表:
- → 操作前先阅读 iskron 门户的「启动」章节;获取仓库地址(图谱、核心边界、Agent 和所有者的角色 seq);仅在值守时执行站班(关键词「вахта」、
SessionStart、窗口中的位置地址、帧),用一次start完成;iskron_stand会加入任务;子 Agent 有自己的卫星桥接器(start <图谱> <角色> <任务#N>带iskron_stand、satellite_of、join都在子 Agent 侧执行),它不会通过发起者的桥接器写入图谱。不要复述启动协议。leave - /Bash — 推送:
PostToolUse执行完成后(按退出码判断,帮助输出不会触发)→ 如果推送没有提交任何内容:执行 diff 自检、PR 文本词汇检查、阶段冷评审(AGENTS.md 中的评审章节);如果有推送内容:执行合并流程。git push - /Bash — 合并:代码托管平台的合并操作完成 PR 合并(按退出码判断)或者拉取主干更新(
PostToolUse)后 → 执行「会话生命周期」中的合并后操作(推进、更新角色状态、按证据更新模式、按轴关闭、reconcile、如果已确认反馈反思则执行、词汇检查;如果是 Agent 链接过来的工作——仅执行转化种子和交付模式)。钩子消息中列出的例外项要和git checkout main && git pull章节中的列表完全一致,否则仪式和钩子会不一致。AGENTS.md PreToolUse— memory-guard:如果路径在本地项目内存目录内 → 阻塞(exit 2,将路由消息输出到 stderr)。路由规则来自Write|Edit|MultiEdit|NotebookEdit的消息插槽:项目图谱按前置元数据「图谱」中的名称,持久化章节用references/hooks.md中的对应标题(与文件中的措辞一致),加上个人图谱AGENTS.md。@handle/mindPostToolUse— spec-write(仅完全互操作模式,按 AGENTS.md 的 interop 戳记判断):如果路径看起来像 design/spec 文档 → 提示设计内容应该写入图谱。Write|Edit- 分支新鲜度 —— 建议配置 pre-push 钩子()。
references/hooks.md
OpenCode:插件放在 中,按 的模板编写。 的事件流在机器的 OpenCode 服务器上是全局唯一的:项目插件能看到所有目录的 和其他会话事件,如果把本仓库的地址欢迎消息发到了其他目录的会话中,会导致该会话被错误地关联到其他角色。订阅者只能向自己目录的会话写入:将事件的目录(事件的 或其 字段)与 都规范化后再比对(用 realpath,出错则用原始字符串,不带末尾分隔符)—— 因为同一个目录可能显示为 或 ,原始比对会找不到自己的会话;如果是其他目录的会话则跳过。 钩子仅在实例目录内的调用时触发;对它们的要求只有一个——按编写的逻辑执行,不要有未定义的名称和抛出异常,除了内存路径的 guard 之外。欢迎消息携带的地址与 相同,guard 的拒绝逻辑与 Claude Code 的 memory-guard 路由相同:模板中的插槽(、、、)从 AGENTS.md 的前置元数据填充, 用文件中的对应标题——仓库插件中不能有尖括号占位符。验证方式:在仓库根目录运行 ,在运行和刷新时都要执行:返回码1表示有缺口或故障(输出行会说明哪个插件、出了什么问题、如何修复),按模板重写后重新运行,并在报告中说明。如果本地桥接器的 中没有 (桥接器版本太旧)或者桥接器不存在(文件不存在, 返回 )—— 请按此规则人工检查每个 文件,并在报告中说明未运行自动检查。
.opencode/plugins/references/harness-surfaces.mdctx.event.subscribesession.createdlocation.directorydatactx.location.directory/tmp/…/private/tmp/…ctx.tool.hookSessionStart<图谱><核心边界><Agent 角色><所有者角色><持久化章节>node ~/.iskron-bridge/iskron-bridge.mjs check-rituals--helpcheck-ritualsnodeMODULE_NOT_FOUND.opencode/plugins/*自检项:四个基础钩子都已配置(启动、推送、合并、memory-guard);旧合约移除的钩子( 事件的未冻结守卫、写入工具的 writing 时刻指针)如果存在——刷新时移除我们自己的,不要动别人的;spec-write 存在当且仅当 interop 戳记为 ; 调用的是 iskron 门户的「启动」(不是 ),并携带真实地址;推送和合并过滤器是从 逐字节复制的,且已用其中的示例验证过;memory-guard 的拒绝消息——无论是 Claude Code 的钩子还是 OpenCode 的插件——都要提到仓库图谱、 中的持久化章节标题和 ,没有尖括号;旧的无路由纯禁止规则(合约24及之前)——需要重写;(或人工按规则检查)没有在 中发现缺口和故障;没有任何第三方配置被意外删除。
StopfullSessionStartentryreferences/hooks.mdAGENTS.md@handle/mindcheck-rituals.opencode/plugins/*Шаг 5 — Гигиена репозитория
第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 - Директория проектной памяти (): эвакуируй, затем заморозь. Решения и ограничения → граф; ритуалы → AGENTS.md; готчи → дом по «Раскладке»; состояние ветки → git и PR; серверы и датированные долги → граф проекта; собственное пользователя → его личный граф (minding); предпочтения — по Шагу 1. Затем
~/.claude/projects/<encoded-path>/memory/— однострочный стаб-запрет («состояние живёт в репо или графе — см. AGENTS.md, раздел <заголовок раздела о персистентности, как он стоит в файле>»), memory-guard блокирует дальше. Стаб поверх непрочитанного уничтожает то, что должен был переселить.MEMORY.md - Форжа и CLI — выведи, не предполагай GitHub: →
git remote -v(GitHub),gh(Forgejo/Codeberg),fj(GitLab),glab(Gitea); проверь установку и вход, назови в «Git-воркфлоу» с командой наблюдения. Неопознанный хост — спроси.tea - «Стек», «Команды», «Структура проекта», «Конвенции кода» — реальное содержимое по зрелости; пусто в первый день — нормально, — нет.
TBD - не заводится, и AGENTS.md говорит почему (раздел скелета). Файл есть — эвакуируй по домам (git, PR с номером дела, дело, модусы узлов) и удали.
HANDOVER.md - корня — короткий, человеку, AGENTS.md не дублирует. README компонента по «Раскладке» — карта кода делателя, компактно; прогон их не пишет.
README.md
- 提交 ,将
.claude/settings.json加入 gitignore;如果 gitignore 宽泛地忽略了.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 - 项目内存目录():先迁移内容,再冻结。决策和限制 → 图谱;仪式流程 → AGENTS.md;陷阱 → 按「布局」规则归属;分支状态 → git 和 PR;服务器和带日期的待办 → 项目图谱;用户个人内容 → 其个人图谱(minding);偏好按第1步规则处理。然后创建
~/.claude/projects/<编码路径>/memory/——单行占位禁止文件(「状态存储在仓库或图谱中——参见 AGENTS.md 的 <持久化章节标题,与文件中的措辞一致> 章节」),之后由 memory-guard 阻塞写入。在未读取内容的情况下直接创建占位文件会销毁本该迁移的内容。MEMORY.md - 代码托管平台和 CLI——推导得出,不要默认是 GitHub:从 判断 →
git remote -v(GitHub)、gh(Forgejo/Codeberg)、fj(GitLab)、glab(Gitea);验证 CLI 是否已安装和登录,在「Git 工作流」中说明并给出查看命令。如果是未识别的托管平台——询问人工。tea - 「技术栈」、「命令」、「项目结构」、「代码规范」——根据仓库成熟度填写真实内容;第一天为空是正常的,但不要写 。
TBD - 不要创建 ,AGENTS.md 中会说明原因(骨架模板的章节)。如果该文件已存在——将内容按归属迁移(git、带任务编号的 PR、任务、节点模式)然后删除文件。
HANDOVER.md - 根目录的 要简短,面向人类,不要重复 AGENTS.md 的内容。按「布局」规则存在的组件 README——是执行者的代码地图,内容要紧凑;本流程不会写入这些文件。
README.md
Шаг 6 — Ролевые суб-агенты делегирования
第6步 — 委托用的角色子 Agent
Доктрина и шаблоны файлов — ; прозой AGENTS.md не проецируется.
references/delegation.md- Claude Code, всегда: и
.claude/agents/reader.md(средний тир),searcher.md,worker.md,designer.mdиreviewer.md(верхний: исполнение, суждение, ревью и приёмка) — алиасыverifier.md/sonnet;opus— ни одной роли.haikuиverifier— даже без рантайма: они делаютreviewerи ритуал ревью исполнимыми;REALITY.md— только чтение, поиск кандидатов «что граф знает о X» вне окна сессии: находки — зацепки, позвавший принимает их сверкой с окрестностью. Ни одна роль в граф не пишет; ткачество ведёт сам ведущий.searcher - OpenCode (/
opencode.jsonили слово пользователя):.opencode/те же шесть,.opencode/agents/, модель пришпилена в каждом файле из настройки пользователя (спроси или прочтиmode: subagent); из референса id не копируй; верхний тир — только Claude Opus или GPT-6.1 Sol.opencode.json - Запись моста-спутника — одна форма на все ОС (, «Форма записи одна на все ОС»):
delegation.md,command: node—argsс кодом, собирающим путь к домашнему мосту из-e, затемos.homedir()и--; копируй блок из референса дословно. Проверена живьём на macOS (Claude Code 2.1.285); на Windows не сверена. Машинного пути в файле нет — он коммитится как есть. Прежняя проекция (--satellite, контракт до 18; абсолютный путь) — перепиши этим блоком.sh -c - — канал маршрутизации: триггер-образно — когда звать, что вернётся, чему не доверять.
description - Объёмное суждение без записи в граф (проекция файлов прогона , разбор слотов против кода) идёт роли
iskronify; проектирование в графе, запись, ткачество, решения владельца и диалог остаются ведущему; приёмное (ревью диффа, приёмка утверждения) идёт холодному — ролевой файл законен; поиск по вопросу, только чтение, — тоже.designer - Мержи: одноимённый агент другого набора — вложи своё или переименуй свой (). Своя прежняя проекция (тело прошлого контракта) — перепиши текущим телом; хвост репо (
iskron-reader, «Хвост репо») — перенеси как есть; чужое тело — не трогай.delegation.md - Self-check: файлы парсятся; каждый файл Claude Code несёт свою запись моста-спутника — общей записи
iskron-sub-<роль>(контракт до 17) ни в одном нет; форма записи —iskron-subиз референса,node -eи машинного пути нет ни в одном;sh -cиз корня репо показывает файлы проекта в разделе «субагенты» без строкdoctor(на английской поверхности —НАДО:; есть — исполни их до отчёта); телаTODO:,worker,verifier,reviewerнесут вход в дело строкой запуска и на общем мосту не зовутdesigner,iskron_stand,join(leaveиreaderв дело не пишут); ни одно тело не разрешает запись в граф; файловsearcherиsearcherнет илиdesignerпришпилен кreader(контракт до 18) — допиши и перепиши;haikuпришпилен кworker(контракт до 23) — перепиши наsonnet; своя прежняя проекцияopus(контракт до 22) — удали;weaverиverifierчитаютreviewerрепо; пришпиленные модели существуют; AGENTS.md не несёт доктрины делегирования (максимум указатель); хвост репо не потерян — по диффу каждого ролевого файла строки подREALITY.mdи ключи фронтматтера сверх блока те же до и после прогона; у прежней проекции без заголовка каждая снятая строка, называющая предмет репо, стоит в хвосте, а снятые родовые названы в отчёте; чужие файлы не перезаписаны, свои прежние не оставлены.## Этот репо - Роль, спроецированная прогоном, в той же сессии может не зваться по имени (каталог ролей читается на старте) — скажи это в отчёте; холодное ревью этого прогона тогда идёт общим суб-агентом с телом роли в брифе, модель — только верхнего тира (Claude Opus или GPT-6.1 Sol): параметром вызова, где харнесс его даёт; где не даёт — моделью сессии, только если она из них, и отчёт это говорит; иначе ревью этим ходом не идёт — отчёт говорит и это.
相关原则和文件模板见 ;不要以文字形式投影到 AGENTS.md 中。
references/delegation.md- Claude Code 始终配置以下角色:和
.claude/agents/reader.md(中级),searcher.md、worker.md、designer.md和reviewer.md(高级:执行、判断、评审和验收)—— 别名对应verifier.md/sonnet;opus不用于任何角色。即使没有运行时也要配置haiku和verifier:它们让reviewer和评审仪式可执行;REALITY.md仅负责读取,在会话窗口外搜索「图谱中关于X有哪些内容」的候选:找到的内容只是线索,由发起者结合上下文验证后采纳。任何角色都不能写入图谱;编织工作由主导方自行负责。searcher - OpenCode(存在 /
opencode.json或用户提及):.opencode/下同样配置六个角色,.opencode/agents/,每个文件中的模型都固定为用户配置的版本(询问或读取mode: subagent);不要从参考文件中复制 id;高级角色仅使用 Claude Opus 或 GPT-6.1 Sol。opencode.json - 卫星桥接器的配置格式——所有操作系统统一(见 「所有操作系统统一格式」章节):
delegation.md,command: node为args加一段代码(从-e拼接本地桥接器路径),然后是os.homedir()和--;请从参考文件中逐字复制该配置块。已在 macOS 上实测验证(Claude Code 2.1.285);Windows 上未验证。文件中没有机器特定的路径——可以直接提交到仓库。旧的配置方式(--satellite,合约18及之前;绝对路径)——请用该配置块重写。sh -c - 是路由通道:用触发式描述——什么时候调用、会返回什么、哪些方面不可信。
description - 不需要写入图谱的批量判断工作(流程的文件投影、对照代码验证插槽)分配给
iskronify角色;图谱设计、写入、编织、所有者决策和对话由主导方负责;验收类工作(diff 评审、断言验收)交给冷评审角色——角色文件是自包含的;问题搜索、只读类工作也交给对应角色。designer - 合并规则:如果其他套件有同名 Agent——将我们的配置嵌套进去,或者把我们的角色改名(比如 )。我们之前的投影内容(旧合约的正文)——用当前正文重写;仓库专属内容(见
iskron-reader「仓库专属内容」章节)——原样保留;第三方的内容——不要修改。delegation.md - 自检项:文件可正常解析;每个 Claude Code 角色文件都有自己的 卫星桥接器配置——没有任何文件使用通用的
iskron-sub-<角色>配置(合约17及之前);配置格式都是参考文件中的iskron-sub形式,没有任何文件使用node -e或绝对路径;在仓库根目录运行sh -c后,「子 Agent」部分的项目文件没有doctor行(英文界面是НАДО:;如果有——在报告前先处理掉);TODO:、worker、verifier、reviewer的正文都包含加入任务的启动行,且在公共桥接器上不会调用designer、iskron_stand、join(leave和reader不会写入任务);任何角色的正文都不允许写入图谱;如果缺少searcher和searcher文件,或者designer绑定的是reader(合约18及之前)——补充并重写;如果haiku绑定的是worker(合约23及之前)——重写为sonnet;我们之前的opus角色投影(合约22及之前)——删除;weaver和verifier会读取仓库的reviewer;绑定的模型确实存在;AGENTS.md 不包含委托原则的内容(最多有一个指针);仓库专属内容没有丢失——每个角色文件的 diff 显示,REALITY.md下的行和前置元数据的额外键在运行前后保持一致;对于没有标题的旧投影,每一条被移除的仓库相关行都要移到专属内容区,被移除的通用行要在报告中说明;第三方文件没有被覆盖,我们的旧配置没有残留。## 本仓库 - 流程投影的角色在同一次会话中可能无法按名称调用(角色目录在启动时读取)——请在报告中说明;本次流程的冷评审如果因此需要用通用子 Agent,需将角色正文放入任务简报中,且模型必须是高级版本(Claude Opus 或 GPT-6.1 Sol):如果运行载体支持传参就用参数传;如果不支持——仅当会话模型本身是高级版本时才执行,且报告要说明这一点;否则本次不执行冷评审——报告也要说明这一点。
Шаг 7 — Финализация
第7步 — 收尾
- Тело — в (Codex и OpenCode читают нативно), таблица носителей — в
AGENTS.mdкорня. УказательREALITY.md— только для Claude Code; форма поCLAUDE.mdи платформе:git config core.symlinks- симлинки работают: ;
ln -s AGENTS.md CLAUDE.md - не работают (Windows): копия байт-в-байт — её читает буквально любой тул, но это второй источник истины: перегенерируется каждым прогоном, числится в «Что обновлять когда», правки — только в ; либо однострочный
AGENTS.mdсCLAUDE.md(без бэктиков: код-спан глушит импорт) — там, где копия хуже импорта, понятного одному Claude Code. Работающий указатель любой формы не переделывай. Пер-харнессные детали (merge root→cwd у Codex,@AGENTS.md) —AGENTS.override.md.references/harness-surfaces.md
- симлинки работают:
- Легаси-конфиг: скелеты — рама; производные факты ре-спроецируй, авторское сохрани, сверив с кодом; проектное без слота — в «Конвенции кода» или новую секцию. Таблица Reality внутри (контракт до 16) — переезжает в
AGENTS.mdстроками целиком, датированные наблюдения из неё — узлами в граф (не удаляются), в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-симлинк продолжает указывать на тот же файл. Проверь YAML-парсером плоскость и строковые значения, а указатель — чтениемCLAUDE.mdпротивCLAUDE.md.AGENTS.md - Готчи в не живут: при
AGENTS.mdпо «Раскладке» — строкой там, узел не обязателен (ловушка — знание о коде; узел, если есть, — ссылкой); иначе узел графа на контуре, в файле и коде —GOTCHAS.md. Строк(граф, #N)в граф не переносить.GOTCHAS.md - проверен: носители опираются на граф, код или названный ответ, их достижимость проверена либо ограничена Ceiling; ни одного датированного замера; раздел «Reality» в
REALITY.md— указатель без строк таблицы.AGENTS.md - Во фронтматтере ни одного пустого значения при источнике «не согласовано» без №дела и ни одного плейсхолдера скелета в значении; ни одна заметка
<…>не пережила в обоих файлах.<!-- … --> - Каждое имя скилла в проецируемых файлах (,
AGENTS.md, хуки, ролевые файлы) разрешается как записано на канале установки репо — сверь с живым реестром, не по памяти; невызываемое имя не падает, а молчит. Механической сверки в прокачиваемом репо может не быть — тогда вручную, как имена тулов по живой поверхности сервера. Тело, едущее в несколько харнессов (ролевой файл), формы вызова не несёт вовсе — называй вызовы тулов.REALITY.md - На бутстрап-пуше граф отражает перемену структурой (контур, роль, готчи, карта); выравнивание — словом в деле, ждущий слот — строкой «слот: …».
- Передай эстафету: закончи тизером роадмапа (скилл , quick-режим) по свежему репо, названным по имени. Назови обновлённые файлы и открытые слоты фронтматтера — дело №N, на ком и чего ждут; продолжение такта 2 не требует слова человека. Принципиальные вопросы владельцу — отдельно, с проверенными источниками; нет их — так и скажи. По поручению отчёт и остаток получает ведущий дела.
product-roadmap
- 正文写入 (Codex 和 OpenCode 原生支持读取),载体表写入根目录的
AGENTS.md。REALITY.md指针——仅用于 Claude Code;格式根据CLAUDE.md和平台决定:git config core.symlinks- 支持符号链接:;
ln -s AGENTS.md CLAUDE.md - 不支持(Windows):逐字节复制——任何工具都能读取,但这是第二真相源:每次运行都会重新生成,记入「何时更新什么」,修改仅在 中进行;或者创建单行
AGENTS.md,内容为CLAUDE.md(不要加反引号:代码 span 会禁用导入)——适用于复制方案不如导入方案好的场景(仅 Claude Code 支持导入)。 任何形式的可用指针都不要改动。各运行载体的特殊细节(Codex 的 root→cwd 合并、@AGENTS.md)——见AGENTS.override.md。references/harness-surfaces.md
- 支持符号链接:
- 旧配置处理:骨架模板作为框架;派生事实重新投影,主观内容对照代码验证后保留;没有对应插槽的项目相关内容——放入「代码规范」或新建章节。内部的 Reality 表格(合约16及之前)——整行迁移到
AGENTS.md,其中带日期的观测内容转为图谱节点(不删除),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@<版本> — re-check on suite upgrade)* - 验证检查(与紧凑性同等重要):两个文件的每一行派生内容都要对照来源验证——检查整个产物,而不仅仅是修改过的部分。无法关联到来源的内容——要么是主观判断(保留),要么是猜测(删掉)。
- 紧凑性检查:问「这一行会改变 Agent 的行为吗?」——删掉叙述性和背景说明内容(移到图谱)。规范块不要改动——逐字节与节点比对验证。
- 「声明 vs 实际」的自动检查器——需要明确确认非默认配置才构建;仅针对特定仓库的命名行构建窄范围检查,绝对不要构建通用检查器。规范靠重复运行来保障。
- 戳记:的最后一行是
AGENTS.md。刷新时重写该行;不要保留多个戳记。*(iskronify: контракт <顶部的合约版本号>, штамп <YYYY-MM-DD> — прогони заново, когда описание установленного iskronify называет контракт выше или когда источники, из которых выведен этот файл, сдвинулись после этой даты.)* - 封面是 YAML 前置元数据,从第一行 到闭合的
---,不属于正文部分。使用扁平键值对:---和'Граф': '@owner/slug (rN)';插槽名称与骨架模板一致,每个插槽都有对应的'Граф — источник': 'выведено'键,值为— источник/выведено/согласовано: 确认人。所有值都是单引号包裹的字符串;内部的单引号要双写。缺口的值为空字符串,来源带任务编号;「Согласование」的值为任务编号或не согласовано — задача №N。旧的表格内容要完整迁移值和来源,删除「Обложка」章节;正文仅保留仪式流程。不要添加运行载体的内部键(比如пусто):这是项目元数据,不是指令加载过滤器。paths符号链接继续指向同一个文件。用 YAML 解析器验证结构扁平且值都是字符串,通过读取CLAUDE.md和CLAUDE.md验证指针对应关系。AGENTS.md - 陷阱(Gotcha)不存在于 中:如果按「布局」规则有
AGENTS.md——就写在该文件里,不强制要求有图谱节点(陷阱是关于代码的知识;如果有节点就加链接);否则用图谱边界上的节点表示,在文件和代码中用GOTCHAS.md引用。不要将(图谱, #N)的行迁移到图谱中。GOTCHAS.md - 已验证:载体基于图谱、代码或指定的确认信息,其可访问性已验证,或受 Ceiling 限制;没有带日期的测量数据;
REALITY.md中的「Reality」章节是指针,没有表格行。AGENTS.md - 前置元数据中,没有任何「未对齐」来源的值为空且不带任务编号;值中没有任何骨架模板的 占位符;两个文件中都没有残留的
<…>注释。<!-- … --> - 投影文件中的每个技能名称(、
AGENTS.md、钩子、角色文件)都要与仓库安装通道中的记录一致——对照实时注册表验证,不要靠记忆;不可调用的名称不会报错,只会静默失效。待升级的仓库可能没有自动校验机制——那就手动校验,就像对照服务器实时接口验证工具名一样。会被多个运行载体加载的文件(比如角色文件)不要包含调用格式——仅提及工具调用名称。REALITY.md - 引导推送时,图谱通过结构变更反映更新(边界、角色、陷阱、角色卡);对齐状态通过任务消息更新,待处理插槽用「插槽:…」行记录。
- 接力传递:最后用 技能的快速模式为新仓库生成一个简短的路线图预告,按仓库名称命名。列出更新的文件和前置元数据中未解决的插槽——说明任务编号#N、负责人和待办事项;第二阶段的继续不需要人工参与。给所有者的原则性问题单独列出,附带来源验证结果;没有问题就如实说明。如果是委托任务,报告和剩余事项交给任务主导方。
product-roadmap