497d410ea1
Closes third behavioral-debt block from retro #8: CLAUDE.md §5 п.14 (graph-first для codebase-вопросов) was being ignored — controller did 4+ Grep searches today without consulting graphify.
Three changes:
1. tools/enforce-graph-first.mjs (NEW): Stop hook blocking turn-end when Grep+Glob count >= 3 in turn AND no graphify invocation (Skill 'graphifyy' / Bash 'graphifyy' / SlashCommand 'graphify'). Override: 'graph-skip: <reason>' inline OR global override-phrase. 19 vitest tests cover empty toolUses, threshold boundary, graphify detection forms, override variants.
2. tools/enforce-override-vocab.json: added 'graph-first' AND 'chain-recommendation' to suppresses[] of all 7 global override phrases (без скилов / direct ok / срочно / быстрый коммит / recovery / memory dump / ремонт инфраструктуры). This closes a vocab gap that ALSO affected the previously-deployed chain-recommendation hook (a3 from d1d53080) — global overrides did not work for it either until now.
3. .claude/settings.json: registered enforce-graph-first.mjs as 5th Stop hook entry.
Full vitest tools-sweep: 1041/1041 GREEN. Reviewer APPROVE on spec + code quality. Pipe-test verified (empty event → exit 0, no block).
6.6 KiB
6.6 KiB
Brain Status (auto-generated)
Last updated: 2026-05-28T02:37:38.704Z
| Контролёр | Состояние | Детали |
|---|---|---|
| C1 L1-watcher | ✅ | [l1-watcher] OK — 0 drift |
| 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 | ⚠️ | 715 episode(s) this month · Stop-hook + post-commit OK · 20 missed activation(s) — see /brain-retro |
| C6 Chain map sync | ✅ | [chain-map-checker] OK — 16 chains in sync |
Метрики (информационные, не алерты)
- Observer evidence: 715 episodes this month, 0 observer_error markers, 158 PII matches before filter
- Legacy v1 episodes (not in factor analysis): 576
- Last /brain-retro: 0 day(s) ago
- Использование узлов: см.
/brain-retro(раз в спринт). missed_activations: 20. Неиспользованные узлы — не алерт, если профильной задачи не было (Pravila §16.4 v1.36; capability-readiness; см. memoryfeedback_brain_unused_tools_not_problem— outside-repo memory store).
Метрики дисциплины
Baseline дисциплины роутера (этап 2 router discipline overhaul, spec 2026-05-23). Цель — увидеть «точку До» перед enforcement-хуком этапа 3.
| Тип задачи | Эпизодов | % с триггер-матчем | % через скил |
|---|---|---|---|
| analysis | 28 | 32.1% | 14.3% |
| bugfix | 20 | 20.0% | 25.0% |
| planning | 17 | 17.6% | 17.6% |
| feature | 16 | 12.5% | 0.0% |
| cleanup | 7 | 0.0% | 0.0% |
| refactor | 1 | 0.0% | 0.0% |
Router step distribution: 1: 303, 2: 265, 3: 75, 5: 64
Boundaries applied (ADR / границы): 88 of 707 эпизодов (12.4%).
Активные многоэтапные проекты
- Router discipline overhaul (spec)
- Этап 1 (машиночитаемый реестр) ✅ закрыт 2026-05-23 —
docs/registry/nodes.yaml(83 узла + 16 chains L1-L16),tools/registry-load.mjs+tools/registry-render.mjs(16 тестов), auto-render Tooling §4.0 + routing-off-phase, lefthook job 17 (warn-only). - Этап 2 (измерения + классификатор-парсер) ✅ закрыт 2026-05-24 + влит в main 2026-05-24 — discipline-metrics (3 среза), brain-retro-analyzer переключён на реестр, STATUS.md блок «Метрики дисциплины», baseline snapshot
docs/observer/baselines/2026-05-24-pre-enforcement.md. Plan:docs/superpowers/plans/2026-05-24-router-overhaul-stage-2-measurements.md. - Этап 3 (принуждение — хук на routing) — Phase A+B (классификатор + 3 хука: router-prehook/tool-gate/stop-gate в
.claude/settings.json) ✅ + влит в main 2026-05-24. Гейт работает в режимеwarn-only(только stderr-предупреждения, никакой блокировки). Bug-fixbec69aa5:deriveRouterStepвtools/discipline-metrics.mjs— шаг роутера теперь выводится из наблюдаемых признаков (был захардкоженной константой 1). Follow-up 3 fixes 2026-05-24 (после ANTHROPIC_API_KEY + рестарта CC выявлены при инспекции state): (a) UTF-8 stdin helpertools/router-stdin-helper.mjsчерезStringDecoder+ подключение к 3 хукам (русский в state-файл и Anthropic API без mojibake); (b)tools/observer-state-enricher.mjs— pure helper для чтенияrouter-state-<session>.json; (c)parseTranscriptобогащениеprimary_rationale4 полями (recommended_nodeoverride +recommended_chain+chain_progress+chain_completed). 538 tools-тестов GREEN. Plan:docs/superpowers/plans/2026-05-24-router-stage3-three-fixes.md. CHECKPOINT B: дать warn-only накопить реальные наблюдения с починенным сторожем (план говорит «минимум 24 часа»), затем Task 9 — переключение вenforce+ 2 новых метрики (domain-hit-rate / chain-completion). Plan:docs/superpowers/plans/2026-05-24-router-overhaul-stage-3-enforcement.md. - Этап 4 (уборка устаревших правил, deprecation
observer-classification-map.json→ удаление) — не начат.
- Этап 1 (машиночитаемый реестр) ✅ закрыт 2026-05-23 —
Длинные сессии
Ни одной сессии с >50 ходов сегодня (UTC). ✅
Стоимость месяца
| Компонент | Токены (in/out) | USD |
|---|---|---|
| Classifier (Sonnet 4.6) | 7217/72657 | $1.11 |
| Self-assessment (Sonnet 4.6) | 0/0 | $0.00 |
| Reviewer (Opus 4.7 + fallback) | 0/0 | $0.00 |
| Итого | $1.11 |
Аномалии классификатора
Аномалий нет.
Авто-ретроспектива
Last self-retrospect: never ⚠️ (609 эпизодов с последнего запуска, порог 10) Episodes since last run: 609 / threshold: 10
Reviewer: субагент vs fallback
0 эпизодов проверено из 715.
Reviewer findings
Проверено: 339 эпизодов. 51 actionable (wrong_skill + wrong_chain_order).
error_root_cause
| cause | count |
|---|---|
| n/a | 261 |
| wrong_skill | 41 |
| external_failure | 23 |
| wrong_chain_order | 10 |
| wrong_tool | 4 |
Топ alternative_better
| recommended | count |
|---|---|
| #19 | 16 |
| #25 | 15 |
| #34 | 8 |
| #18 | 6 |
| #33 | 3 |
node_quality
| judgment | count |
|---|---|
| disputable | 191 |
| correct | 113 |
| wrong_node | 31 |
| underkill | 2 |
| overkill | 2 |
Использование override-фраз
⚠️ Превышен порог override-использования сегодня (≥5/день)
| Фраза | За всё время | За сегодня |
|---|---|---|
recovery |
286 | 13 ⚠️ |
ремонт инфраструктуры |
185 | 26 ⚠️ |
срочно |
88 | 6 ⚠️ |
без скилов |
60 | 2 |
memory dump |
8 | 0 |
direct ok |
6 | 0 |
быстрый коммит |
3 | 0 |
Алерт-индикаторы
✅ — норма ・ ⚠️ — внимание ・ 🔴 — действие требуется ・ ⚪ — не запускалось