11 KiB
11 KiB
Дизайн: выделение «мозга» в отдельный проект claude-brain
Дата: 2026-06-14
Цель
Разделить смешанный репозиторий Документация на два проекта:
claude-brain(новый,C:\моя\проекты\claude-brain) — дом дальнейшей разработки слоя управления Claude (router / mentor / observer / registry / enforcement-машинерия M1–M7 вtools/).Документация(текущий) — продукт Лидерра (Laravel + Vue CRM) плюс замороженная рабочая копия управляющего слоя, которая продолжает действовать. Дальнейшая работа в текущем репозитории — только над Лидеррой.
Управляющий слой копируется в claude-brain (не вырезается). В текущем репозитории он остаётся как замороженная рабочая копия. Требование — полнота переноса: claude-brain работает автономно, рабочая копия в текущем репозитории не ломается.
Решения
- Модель связи — снимок. Текущий репозиторий держит замороженную рабочую копию управляющего слоя + Лидерру.
claude-brain— дом разработки. Будущие улучшения вносятся вclaude-brainи вручную переносятся в текущий репозиторий по отдельной команде. - git у
claude-brain— чистый старт. Новый репозиторий, первый коммит = текущее состояние управляющего слоя. История остаётся в исходном репозитории (управляющий слой и Лидерра переплетены в общих коммитах — чистое разделение истории невозможно). Удалённый origin подключается позже. - Нормативный квартет — копия.
claude-brainполучает копиюCLAUDE.md/Pravila_raboty_Claude_v1_1.md/Plugin_stack_rules_v1.md/Tooling_v8_3.md/CHANGELOG_claude_md.mdкак есть. В текущем репозитории квартет остаётся как есть. Разбор содержимого на «управление vs продукт» — отдельная будущая задача, не эта. - Тесты управляющего слоя — только в
claude-brain. ~3931 vitest-теста (tools/*.test.mjs) +vitest.config.tools.mjs(сейчас физически вapp/) + скриптыtest:tools/eval:llm/brain:dashboardпереезжают вclaude-brain. В текущем репозиторииtest:toolsубирается из корневогоpackage.json,vitest.config.tools.mjsвыносится изapp/.
Инвентарь — три корзины
Источник: триангуляция нескольких независимых углов (граф проекта; карта импортов tools/; классификация конфигов; перекрёстные ссылки docs/memory; список активных runtime-процессов) + перепроверочный проход.
A. Копируется в claude-brain
tools/*.mjs(~180–190 рабочих модулей) +tools/*.test.mjs(~160–170 тестов) + данныеtools/(observer-chain-map.json,router-test-prompts.json,subagent-output-schema.json,.node-dormancy.json,enforce-override-vocab.json,observer-known-nodes.txt). Кромеtools/liderra-monitoring/.vitest.config.tools.mjs(выносится изapp/в кореньclaude-brain) + скрипты управляющего слоя.docs/observer/,docs/registry/,docs/router-procedure.md,docs/routing-off-phase.md,docs/discovery/, управляющие руководства изdocs/superpowers/.- управляющие specs/plans (правило ключевых слов — {#D3}), управляющие ADR (011, 016 + ADR off-phase-тулинга 003–010, 012–015, 017, 019).
- нормативный квартет (копия).
- память управляющего слоя + агенты
normative-sync,reviewer-agent. - подмножества общих конфигов (lefthook 9 управляющих job'ов,
.mcp.json4 сервера redis/perplexity/exa/firecrawl, управляющая частьpackage.json, копииcspell-words.txt/.gitignore).
B. Остаётся в текущем репозитории (Лидерра + замороженная рабочая копия)
app/,db/,web/,лендинг/,liderra_v8_handoff/,.github/workflows/.- Доки Лидерры:
docs/CRM_*,docs/Открытые_вопросы_*,docs/Analiz_*,docs/security/,docs/deploy/,docs/api/,docs/architecture/,docs/audit/,docs/ml/,docs/process/,docs/backend/,docs/projects/,docs/support/. - specs/plans Лидерры (billing / supplier / lead-region / slepok / audit / project / admin), ADR Лидерры (001, 002, 018).
- агенты
pest-parallel-debugger,rls-reviewer,prod-deploy-validator,tools/liderra-monitoring/. - Замороженная рабочая копия управляющего слоя:
tools/*.mjs(полностью),docs/observer/+docs/registry/(подтвердить, что читаются рабочими процессами), квартет (как есть). Тестыtools/*.test.mjsздесь не нужны. - Память Лидерры.
C. Общее — расщепляется по факту
lefthook.yml/.mcp.json/package.json/.gitignore— каждому репозиторию своё подмножество; 3 общих job'а (gitleaks / markdownlint / cspell) + 2 общих MCP (github / semgrep) — в обоих.cspell-words.txt— неразделим → копия в обоих.- скилы и плагины уровня пользователя (
~/.claude/skills/,~/.claude/plugins/) — общая инфраструктура, не трогаются (вне git-дерева обоих репозиториев)..claude/skills/в репозитории — пусто (.gitkeep).
Правило ключевых слов для specs/plans
- →
claude-brain:router-mentor,router-gate,router-discipline,judge,floor,escape,machine,observer,brain-governance,brain-factor,automation-graph,print-sanity,sealed-plan,safe-baseline,llm-first-router, дизайны off-phase-тулинга. - → остаётся:
billing,supplier,lead-region,slepok,audit,project,admin,deals,csv-reconcile,webhook,migrate,delete,parallel-sessions,controller-offload. - Спорные (
enforce-hard-rules,controller-offload-agents, off-phase-тулинг) — в список ручной классификации перепроверочного прохода.
Последовательность
- Сначала собрать
claude-brain(полная копия управляющего слоя) и верифицировать автономно: ~3931 vitest-теста проходят вclaude-brain, хуки исполняются, gitleaks 0, отсутствуют данные/секреты Лидерры. - Только после автономной верификации
claude-brain— удаление в текущем репозитории. Удаление минимальное: только артефакты разработки управляющего слоя, которые не читаются ни одним рабочим процессом (tools/*.test.mjs, управляющие design-specs/plans, заметки brain-retro,vitest.config.tools.mjsизapp/,test:toolsиз корня). Рабочие входы (tools/*.mjs,docs/observer/,docs/registry/, квартет) — не трогаются. - Перед удалением в текущем репозитории — зафиксировать полный список активных runtime-процессов и то, какие пути они читают, чтобы не удалить нужное. До этой фиксации удаление не начинается.
Крайние случаи и риски
vitest.config.tools.mjsфизически лежит вapp/, хотя на 100% относится к управляющему слою; вынос затрагиваетapp/, но чисто.- Зависимости рантайма
claude-brain: node_modules (js-yaml,ajv,@xenova/transformers,undici,keytar,shell-quote,proper-lockfile,glob,natural), внешний API-прокси, системное хранилище ключей,git,powershell.claude-brainнужен собственныйnpm install(свойpackage.json+ lockfile). - Точный набор путей, читаемых рабочими процессами, фиксируется до фазы удаления (см. {#D4} п.3); фаза копирования этим не блокируется (
claude-brainполучает всё). - Откат: удаление в текущем репозитории идёт в отдельной git-ветке/worktree, до слияния всё восстановимо
git restore.claude-brain— новый каталог, на исходный репозиторий не влияет.
Критерий готовности
claude-brain:npm installпроходит,npx vitest run --config vitest.config.tools.mjs= ~3931 passed, хуки исполняются автономно, gitleaks 0, нет данных Лидерры.- Текущий репозиторий после удаления: рабочая копия управляющего слоя по-прежнему действует, регрессия Лидерры зелёная (Pest / Vitest / build),
git statusчист. - Независимая проверка:
claude-brainполон (ничего несущего не забыто) и рабочая копия в текущем репозитории не сломана.
[
{"id": "vc-tools-data", "kind": "EXTRACTED", "ref": "tools/cost-pricing.mjs", "anchor": "export const PRICING = Object.freeze("}
]