Brainstorm
Skill matvej-melikhov/karpathy-llm-wiki/.claude/skills/brainstorm
Программная реализация паттерна LLM Wiki (А. Карпаты). ВКР СПбГЭТУ "ЛЭТИ" 2026
npx -y skills add matvej-melikhov/karpathy-llm-wiki --skill brainstormAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 18 days oldThe repository was created 18 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Запускает brainstorm-сессию по заданной теме (или bridge-gap паре далёких страниц), модерирует поток тезисов пользователя через продвигающие вопросы и в конце склеивает permanent note (тип `mind`) из реплик пользователя дословно. Один цикл = один источник в `raw/brainstorm/` + одна или больше страница в `wiki/minds/`. Реализация ножки Mind Mapping из гибридного фреймворка организации знаний. Триггеры: /brainstorm, "поразмышляем", "хочу подумать про X", "брейнсторм", "давай развей мысль".
SKILL.md
18.9 KB, ~4.8k tokens by cl100k_base, as published. Nobody here has run it
brainstorm: ассоциативное мышление в permanent notes
Brainstorm — это режим создания узлов из процесса мышления, не выжимки источника.
Главный принцип. Содержание пишет пользователь, агент — модератор: задаёт продвигающие вопросы, ищет связи, склеивает финальный текст из реплик пользователя дословно. Агент не предлагает ассоциации и тезисы по теме — это инверсия Mind Mapping.
Стандарт синтаксиса: wiki-страницы пишутся в Obsidian Flavored Markdown (wikilinks [[...]], properties как YAML frontmatter). Детали — скилл obsidian-markdown.
Команды и флаги
| Команда | Поведение |
|---|---|
/brainstorm [тема] | Explicit seed: пользователь задаёт тему словами или wikilink на существующую страницу |
/brainstorm (без аргументов) | Bridge-gap mode: предложить 3 пары семантически близких страниц без wikilink |
/brainstorm --random | Random seed: случайная страница из wiki/{ideas,entities,domains}/ |
/brainstorm --continue [[mind-name]] | Явное продолжение существующей mind. Аргумент обязателен — без него ошибка |
Триггер на естественном языке (например, «хочу подумать про X») — explicit seed с темой X.
Pre-flight checks
Перед запуском сессии — две короткие проверки. Обе на семантической близости через эмбеддинги, никаких временных эвристик (никаких «давно», «недавно», «сегодня»).
Dedup по seed
Если seed — explicit-тема или wikilink, проверь, нет ли уже mind с близким seed:
python3 bin/embed.py query "<seed text>" -k 5
Если в топ-5 есть wiki/minds/...md с similarity >0.7 — спроси:
Нашёл существующую mind: [[Имя]] (similarity 0.78). Развиваешь старую (Edit), это новый виток мысли (новая mind с supersedes), или нет — это разные темы?
Три ответа:
- Развиваешь старую → переход в continuation flow (
--continueбез явного флага) - Новый виток → создаём новую mind, в frontmatter новой
supersedes: [[Старая]], у старойstatus: deprecated+ callout - Разные темы → продолжаем как обычная новая сессия
Bridge-gap selection (только если seed не задан)
Алгоритм — в references/seed-strategies.md. Резюме:
- Загрузить
wiki/meta/embeddings.json - Найти топ-3 пар страниц с similarity ≥0.6, без wikilink в обе стороны
- Фильтр: хотя бы одна страница из пары должна быть
type: idea(entity-entity или domain-domain пары не предлагаем) - Показать пользователю как нумерованный список, спросить выбор
- Если кандидатов <3 — fallback на random
Setup phase
После выбора seed — одно сообщение агента, в котором:
- Объявить seed и его источник (explicit / bridge / random / continue).
- Озвучить правила игры:
- пиши тезисами ~абзац, не одним словом и не эссе;
- агент не предлагает содержание, только продвигающие вопросы;
- закончим, когда наберётся минимум 2 тезиса, на которые ты сам киваешь;
- закончить раньше можно явной командой («хватит», «всё», «стоп») — тогда сессия запишется только в
raw/brainstorm/, без mind.
- Спросить: «С чего начинаешь?»
Divergence loop
Цикл тезис ↔ probing. Каждая итерация:
- Пользователь даёт тезис (~абзац, 3-7 предложений своими словами).
- Агент задаёт 1-2 продвигающих вопроса. Они диагностические, не содержательные:
- «что в этом неочевидно?»
- «это про тебя или про систему?»
- «что бы ты добавил для себя через год?»
- «какое поведение убрало бы это ощущение?»
- Пользователь развивает / даёт следующий тезис.
Прерывания. Если пользователь начинает писать сводку или абзац-синтез вместо тезиса — мягко вернуть к формату:
Это уже синтез. Что приходит ДО синтеза — какая прямая мысль?
Условие выхода: пользователь сказал «достаточно/хватит/готово» И в копилке ≥2 тезиса. Если тезисов <2 — переход в lazy escape (см. ниже).
Cross-link suggestion
После того как тезисы набраны, агент:
-
Собирает текст всех тезисов в один query-string.
-
Запрашивает семантически близкие существующие страницы:
python3 bin/embed.py query "<concatenated theses>" -k 8 -
Фильтрует результат: исключает meta/wiki-root, оставляет только idea/entity/domain/question/mind.
-
Показывает пользователю топ-5 кандидатов как таблицу:
Страница Близость Почему может резонировать [[X]] 0.78 (краткое наблюдение агента по теме страницы) ... ... ... -
Пользователь отмечает резонирующие. Только подтверждённые попадают в
relatedфинальной mind. Несогласованные отбрасываются и уходят в разделdroppedсессии.
Crystallization
Агент собирает draft-mind:
- Тело страницы: реплики пользователя дословно, склеенные в связный текст. Можно вырезать речевой мусор («думаю», «короче»), исправить опечатки, расставить wikilinks к выбранным cross-link'ам. Своё содержание агент НЕ добавляет. Если в репликах не было ясного тезиса — соответствующий абзац просто не пишем.
- Frontmatter: заполняется по шаблону
_templates/mind.md. Поля:summary: одно предложение ≤120 символов в одинарных кавычках, отжимающее главную мысль.seed: тема сессии (текст explicit-seed, или slug bridge-pair вида «X × Y»).seed_strategy:explicit/bridge/random/continue.created,updated: текущая дата (YYYY-MM-DD).tags: 1-3 тематических тега в block-стиле (regression:tags: [a]inline запрещено).status:draft(всегда для новых mind;stable/deprecated— позже).domain: опционально, если тема явно связана с существующим domain (wikilink наwiki/domains/X.md); иначе пустой список[].related: только подтверждённые cross-link'и; минимум 2 (lint-требование).sources:[[raw/brainstorm/<date>-<slug>]]— обязательно.supersedes:[]для новых,[[Старая]]для пересмотров.
- Имя файла: предложить 1-3 слова из
summary, спросить пользователя «коротко так? или ты сам?». Override — пользователь даёт своё.
Preview / commit gate
Обязательный шаг. Перед записью показать пользователю целиком оба будущих файла:
wiki/minds/<title>.md(frontmatter + тело)raw/brainstorm/<date>-<slug>.md(transcript-сессия — см. ниже)
Спросить: «Коммитим? (да / правки)». На правки — Edit указанных мест, повторный preview. Без согласия пользователя ничего не пишем.
Commit
После согласия — атомарная серия записей:
-
Write wiki/minds/<title>.md— финальная mind по шаблону_templates/mind.md. -
Write raw/brainstorm/<date>-<slug>.md— транскрипт сессии. Frontmatter и формат:--- type: source source_type: brainstorm seed: "..." seed_strategy: explicit created: <ISO datetime> minds_created: - "[[Имя mind]]" pages_updated: [] dropped_branches: <int — сколько cross-link кандидатов отброшено> --- # Brainstorm: <seed> (YYYY-MM-DD) ## Тезисы ### Тезис 1 <реплика пользователя дословно> ### Тезис 2 (после probing'а) <реплика> ... ## Probings 1. <вопрос агента> 2. ... ## Cross-link decisions ✓ [[X]], [[Y]] ✗ [[Z]] (отброшен как «слишком общий») ## Итог → [[Имя mind]] -
Edit wiki/log.md— append сверху:## YYYY-MM-DD — brainstorm: <seed> (N тезисов) - seed: <explicit | bridge | random | continue> «<текст>» - создано: [[Имя mind]] - обновлено: — - источник: [[raw/brainstorm/<date>-<slug>]] -
Write wiki/cache.mdс учётом сессии:## Последнее обновление— строка про эту brainstorm-сессию.## Ключевые факты— если новая mind важна поперёк wiki, добавь буллет, вытесни наименее актуальный.## Недавние изменения— добавь строку сверху.
Формат и бюджет —
CLAUDE.mdраздел «Кэш контекста». -
НЕ запускать
/lintавтоматически. Сессия одиночная — lint имеет смысл после серии. Пользователь может запросить вручную. -
НЕ запускать
bin/embed.py/bin/gen_index.py/bin/gen_dashboards.py— это сделает Stop-хук в.claude/settings.jsonсам.
После записи — короткое подтверждение: «Записал [[Имя mind]] и сессию в raw/brainstorm/. Ничего не запускал — Stop-хук обновит embeddings и index сам».
Continuation flow (--continue или dedup-эвристика)
Develop existing (Edit)
Пользователь хочет дополнить существующую mind:
- Read целевой mind.
- Прогнать divergence loop как обычно (новые тезисы + probings).
- Cross-link suggestion (пересечение уже существующих
relatedНЕ повторять; новые добавлять). - Crystallize — агент склеивает новые абзацы из новых реплик и вставляет их в тело mind (либо в конце, либо в осмысленное место — спросить пользователя).
- Frontmatter: bump
updated, добавить новый source вsources([[raw/brainstorm/<new-date>-<slug>]]), расширитьrelatedподтверждёнными новыми связями. - Commit:
Edit wiki/minds/<title>.md(не Write — точечная правка).Write raw/brainstorm/<new-date>-<slug>.md. В frontmatter использоватьpages_updated: ["[[Имя]]"],minds_created: [].- log/cache — как в обычном flow.
New revision (новая mind с supersedes)
Пользователь хочет пересмотреть мысль:
- Стандартный divergence loop с нуля.
- Crystallize — новая mind. Имя файла:
<base> 2.md(или<base> <YYYY-MM-DD>.md, если первая ревизия уже имела суффикс). - В frontmatter новой:
supersedes: ["[[Старая]]"]. - В старой mind:
status: deprecated;updated: текущая дата;- в начало тела (после H1) добавить callout:
> [!warning] Deprecated > Эта mind пересмотрена — см. [[Имя новой]] (YYYY-MM-DD).
- Commit:
Write wiki/minds/<title> 2.md(новая).Edit wiki/minds/<base>.md(старая, статус + callout).Write raw/brainstorm/<new-date>-<slug>.md. В frontmatter:minds_created: ["[[Имя новой]]"],pages_updated: [].- log/cache.
Lazy escape
Если пользователь явной командой («хватит», «всё», «стоп», «закончили») прерывает сессию до набора 2 тезисов или вообще без тезисов:
- Сессия записывается только в
raw/brainstorm/<date>-<slug>.md(для аналитики потерь и возможного будущего возвращения к теме). - Frontmatter сессии:
minds_created: [],pages_updated: [],dropped_branches: 0(плоские поля, не nested). - mind не создаётся.
- log: запись «brainstorm: <seed> — прерван без mind».
- cache: только обновление
## Последнее обновление(без новой mind в фактах).
Никаких дополнительных вопросов — пользователь сказал «хватит» и сессия закрывается.
Дисциплина токенов
- Сначала прочитай
wiki/cache.md. Если есть релевантный контекст к seed — не углубляйся в ту же тему через/query. bin/embed.py queryдля cross-link suggestion — один вызов на сессию. Не дёргай по каждому тезису.- Не читай больше 3-5 существующих страниц за всю сессию (только то, что пользователь явно подтвердил для cross-link).
- Mind держи короткой: 150-500 слов тела. Длиннее — сигнал, что ты добавляешь что-то от себя.
Чего не делать
- Не предлагай содержание тезисов. Пробинги — диагностические вопросы, не «вот варианты ответа». Если пользователь застрял, задай вопрос про его собственное состояние, не подсказывай ответ.
- Не редактируй existing idea/entity/question/domain. brainstorm пишет ТОЛЬКО
wiki/minds/иraw/brainstorm/. Если в сессии всплыла фактическая правка чужой страницы — это работа/saveили/ingest, не brainstorm. Можно упомянуть пользователю, но не делать. - Не пиши mind без preview-gate. Запись только после явного «коммитим».
- Не вписывай в mind свои абзацы. Crystallization — это редактура реплик пользователя, не написание текста. Если в репликах не сказано — в mind тоже не сказано.
- Не используй временных эвристик («недавно», «давно», «сегодня»). Все эвристики — на семантической близости через эмбеддинги.
- Не запускай
/lintавтоматически. Один brainstorm — слишком мало для full-audit. - Не запускай
embed.py/gen_index.py/gen_dashboards.pyруками — Stop-хук это делает. - Не нарушай минимум 2 related в финальной mind. Если cross-link suggestion дал <2 подтверждённых — попроси пользователя добавить руками или предложи отложить запись (escape без mind).
- Не путай brainstorm с
/save.saveфиксирует уже сформулированную мысль (одношагово).brainstorm— диалоговая сессия с probing'ом для рождения новой формулировки.
What ships with it: 1 file
7.0 KB alongside SKILL.md
references/
- seed-strategies.md7.0 KB