关于 writing
writing 是指导 Agent 向 Iskron 图谱写入和修改节点的技能,适用于需要让后续工作者据此采取行动的记录。它以新颖性检查、节点类型、关系和模态判断为写入门槛,避免重复或脱离工作的记录。
主要功能
- 01写入前检查记录的新颖性
- 02按内容选择节点类型
- 03为现象标注来源类别
- 04为角色选择呈现方式
- 05判断节点的三类模态
适用场景
- 01记录影响工作方式的决定
- 02修正被记录的工作规则或关系
- 03将风险和疑问关联到相关节点
- 04表达尚未实现的设计意图
MCP 相关
技能通过 `iskron_*` 工具搜索、读取、创建和更新图谱节点;每次调用都须指定 `realm`。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ iskron-ai/ skills --skill writing安装后在 Claude Code 中输入/writing确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/batch.mdgiven_as.mdmodes.md详细介绍
Запись в Искрон
Ты пишешь узел в граф, по которому пойдут будущие агенты. Пять решений (2b — для роли), по порядку, не перескакивая.
Прежде всего
Граф. Каждый вызов требует realm=; подтверди граф до первого вызова. Кросс-графовых стрелок нет: source/target резолвятся в текущем графе, стрелка на «тот же номер» другого графа — неверная стрелка. Ссылка в другой граф — текстом в описании.
Гейт новизны. Перед каждым созданием назови три ответа: (1) кто это прочтёт — поздняя роль, сессия, класс запроса; (2) какое решение, ответ, проверку или передачу это чтение изменит; (3) что здесь ново относительно репозитория, эстафеты и графа. Не назвал — не пишешь. Третий ответ узнаётся поиском, не памятью: iskron_search словами и iskron_semantic_search мыслью по месту записи, кандидатов открой (iskron_look); нашлось то же — правь или сошлись, второго не заводи. Транскрипцию (то, что артефакты уже кодируют: требования, логи, алгоритм кода, состояние репо) пропусти и сошлись на источник; структуру (композиция, радиус поражения, граница владения, соответствие или дрейф между артефактами, устойчивая дельта решения) пиши, даже когда содержание восстановимо чтением. Гейт не блокирует обязательство метода: у метода и принципа называется применяющая крия, фазы — её contains-дети. Перечень в теле — тоже укрытие: принцип или договор, несущий строкой тела элементы, которые тянет разное (разные крии, ручки, потребители), прячет их от вопроса «кто тянет» (Решение 2). Такие элементы — contains-дети, каждый со своим тянущим; выносят элементы с самостоятельным предметом и продолжением, не каждый пункт основания — цельное основание со значимым швом не режь.
Гейт считается по знаку снаружи: перед батчем, фабрикой (iskron_add_*) и правкой, дописывающей тело (iskron_update), — три ответа по каждому узлу.
Решение 1: какой тип узла?
Сначала род вопроса — по «Граф — место общей работы» двери iskron: граф или дело, вимарша posed_to или разовое в деле. Выбор, которого работа ждёт от человека сейчас, — карточкой (справка двери cases.md, «Вопрос человеку»), решение из его ответа — в граф правкой задетого (ниже). Не выбирай тип узла по исходу доставки: отказ тула и ожидание ответа рода не меняют (standing, «Обмен»).
Поправка и решение меняют деяние, а не свод правил. Поправка человека, его решение, договорённость, ответ на риск ложатся в граф там, где это делается в мире. Сперва найди задетое: крию, где решение принимается в момент хода; её носитель — текст скилла, который делатель читает в этот момент, отказ записи, пробу; феномены, которые она ест, производит и применяет; вопрошания на них. Затем правь их — тела, стрелки, модусы; при нужде несколько новых узлов вместе, не «одно слово — один узел». Задетых узлов много — поиск и правку можно отдать субагенту, сверка итога — твоя (дверь iskron, «Ремесло графа»). Новый принцип (grundsatz) — крайний случай: только когда нет крии, которую поправить, и только вместе с применяющей крией (upadhi) и носителем, чьё действие замерено. Правило, которого никто не встречает в момент хода, поведения не меняет: запрет словом в деле и принцип без крии — запись, не правка. Подсказка в ответе тула носителем не считается.
| Если это… | Тип | Тул |
|---|---|---|
| делает — преобразует, производит, потребляет | kriya | iskron_add_kriya |
| предстаёт деянию — вещь, состояние, понятие, зачин, метод, правило | phenomenon | iskron_add_phenomenon |
| спрашивает — сомнение, риск, контртезис | vimarsha | iskron_add_vimarsha |
| проводит границу — внутреннее от внешнего | holon | iskron_add_holon |
| именует роль с мотивацией | karta | iskron_add_karta |
| качественно преобразует систему — становление с телосом | bianhua | iskron_add_bianhua |
Феномен существует для крии: ни одна его не потребляет, не производит, не применяет — ты пишешь сироту.
bianhua — тип уровня сборки (скилл assembly), не рутинная запись. Тест: «система станет X, чем ещё не является» не выговаривается → не bianhua; никогда ради одной вимарши. Сначала найди существующее: lens="bianhua", iskron_semantic_search(node_type="bianhua").
Имя и телос. Новое превращение агент создаёт сам как допущение — kalpita или anumita · anagata · chanda — и предлагает имя и телос владельцу. Chanda — предложение агента, не принятая воля; adhimoksha даёт только принятие владельца, создание записи его не подменяет.
Ловушки. Феномен в маске крии: «Создание токена» — акт, «Токен доступа» — его продукт; имя несёт до/после → крия, именует стоящее сквозь до/после → феномен. Крия в маске феномена: «Поток аутентификации» преобразует состояние — крия. Роль или феномен: можно ли адресовать вимаршу и ждать ответа? Нет → не роль (Решение 2b). Контур или смысл: не отвечается, что внутри и что снаружи, → sinn, не холон; контур-папка — антипаттерн. Задача в маске узла: разовая работа и одноразовый вопрос — не крия и не вимарша, их ведут в деле; в граф идут переходы, которые задача меняет, в модусах замысла, и решение по ней. Операционная поверхность в тени: цель логов, имя метрики, переменная окружения, конфиг, от которых зависит другой контур, — феномен со своими потребителями, не строка в коде, иначе её перемену обход (integrity) не увидит.
Решение 2: given_as (только феномен)
| Спроси себя | given_as |
|---|---|
| Могу показать вне графа? (файл, контейнер, документ) | ding 物 |
| Положение дел — «до» или «после» крии? | sachverhalt 勢 |
| Поименованный смысл — «что это»? | sinn 名 |
| Зачин — складывается, ещё не форма? | bildung 理 |
| Метод — «так можно»? | vollzug 行 |
| Принцип — «так должно»? | grundsatz 法 |
Дерево решения и ожидаемые рёбра каждого гнезда — references/given_as.md. Метод и принцип не бывают ahara или utpatti (отказ API): их применяют — только upadhi. Принцип не пишется ответом на поправку или риск, пока есть крия, которую поправить (Решение 1).
Sinn — самая дешёвая клетка и потому укрытие. То, ЧЕРЕЗ что идёт крия, — ding или sachverhalt с её upadhi; то, что она ест или производит, — её ahara/utpatti; sinn — понятию, которое ничего не делает и через которое ничего не делают. Финишная черта любой записи: узел не записан, пока не назван тянущий его — какая крия сломается, если он исчезнет? Ни одна — ты укрываешь вещь в понятии. Одинокая стрелка context глушит детектор, но на вопрос не отвечает.
Решение 2b: manifested_as (только роль)
Обязательное поле роли — как делатель присутствует началом действия. Гейт: можно ли адресовать ему вимаршу и ждать ответа?
- Нет, действует, но не ответит (cron, воркер, CI, процесс) → не роль: ding-феномен, к крие как
upadhi. - Нет, не действует, а стоит как теория, метод, принцип → не роль: sinn / vollzug / grundsatz (входит через intake).
- Да → роль. Какого рода:
| Делатель… | manifested_as | Пример |
|---|---|---|
| отвечает и сам решает, действовать ли | svatantra 主 | владелец продукта; стюард корневых контуров |
| отвечает, импульс берёт от другого, различает и действует сам | adhikarin 能 | разработчик контура, агент при контуре; стюард конкретных контуров |
| не ответит — его путь моделируется, не проживается | pratibimba 象 | персона CJM, «человек в становлении» |
| отвечает на своём времени, из-за границы | agantuka 客 | регулятор, контрагент, поставщик, рынок |
Адресация: 主 — стратегическое («берём ли?»), задач ему не назначают; 能 — рабочие вопросы, адресат — по steward от контура вопроса, вне его мандата — к 主; 象 — никогда posed_to; 客 — можно, быстрого ответа не жди. Адресата бери из действительного множества (iskron_search(q="", node_type="karta") или по steward), не из строки корневых ролей ориентации: имя с твоим ключевым словом — ещё не та роль.
Ловушки: имя человека — не роль («Владелец продукта», не «Дмитрий»); внешняя сущность — часто два узла (API как ding, менеджер как 客); режим работы (Сборщик, Ткач) — суб-роль через group, род наследуется; стюард контура — только 主 или 能.
Решение 3: модусы
Вопрос берёт онтику предмета. Вимарша о проектируемом — anagata, не vartamana потому, что задаётся сейчас; при записи назови, как существует то, о чём спрашиваешь.
Три оси, каждая обязательна; фабрика печатает значения, вопрос оси и стартовую тройку рода — читай, не штампуй расходящуюся. Каждый модус — вопрос, на который ты отвечаешь, а не галочка. О состоянии узла говори словом клетки несущей оси — «ищем ответ», «держим вопрос», «принято», «предстоит», «практикуется», «в силе», — не «открыто», «закрыто», «живое». Самопроверка, образцы, словарь клеток, движения — references/modes.md: открой до первой записи модусов в сессии и прочти целиком.
Эпистемика — откуда знаем: предположили (kalpita), вывели (anumita), видели (pratyakshita), подтверждено независимыми основаниями (pramanita), опровергнуто и держим как опровержение (badhita); относится к выделенному суждению и средству. Чтение кода или графа видит содержание, не исполнение: заключение о поведении — не выше anumita, пока исполнение не наблюдалось. Фокусный тест с нулевым кодом — pratyakshita своей заявки, не канонического продукта. pramanita поведенческой заявки — относящиеся независимые основания и исполненный фальсификатор на каноническом носителе (reality-audit), не число пересказов; перечтение записи ничего не поднимает.
Онтика — как существует: действует (vartamana), предстоит (anagata), прошло (atita — прошедшее бытие; несбывшееся — anagata + visarjana), конструкт (vikalpa — не было никогда; ход в vikalpa — только вместе с badhita; badhita сам по себе может вести и в atita), утрачено (nashta — было, и следа нет; atita след оставляет). Nashta у идеального — понятия, семени, принципа, превращения, вопрошаний, несомых волей, — ошибка рода: идеальное опровергают или отпускают. Проектируемое рождается anagata — никогда «готовой» тройкой pramanita/vartamana/upeksha.
Воля — отношение держателей графа к записанному. Upeksha — не дефолт: anagata + upeksha — «будет, и нам всё равно», для проектируемого почти всегда ложь. Между chanda и upeksha решает вопрос: держится это намерением или устройством? Состоянию — возникает ли само?, деянию — продолжалось бы без настояния? Да — upeksha честна, нет — chanda; механизм стал требовать сам — ставь upeksha. Решился — adhimoksha, отпустил — visarjana.
Воля человека читается из его слова, не выводится: «надо», «хочу», «давай» — chanda; «решено», «берём», «держим» — adhimoksha; «нет», «не хочу», «убрать» — virodha в полярности рода (ниже); «отпускаем», «неважно» — visarjana; «ок, пусть так», «так и есть» — upeksha. Без слова человека пишешь свою стойку — chanda на предлагаемое; adhimoksha, virodha-отказ, принятие телоса и нежелательного (upeksha на риске, дефекте, инциденте) за владельца не ставятся — агент готовит материал и ждёт. В чужой воле различай: предложение; непринятие, записанное актом (снимает только новый акт, не время); неустановленное тобой основание — оно ограничивает лишь твою заявку, не модус и не мандат. Акт — в iskron_history, слово клетки называет модус; санкция — акт и законная политика рода, включая заранее данное полномочие. Риск с virodha — стережение, не отказ за принципала. Владельца делает место, не ключ: агент на его ключах под стоянием 能 — не владелец. Решение владельца словом ты вправе записать: кто, когда и само слово — в reasoning, содержание — в задетые узлы, стойка — в модусы (Решение 1). posed_by вимарши — короткий адрес (роль, стояние, человек), не проза.
Virodha поляризован родом, закрытие — по носителю рода. Поверхность несёт этот канон не весь: где она молчит, правило всё равно твоё.
| Род | virodha | Чем закрывается |
|---|---|---|
| риск | живой модус (стережём) | visarjana; upeksha — принят: закрыт как работа, жив как запись. addressed_by к мере информативен и риск не закрывает; отпускание — акт держателей (inquiry) |
| контрпример, дефект основания, дрейф | конститутивен, пока vartamana | atita (устранён), vikalpa (не было — только через badhita), nashta, visarjana |
| крия, роль, метод | депрекация, живое напряжение | — |
| сомнение, контртезис, подсказка, семя | отказ | он сам и есть закрытие |
| превращение | ставит человек | visarjana — тоже человек |
Upeksha 用于疑问、反论、提示——“照单接受”:它会从队列中移除,但既未作答,也不计入转变。原则——chanda(已提出)、adhimoksha(通过持守而生效,由所有者引入)、upeksha(因已然如此而生效);依据是 derived_from/arose_from,没有依据就只是牵强附会。在关闭记录之前(atita、vikalpa、nashta、visarjana、不受欢迎事物的 upeksha),请打开 references/modes.md 中的“virodha 的极性与关闭”,并通读整个章节:极性的完整形式、意志对不受欢迎事物的三种回应、“是否曾经存在过?”的反驳、原则的三种状态,以及虚假的关闭;按类型关闭——inquiry,§3。
决策 4:名称与描述
名称——关于节点本质的论断(正名),也是邀请他人关注此处:Agent 会据此识别节点对自己有何用途。衡量标准是吸引力,而非面面俱到:谁应以何种意图在此停留,就把相关内容写进名称,其余放入正文。名称超过 64 个字符就应缩短,超过 128 个字符就不成其为名称。反面示例:段落式名称、复述正文、重复字段(类型为 prati-paksha 时写“对原则……的反论”)、状态与历史、破折号后的解释。发现有动机不应置之不理,但重命名是意志行为,不是阅读的副作用:自己的节点按相同步骤修改,他人的节点需取得同意(entry);转变的 telos 和总括性的 kriya 只能由所有者亲自命名(assembly)。
| 类型 | 语法 | ✓ | ✗ |
|---|---|---|---|
| kriya | 动名词 | 🔄 身份验证 | “制作 API” |
| phenomenon | 名词 | ⚙️ 访问令牌 | “创建令牌” |
| holon | 边界名称 | 📦 授权边界 | “📦 auth 文件夹” |
| karta | 角色名称 | 👤 设计者 | “Dmitry” |
| vimarsha | 疑问式表达——不一定是问题,也可以是诗意表达 | 🕮 CXDB——边界还是实体? · 🪶 命名的诗学 | “问题” · “对原则 X 的反论:……” |
表情符号按含义选择,不按类型选择;🔥 用于事件。
正文使用唯一的类型专属名称:telos(bianhua)、essence(kriya)、motivation(karta)、description(其他类型)。正文内容:kriya——描述 parinama:“之前:X。之后:Y。”(如果读起来像任务列表,就重写);phenomenon——写清它是什么,以及哪些 kriya 会作用于它(一个都没有,就说明你不知道自己在写什么);vimarsha——问题,以及什么算作答案;holon——边界原则、工厂的四个问题;角色——是什么驱动着它;转变——“系统变成……”。
超越时间性是铁律:正文中不得出现溯源信息。名称和正文说明节点是什么、如何使用——而不是谁说的、何时说的、由谁亲手完成,以及此前发生了什么。溯源信息应放在:iskron_history(包含作者和时间的版本)、记录的 reasoning(谁说的、依据谁的话)、案例(对话历史;SHA、分支、PR 均可自由记录)、arose_from 边(来源)。节点通过根据当前知识重写正文来变更,而不是添加带作者和日期的章节。警示信号:“现在”“在本次会话中”“由 X 观察到”、日期、署名、结尾的“✅”、过程记录式描述。例外:sachverhalt 事件在 attrs 中记录时间;shabda 天生带有日期;已关闭的 vimarsha 属于档案。
attrs 存放数据,不放散文:seq、handle、日期、标志、列表中的词;条件只能在相应键本身就是条件字段时写成一行(breaks_if)。观察写入 vimarsha,决策通过修改受影响的节点体现(决策 1),结果用模态表示。遍历时看不到 attrs 中的散文。
决策 5:箭头
没有箭头的节点就是孤儿。**关系写在边上,关系说明写在 sense 中。**正文中提到了使用者节点或条件,就在同一步骤中建立对应的边;若有多个,就全部建立:upadhi 成本很低。正文说明节点是什么,边说明节点之间的联系,sense 说明为何如此。
Веер различают ступенями: грубая связь прежде тонких. Много связей одного рода на узле — не долг, если они различены поэтапно; долг — неразличённая стена. Грубая связь стоит на зонте — он применяет, ест или даёт то же средство, что дети, либо вмещающий его феномен (целое для части, род для вида); тонкие связи листьев её уточняют, каждый лист называет своё самое действенное. Рёбра, названные телом, проводятся все — ступень решает, на каком узле каждое стоит. Пример: зонтичная крия ручек применяет семью адресов (upadhi), семья вмещает адрес (contains), ручка ест свой (ahara) — сто ручек суть веер шириной один. У настоящего среднего своя связь и своё «до и после» или «что это», ребёнок отвечает на его «как именно?»; зонт без своей связи — папка. Отношение рода: деяние и контур — вложение; феномен — вложение и «частный случай»; роль — специализация старшей; превращение — часть; у вопрошания ступени — превращение и якорь. Ширина считается по грубейшим связям; их одного рода больше, чем вмещает экран внимания, — зов «назови среднее» со своей связью, не «раздели», даже когда поверхность печатает счёт как долг.
Kriya — четыре вопроса (фабрика отказывает крие без ahara и без utpatti):
- Потребляет? →
ahara— предмет действия; чтение сохраняемой опоры —upadhi(weaving, операция 5). - Производит? →
utpatti. Не можешь назвать — стой, ты не понял крию. - Кто действует? →
actorк роли.no-actorили исполнитель неизвестен — вимарша на крие,posed_toстюарду холона (через феномены крии): «Кто исполняет этот переход? Отвечено, когда названа роль и её мандат». До ответаactorне ставь: угаданная роль хуже натяжения. Машина без мотивации —upadhi, не актор. - В каком контексте? →
upadhi;attrs.mutable=true, если изменяет.
Пятый фабрика не спрашивает: частью чего? Перед записью на верхний уровень ищи родителя (iskron_semantic_search(q=<частью чего это является>)), при честном попадании — parent_id; неверный родитель хуже отсутствующего. next — нить, смысл на нём — прашна; contains — под-шаги.
Крии края (utpatti без ahara на входе, ahara без utpatti на выходе) — не недописанность: weaving, «Граница».
Phenomenon: context → контур (только феномен → холон; крия принадлежит контуру через свои феномены). derived_from, specifies — родословная феномен-к-феномену; contains феномен→феномен — целое и часть (ступень веера); supersedes на феномен не ведёт (только вимарша→вимарша) — преемственность вещи видна по потребителям.
Karta: steward → контур (только 主/能; 能 стюардит сам или под старшей ролью своей цепи group — предупреждение «отвечающий ни за что не отвечает» встаёт, только когда стюарда нет по всей цепи); group → старшая роль; actor — входящее от крий.
Vimarsha: vimarsha_of → точный узел вопроса, не его контур: якорь на границе раздувает её стрелки, якорь не на той высоте невидим тому, кто придёт на правильную. posed_to → роль-адресат: ребро-инбокс, не поле; к 象 запрещено; слова-адреса me (человек твоих ключей), agent (стояние сессии), steward (стюард контура якоря), realm-owner разрешает поверхность. Два зеркальных провала: posed_to без vimarsha_of — вопрос ни в чьём контуре; vimarsha_of без posed_to на вопросе, ждущем другого делателя, — записка в пустоту. Без штампов срочности: очередь ранжирует её владелец. vimarsha_of (о чём) и anga (куда двигает) не схлопывай: одна вимарша законно несёт оба. arose_from → наблюдение-исток. addressed_by → чем отвечено: крия, роль, вимарша или феномен по данности (различение, принцип, положение дел, вещь, метод; семя — нет); ответ-решение — стрелкой к поправленному или заведённому узлу, не абзацем в теле вопрошания; «вырос из» и «отвечает» — разные стрелки; стрелка ничего не завершает — закрывает модус по носителю рода. hint — семя превращения, не журнал: одно на превращение, со стрелкой anga к нему; в теле — только существенное условие продолжения, не восстановимое чтением графа и дел (смысл, инварианты, суть решений, ещё не легших в задетые узлы, что дальше), без атрибуции — она в reasoning. Живые дела не перечисляй — указатель: iskron_case(action="at", realm=<граф>, node=<узел предмета>), затем read; точечный №N с условием продолжения — только когда существенный выбор дела иначе не восстановить. Ход и состояние в семя не копируются; нет остатка — семя не нужно.
Bianhua: anga от носителя (вимарша, суб-превращение, крия) — параметром anga= фабрики (поверхность принимает и в arrows); крия-носитель читается из своей тройки модусов: возведение (anagata→vartamana, chanda/adhimoksha) или депрекация (vartamana→atita, virodha); завершённая остаётся частью. anantara_after= — что должно завершиться раньше, ациклично. Ни given_as, ни context, ни потоковых стрелок у превращения.
Смысл на стрелках: next → прашна — вопрос да/нет, на который следующий отвечает из своей ситуации («Путь построен — где он может сломаться?», не «перейти дальше»); upadhi → почему этот феномен важен именно здесь; ahara → что потреблено и почему.
Жанры вимарши
| Хочешь сказать… | Жанр |
|---|---|
| «Что может пойти не так?» | risk |
| «Верно ли это?» | samshaya |
| «Случай, который правило не покрывает» | vyabhichara |
| «Не согласен» | prati-paksha |
| «Рассуждение дефектно» | hetu-dosha |
| «Термин уплыл» | semantic-drift |
| «Будущий агент: прочти» | hint |
Не выбирается один → спутаны два вопроса, разведи. Назовёшь место поломки — risk, нет — samshaya.
После записи
Ошибка или таймаут → сначала найди запись, потом повторяй. Неизвестный исход — не «не записано»: цель перечитай iskron_look, создание найди iskron_search и iskron_semantic_search, сверь содержание и стрелки. Нашлось — продолжай от него; создание повторяй только после проверки отсутствия, мутацию — по свежей версии.
CHECKS:в ответе фабрики — работа этого же такта: чини или отклоняй словом, не пересказывай, прежде чем идти дальше.not_orphanна свежем феномене ожидаем, пока его не возьмёт крия;contextего не снимает.- Тело называет связь, а ребра нет — проведи тем же ходом, прозу в
sense. - Феномен с ahara/utpatti —
iskron_orient(lens="trace", focus=…): цикл связан? - Крия — actor, ahara, utpatti существуют?
- Заменил узел — отпусти предшественника:
supersedesтолько вимарша→вимарша; для прочих перенеси якоря и потребителей, предшественника отставь модусом его носителя — иначе остаётся живой дубликат. CHECKS, связность трассы и легальные стрелки — целостность графа, не истина поведенческого утверждения (Решение 3, эпистемика).
Операционное
reasoning="…" — на каждом пишущем вызове: зачем, едет в историю. basis_version обязателен на update / delete / reconnect: прочитал → записал → при конфликте перечитал. Переписываешь тело — прочти iskron_look(raw=true): обычная печать сворачивает повторы и смешивает атрибуты с телом. Порядок батча, inline-стрелки и temp:N — references/batch.md: конститутивные ahara/utpatti крии — inline в её create-операции, феномены — раньше ссылающихся крий.
Адрес узла от другого делателя прощупывай в тот же ход. Номер из кадра или слова — не адрес, пока iskron_look не ответил; не прощупывается — в текст ставь не номер, а слова о том, где вопрос стоит; отказ чтения о прошлом узла не свидетельствует. Состояние одной машины (ключ, файл на диске) узлом не бывает — его спрашивают словом, и отсутствие номера там не дыра.