About design
design is a skill for designing systems in Искрона by recording decisions, paths, risks, and lifecycle relationships in a graph. It guides projectors through iterative phases from goal analysis to risk mitigation and delivery planning.
Key features
- 01Record design decisions and questions in the graph
- 02Derive paths from goals and weave related phenomena
- 03Analyze risks and plan mitigations
- 04Track lifecycle gaps and system contracts
- 05Map delivery work to transformations
Use cases
- 01Turn an open-ended goal into a system design
- 02Document dependencies and lifecycle boundaries
- 03Assess risks before implementation
- 04Plan staged delivery for an external system
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ iskron-ai/ skills --skill designAfter installing, type/designin Claude Code to confirm it loaded.
Details
From the project READMEПроектирование в Искроне
Граф — устойчивая проекция спеки: решение или риск вне графа не устойчивы — не переживут сессию; поведение, живущее только в графе, не проверено. Внешние источники, публичные границы и рантайм-свидетельства остаются поверхностями истины, против которых проекция проверяется.
Граница маршрутизации
«Продумай / хотим X» → запись в тот же ход. Это просьба проектировать, не только обсудить: прочти существующие феномены и вплети дизайн в них; подлинно новое — anagata+chanda, эпистемика не выше anumita. Запиши решения, путь и риски, вопросы по сути — вимаршами с vimarsha_of и posed_to, каждой стрелке дай sense по writing. Новое превращение — допущением, имя и телос предложи владельцу словами или вимаршей (writing, «Имя и телос»). Согласование не откладывает дизайн в прозу.
Проектирование начинается там, где структурный выбор действительно открыт: конкурирующие пути, жизненный цикл, владение, публичная граница, направление зависимости — или решение, обязанное пережить сессию. Конкретная принятая просьба об имплементации не становится проектной работой оттого, что придётся писать код: реализуй её обычным потоком репозитория; writing — только если работа вскрыла новую устойчивую поправку, зависимость, границу или открытый вопрос, стоящие передачи позднему актору.
Interop: наборы элиситации (например, superpowers brainstorming)
Установлен brainstorming-скилл — запускай его для элиситации; его spec-файл — черновик: через intake и прошей сюда. Сохранение результата — работа памяти, не имплементация: гейты имплементации на неё не распространяются. Дизайн не готов, пока его решения, риски и жизненные циклы не в графе.
Принципы (действуют всегда)
| # | Принцип | Что это значит для тебя |
|---|---|---|
| P1 | Цикл каждого ding замкнут на предметном уровне | Порождение и конец того же уровня; конец — не обязательно уничтожение; процедура — weaving, операция 5. Leaked — зов проверить предмет, не приговор. Никогда не глуши attrs. |
| P2 | Сложная система только вырастает | Оставляй место. Отложенное — anagata, воля по действительному отношению (writing, Решение 3); нужность под сомнением — ещё и вимарша «а нужно ли?» с условием ответа. Глубоко с первого прохода = антипаттерн. |
| P3 | Граф ≠ реальность; граф = натяжение с реальностью | Впуск шабды понижает натяжение. Проектирование повышает — граф описывает то, чего ещё нет. Каждая вимарша метит натяжение. Система развивается переработкой вимарш. |
| P4 | Натяжение — правдивый зов проверить, не приговор | Счётчики и толщина — эвристики. Никогда не глуши. Детектор ложен — фидбэк его стюарду (feedback), а не повод его заглушить. |
Стартовые модусы проектируемого
Проектируемая практика рождается запланированной, не сделанной: anumita/anagata/chanda (устоявшийся план, на который решились, — adhimoksha; отложенное «нужно, не сейчас» — anagata с волей по действительному отношению, не upeksha). Только наблюдаемое уже работающим — pratyakshita/vartamana/upeksha. Штамп «готово» (pramanita/vartamana/upeksha) на спроектированном-но-несуществующем узле лжёт об онтике и эпистемике, и ложь каскадирует через закат, преемственность, kriya-anga и носители. Переход в vartamana — отдельный акт жизни, совершаемый, когда практика реально стартует, — и засвидетельствованный: старт подтверждается наблюдением мира на каноническом носителе, не намерением автора (weaving, «Переходы носителей»). Воля взрослеет по chanda → adhimoksha; никогда не тянись к attrs для срочности или приоритета. Полный канон стартовых троек и закрытия — у скилла writing: сверяйся при каждой записи, не перевыводи здесь.
Волевая крия принадлежит превращению. Крия, записанная из воли (пользователь хочет, чтобы она была или чтобы чего-то не стало), а не из шабды, — часть качественного сдвига системы. Посади её на карту: её ведущие вимарши — anga к bianhua (путь), и сама крия — anga тоже (прибытие). Направление — из её тройки: возведение (anagata→vartamana, chanda/adhimoksha) цепляй ещё в anagata, разрешится при vartamana; депрекация (vartamana→atita, virodha) разрешается в atita; грамматика kriya-anga — writing. Завершённая крия тоже может быть anga: членство записывает назначение, не только движение. Сначала существующий лес (lens="bianhua"), новое превращение — допущением, имя и телос принимает пользователь (writing, «Имя и телос»); не знаешь, куда положить, — спроси.
Четыре фазы проектирования
Входи в любую фазу по зрелости графа. Не водопад — любая фаза может вернуть назад.
Фаза 1: обратное выведение (справа налево)
Канон нити: цель → путь → риски → тезис; поток given_as: sachverhalt → bildung → grundsatz/vollzug. Вытягивание от цели — метод мышления: каждый шаг проверяем, потому что вытянут из цели, а не придуман из воздуха.
ТРИГГЕР: цель есть, пути нет
ДЕЛАЙ:
1. Назови цель как sachverhalt(anagata+chanda). Целевое состояние — владельца: цель
(и позже телос превращения) принимает пользователь, проектировщик её не изобретает
2. iskron_search + iskron_semantic_search — цели ещё нет в графе? (иначе названный
дубликат ловит только semantic)
3. Кто берёт цель? Тот, ради кого она, — крия отдачи: ahara на цель, без utpatti,
актор 主/客. Правый край стоит прежде рекурсии влево; цепь за ним не продолжается
4. От цели: «что это производит?» → сперва граф: решена ли подобная задача, есть ли
подобный компонент или контракт, собирается ли рекомбинацией существующих с
минимальным доделыванием, решается ли интеграцией (iskron_semantic_search по
«до/после», lens="trace" по феномену, контракт холона); нет — создай крию +
ahara-феномен; новое — только недостающее
5. Рекурсия, пока не упрёшься в данность извне — и тогда крия наблюдения:
utpatti без ahara, актор — тот, кто увидел. Край — деяние, не пометка
ВЫХОД: путь крий от входа к цели
ДАЛЬШЕ: → Фаза 2 (прямое ткачество)
Актор: роль Проектирующего. Потребляет: поставленное вопрошание. Производит: построенный путь. (Роль и крия канона методологии; в графе работы актор — твоя карта.)
Фаза 2: прямое ткачество (слева направо)
ТРИГГЕР: путь есть, не все феномены обслужены
ДЕЛАЙ:
1. Пройди путь слева направо
2. Для каждого феномена на пути:
- Есть utpatti? Нет → relay-gap → добавь производящую крию
- Есть ahara? Нет → leaked → конец по weaving, операция 5: потребление, отдача на краю, конец актуальности или обязанности
- Уровень предмета совпадает? Bootstrap создаёт config → Teardown снимает config (тот же уровень)
3. Для каждой крии:
- Ровно один actor? Два → расщепи
- На всех стрелках sense? Нет → напиши
- ahara/utpatti указывают на верные феномены? (после различений может быть нужен reconnect)
- Подобна ли она крии другого делателя? iskron_semantic_search(node_type="kriya",
q=<до/после>); общий переход — зонт-контракт (§«Контракт»)
4. Для каждого феномена: context → контур проставлен? Феномен без контура-дома невидим
контур-скоупной ориентации — распредели ВСЕ
5. iskron_orient(lens="trace", focus=<феномен>) на ключевых → цикл связан?
6. iskron_orient(lens="tensions") → новые проблемы?
ВЫХОД: замеченные натяжения, замкнутые циклы
ДАЛЬШЕ: → Фаза 3 (анализ рисков) или → замыкание ЖЦ, если разорван
Актор: роль Ткача. Потребляет: построенный путь. Производит: замеченные натяжения, замкнутые циклы. (Роль и крия канона методологии; в графе работы актор — твоя карта.)
Фаза 3: анализ рисков + митигирование
3a. Анализ:
ТРИГГЕР: путь проткан, риски не оценены
ДЕЛАЙ: для каждой крии на пути — семь провокационных вопросов:
1. Другой актор? Что, если недоступен?
2. Другой контекст? Окружение сменилось?
3. Повреждённый upadhi? Предусловие испорчено?
4. Несовпадение масштаба? Параллельность/конкурентность?
5. Противник? Сеть падает, диск кончается, процесс виснет?
6. Публичная граница и представление? Точны ли экспорт API, форма конфига/схемы,
протокол, сериализация, совместимость? Меняется и проверяется ли крия, не трогая
соседей, — через какой контракт они её видят (§«Контракт»)? Нет его — риск
7. Состояние и история? Держится ли поведение при изоляции, ретраях, уже
накопленном состоянии, повторном прогоне?
Нашёл угрозу → iskron_add_vimarsha(genre="risk", vimarsha_of=<крия>)
ВЫХОД: риск-вимарши
3b. Митигирование — отдельный процесс, по каждому риску:
ТРИГГЕР: риск-вимарша есть, не отвечена
ДЕЛАЙ:
1. Прочти контекст риска: iskron_look на целевую крию + окрестность
2. Изучи операционное окружение
3. Выбери тип ответа — по порядку, следующий только когда предыдущий не подходит:
a. Правка задетого существующего: митигирующая крия, где срыв ловится в момент хода, и её носитель
(текст скилла в момент хода, отказ записи, проба) — тела, стрелки, модусы (writing, Решение 1);
нет такой крии — новая компенсирующая крия или феномен, вместе с носителем
b. Grundsatz-инвариант — только если нет крии, которую поправить, и только вместе с применяющей
крией (upadhi) и носителем, чьё действие замерено; подсказка в ответе тула — не носитель.
Рождается предложенным (chanda — в силу его вводит владелец), основание — стрелкой:
arose_from к этому риску, derived_from к принципу, из которого следует
c. Сознательное принятие → НЕ твой ход: принятие нежелательного — акт владельца. Подготовь материал
(что принимается, какой ценой, сколько деяний идёт через риск) и адресуй владельцу; upeksha ставит он,
либо ты — записывая его сказанное слово; чьё слово и когда — в reasoning записи, не в теле.
Риск до тех пор стоит в virodha
4. Прошей ответ, iskron_arrow(action="link") addressed_by от вимарши (для a и b; принятие закрывает модус, не стрелка)
ВЫХОД: отвеченные риски
ДАЛЬШЕ: → Фаза 4 или → следующий риск
Фаза 4: импульс доставки
ТРИГГЕР: граф спроектирован, всё в anagata, никто не работает
УСЛОВИЕ: только для графов, проектирующих внешние системы (не методология, не карта пути клиента — CJM)
ДЕЛАЙ:
1. Посади работу на превращение: каждую волевую крию — kriya-anga (§«Волевая крия
принадлежит превращению») к СУЩЕСТВУЮЩЕМУ bianhua сначала (lens="bianhua"); новое —
допущением по writing, «Имя и телос», с предложением владельцу → импульс становится
частью 形, а не рассыпанным списком
2. Ступенчатая доставка (test → staging → full): ступень — суб-превращение, anga в ЕДИНОЕ
превращение доставки, упорядоченное anantara; свои волевые крии ступень собирает через
anga. Итог право-налевого проектирования — одно превращение с потоком ступеней:
владелец читает его как план релиза
3. Работа идёт делом: прежде спроси iskron_case(action="at", node=<превращение>) — не идёт ли
уже; нет — открой дело на узле превращения (или ступени) полем open_room у его записи,
одной строкой замысла (справка двери iskron leading.md)
4. Поставь работу в деле референсами: узлы участка в модусах замысла и способ проверки —
на каком каноническом носителе и какой пробой видно «сделано» (команда и ожидание, не
мнение исполнителя), и отрицательная проба (скилл architect, шаг 5). Адресат — кто может
ответить: 能, стюардящий контур (стрелка `steward`), 主 для стратегического масштаба;
никогда pratibimba-образ. Принято пересказом, исход — словом в деле; порядок — из
anantara и happens-before, не из списка
5. Вимаршей остаётся то, что переживёт работу: риск, вопрос по сути, обязательство перед
будущими делателями — `posed_to` и якорь vimarsha_of там, где адресат ориентируется
(writing): без якоря он её не увидит; двигающая превращение — ещё и anga к нему
(ведущая вимарша). Разовая задача — поручение в деле, не вимарша
6. Семя превращения (genre=hint) — одно на превращение, только важное после сессии
(writing, «hint»)
7. Сверь с открытыми вимаршами и делами контура (iskron_case(action="at", node=<контур>))
8. На свежепринятом превращении: прогон целостности (скилл integrity) — волновой фронт
задетых-но-не-привязанных узлов получает свои вопросы «задето ли?»
ВЫХОД: делатель входит через дело (строка запуска, iskron_case(action="mine")) или orient → ACTIVE BIANHUA → знает, что делать первым
Сами по себе anagata-крии к действию не зовут. Зовут дела и вопрошания: дело — работу, вимарша — вопрос по сути. Превращение (скилл assembly) собирает их в карту, которую читает навигатор, — anga внутрь (волевые крии и ведущие вимарши), anantara между, — а не в плоский список.
Нить и эстафета
| Нить (thread) | Эстафета | |
|---|---|---|
| Связывает | крии через next | феномены через ahara/utpatti |
| Несёт | прашну (иглу-вопрос) на каждой стрелке | sachverhalt (положение дел) между криями |
| О чём | порядок действий | жизненный цикл вещи |
| Тул | иди по next | iskron_orient(lens="trace") на феномене |
Не путай. Цепь sachverhalt'ов — эстафета. Последовательность крий — нить.
Замыкание жизненного цикла
Разорванные циклы, всплывшие при проектировании (lens="trace" разрыв, leaked, relay-gap), чинит скилл weaving, Операция 5: порождение и конец на одном предметном уровне; неустановленный конец — замыслом (anagata, воля по действительному отношению, вопрос), не заглушкой. Не перевыводи процедуру здесь.
given_as — легальность стрелок
Дерево решения given_as и полная матрица стрелок — у скилла writing. В момент проектирования помни ту, что кусает: vollzug/grundsatz применяются, никогда не потребляются — только upadhi; ahara/utpatti к ним = API 422.
Шпаргалка натяжений
| Натяжение | Значение | Починка |
|---|---|---|
| leaked | у феномена utpatti, нет ahara | Назови предмет и охват (weaving, операция 5): конец того же уровня или запланированный (anagata, воля по действительному отношению, вопрос); феномен уходит из графа — крия отдачи (ahara без utpatti, актор 主/客) |
| relay-gap | у феномена ahara, нет utpatti | Добавь производящую крию; феномен приходит извне — крия наблюдения (utpatti без ahara); её феномен — в холоне внешней системы |
| orphan | у феномена вообще нет крия-стрелок | Прошей к крие (ahara/utpatti/upadhi). Не держится — три судьбы, не одна: не нёс различения (случаен, дубль) — удали с причиной; нёс тезис, и он ложен — опровергни и храни; был верен и больше не нужен — отпусти (writing, справочник модусов) |
| no-actor | крия без актора | Вимарша стюарду холона по writing, «Кто действует?»; actor не ставь до ответа |
| lifecycle | несвязные сегменты цикла | Прошей через next или трассируй до разрыва |
| unreachable | upadhi-феномен недостижим по happens-before | Проверь: производитель hb-раньше потребителя? |
| веер (канон, не имя детектора) | много связей одного рода на узле; линза зовёт счётом деяний без объемлющего; счёт стрелок сам по себе не долг | Не «раздели» — назови среднее со своей грубой связью (writing, Решение 5; assembly, шаг 3) |
Контракт — как с этим взаимодействовать
Контракт — обычно крия: вход (ahara), выход (utpatti), контекст (upadhi), делатель. Контракт порождает, потребляет и задействует не только вещи, но и положения дел; эффект — перемена состояния системы — тоже феномен, хотя не вещь. Выход чаще эффект, чем вещь, или то и другое — положение дел «после» (sachverhalt), которое берёт сосед и наблюдает проба, рядом со сделанной вещью, когда она есть; данность прочих феноменов — по предметной области. Подобные реализации с действительным общим переходом — зонтичная крия: её феномены — супертипы, реализации — contains-дети со своей паринамой, их феномены — specifies к супертипам; это веер ступенями (writing, Решение 5). Общего перехода нет — зонта нет: одна крия на разные реализации прячет их собственные ошибки и ограничения. Контракт несёт то, о чём спорят стороны, — отсутствие против пустого, порядок, запасной путь, совместимость; образец с отрицательными случаями — обеим сторонам до работы, проба различает несовместимость, а не совпадение полей, и живой сквозной приёмки не заменяет. Наблюдён контракт или заявлен — эпистемика его крии; расхождение — вимарша; модусов и дел хватает.
Endpoint — частный случай, крия, не текстовое описание: sinn-контейнер («API URL») содержит endpoint-феномены (sachverhalt запроса, attrs method, path); крия «Обслуживание GET /path» — ahara ← endpoint, utpatti → ответ, actor → API-клиент; next: вызывающий → endpoint-крия → рендерер.
Чтения. Крия: iskron_look — СУТЬ до/после, ЭСТАФЕТЫ через её край со стюардами соседей, ПОТОК (вход, выход, контекст, делатель, прежде и далее), КАК — шаги, «внутри уточнённых» — тонкие связи листьев зонта; iskron_orient(focus=<крия>) — соседи по стрелкам, шаги и эстафеты с натяжениями, без СУТИ и вопросов next; lens="trace" на крии — только назад: доступны ли предусловия (available, no_producer, deadlock), вперёд — нет; lens="topology" — сырые contains/context, на зонте — его ветки. Холон: iskron_orient(focus=<холон>) — назначение и стюард, ОГЛАВЛЕНИЕ (деяния верхнего уровня: берёт, отдаёт), ХРЕБЕТ, СОСЕДИ со входом и выходом, ГДЕ РВЁТСЯ — это и есть контракт холона; lens="tensions", verbose=true — категория neighbor: пары с соседом и его стюард; lens="vimarshas" и lens="bianhua" с focus холона — вопросы и превращения охвата (показали 0 или цифры странны — вопросы на продевающихся сквозь него криях: iskron_search(node_type="vimarsha", vimarsha_of=<крия>)); lens="topology" на холоне — сырая сеть, не контракт. Путь между деяниями разных холонов — lens="path". Линзы контракта компонента нет: компонент описывают холоном, только если он граница по природе — свой ритм перемен, свой делатель.
Механика записи → скилл writing
Именование (正名), форма описания (паринама; толщина зовёт проверить единицу продолжения суждения: самостоятельные части выделяются, целое со значимым швом остаётся), модусы, given_as, порядок батча — всё это скилл writing. Вызывай его в каждый момент записи каждой фазы; не перевыводи здесь.
Граница графа
Крии края, leaked и relay-gap на краю, запрет глушить натяжение attrs — weaving, «Граница».