Brainstorming output for resolving 8 sources of ambiguity (К1-К8) when selecting a plugin while working inside brain repo. Approach A chosen (separate docs/brain-plugin-routing.md ~275 lines). Decisions D1-D12 locked. Implementation deferred to writing-plans skill. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
21 KiB
Brain Plugin Routing Rules — Design Spec
Дата: 2026-05-11 Статус: Draft → review заказчика Автор: Claude (под economy mode 0%) Связано:
- docs/brain-v2-phase-0-final.md — Phase 0 финальный отчёт, источник Hybrid-решения skill-creator vs writing-skills
- CLAUDE.md — основная карта brain'а (получит ссылку на этот документ при implementation)
- project-files/docs/Plugin_stack_rules.template.md — PSR для consumer'а (Liderra), не применяется к brain'у
- Memory: project_brain_v2_phase0.md — shortlist 17
§1. Цель и проблема
§1.1. Проблема
В brain repo (c:/моя/проекты/claude-brain/) сейчас активны 6 плагинов (4 brain v1.0 baseline + 2 мета Phase 0). При выборе какой плагин использовать для конкретной задачи в brain'е возникает запутанность. Зафиксированы 8 источников запутанности:
- К1. У brain нет собственных правил выбора плагина. PSR template (916 строк) — правила для consumer'а с Vue/Vuetify/Forest стеком, в brain'е неприменимы. CLAUDE.md brain'а (40 строк) plugin-правил не содержит.
- К2. В
enabledPluginsbrain'а активныfrontend-design+ui-ux-pro-max— UI-плагины, не нужные в brain'е. Skill tool показывает их скилы, отвлекая attention. - К3. Phase 0 install (skill-creator + claude-code-setup) выполнен Path 2 (manual git clone) — нативный workflow
/plugin installсломан, drift между фактическим состоянием и brain'ской source-of-truth. - К4. Overlap'ы между плагинами без правил «какой когда»: skill-creator vs writing-skills, claude-md-improver vs прямой Edit, code-review (community) vs
/reviewvs requesting-code-review, security-guidance vs/security-reviewvs Semgrep, claude-code-setup vs ручной анализ. - К5. 17 плагинов shortlist'а Phase 0 не имеют категоризации «куда ставить» — каждый install ad-hoc.
- К6. Нет механизма live-override / disabled-in-brain.
- К7. Установка одного плагина = 6 артефактов (cache, settings.json, installed_plugins.json, brain plugins-manifest.json, marketplaces.json, settings-fragment.json) — нет atomic-checklist'а, шаги 4-6 при Path 2 пропускаются.
- К8. Категория плагина (meta / UI / process / domain) нигде не маркирована.
§1.2. Цель
Создать docs/brain-plugin-routing.md v1.0 — нормативный документ, который:
- Заменяет ad-hoc решения routing'ом по реестру (К4)
- Категоризирует плагины и определяет где какой ставить (К5, К8)
- Маркирует disabled-in-brain через soft-rule (К2)
- Описывает atomic install checklist (К3, К7)
- Описывает update procedure при добавлении нового плагина (К1, К6)
Размер: ~250 строк, в 4× меньше PSR template.
§1.3. Принципы
- Brain ≠ consumer. Правила brain'а отличаются от PSR template'а consumer'а.
- Один путь поиска. Все вопросы про плагины в brain'е решаются по этому документу.
- Реалистично, без чрезмерности. Нет R0-R15 как в PSR; достаточно: реестр + routing + disabled + categorization + install + update.
§2. Scope
§2.1. В scope
- Создание
docs/brain-plugin-routing.mdv1.0 - Обновление
CLAUDE.mdbrain'а — добавление 5-7 строк ссылки на новый документ - Возможно: новое опциональное поле
targetвplugins-manifest.jsonschema (см. §5) - Возможно: новый раздел в
docs/rejected-plugins.mdдля категорииskip - Возможно: новый файл
docs/consumer-projects.mdдополняется дляconsumer-stack-gatedплагинов (если потребуется)
§2.2. Вне scope
- Не меняем PSR template (project-files/docs/Plugin_stack_rules.template.md) — это template для consumer'а, brain не управляет consumer-правилами через этот документ
- Не меняем CLAUDE.md template (project-files/CLAUDE.md.template) — это для consumer'а
- Не меняем настройки плагинов на user-level (
~/.claude/settings.json) — это runtime, brain копирует через settings-fragment.json - Не пишем правила установки PSR-аналогов для brain'а (Tooling/Pravila для brain'а) — отложено, brain пока не требует
- Не автоматизируем install через скрипт на этом этапе — checklist в документе достаточен; автоматизация — отдельная задача
§3. Архитектура документа
docs/brain-plugin-routing.md будет иметь 7 разделов:
| # | Раздел | Назначение | Размер |
|---|---|---|---|
| 1 | Шапка + Принципы | основа документа, scope, отделение от PSR | ~30 строк |
| 2 | Реестр активных плагинов + Disabled-in-brain | таблица 6 плагинов + soft-rule для FD/UPM | ~40 строк |
| 3 | Routing table | 17 строк task→plugin disambiguation + tie-breakers | ~50 строк |
| 4 | Categorization shortlist 17 | 5 категорий + распределение всех известных плагинов | ~50 строк |
| 5 | Install checklist | 5 подразделов по категориям (meta/consumer-universal/stack-gated/UI/skip) | ~60 строк |
| 6 | Update procedure | когда менять, bump strategy, согласованность | ~25 строк |
| 7 | Финальная формула + Свойства | TL;DR и meta | ~20 строк |
Итого: ~275 строк (target 250 ± 25).
§3.1. Раздел 1 — Шапка + Принципы
Содержит:
- Дата, версия v1.0, scope (только brain repo)
- Связи: CLAUDE.md (ссылка сюда), PSR template (НЕ применяется к brain'у)
- 3 принципа: «Brain ≠ consumer», «Один путь поиска», «Реалистично, без чрезмерности»
§3.2. Раздел 2 — Реестр + Disabled-in-brain
Реестр 2.1 — таблица 6 плагинов:
superpowers→processclaude-md-management→metaskill-creator→metaclaude-code-setup→metafrontend-design→consumer-UIui-ux-pro-max→consumer-UI
Колонки: плагин, marketplace, категория, когда использовать в brain, когда не использовать.
Disabled-in-brain 2.2 — soft-rule:
- FD/UPM остаются
enabledPlugins: trueна user-level - При работе в brain repo (триггер:
pwdначинается сc:/моя/проекты/claude-brain/) — модель самостоятельно игнорирует FD/UPM, не инвокирует их Skill tool'ом - Edge case структурной правки visualization HTML: разрешено «открыть новый чат и явно использовать FD»; маленькие правки — прямой Edit без FD
§3.3. Раздел 3 — Routing table (К4)
Таблица 17 строк × 4 колонки (Задача / Default / Override+Триггер / Почему default). Покрывает:
- Создание custom skill — verifiable output →
skill-creator - Создание custom skill — discipline-enforcing →
superpowers:writing-skills - Создание custom skill — hybrid →
superpowers:brainstorming→ определение типа - Правка CLAUDE.md →
claude-md-management:claude-md-improver(override: тривиал → прямой Edit) - Capture session-learnings →
revise-claude-md - Правка Pravila/PSR/Tooling template'ов → прямой Edit + writing-skills pressure если структурная
- Анализ «что ещё поставить» →
claude-code-setup:claude-automation-recommender - Code review →
superpowers:requesting-code-review(override:/review,/simplifyпо live-команде) - Debug →
superpowers:systematic-debugging(≥3 гипотезы) - Планирование multi-step →
superpowers:writing-plans(после brainstorming) - Закрытие задачи →
superpowers:verification-before-completion - Параллельная работа →
superpowers:dispatching-parallel-agents - Worktree-изоляция →
superpowers:using-git-worktrees - Завершение feature-branch →
superpowers:finishing-a-development-branch - Receive code review →
superpowers:receiving-code-review - TDD на код →
superpowers:test-driven-development - «Запутался — какой брать» → читать этот документ; если нет строки — спросить + добавить через bump
Tie-breakers (3 строки):
- Несколько строк подходят → выбрать более конкретную; равная confidence → спросить
- Economy mode 0% триггер vs default → побеждает economy 0%
- User написал
/skill-nameявно → выполнить именно его (live-override)
§3.4. Раздел 4 — Categorization (К5, К8)
4.1. Категории (5 штук):
meta— для самого brainconsumer-universal— универсально для любого consumer'аconsumer-stack-gated— стек-зависимоеconsumer-UI— UI plugin (legacy + future)skip— не подходит
4.2. Распределение — таблица из 22 строк: 4 legacy brain v1.0 + 17 shortlist Phase 0 + 1 cut (#3, поглощён #10):
| Плагин | # | Категория | Статус |
|---|---|---|---|
superpowers |
brain v1 legacy | process |
installed |
claude-md-management |
brain v1 legacy | meta |
installed |
frontend-design |
brain v1 legacy | consumer-UI |
installed (но disabled-in-brain) |
ui-ux-pro-max |
brain v1 legacy | consumer-UI |
installed (но disabled-in-brain) |
skill-creator |
#4 | meta |
installed Phase 0 |
claude-code-setup |
#8 | meta |
installed Phase 0 |
plugin-dev |
#17 | meta |
shortlist |
hookify |
#18 | meta |
shortlist |
Context7 |
#1 | consumer-universal |
shortlist Phase 1 |
code-review |
#2 | consumer-universal |
shortlist Phase 1 |
security-guidance |
#7 | consumer-universal |
shortlist Phase 1 |
pr-review-toolkit |
#10 | consumer-universal |
shortlist Phase 1 |
telegram |
#12 | consumer-universal |
shortlist Phase 1 |
feature-dev |
#5 | consumer-stack-gated |
shortlist Phase 2 conditional |
figma |
#6 | consumer-stack-gated |
shortlist Phase 2 conditional |
vercel |
#9 | consumer-stack-gated |
shortlist Phase 2 conditional |
supabase |
#11 | consumer-stack-gated |
shortlist Phase 2 conditional |
huggingface-skills |
#13 | consumer-stack-gated |
shortlist Phase 2 conditional |
data-engineering |
#15 | consumer-stack-gated |
shortlist Phase 2 conditional |
atomic-agents |
#14 | skip |
rejected (Python ML mismatch, community) |
pagerduty |
#16 | skip |
rejected (paid enterprise) |
code-simplifier |
#3 | cut (поглощён #10) | excluded |
4.3. Правило установки нового плагина — категоризируй по 4.1 → install по §5 соответствующей подсекции.
§3.5. Раздел 5 — Install checklist (К3, К7)
5 подразделов:
- 5.1.
meta— 10 шагов: marketplace add, plugin install (на этой машинеclaudeCLI не установлен (см. Phase 0 final.md Path 2), поэтому primary =git clone --depth=1 <repo-url> ~/.claude/plugins/cache/<marketplace>/<name>/<version>; preferred-future =claude plugin install <name>@<marketplace>после установки CLI), enable settings.json, manifest entry, brain plugins-manifest, brain marketplaces, brain settings-fragment, обновить routing.md, verify в новой сессии, atomic commit - 5.2.
consumer-universal— 6 шагов: marketplace, brain manifest соtarget: "consumer", не добавлять в brain settings-fragment, обновить routing.md, bump install.sh, commit - 5.3.
consumer-stack-gated— как 5.2 + фиксация вdocs/consumer-projects.mdподходящих стеков - 5.4.
consumer-UI— sub-case 5.2 сtarget: "user-level + consumer", в brain settings-fragment содержится (как сейчас FD/UPM) - 5.5.
skip— запись вdocs/rejected-plugins.mdс причиной
Изменение схемы: plugins-manifest.json получает опциональное поле target (default "user-level" для backwards compat).
§3.6. Раздел 6 — Update procedure
6.1. События триггерящие обновление документа. 6.2. Bump strategy: minor (новая строка), major (смена структуры/принципов). 6.3. Согласованность с другими документами brain'а (manifest/marketplaces/settings-fragment обновляются в том же commit'е). 6.4. Edge case — старая категория не подходит → brainstorming → новая категория → bump v2.0.
§3.7. Раздел 7 — Финальная формула
Задача в brain → routing-table §3 → найди строку → default или override.
Не нашёл → спроси + добавь через bump §6.1.
Установка → §5 по категории.
В сомнениях категории → §4.1 признаки → §6.4 если ни одна не подходит.
В brain repo → FD + UPM игнорируются (§2.2).
Свойства: полнота, соразмерность, самоподдержка, независимость от PSR/CLAUDE.md template'ов.
§4. Decisions log
Зафиксированные решения с источниками:
| # | Решение | Обоснование |
|---|---|---|
| D1 | Отдельный документ docs/brain-plugin-routing.md (Approach A), не expansion CLAUDE.md (Approach C), не port PSR (Approach B) |
brainstorming: средний вес, separable, не разрастает CLAUDE.md, не imitate Liderra |
| D2 | Disabled-in-brain — soft-rule, не physical disable через settings.local.json | пользователь: «игнорирует» |
| D3 | Install checklist — в brain-plugin-routing.md отдельным разделом, не в отдельном installing-a-plugin.md |
пользователь: «а» (вариант a) |
| D4 | 5 категорий: meta / consumer-universal / consumer-stack-gated / consumer-UI / skip | self-discovered при ревью раздела 4 — consumer-UI была в реестре 2.1 но отсутствовала в 4.1 |
| D5 | Новое поле target в plugins-manifest.json — opt-in (default "user-level") |
дефолт: backwards compat с 4 текущими entries |
| D6 | Bump strategy — semver minor/major | дефолт: соответствует PSR (v1.0 → v1.1 minor); calendar-version используется отдельно для .brain-version всего репо |
| D7 | Documemt full coverage без сокращений (~275 строк target) | дефолт: пользователь не попросил сокращать |
| D8 | Override-flag для overlap'а skill-creator vs writing-skills — задача-тип признак (verifiable output vs discipline-enforcing), hybrid → brainstorming | источник: Phase 0 final.md решение |
| D9 | Поле target в plugins-manifest.json — string ENUM: "user-level", "consumer", "user-level+consumer". Default при отсутствии = "user-level" (для backwards compat с 4 текущими entries) |
self-discovered при self-review §3.5 5.4 — consumer-UI требует композитного значения; ENUM проще массива для validation в jq |
| D10 | docs/rejected-plugins.md — отложить создание до 19-го плагина с категорией skip; atomic-agents + pagerduty (Phase 0 rejected) пока упомянуты в §4.2 brain-plugin-routing.md как skip со ссылкой на Phase 0 final.md |
дефолт пользователя «делай сам»; KISS — не плодить пустой документ |
| D11 | .brain-version bump v1.0 → v1.1 при коммите brain-plugin-routing.md v1.0 + CLAUDE.md update (атомарный bump) |
дефолт пользователя «делай сам»; согласовано с CHANGELOG.md как «v1.1 — added brain plugin routing rules» |
| D12 | Тестирование документа v1.0 — review only; pressure-scenarios через superpowers:writing-skills отложены до проявления реальной нестабильности правил при использовании |
дефолт пользователя «делай сам»; новый документ — не код, RED-GREEN-REFACTOR неприменим напрямую; review достаточен для нормативного markdown'а |
§5. Изменения в репозитории
При implementation создаются/правятся:
| Артефакт | Действие | Размер |
|---|---|---|
docs/brain-plugin-routing.md |
CREATE | ~275 строк |
CLAUDE.md (brain root) |
UPDATE | +5-7 строк (ссылка на новый документ + 1-2 строки sumary) |
user-level-files/plugins-manifest.json |
UPDATE | добавить optional target поле в существующие entries (default "user-level" где нет нового маркетплейс'а; "meta" для skill-creator + claude-code-setup которые сейчас отсутствуют в файле) |
user-level-files/settings-fragment.json |
UPDATE | добавить skill-creator + claude-code-setup в enabledPlugins (как сейчас в ~/.claude/settings.json после Phase 0) |
user-level-files/marketplaces.json |
NO CHANGE | claude-plugins-official уже есть (skill-creator/claude-code-setup из того же marketplace) |
docs/rejected-plugins.md |
CREATE (optional) | ~10 строк, для atomic-agents + pagerduty |
docs/superpowers/specs/2026-05-11-brain-plugin-routing-design.md |
CREATE (этот файл) | — |
§6. Открытые вопросы — закрыты дефолтами «делай сам»
- Q1 → D10:
docs/rejected-plugins.mdотложен до 19-гоskipплагина - Q2 → D11:
.brain-versionv1.0 → v1.1 атомарно с этим коммитом - Q3 → D12: review-only тестирование для v1.0; pressure-scenarios отложены
§7. Свойства spec'а
- Полнота: §1 проблема + §2 scope + §3 архитектура документа (7 разделов с под-структурой) + §4 decisions log (8 решений) + §5 changeset + §6 открытые вопросы.
- Внутренняя согласованность: D1-D9 не противоречат, §3 совпадает с обсуждавшимися разделами в brainstorming, §5 changeset покрывает все артефакты в §2 in-scope.
- Без placeholders: проверено self-review (см. ниже).
- Scope чёткий: §2.2 явно перечисляет out-of-scope.
Конец Design Spec.