Files
brain/CLAUDE.md
T

124 lines
19 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## ⛔ ГЛАВНОЕ — прочитать первым делом
1. **Не уверен — спроси, не гадай.** Один вопрос лучше, чем час работы не туда.
2. **Не выдумывай.** Не помнишь — открой файл и проверь, а не «вспоминай по памяти».
3. **«Готово» — только если правда проверил.** Что-то упало — скажи честно, не делай вид, что всё хорошо.
4. **Ничего необратимого без разрешения хозяина:** не коммить, не выкатывай на боевой сайт, не удаляй и не переписывай чужое.
5. **Говори с хозяином простым русским, без программистских слов** — он не программист.
6. **Не закрывай открытые вопросы и не меняй правила** без явного «закрываем» / «меняем».
7. **Упёрся в стену или блокировку — остановись и спроси, не ищи обход.**
8. **делай максимально автономно, с наставником и судьей решай вопросы пока не упрешься, коммит делай сам попросив эскейп и т.д**
9. **опускать стену только в крайнем случае, максимально делаем по правилам**
10. **если наставник или судья тебе дают возражения на план или спеку, с которыми ты не согласен, ты даешь им свои аргументы желательно с доказательствами, а не идешь ко мне жаловаться**
---
# 🧠 `claude-brain` — дом разработки управляющего слоя Claude
> **Снимок-баннер · фаза 5 разделения (ADR-020).** Этот репозиторий (`C:\моя\проекты\claude-brain`) — дом дальнейшей разработки управляющего слоя Claude (router / mentor / observer / registry / enforcement-машинерия `tools/`). Продукта **Лидерра** здесь нет (`app/`/`db/`/`web/` отсутствуют — проверено).
**Статус этого файла.** Канонический источник нормативного квинтета (`CLAUDE.md` + `Pravila` + `Plugin_stack_rules` + `Tooling_v8_3` + `CHANGELOG_claude_md`). Правится здесь; переносится в репозиторий Лидерры `Документация` **односторонне** по явной команде владельца — встречных правок нет (ADR-020; дизайн v5 §D1). **Тело ниже** («техконтекст Лидерры») — унаследованный снимок: разбор содержимого на «управление vs продукт» **отложен** отдельной будущей задачей (дизайн v5 §D1), поэтому тело пока описывает Лидерру и намеренно не переписано.
**Снимок-штамп.** канон @ `claude-brain` · 2026-06-15 · git `3977770` (первый канонический root-commit чистой истории — ADR-020). Несовпадение штампа с копией в `Документация` = видимый сигнал дрейфа; детект — текстовый `diff` двух копий квинтета (дизайн v5 §D1).
**Канал правок этого файла**`claude-md-management` (§5 п.10 ниже), как и для копии в Лидерре.
**Карта разделения.** ADR-020 (`docs/adr/ADR-020-split-control-layer-into-claude-brain.md`) · дизайн `docs/superpowers/specs/2026-06-15-claude-brain-split-design-v5.md` · статус `docs/superpowers/specs/2026-06-15-claude-brain-split-status-handoff.md`.
---
# CLAUDE.md — техконтекст Лидерры
**Назначение:** оперативная карта для Claude Code. Не первоисточник — первоисточники указаны в §0.
**Владелец и режим правок:** все изменения этого файла — **только** через плагин `claude-md-management` (skills `/claude-md-management:claude-md-improver` для audit/targeted-updates и `/claude-md-management:revise-claude-md` для capture session-learnings). Прямые правки запрещены — см. §5 п.11.
> **Ребрендинг 08.05.2026:** «Лидпоток» → **«Лидерра.»** (с точкой). Палитра, лого и шрифты — из handoff Платона (v8 Forest). Применяется только к дизайну/имени/логотипу; функционал, состав страниц и правила — без изменений (источник — ТЗ v8.5/schema v8.5).
---
## 0. Источник истины
Этот файл — **оперативная карта мозга** (claude-brain). Первоисточники — нормативный квинтет:
| Документ | Что это | Версия |
|---|---|---|
| [docs/Pravila_raboty_Claude_v1_1.md](docs/Pravila_raboty_Claude_v1_1.md) | Правила работы Claude | v1.44 (14.06.2026) |
| [docs/Plugin_stack_rules_v1.md](docs/Plugin_stack_rules_v1.md) | Координация плагинов Claude | v3.24 |
| [docs/Tooling_v8_3.md](docs/Tooling_v8_3.md) | Реестр инструментов (Прил. Н) | v2.25 |
| [docs/CHANGELOG_claude_md.md](docs/CHANGELOG_claude_md.md) | Полная история версий этого файла | — |
При противоречии — приоритет у источников выше (см. §1).
---
## 1. Приоритет правил при конфликте
```
0. Pravila §12 — Superpowers hard rule (инвокация skills первой) ← неотменяемо §9
1. docs/Pravila_raboty_Claude_v1_1.md (продуктовые правила, утверждены заказчиком)
2a. CLAUDE.md (общая оперативная карта)
2b. docs/Tooling_v8_3.md Прил. Н (детальный реестр инструментов)
↑ оба operational maps уровня 2; при конфликте между ними — приоритет CLAUDE.md
3. docs/Plugin_stack_rules_v1.md (координация Superpowers + Frontend Design — gate, фазы, разделения)
4. .claude/settings.json (хуки, permissions — исполняется средой)
5. memory/*.md (динамическая память между сессиями)
6. Прочие плагины (claude-md-management, ui-ux-pro-max и т.п.) — поведенческие подсказки
```
При любом противоречии — выбирается верхний уровень. **§12 и §14 правил Claude — два explicit hard-правила в Pravila; §9 «Отступления» к ним не применяется** (см. Pravila §12.4 и §14.5). Дополнительно §13.9 и §13.10 Pravila — **transitive hard-rule** через hard-link на нарушения PSR_v1 R10/R14 (см. Pravila §13.6 tier-таблицу). Plugin_stack_rules_v1 (уровень 3) — координирующий слой между двумя плагинами Claude; ниже Pravila/CLAUDE.md/Tooling, выше settings.json. **Tooling Прил. Н** (уровень 2b, добавлен в v1.85) — детальный реестр инструментов; alongside CLAUDE.md (оба operational maps), но при прямом конфликте между ними побеждает CLAUDE.md как корневая карта Claude Code.
**Hard-rules вне §9 «Отступления»** (Pravila): §12 (Superpowers — инвокация skill ПЕРВОЙ), §14 (Ruflo Queen routing — триггер queen/королева), **§15** (параллельные сессии — 15.1 субагенты+git Sonnet/Opus only, 15.2 нормативка+pre-flight sync с 8-позиционным списком, 15.3 cross-refs). Эти три параграфа Pravila — explicit override-floor под §9; transitive hard-rule через §13 — координация Plugin_stack_rules_v1.
**Scope этой цепочки (v1.85+):** общая 7-уровневая **файловая/слоевая** иерархия (уровень 2 разделён на 2a CLAUDE.md + 2b Tooling — оба operational maps). Не дублирует:
- **Pravila §0** — внутрипараграфный приоритет внутри Pravila (§1–§13).
- **PSR_v1 R0.1** — scope головенства stack'а внутри уровней 4–6 этой цепочки.
- **Tooling §7** — синхронная копия этой цепочки для Tooling-читателей.
---
## 5. Что НЕ делать
1. **Не подключать Boost к production DB.** `.env.production` не должен попадать в локальный Boost-конфиг.
2. **Не использовать Inertia / Livewire / Tailwind / Filament / Flux UI / Nova / Folio / Volt / Wayfinder guidelines** Boost'ау нас Vue + Vuetify.
3. **Не запускать a11y через Lighthouse** — единственный источник истины Pa11y.
4. **Не помещать ПДн / токены / API-ключи в коммиты.** Правило §5.2 правил Claude. Защита — gitleaks в pre-commit.
5. **Расширенный пул UI-инструментов — координируется через [PSR_v1](docs/Plugin_stack_rules_v1.md) v2.0+.** Кратко: paired-stack ядро (**Superpowers** = процесс / **Frontend Design** = решатель UI), плюс два инструмента **в роли материала, не решателя**: UPM (резерв-библиотека, R10.1/R11.5/R14.3) и 21st Magic MCP (генератор шаблонов, R10.1/R14.4). Все четыре проходят **R6.0 фильтр стека** (срезать React/Tailwind/shadcn/JSX → Vue 3 + Vuetify 3) и **R6.1 hard-override Forest** (палитра/шрифты/иконки/aesthetic — Brandbook, не плагины). UPM и 21st **не параллельно** с FD и друг с другом (R14.5). **A11y технический** — за Pa11y (п.3); плагины покрывают только a11y-принципы. **Детали — PSR_v1 R6/R10/R11/R14** (не копировать сюда — оперативная карта остаётся компактной).
6. **Не ставить два инструмента на одну задачу** — список 10+ запрещённых дублей в [docs/Tooling_v8_3.md](docs/Tooling_v8_3.md) §9.
7. **Не редактировать этот `CLAUDE.md` без обновления** [docs/Pravila_raboty_Claude_v1_1.md](docs/Pravila_raboty_Claude_v1_1.md) и [docs/Tooling_v8_3.md](docs/Tooling_v8_3.md) — иначе три источника разойдутся (применяется ВНУТРИ flow п.10; пропуск синхронизации — отдельная ошибка даже при работающем плагине).
8. **Не править `db/schema.sql`** без записи в [db/CHANGELOG_schema.md](db/CHANGELOG_schema.md) — правило §4.2 правил Claude.
9. **Не закрывать открытые вопросы** (`Биз-*`, `CTO-*`, `Ю-*`, `Диз-*`, `DO-*`, `OPEN-*`) без явного «закрываем» от заказчика — §2.2 правил Claude.
10. **Не править этот `CLAUDE.md` напрямую** — только через плагин **`claude-md-management`** (`anthropics/claude-plugins-official` marketplace). Два входа:
- `/claude-md-management:claude-md-improver` — audit + targeted updates (структурные изменения, добавление/удаление секций, правки версии в шапке, правки правил §5).
- `/claude-md-management:revise-claude-md` — захват learnings из текущей сессии (новые quirks, команды, паттерны → CLAUDE.md).
Плагин — **единственный** интерфейс ведения файла; он отвечает за содержание и качество (по `references/quality-criteria.md` плагина: commands/architecture/non-obvious patterns/conciseness/currency/actionability). Прямые `Edit`/`Write` по `CLAUDE.md` без вызова skill'а — нарушение, фиксировать в feedback. Внутри flow плагина продолжают действовать пп.7 (синхронизация Pravila + Tooling) и общие §4 правил Claude.
11. **Не пропускать инвокацию Superpowers skill'а** для задачи, попадающей под карту §12.2 правил Claude (TDD, debug, plan, parallel, review, verify, brainstorm, worktree, finishing PR, subagent, writing-skills). Это **hard rule** (§12 правил Claude), §9 «Отступления» к нему **не применяется**. Рационализация типа «эта задача проще, чем требует skill» / «сейчас быстрее без skill'а» — нарушение того же уровня, что игнорирование §5 ПДн. **Список exclusions — Pravila §12.3 (Single Source of Truth, v1.9+)**: при расширении правок здесь — править только Pravila §12.3, не дублировать список текстом сюда. Запрос заказчика «не используй superpowers сейчас» — единственная отмена, и **только** на текущее действие. См. Pravila §12.4.
12. **Резерв.** Был «не устанавливать motion runtime библиотеки без прохождения R15.2 PSR_v1». Снят 12.05.2026 (CLAUDE.md v1.88 + PSR_v1 v2.0). Motion-runtime библиотеки разрешены без обоснования; `framer-motion` остаётся technical block (React-only peerDep). Подробности — [docs/CHANGELOG_claude_md.md](docs/CHANGELOG_claude_md.md) запись v1.88, [docs/Tooling_v8_3.md](docs/Tooling_v8_3.md) §9.2.
13. **Не запрашивать override `ремонт инфраструктуры` для docs-only коммитов/пушей.** С коммита `8266755c` (27.05.2026) хук `enforce-verify-before-push` автоматически пропускает изменения, где **все** staged/unpushed файлы кончаются на `.md` (memory/CLAUDE.md/spec/plan/SKILL.md). Override остаётся для смешанных или кодовых коммитов. Логика — [tools/enforce-hook-helpers.mjs](tools/enforce-hook-helpers.mjs) `isDocsOnlyChange` + `listChangedFiles`. **NB v2.40 (29.05.2026):** «docs-only» считает **строго `.md`-суффикс**. Добавление `cspell-words.txt` / `package.json` / `lefthook.yml` / любого конфиг-файла **рядом со spec.md** делает diff mixed → verify-before-push активируется → нужен свежий vitest-sentinel (формула — memory `feedback_vitest_sentinel_recipe.md`) ИЛИ override-фраза `срочно` / `ремонт инфраструктуры` в user prompt'е. Прецедент: commit `46c43169` (spec v3.6-3.8 sweep) — `cspell-words.txt` сделал mixed-diff, потребовал ~4s vitest для sentinel'а перед retry push.
14. **Перед открытым codebase-вопросом — сначала `/graphify query`, потом Read/Grep/Glob.** Граф проекта (graphify #86, ADR-017) — 6305 узлов / 6753 рёбер / 1009 communities, покрывает docs/ + .claude/ + app/. Junction `graphify-out/` → spike worktree `.claude/worktrees/graphify-spike/graphify-out/`. Применяется к **структурным/cross-layer вопросам**: «где наш скил X используется», «какие концепты связаны с биллингом», «куда тянется зависимость от Y», «что упадёт если изменить Z». **Не применяется** к: (а) известному пути файла → Read напрямую; (б) узкому regex-поиску → Grep напрямую; (в) операциям записи/коммита; (г) если граф устарел значительно (>2 недели без `/graphify --update`) — read-fallback допустим, в ответе обозначить. Workflow: `/graphify query "вопрос"` → анализ выдачи (`source_location` как цитаты) → при необходимости Read/Grep по упомянутым узлам. Граница с context7 (#60) / Boost (#10) / openapi-mcp (#47) / Sentry (#34) — ADR-017 §«Граничные правила (locked)».
15. **Memory writes требуют `coverage: direct:memory-sync` в свежем turn'е.** Hook `enforce-memory-coverage` не принимает chain-каналы (`chain:commit-push-mem-sync` и подобные) — считает stale/absent. Если memory updates запланированы как часть multi-step задачи (commit + push + CLAUDE.md + memory), планировать memory phase **отдельным turn'ом** с явным `coverage: direct:memory-sync`. Альтернатива — override-фраза `memory dump` в user prompt'е, она снимает hook на текущий turn. Прецедент в сессии 29.05.2026 (commit `46c43169` v3.6-3.8 sweep): chain `commit-push-norm-sync-mem-sync` был отклонён хуком на 4-м шаге задачи; finalization доделана только после фразы `memory dump` от заказчика.
---
## 9. История версий
Полная история — [docs/CHANGELOG_claude_md.md](docs/CHANGELOG_claude_md.md). Последняя правка:
- **v2.46 от 14.06.2026** — research-tooling (Perplexity Pack): off-phase #87 perplexity / #88 exa / #89 firecrawl (внешние MCP веб-разведки, READ-ONLY). §0 cross-refs: Pravila v1.44 / PSR_v1 v3.24 / Tooling Прил. Н v2.25.
> **2026-06-15 — компакция + split (ADR-020):** из этого файла убран продуктовый контекст Лидерры (§2 стек / §3 реестр инструментов / §4 команды / §6 фазы / §7 Boost / §8 self-review) и хвосты «наследие» в §0/§9. Полные старые версии — в `CLAUDE.md.backup`. Лидерровский контекст переедет в собственный CLAUDE.md Лидерры.