# Minding

> Ум пользователя в графе — личный граф @handle/mind: вспоминание и запись рефлексом, не ритуалом. ЗАПИШИ: долгий факт о пользователе, не служащий одному проекту, — машины, сроки, люди, уроки → @handle/mind, не в память харнесса; серверы и датированные долги проекта — факты проекта: его граф, не сюда; факт о другом проекте → его граф через карту контуров. ВСПОМНИ: «вспомни», «что ты знаешь обо мне», «что на мне», do you remember. «запомни» → запись; «заведи мне память» → бутстрап. Нужны тулы iskron_*.

- Skill: `iskron-ai/minding` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add iskron-ai/minding`
- Raw SKILL.md: https://api.skillmd.com/api/skills/iskron-ai/minding/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: iskron-ai (https://skillmd.com/u/iskron-ai)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/iskron-ai/minding

---


# Minding — ум пользователя в графе

`@<handle>/mind` держит то, что принадлежит пользователю и путешествует с ним: контуры, живые графы и их назначение, машины и деплои, людей его контекстов, датированные факты, уроки завершённой работы. Этот скилл — **память** этого графа: вспоминание и запись, **рефлексом, не ритуалом**. Оба рефлекса ключуются на **вопрос, не на сессию**: прокачанный репо убивает лишь маршрутизацию (AGENTS.md называет граф сессии) — остальное срабатывает из любой сессии.

Семантическое гнездо памяти, которую скилл несёт: санскр. **smṛti** (स्मृति) — память *и* памятование, у Патанджали — вритти ума, в абхидхарме — фактор удержания объекта; пали **sati** — присутствие-памятование; 中 **念** niàn — «сейчас» (今) над «сердцем» (心): держание в уме от мгновения к мгновению; греч. **anamnesis** — припоминание как возвращение знания; лат. **memoria**. Две стороны одного: удержание (запись) и возвращение (вспоминание) — и обе суть акты, не хранилище.

## Два рефлекса

| Рефлекс | Срабатывает когда | Ход |
|---|---|---|
| **ВСПОМНИ** (smaraṇa — акт возвращения) | пользователь просит («вспомни», «что ты знаешь…»); задаче нужно держание пользователя (цель деплоя, черта машины, ритм человека, срок); ничто не называет граф в игре; вопрос «что на мне» | §1 — чтение уровня карты или уровня факта; повестка → §4 |
| **ЗАПИШИ** (saṃskāra — отпечаток, формирующий будущее) | факт касается пользователя, пригодится позже и не имеет дома в проектном графе | §1b: в `@<handle>/mind` по скелету — никогда в локальную память харнесса |

Бутстрап (§3) и сверка (§2) — только по явной просьбе.

## Адрес

```
iskron_me(action="whoami")            → handle
iskron_orient(realm="@<handle>/mind") → карта контуров
```

- Адрес — **конвенция этого скилла**, не факт мира. Никогда не сканируй `iskron_realm(action="list")` в поисках «личного графа этого пользователя». *(why: поиск в рантайме — то самое гадание, которое скилл убирает.)*
- `Realm not found: "@<handle>/mind"` — **это ответ**: контура ещё нет → §3. Не откатывайся к листингу графов.
- Handle стабилен: перечитывай раз в сессию, не на каждый вызов.
- Личный контур, уже живущий под **другим слагом**, решается на бутстрапе, один раз: переехать в `mind` — или **стаб на `@<handle>/mind`**: один `key:true`-ориентир с настоящим адресом (холодная сессия платит один лишний orient).

## §1 Вспоминание

Две глубины, оплачиваемые раздельно:

1. **Уровень карты** — какой граф этим владеет, что у меня есть, какой контур: один `iskron_orient(realm="@<handle>/mind")` без линзы. Возвращает: корневые узлы = контуры; `attrs.key=true`-ориентиры = карточки живых графов + правила маршрутизации; ACTIVE BIANHUA = собственные превращения человека. Ответь с карты — или назови граф и передай **entry**. Потолок: 2 вызова.
2. **Уровень факта** — *конкретный* запомненный факт (путь на машине, ритм человека, срок): **сначала поиск, orient пропусти** — `iskron_search(realm="@<handle>/mind", q=<термин>)`, плюс `iskron_semantic_search`, когда память могла быть записана иначе, чем спрошено. Лексический `q` матчится по И и чувствителен к основе: один-два коротких термина **на языке графа** («caddy», «домен») — многословный запрос молча промахнётся мимо карточек, несущих все слова, кроме одного. Прочти бейдж модуса, прежде чем верить попаданию: `atita` — *бывший* факт, `anagata` — запланированный. Глубже — протокол **entry** (orient → search → look) внутри этого графа. Потолок: 3 вызова, дальше отвечай тем, что есть.

Два правила на обеих глубинах: два контура претендуют на вопрос → спроси одной строкой, назвав оба, — никогда не выбирай молча; **промах — это ответ**: «этого в памяти нет» бьёт уверенную выдумку, а промах, который пользователь поправил, — сигнал рефлексу записи (§1b).

## §1b Рефлекс записи

Графовый близнец «стоит запомнить, некуда положить»: о пользователе + пригодится позже + не служит одному проекту → сюда. Формы — в `references/personal-realm.md`: собственные машины пользователя (§7), люди (§2b), датированные факты (§7), уроки (§8), находки, служащие нескольким контурам.

**Классификация: чей это факт?** Границы две, не одна. Инфраструктура, существующая ради **этого проекта**, — его серверы (staging, prod), его деплой-пайплайн, его датированные долги — принадлежит графу проекта, никогда не сюда, сколько бы серверы ни пережили репозиторий. Сюда принадлежит **собственное** пользователя, не служащее одному проекту: его личные машины, его сроки, люди, кросс-проектные уроки. Факт о **другом** контуре → граф того контура (карта его называет). Карточка здесь несёт только черты собственного предмета — процедура деплоя проекта не есть черта машины. *(why: бенчмарки на холодных сессиях — на этой границе агенты ведут серверы проекта в граф проекта, а личные машины в mind; тесты одним вопросом промахиваются ровно там.)*

Трёхходовая маршрутизация, по порядку: факт об **этом** проекте → его граф или AGENTS.md (правила персистентности репо); факт о **другом** контуре → заякорен в графе *того* контура, `posed_to` его стюарду (**inquiry**: якори там, где ориентируется адресат, не там, где стоишь); факт о **пользователе**, которым не владеет ни один проект, → сюда. Два стража на последней ветке: никогда — то, на что отвечает вызов (правило хранения ниже); никогда — вторая копия содержимого проектного графа.

**Маршрутизация работает в обе стороны** — где факт лежит, там его и искать: цель деплоя, черта машины, ритм человека, кросс-проектный урок *читаются* из `@<handle>/mind` посреди работы в репо ровно потому, что туда записаны. И записи всё равно предшествует чтение: найди карточку, прежде чем дописывать.

## §2 Сверка (reconcile)

Консолидация памяти. По просьбе, при новом графе / машине / работе, или когда карта видимо отстала. **Никогда на каденции вспоминания.** *(why: recall по цене reconcile пропускают — и тогда сессия гадает.)*

1. **Наблюдай** — `iskron_realm(action="list")` · `iskron_me(action="kartas")` · `iskron_org(action="list")`.
2. **Продиффь и классифицируй** каждую строку:

   | Вердикт | Ход |
   |---|---|
   | в мире есть, на карте нет | классифицируй: контур + для чего, или подведи под одноразовый класс (§ хранения) |
   | на карте есть, в мире нет | **сначала кристаллизуй, потом отпусти** — спроси, что контур доказал; есть ответ — запиши `grundsatz`/`bildung` с `arose_from` к карточке, *затем* `iskron_update(volitive_mode="visarjana")` / онтика `atita`, с причиной |
   | в обоих | оставь |

   *(why кристаллизовать сначала: архивный граф никто не перечитывает. Отпускание без этого удаляет единственную часть завершённого контура с длинной ценностью.)*

3. **Прошей идентичность** — в каждом живом графе, где человек держит роль: `iskron_update(realm=<R>, node_id=<роль>, user="me", basis_version=<v>)`, либо `user="me"` при создании. Только роли, за которыми человек реально стоит. *(why: связь — утверждение о реальности, и §4 не видит ничего другого.)*
4. **Промети** (§4).
5. **Доложи, что изменилось и что оставил за бортом.** Молчаливая сверка читается как «всё в порядке».

Идемпотентна — повторный прогон трогает только сдвинувшееся.

## §3 Бутстрап

Аудируй каждую заботу против источника и классифицируй **absent / stale / correct** (та же машинерия, что у **iskronify**). Не ветвись по «существует ли граф».

| Забота | Род | Absent → |
|---|---|---|
| какие графы/роли/организации существуют | производное | никогда не записывать |
| для чего каждый живой граф; контуры; что мертво | авторское | спросить пользователя |
| машины, деплои, чекауты | авторское | спросить пользователя |
| правила маршрутизации и одноразовых классов | авторское | предложить, пользователь подтверждает |
| стоячие предпочтения («как со мной действовать») | авторское | глобально инжектируемый файл инструкций каждого харнесса, который человек гоняет, — создай, если нет; один источник, слинкованный между харнесами; никогда не узел здесь |

Затем заполни по `references/personal-realm.md` и прогони §2 один раз — первая карта рождается сверенной.

**Когда память не заводить** (порог, предварительный): **все три** из ≤3 графов, один контур, без организаций → скажи это и остановись. *(why: несверенная карта отвечает быстро и неверно; бутстрап каждому подряд — обряд, не инструмент.)*

## §4 Повестка поперёк всех графов

```
iskron_me(action="kartas")                                  → [(граф, seq роли)]
iskron_search(realm=<R>, q="", posed_to=<seq>,
           volitive_mode="chanda,adhimoksha,upeksha,virodha",
           limit=100)                                       → открытое, по графам
```

Три правила делают промётку честной:

- **Фильтр — часть вызова.** CSV `volitive_mode` держит отвеченные и отпущенные строки (`visarjana`) вовсе вне провода.
- **Два рода закрытых строк его переживают — роняй на чтении:** строки с бейджем заката 🌅 (закрыты своим носителем) и `virodha`-строки любого жанра, кроме risk (отклонённый вопрос закрыт; риск в `virodha` — *жив*, это его активный модус).
- **Читай заголовок «N of M».** За `limit` страница усекается — а усечённая повестка выглядит полной. Листай, пока N = M.

Стояние человека в графе — роль, привязанная через `user`, обычно **主-роль владельца**; агентские роли, которые человек гоняет, привязываются так же. Эта привязка и *есть* кросс-графовая идентичность. Стоячий webhook на привязанной роли (`iskron_admin(action="add_webhook", node_id=<роль>, …)`) превращает pull-промётку в push: граф будит тебя сам.

**Мети и `@<handle>/mind`** — долг, поставленный собственной 主-роли, больше нигде не живёт.

Цена = число **живых** контуров, не доступов. Карты без `user`-связи не появляются вовсе — §2.3 предусловие, не оптимизация.

Никогда не хранится. *(why: сохранённая повестка утверждает вчерашние обязательства с сегодняшней уверенностью.)*

## Правило хранения

**Храни только то, на что не ответит вызов** — минус секреты: они и неотвечаемы, и всё равно никогда не хранятся.

| Никогда не хранить | Хранить (авторское) |
|---|---|
| список графов, доступы, роли, членство в организациях | для чего каждый живой граф; когда маршрутизировать туда |
| какие роли человек держит | контур каждого графа; что мертво или дремлет |
| повестку §4 | правила маршрутизации и именования |
| всё, что тул возвращает по требованию | собственные машины и чекауты пользователя, тул-поверхности по машинам |
| вторую копию содержимого проектного графа | людей каждого контура и что с ними открыто |
| секреты — креды, токены, ключи | датированные факты: сроки, продления, циклы ревью |
| прозу, пересказывающую то, что orient уже показывает | внешнее слово, служащее **больше чем одному** контуру (находка, бенчмарк, диагноз без единственного проекта); уроки, кристаллизованные из закрытых контуров (§2) |

- **Классы, не карточки.** Одноразовые графы (бенчмарк-прогоны, эксперименты) получают **один** grundsatz, именующий паттерн, — никогда карточку каждому. *(why: правило переживает свою популяцию.)*

### Люди и датированные факты

- **Человек — это роль**: та, которую он играет *в твоём контуре*, с её мотивацией. Привяжи: `user=<его sub>`, когда он на платформе (**writing**, Решение 2b); `manifested_as="agantuka"` 客 — когда отвечает на своём времени из-за твоей границы. Открытое с ним — вимарша `posed_to` этой роли, не заметка *о нём*.
- **Дата — attr, не проза**: срок, продление, цикл ревью — `sachverhalt` с меткой времени в `attrs` (**writing**, Решение 4); повторяющийся долг — крия. `attrs.parked_until` и `attrs.wake_condition` несут «не сейчас, разбуди тогда» и чтятся детекторами устаревания — используй их вместо даты в описании.

## Пределы

- **Кросс-графовых стрелок не существует.** Всё, что `@<handle>/mind` говорит о другом графе, — проза и attrs, никогда ребро. Ни распространения, ни `anga` через графы.
- **Не хаб.** Единство §4 — из итерации, не из структуры. Держи граф тонким, чтобы он не притворялся иным.
- **Вспоминание честно ровно настолько, насколько свежа последняя §2.**

## Приёмка

- Вспоминание уровня карты отвечает за ≤2 вызова — или задаёт один вопрос с кандидатами; уровень факта достаёт хранимое за ≤3 вызова, поиск-сначала.
- Промах вспоминания доложен промахом — и предложен записью.
- `Realm not found` прочитан как маршрутизация (→ §3), не как сбой.
- В прокачанном репо вопрос маршрутизации сессии не срабатывает; вспоминание и записи поля пользователя работают и там.
- §2 идемпотентна и докладывает, что уронила.
- После §3 `iskron_me(action="kartas")` возвращает роль для каждого живого графа, где человек держит роль.
- Ничего выводимого в граф не записано.
- На пользователе, которому память не нужна: говорит это и останавливается.

