docs(brain): observer factor-analysis extension — normative sync

ADR-011 amended: +Decision §5 (observer v2 four-layer), §3 4→5
controllers (+C5), Enforcement +routing-gate + C5 bullets, related
+factor-analysis spec/plan.

Pravila v1.31→v1.32: §16.2 +абзац «Схема эпизода v2», §16.3 4→5
контролёров (+C5 row), +§16.7 routing-тег-дисциплина (mechanical
Stop-hook decision:block, stop_hook_active loop guard), +§16.8
самодисциплина наблюдателя (observer_error marker, parse_gap event,
C5 lefthook warn-only), §16.6 +cross-refs на factor-analysis spec/plan.

PSR_v1 v3.16→v3.17: R16.1 +предложение про schema v2 поля и
расширенные события; R16.4 +cross-refs.

Tooling Прил. Н v2.17: §0 cross-ref strings 1.31/3.16 → 1.32/3.17
(no header version bump).

brain-governance spec: related +factor-analysis spec.
observer-factor-analysis-design.md: status draft→accepted.

CLAUDE.md v2.19: §0 Pravila/PSR_v1 cross-refs bumped to v1.32/v3.17
with v2 summary prepended (legacy preserved as «v1.31 наследие» /
«v3.16 наследие»); §3.6 appended observer schema v2 + routing-gate +
C5 + brain-retro analyzer paragraph; §9 +v2.19 entry.

cross-ref-checker: 0 drift in 4 files.

Plan: docs/superpowers/plans/2026-05-19-observer-factor-analysis.md
Spec: docs/superpowers/specs/2026-05-19-observer-factor-analysis-design.md

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Дмитрий
2026-05-19 11:08:55 +03:00
parent d484e60c46
commit f7f37fb4e4
8 changed files with 59 additions and 13 deletions
+6 -2
View File
File diff suppressed because one or more lines are too long
+9 -1
View File
@@ -1,8 +1,10 @@
# Plugin Stack Rules — Superpowers + Frontend Design (v3.16)
# Plugin Stack Rules — Superpowers + Frontend Design (v3.17)
**Дата:** 19.05.2026
**Назначение:** свод правил совместного использования плагинов Claude Code в проекте Лидерра — paired-stack ядро `obra/superpowers` (14 skills) + `anthropics/frontend-design`, плюс расширенный пул UI-инструментов `ui-ux-pro-max` (skill, marketplace `nextlevelbuilder/ui-ux-pro-max-skill`) и `21st.dev Magic MCP` (MCP-сервер `magic`), плюс инфраструктурный `claude-md-management` (skills, marketplace `anthropics/claude-plugins-official`), плюс **debug-runtime MCP** `@sentry/mcp-server` + `@modelcontextprotocol/server-redis` (v2.1+, R10.1 Блок 3). **17 правил R0R16** (R15 off-phase routing введён в v3.14 на освободившийся после v2.0 R15-motion слот; R16 brain evidence loop введён в v3.16).
**v3.17** — observer schema v2 sync (ADR-011 amend): R16.1 +предложение про `schema_version` / `decision_provenance` / `environment` / `task_size` / `prompt_signal` + расширенные события (`hook_fired` / `interrupt` / `retry` / `time_burn` / `parse_gap`) + `observer_error` маркер; R16.4 +cross-ref на factor-analysis spec и plan. R0R15 без изменений. Routing-gate / C5 controller / `/brain-retro` analyzer — нормативно в Pravila §16.7/§16.8 + ADR-011 §5; PSR_v1 фиксирует evidence-сбор (R16), не enforcement. Связано: ADR-011, Pravila v1.32 (§16 amend), spec `docs/superpowers/specs/2026-05-19-observer-factor-analysis-design.md`, plan `docs/superpowers/plans/2026-05-19-observer-factor-analysis.md`.
**v3.16** — Brain evidence loop: новое R16 «Brain evidence loop» (R16.1 observer scope — Stop-хук пишет episodes-YYYY-MM.jsonl, 5 обязательных полей incl. `primary_rationale`; R16.2 plugin stack-conscious events — `routing_decision` / `skill_invoked` с `node_id` при использовании R6/R6.1/R15, факторная матрица 5 осей для `/brain-retro`; R16.3 не override — R0–R15 определяют выбор, R16 только фиксирует историю; R16.4 cross-refs ADR-011 / Pravila §16 / spec+plan+procedure). R0R15 без изменений. Связано: ADR-011 `docs/adr/ADR-011-brain-governance.md`, Pravila §16, spec `docs/superpowers/specs/2026-05-19-brain-governance-design.md`, plan `docs/superpowers/plans/2026-05-19-brain-governance.md`.
**v3.15** — Компакция «мозга» (SYSTEM-аудит 18.05.2026, finding 3 — структурный дрейф счётчиков): R10.1 +note «счётчики и нумерация позиций тулчейна — канон [Tooling Прил. Н §0](Tooling_v8_3.md), anchor "КАНОН СЧЁТЧИКОВ"»; реестр R10.1 ссылается per-row на Tooling #NN, агрегатные числа не дублирует. Содержательных изменений R0–R15: 0. Связано: Tooling Прил.Н v2.16 (§0 +«КАНОН СЧЁТЧИКОВ»), CLAUDE.md v2.17 (§3.3 компакция), Pravila v1.30 (§13.2 пин, §14 dormant-метка); план `docs/superpowers/plans/2026-05-18-brain-compaction-findings-2-3-6-7.md`.
@@ -830,6 +832,8 @@ R15 — обычное правило (не hard-rule). Pravila §9 «Отсту
Observer Stop-хук (`tools/observer-stop-hook.mjs`) пишет evidence в `docs/observer/episodes-YYYY-MM.jsonl` каждую сессию. Поля: `task_id` / `timestamps` / `path_type` / `outcome` / `primary_rationale` + optional `events[]` (per spec v1.1 §5.2.1).
Схема v2 (2026-05-19, ADR-011 amend): эпизод несёт `schema_version`, `decision_provenance` (autonomous / user_directed_method + контрфактуал), `environment` (`economy_level` / `model` / `post_compaction` / `session_turn` / `parallel_session`), `task_size`, `task_ref`, `prompt_signal`; события расширены `hook_fired` / `interrupt` / `retry` / `time_burn` / `parse_gap`. При внутреннем отказе хука — минимальный `observer_error` маркер вместо тихого пропуска. Spec — `docs/superpowers/specs/2026-05-19-observer-factor-analysis-design.md`.
### 16.2. Plugin stack-conscious events
Когда в сессии используется UI-фильтр стека (R6/R6.1) или off-phase узел (R15), observer записывает событие `routing_decision` или `skill_invoked` с `node_id` (ссылка на Tooling Прил. Н §4.NN). Это позволяет `/brain-retro` проагрегировать «какие R6/R15 решения чаще всего применялись» через факторную матрицу (5 осей: triggers_matched / candidates_dropped_because / boundaries_applied / hard_floor.rules / task_classification).
@@ -843,7 +847,9 @@ R16 — evidence-сбор, не правило выбора. R0–R15 продо
- ADR-011 `docs/adr/ADR-011-brain-governance.md`
- Pravila §16 (brain governance hard-rule tier-§13)
- spec: `docs/superpowers/specs/2026-05-19-brain-governance-design.md`
- spec (factor-analysis): `docs/superpowers/specs/2026-05-19-observer-factor-analysis-design.md`
- plan: `docs/superpowers/plans/2026-05-19-brain-governance.md`
- plan (factor-analysis): `docs/superpowers/plans/2026-05-19-observer-factor-analysis.md`
- procedure: `docs/router-procedure.md`
---
@@ -880,6 +886,8 @@ R16 — evidence-сбор, не правило выбора. R0–R15 продо
## История версий
- **v3.17 (2026-05-19)** — observer schema v2 sync (ADR-011 amend): R16.1 +предложение про `schema_version` / `decision_provenance` / `environment` / `task_size` / `prompt_signal` + расширенные события (`hook_fired` / `interrupt` / `retry` / `time_burn` / `parse_gap`) + `observer_error` маркер; R16.4 +cross-ref на factor-analysis spec и plan. R0R15 без изменений. Routing-gate / C5 controller / `/brain-retro` analyzer — нормативно в Pravila §16.7/§16.8 + ADR-011 §5; PSR_v1 фиксирует evidence-сбор (R16), не enforcement. Связано: ADR-011, Pravila v1.32 (§16 amend), CLAUDE.md v2.19, spec `docs/superpowers/specs/2026-05-19-observer-factor-analysis-design.md`, plan `docs/superpowers/plans/2026-05-19-observer-factor-analysis.md`. Per spec v1.0 §7.
- **v3.16 (2026-05-19)** — Brain evidence loop: новое R16 «Brain evidence loop» (R16.1 observer scope — Stop-хук `tools/observer-stop-hook.mjs` пишет `docs/observer/episodes-YYYY-MM.jsonl`, 5 обязательных полей: `task_id` / `timestamps` / `path_type` / `outcome` / `primary_rationale` + optional `events[]` per spec v1.1 §5.2.1; R16.2 plugin stack-conscious events — при использовании R6/R6.1 или R15 off-phase observer пишет `routing_decision` / `skill_invoked` с `node_id`, факторная матрица 5 осей для `/brain-retro`: triggers_matched / candidates_dropped_because / boundaries_applied / hard_floor.rules / task_classification; R16.3 не override — R0–R15 определяют выбор узлов, R16 только фиксирует историю; R16.4 cross-refs). R0R15 без изменений. Связано: ADR-011 `docs/adr/ADR-011-brain-governance.md`, Pravila §16, spec `docs/superpowers/specs/2026-05-19-brain-governance-design.md`, plan `docs/superpowers/plans/2026-05-19-brain-governance.md`, procedure `docs/router-procedure.md`. Per spec v1.1 §5.2.1 amendment.
- **v3.14 (2026-05-18)** — Off-phase routing: новое R15 «Off-phase routing» (R15.1 off-phase узлы вне UI-фильтров R6.0/R6.1/R14 — codifies существующую практику; R15.2 routing-таблица в `docs/routing-off-phase.md` v1.0+ как single home; R15.3 приоритет специфичности + ADR-границы (DI1-DI6 / OPS1-OPS5 / UI1-UI3 / TB1) при коллизии; R15.4 Pravila §12/§14/§15 перевешивают R15; R15.5 live-override заказчика; R15.6 гранулярные категории; R15.7 обычное правило, не hard-rule). Финальная формула расширена шагом «→ Правило 15 (routing-off-phase.md + ADR-границы) для off-phase». Свойства свода — добавлено R15 в полноту и непротиворечивость. UI-аппарат R0-R14 — без изменений. Слот R15 был свободен после удаления motion-системы в v2.0; теперь занят off-phase routing. Связано: `docs/routing-off-phase.md` v1.0 (новый файл, 30 off-phase узлов + 12 канонических связок Rec4), Pravila v1.29 / Tooling v2.15 / CLAUDE.md v2.16 (pending sync). Snapshot — `docs/discovery/2026-05-18-system-audit-brain.md` Rec5. Через manual Edit. **In-place 18.05 вечер (аудит дисциплины R15):** R15.1 +абзац «R15 — пост-R1 слой» (off-phase routing срабатывает после классификации R1, как выбор инструмента внутри ветки, не отдельная шестая ветка R1 — M2-находка аудита). Содержательных изменений R-аппарата 0; routing-off-phase.md синхронно → v1.1 (note про UI-пул #31/#32 — делегирующие ссылки на R14, не R15-routed; +строка «диагностика конверсии» → process-analysis #53).
+26 -3
View File
@@ -1,10 +1,12 @@
# Правила работы Claude в проекте «Лидерра»
**Версия:** v1.31 (19.05.2026)
**Версия:** v1.32 (19.05.2026)
**Дата:** 19.05.2026
**Назначение:** настройки проекта (Project instructions) — Claude читает этот файл в каждом чате и следует правилам ниже.
**Статус документа:** ✅ утверждён. Содержимое скопировано в поле "Project instructions" Claude.ai. Файл хранится в архиве как служебный документ.
**Что изменилось в v1.32 относительно v1.31:** observer factor-analysis extension (ADR-011 amend): §16.2 +абзац «Схема эпизода v2» (`schema_version: 2`, `decision_provenance`, `environment`, `task_size`, `task_ref`, `prompt_signal`; `outcome` `unknown` при записи; виды событий расширены `hook_fired`/`interrupt`/`retry`/`time_burn`/`parse_gap`); §16.3 4→5 контролёров (+C5 observer-coverage-checker, warn-only); §16.7 (новое) routing-тег-дисциплина — Stop-хук `decision: block` при навязанном методе без тега, `stop_hook_active` guard против петли; §16.8 (новое) самодисциплина наблюдателя (`observer_error` маркер вместо тихого пропуска, `parse_gap` событие, C5 контролёр); §16.6 +cross-ref на factor-analysis spec. Spec `docs/superpowers/specs/2026-05-19-observer-factor-analysis-design.md`, plan `docs/superpowers/plans/2026-05-19-observer-factor-analysis.md`. Связано: PSR_v1 v3.17, CLAUDE.md v2.19.
**Что изменилось в v1.31 относительно v1.30:** +§16 «Регламент «мозга» (brain governance)» — router-only архитектура (§16.1), observer Stop-event (§16.2), 4 контролёра C1-C4 (§16.3), поведенческое правило «не использован ≠ проблема» (§16.4), явная метка «не override-floor §9» (§16.5), cross-refs (§16.6). Уровень рекомендации §13 — НЕ explicit hard-rule вне §9. ADR-011 enforcement через `adr-judge` lefthook job. Связано: ADR-011, spec `docs/superpowers/specs/2026-05-19-brain-governance-design.md`, plan `docs/superpowers/plans/2026-05-19-brain-governance.md`.
**Что изменилось в v1.29 относительно v1.28:** +§14.9 «Текущий статус: изолирован (18.05.2026, dormant)» — заказчик распорядился изолировать ruflo от активного потока без удаления артефактов (ход Rec2 SYSTEM-аудита `docs/discovery/2026-05-18-system-audit-brain.md`, маршрут «изолируй, не удаляй»). Live-связи ruflo с Claude-потоком отключены: оба `tools/ruflo-*-hook.mjs` сняты из `.claude/settings.json` UserPromptSubmit; `ruflo` MCP-server удалён из `.mcp.json`; PM2 `ruflo-daemon` остановлен + dump.pm2 = `[]`; Windows Task Scheduler `PM2-ruflo-daemon` оставлен (идемпотентен после пустого save). Артефакты сохранены: npm-пакет, файлы хуков `tools/ruflo-*-hook.mjs`, memory `mem_ruflo`, документация (этот §14, Tooling §4.10, CLAUDE.md §3.5). Queen-триггер §14.1 сейчас **dormant** — хук-инжектор не подаёт директиву; промпт с `queen`/`королева` выполняется напрямую. Откат §14 как нормативного текста заказчик не запрашивал — только изоляции рантайма. План реактивации — memory `feedback_ruflo_isolated.md`. Связано: Tooling v2.15. Архитектурных изменений в §§1–13 + §§14.1-14.8: 0.
@@ -952,7 +954,9 @@ git fetch origin && git log HEAD..origin/main --oneline
**Граница**: observer **только пишет**, не правит нормативку. Решения принимаются вручную заказчиком через `/brain-retro` skill.
### 16.3. 4 контролёра
**Схема эпизода v2 (2026-05-19, factor-analysis extension):** эпизод несёт `schema_version: 2` и поля для факторного анализа — `decision_provenance` (кто выбрал узел: автономно или навязанный метод + контрфактуал), `environment` (`economy_level` / `model` / `post_compaction` / `session_turn` / `parallel_session`), `task_size`, `task_ref`, `prompt_signal`; `outcome` при записи — `unknown` (уточняется `/brain-retro` по сентименту следующей реплики). Виды событий расширены: `hook_fired` / `interrupt` / `retry` / `time_burn` / `parse_gap`. При внутреннем отказе хука пишется минимальный маркер `observer_error` вместо тихого пропуска. Spec — `docs/superpowers/specs/2026-05-19-observer-factor-analysis-design.md`.
### 16.3. 5 контролёров
| # | Имя | Что закрывает | Реализация |
|---|---|---|---|
@@ -960,8 +964,9 @@ git fetch origin && git log HEAD..origin/main --oneline
| C2 | Cross-ref consistency | version drift нормативных файлов | lefthook, regex |
| C3 | Observer-of-observer | observer evidence-loop устаревает | counter + lefthook warn, 54-week self-prune |
| C4 | STATUS.md | приборная панель | post-commit regen `docs/observer/STATUS.md` |
| C5 | Observer-coverage-checker | пропуски наблюдателя + целостность регистрации | lefthook warn-only + STATUS.md |
Все 4 — механические, 0 LLM-вызовов в hot path.
Все 5 — механические, 0 LLM-вызовов в hot path.
### 16.4. Поведенческое правило «не использован ≠ проблема»
@@ -979,12 +984,30 @@ ADR-011 enforcement через `adr-judge` lefthook job гарантирует
- ADR-011 `docs/adr/ADR-011-brain-governance.md`
- spec: `docs/superpowers/specs/2026-05-19-brain-governance-design.md`
- spec (factor-analysis): `docs/superpowers/specs/2026-05-19-observer-factor-analysis-design.md`
- plan: `docs/superpowers/plans/2026-05-19-brain-governance.md`
- plan (factor-analysis): `docs/superpowers/plans/2026-05-19-observer-factor-analysis.md`
- procedure: `docs/router-procedure.md`
- routing-table: `docs/routing-off-phase.md`
- evidence: `docs/observer/`
- memory: `feedback_brain_unused_tools_not_problem.md`, `project_brain_governance_design.md`
### 16.7. Routing-тег-дисциплина
Когда заказчик навязал конкретный метод/узел (директива `запусти X` / `используй X` / `через X` / `/команда`), Claude ОБЯЗАН в том же ходе эмитить routing-тег — одну строку-HTML-комментарий:
`<!-- routing: provenance=user_directed_method node=<выбранный> counterfactual=<узел, который Claude выбрал бы автономно> -->`
Enforcement — механический, не поведенческая просьба: `tools/observer-stop-hook.mjs` содержит routing-gate (`routingGateDecision` + `detectMethodDirected`). Детектор видит навязанный метод, тега нет → Stop-хук возвращает `decision: block`, и ход не завершается без тега. Это хук, а не tier-§13-правило — обойти рационализацией нельзя. Гейт срабатывает не более одного раза за ход (`stop_hook_active` guard против петли).
### 16.8. Самодисциплина наблюдателя
Наблюдатель фиксирует каждый Stop без молчаливых пропусков:
- Внутренний отказ хука → строка-маркер `observer_error` в JSONL (не тихий `exit 0` без записи).
- Доля непарсибельных строк транскрипта выше порога → событие `parse_gap`.
- Контролёр **C5 observer-coverage-checker** (lefthook, warn-only) сверяет покрытие (git-активность без эпизодов) и целостность регистрации (Stop-хук в `.claude/settings.json`, `post-commit` установлен); расхождение — флаг в `docs/observer/STATUS.md`.
---
## Что сделано после утверждения
+1 -1
View File
File diff suppressed because one or more lines are too long
+12 -3
View File
@@ -5,6 +5,7 @@ status: Accepted
date: 2026-05-19
related:
- docs/superpowers/specs/2026-05-19-brain-governance-design.md
- docs/superpowers/specs/2026-05-19-observer-factor-analysis-design.md
- docs/discovery/2026-05-18-system-audit-brain.md
- ADR-010 (HK1 hard-rule, hook collision pre-check)
---
@@ -13,7 +14,7 @@ related:
## Status
Accepted (2026-05-19).
Accepted (2026-05-19). **Amended 2026-05-19** — observer factor-analysis extension: episode schema v2, two-sided enforcement (routing-gate + C5 controller). See Decision §5.
## Context
@@ -43,14 +44,15 @@ A passive Stop-event hook appends one JSONL line per session to `docs/observer/e
A `/brain-retro` skill aggregates evidence once per sprint and proposes regulatory candidates; the owner accepts or rejects manually.
### 3. 4 mechanical controllers (first wave)
### 3. 5 mechanical controllers
All 4 are mechanical (regex/diff/JSON math). 0 LLM calls in hot path.
All 5 are mechanical (regex/diff/JSON math). 0 LLM calls in hot path.
- **C1 L1-watcher** — lefthook job + weekly cron. Detects plugins in `settings.json` not formalized in Tooling Прил. Н.
- **C2 Cross-ref consistency** — lefthook job, regex-style (adr-judge analog). Detects version drift between normative files.
- **C3 Observer-of-observer** — counter + lefthook warn. Self-prune through **54 weeks** without reads.
- **C4 STATUS dashboard**`docs/observer/STATUS.md`, regenerated per-commit.
- **C5 Observer-coverage-checker** — lefthook warn-only job. Flags observer coverage gaps (git activity but 0 episodes) and registration-integrity breaks (Stop-hook missing from `settings.json`, `post-commit` not installed). Surfaced in STATUS.md.
### 4. Behavioral rule «unused ≠ problem»
@@ -58,6 +60,10 @@ The capability-readiness strategy is explicit. A node never used on a real task
Exception: deprecated upstream packages or physically broken tools (separate category — `npm audit` / `composer outdated`).
### 5. Observer factor-analysis extension (v2)
The observer episode is extended to `schema_version: 2` so a real factor analysis becomes possible: `decision_provenance` (autonomous vs user-dictated method, with a counterfactual), `environment` factors, `task_size`, `prompt_signal`, and an honest `outcome` of `unknown` at write time. Four layers — schema v2, deterministic capture + a routing-tag, two-sided enforcement (Stop-hook routing-gate + C5 self-discipline controller), `/brain-retro` analysis. The routing-gate makes provenance reliable: when the user dictates a method and the routing-tag is missing, the Stop-hook returns `decision: block`. Spec: `docs/superpowers/specs/2026-05-19-observer-factor-analysis-design.md`.
## Consequences
### Positive
@@ -81,12 +87,15 @@ Exception: deprecated upstream packages or physically broken tools (separate cat
- C1 / C2 / C3 lefthook jobs fail-fast on commit when invariants break.
- C4 STATUS.md regeneration on post-commit (informational; not a gate).
- Observer routing-gate runs inside `observer-stop-hook.mjs` (`decision: block` when a method is dictated without a routing-tag); C5 observer-coverage-checker is a warn-only lefthook job.
- ADR-011 itself is enforced by **adr-judge** (lefthook job 9) — this section's existence is verified per-commit (regex `^## Enforcement$`).
## References
- spec: `docs/superpowers/specs/2026-05-19-brain-governance-design.md`
- spec (extension): `docs/superpowers/specs/2026-05-19-observer-factor-analysis-design.md`
- plan: `docs/superpowers/plans/2026-05-19-brain-governance.md`
- plan (extension): `docs/superpowers/plans/2026-05-19-observer-factor-analysis.md`
- ADR-010 (HK1 pre-check hard-rule)
- Pravila §12 / §14 / §15 (hard-floor for router procedure step 1)
- PSR_v1 R15 (off-phase routing extends to brain governance)
+2 -2
View File
@@ -1,6 +1,6 @@
# Brain Status (auto-generated)
Last updated: 2026-05-19T07:48:08.160Z
Last updated: 2026-05-19T07:55:48.974Z
| Контролёр | Состояние | Детали |
|---|---|---|
@@ -8,7 +8,7 @@ Last updated: 2026-05-19T07:48:08.160Z
| C2 Cross-ref consistency | ✅ | [cross-ref-checker] OK — 0 drift in 4 files |
| C3 Observer-of-observer | ✅ | [observer-of-observer] OK — last read 0 week(s) ago |
| C4 Сигнальный статус | ✅ | This file (self-reference) |
| C5 Observer-coverage | ✅ | 10 episode(s), 951 recent commit(s) · Stop-hook + post-commit OK |
| C5 Observer-coverage | ✅ | 10 episode(s), 952 recent commit(s) · Stop-hook + post-commit OK |
## Метрики (информационные, не алерты)
@@ -6,6 +6,7 @@ status: design (approved by user; v1.1 amendment 2026-05-19 — structured routi
author: Дмитрий (заказчик) + Claude (Opus 4.7) via superpowers:brainstorming
related:
- docs/discovery/2026-05-18-system-audit-brain.md
- docs/superpowers/specs/2026-05-19-observer-factor-analysis-design.md
- memory/project_brain_governance_design.md
- memory/feedback_brain_unused_tools_not_problem.md
- docs/Pravila_raboty_Claude_v1_1.md
@@ -13,6 +14,7 @@ related:
- docs/Tooling_v8_3.md
- docs/routing-off-phase.md
adr-target: ADR-011 (will be written during planning phase)
extension: docs/superpowers/specs/2026-05-19-observer-factor-analysis-design.md (observer factor-analysis, schema v2, 2026-05-19)
---
# Brain governance design — router-only + observer + 4 контролёра
@@ -2,7 +2,7 @@
**Версия:** 1.0
**Дата:** 2026-05-19
**Статус:** draft — на ревью заказчика
**Статус:** accepted — реализуется по плану `docs/superpowers/plans/2026-05-19-observer-factor-analysis.md`
**Связано:** ADR-011 (brain governance), spec `2026-05-19-brain-governance-design.md`, Pravila §16, PSR_v1 R16, `docs/observer/`, `tools/observer-stop-hook.mjs`, `tools/observer-transcript-parser.mjs`
---