diff --git a/docs/observer/STATUS.md b/docs/observer/STATUS.md index 99c50ef..fe24221 100644 --- a/docs/observer/STATUS.md +++ b/docs/observer/STATUS.md @@ -1,37 +1,37 @@ # Brain Status (auto-generated) -Last updated: 2026-06-14T12:59:10.262Z +Last updated: 2026-06-19T08:42:43.237Z | Контролёр | Состояние | Детали | |---|---|---| | 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 2 week(s) ago | +| C3 Observer-of-observer | ✅ | [observer-of-observer] OK — last read 3 week(s) ago | | C4 Сигнальный статус | ✅ | This file (self-reference) | -| C5 Observer-coverage | ✅ | 1427 episode(s) this month · Stop-hook + post-commit OK | +| C5 Observer-coverage | ✅ | 2091 episode(s) this month · Stop-hook + post-commit OK | | C6 Chain map sync | ✅ | [chain-map-checker] OK — 17 chains in sync | ## Кто на посту (оборона М1–М6) -⚠️ **ПОСТ ПУСТОЙ** — не зарегистрированы: enforce-floor.mjs, enforce-supreme-gate.mjs, enforce-judge-gate.mjs, enforce-snapshot.mjs, enforce-skill-journaler.mjs, enforce-verify-gate.mjs, enforce-criterion-gate.mjs (оборона НЕ подтверждена; SE-B/Δ8) +⚠️ **ПОСТ ПУСТОЙ** — не зарегистрированы: enforce-judge-gate.mjs (оборона НЕ подтверждена; SE-B/Δ8) Судья М4: **live-block** (inert $0 / shadow / floor-only / live-block) | Машина / страж | Хук | Зарегистрирован | |---|---|---| +| М5 Пол (вето-до-плана / content-floor) | `enforce-floor.mjs` | ✅ | +| М2 Стена (действие = шаг плана) | `enforce-supreme-gate.mjs` | ✅ | | М1/М5 Нормативный страж (КАРТА/ЗАКОН) | `enforce-normative-content-rules.mjs` | ✅ | | М5 Read-exfil страж | `enforce-read-path-deny.mjs` | ✅ | | М5 Egress-exfil страж | `enforce-mcp-classification.mjs` | ✅ | +| М6 Снимок (точка отката) | `enforce-snapshot.mjs` | ✅ | | М6 Escape владельца (законная дверь) | `enforce-floor-escape-consume.mjs` | ✅ | +| М1 Журналер навыков | `enforce-skill-journaler.mjs` | ✅ | +| enforce-verify-gate.mjs | `enforce-verify-gate.mjs` | ✅ | +| enforce-criterion-gate.mjs | `enforce-criterion-gate.mjs` | ✅ | | enforce-coverage-verify.mjs | `enforce-coverage-verify.mjs` | ✅ | | enforce-todowrite-skill-verifier.mjs | `enforce-todowrite-skill-verifier.mjs` | ✅ | -| М5 Пол (вето-до-плана / content-floor) | `enforce-floor.mjs` | 🔴 | -| М2 Стена (действие = шаг плана) | `enforce-supreme-gate.mjs` | 🔴 | | М4 Судья (приёмка + надзор) | `enforce-judge-gate.mjs` | 🔴 | -| М6 Снимок (точка отката) | `enforce-snapshot.mjs` | 🔴 | -| М1 Журналер навыков | `enforce-skill-journaler.mjs` | 🔴 | -| enforce-verify-gate.mjs | `enforce-verify-gate.mjs` | 🔴 | -| enforce-criterion-gate.mjs | `enforce-criterion-gate.mjs` | 🔴 | Недавние escape владельца: 10 · Недавние блоки: 10 @@ -39,37 +39,37 @@ Last updated: 2026-06-14T12:59:10.262Z | Время | Действие | Причина | |---|---|---| -| 2026-06-14T12:03:49.840Z | write:c:/моя/проекты/портал crm/документация/claude.md | escape владельца | -| 2026-06-14T12:02:57.190Z | write:c:/моя/проекты/портал crm/документация/claude.md | escape владельца | -| 2026-06-14T12:01:58.301Z | write:c:/моя/проекты/портал crm/документация/claude.md | escape владельца | -| 2026-06-14T12:01:07.785Z | write:c:/моя/проекты/портал crm/документация/claude.md | escape владельца | -| 2026-06-14T11:59:57.836Z | write:c:/моя/проекты/портал crm/документация/claude.md | escape владельца | -| 2026-06-14T11:59:29.792Z | write:c:/моя/проекты/портал crm/документация/claude.md | escape владельца | -| 2026-06-14T11:58:50.077Z | write:c:/моя/проекты/портал crm/документация/claude.md | escape владельца | -| 2026-06-14T11:54:30.243Z | write:c:/моя/проекты/портал crm/документация/docs/pravila_raboty_claude_v1_1.md | escape владельца | -| 2026-06-14T11:53:47.307Z | write:c:/моя/проекты/портал crm/документация/docs/pravila_raboty_claude_v1_1.md | escape владельца | -| 2026-06-14T11:52:13.541Z | write:c:/моя/проекты/портал crm/документация/docs/plugin_stack_rules_v1.md | escape владельца | +| 2026-06-18T20:19:20.269Z | mcp:mcp__playwright__browser_navigate:{"url":"http://127.0.0.1:8000/register"} | escape владельца | +| 2026-06-18T20:19:20.267Z | write: | escape владельца | +| 2026-06-18T20:10:26.533Z | bash:npm --prefix app run type-check | escape владельца | +| 2026-06-18T20:10:26.532Z | write:c:/моя/проекты/портал crm/документация/app/tests/frontend/auth-store.spec.ts | escape владельца | +| 2026-06-18T20:10:26.529Z | write:c:/моя/проекты/портал crm/документация/app/tests/frontend/auth-api.spec.ts | escape владельца | +| 2026-06-18T20:05:10.985Z | bash:npm --prefix app run lint:vue | escape владельца | +| 2026-06-18T20:05:10.984Z | bash:npm --prefix app run type-check | escape владельца | +| 2026-06-18T20:05:10.982Z | write:c:/моя/проекты/портал crm/документация/app/resources/js/views/auth/confirmemailview.vue | escape владельца | +| 2026-06-18T20:03:13.578Z | write:c:/моя/проекты/claude-brain/docs/pravila_raboty_claude_v1_1.md | escape владельца | +| 2026-06-18T20:01:53.546Z | write:c:/моя/проекты/портал crm/документация/app/resources/js/router/index.ts | escape владельца | **Недавние блоки (детали):** | Время | Действие | Причина | |---|---|---| -| 2026-06-14T12:53:10.599Z | write:c:/users/administrator/.claude/projects/c---------------------crm-------------/5bb74bcc-d76a-4637-acbf-35e3198bc11 | path «C:/Users/Administrator/.claude/projects/c---------------------crm-------------/5bb74bcc-d76a-4637-acbf-35e3198bc11 | -| 2026-06-14T12:46:02.213Z | write:c:/users/administrator/.claude/projects/c---------------------crm-------------/2fd23729-7e1a-4d21-8951-cbe22703ed6 | path «C:/Users/Administrator/.claude/projects/c---------------------crm-------------/2fd23729-7e1a-4d21-8951-cbe22703ed6 | -| 2026-06-14T12:40:25.275Z | write:c:/users/administrator/.claude/projects/c---------------------crm-------------/5bb74bcc-d76a-4637-acbf-35e3198bc11 | path «C:/Users/Administrator/.claude/projects/c---------------------crm-------------/5bb74bcc-d76a-4637-acbf-35e3198bc11 | -| 2026-06-14T12:30:55.502Z | write:c:/users/administrator/.claude/projects/c---------------------crm-------------/5bb74bcc-d76a-4637-acbf-35e3198bc11 | path «C:/Users/Administrator/.claude/projects/c---------------------crm-------------/5bb74bcc-d76a-4637-acbf-35e3198bc11 | -| 2026-06-14T12:20:08.550Z | write:c:/users/administrator/.claude/projects/c---------------------crm-------------/5bb74bcc-d76a-4637-acbf-35e3198bc11 | path «C:/Users/Administrator/.claude/projects/c---------------------crm-------------/5bb74bcc-d76a-4637-acbf-35e3198bc11 | -| 2026-06-14T12:08:25.826Z | write:c:/users/administrator/.claude/projects/c---------------------crm-------------/2fd23729-7e1a-4d21-8951-cbe22703ed6 | path «C:/Users/Administrator/.claude/projects/c---------------------crm-------------/2fd23729-7e1a-4d21-8951-cbe22703ed6 | -| 2026-06-14T12:03:35.964Z | write:c:/users/administrator/.claude/projects/c---------------------crm-------------/5bb74bcc-d76a-4637-acbf-35e3198bc11 | path «C:/Users/Administrator/.claude/projects/c---------------------crm-------------/5bb74bcc-d76a-4637-acbf-35e3198bc11 | -| 2026-06-14T11:43:00.962Z | write:c:/users/administrator/.claude/projects/c---------------------crm-------------/5bb74bcc-d76a-4637-acbf-35e3198bc11 | path «C:/Users/Administrator/.claude/projects/c---------------------crm-------------/5bb74bcc-d76a-4637-acbf-35e3198bc11 | -| 2026-06-14T11:38:56.004Z | write:c:/users/administrator/.claude/projects/c---------------------crm-------------/5bb74bcc-d76a-4637-acbf-35e3198bc11 | path «C:/Users/Administrator/.claude/projects/c---------------------crm-------------/5bb74bcc-d76a-4637-acbf-35e3198bc11 | -| 2026-06-14T11:36:52.643Z | write:c:/users/administrator/.claude/projects/c---------------------crm-------------/5bb74bcc-d76a-4637-acbf-35e3198bc11 | path «C:/Users/Administrator/.claude/projects/c---------------------crm-------------/5bb74bcc-d76a-4637-acbf-35e3198bc11 | +| 2026-06-19T08:41:48.588Z | bash:node --version | действие не в плане (ожидался шаг undefined: Write tools/registry-initial-inputs.test.mjs) | +| 2026-06-19T08:37:39.672Z | write:c:/моя/проекты/claude-brain/docs/superpowers/plans/2026-06-19-router-registry-stage2c-coverage-wiring-plan-v3.md | [судья] замечание (нужно учесть и переписать): — [heavy] delivery=internal при пользовательском результате | +| 2026-06-19T08:35:49.628Z | write:c:/моя/проекты/claude-brain | действие не в плане (ожидался шаг undefined: Bash git commit -F .git/CB_MSG_close.txt) | +| 2026-06-19T08:35:35.899Z | write:c:/users/administrator/.claude/projects/c--------------claude-brain/b04e8f53-1c94-47d9-bb3e-c4be3b232bc5.jsonl | path «C:/Users/Administrator/.claude/projects/c--------------claude-brain/b04e8f53-1c94-47d9-bb3e-c4be3b232bc5.jsonl» pr | +| 2026-06-19T08:35:29.096Z | powershell:$tempPath = $env:TEMP; Get-Content "$tempPath\claude-economy-b04e8f53-1c94-47d9-bb3e-c4be3b232bc5.json" -Erro | действие не в плане (ожидался шаг undefined: Bash git commit -F .git/CB_MSG_close.txt) | +| 2026-06-19T08:35:23.428Z | bash:cat "$TEMP/claude-economy-b04e8f53-1c94-47d9-bb3e-c4be3b232bc5.json" 2>/dev/null \|\| echo "FILE_NOT_FOUND" | действие не в плане (ожидался шаг undefined: Bash git commit -F .git/CB_MSG_close.txt) | +| 2026-06-19T08:35:23.295Z | bash:cat "$TEMP/claude-economy-b04e8f53-1c94-47d9-bb3e-c4be3b232bc5.json" 2>/dev/null \|\| echo "FILE_NOT_FOUND" | floor: опасная по содержанию команда без аварийного выхода — блок (правило 8); FLOOR-ESCAPE: bash:cat "$TEMP/claude-econ | +| 2026-06-19T08:34:52.684Z | write:c:/моя/проекты/claude-brain | действие не в плане (ожидался шаг undefined: Bash git commit -F .git/CB_MSG_close.txt) | +| 2026-06-19T08:34:42.853Z | powershell:$f = "$env:TEMP\claude-economy-b04e8f53-1c94-47d9-bb3e-c4be3b232bc5.json"; if (Test-Path $f) { Get-Content $f | действие не в плане (ожидался шаг undefined: Bash git commit -F .git/CB_MSG_close.txt) | +| 2026-06-19T08:34:40.092Z | bash:ls $TEMP/claude-economy-b04e8f53-1c94-47d9-bb3e-c4be3b232bc5.json 2>/dev/null && cat $TEMP/claude-economy-b04e8f53- | действие не в плане (ожидался шаг undefined: Bash git commit -F .git/CB_MSG_close.txt) | ## Метрики (информационные, не алерты) -- Observer evidence: 1427 episodes this month, 0 observer_error markers, 25 PII matches before filter -- Legacy v1 episodes (not in factor analysis): 1427 -- Last /brain-retro: 18 day(s) ago +- Observer evidence: 2091 episodes this month, 0 observer_error markers, 131 PII matches before filter +- Legacy v1 episodes (not in factor analysis): 2091 +- Last /brain-retro: 23 day(s) ago - Использование узлов: см. `/brain-retro` (раз в спринт). missed_activations: 0. **Неиспользованные узлы — не алерт, если профильной задачи не было** (Pravila §16.4 v1.36; capability-readiness; см. memory `feedback_brain_unused_tools_not_problem` — outside-repo memory store). ## Метрики дисциплины @@ -78,15 +78,16 @@ Baseline дисциплины роутера (этап 2 router discipline overh | Тип задачи | Эпизодов | % с триггер-матчем | % через скил | |---|---|---|---| -| planning | 204 | 4.9% | 17.6% | -| feature | 52 | 5.8% | 3.8% | -| analysis | 42 | 7.1% | 0.0% | -| bugfix | 37 | 10.8% | 18.9% | -| cleanup | 1 | 0.0% | 0.0% | +| planning | 284 | 5.3% | 17.3% | +| feature | 71 | 5.6% | 2.8% | +| analysis | 49 | 6.1% | 2.0% | +| bugfix | 47 | 8.5% | 23.4% | +| cleanup | 2 | 50.0% | 50.0% | +| refactor | 1 | 0.0% | 0.0% | -Router step distribution: 1: 715, 2: 519, 3: 28, 5: 144 +Router step distribution: 1: 1072, 2: 712, 3: 57, 5: 219 -Boundaries applied (ADR / границы): 19 of 1406 эпизодов (1.4%). +Boundaries applied (ADR / границы): 52 of 2060 эпизодов (2.5%). ## Активные многоэтапные проекты @@ -98,12 +99,11 @@ Boundaries applied (ADR / границы): 19 of 1406 эпизодов (1.4%). ## Длинные сессии -⚠️ Сегодня (2026-06-14 UTC) есть сессии с ≥50 ходов — корреляция с падением дисциплины роутинга (retro #5 candidate B). +⚠️ Сегодня (2026-06-19 UTC) есть сессии с ≥50 ходов — корреляция с падением дисциплины роутинга (retro #5 candidate B). | session_id | макс. ход | % regulated | последний эпизод | |---|---|---|---| -| `3256a967` | 61 | 4% | 2026-06-14T10:44:50.507Z | -| `ed2cf787` | 52 | 14% | 2026-06-14T01:25:00.849Z | +| `aca79163` | 80 | 0% | 2026-06-19T04:53:00.418Z | Long sessions correlate with discipline drift. Если % regulated просел в текущей сессии — рассмотри перезапуск. @@ -111,10 +111,10 @@ Long sessions correlate with discipline drift. Если % regulated просел | Компонент | Токены (in/out) | USD | |---|---|---| -| Classifier (Sonnet 4.6) | 66168/243872 | $3.86 | +| Classifier (Sonnet 4.6) | 68479/251178 | $3.97 | | Self-assessment (Sonnet 4.6) | 0/0 | $0.00 | | Reviewer (Opus 4.7 + fallback) | 0/0 | $0.00 | -| **Итого** | | **$3.86** | +| **Итого** | | **$3.97** | ## Аномалии классификатора @@ -127,7 +127,7 @@ Episodes since last run: 542 / threshold: 10 ## Reviewer: субагент vs fallback -0 эпизодов проверено из 1427. +0 эпизодов проверено из 2091. ## Reviewer findings @@ -149,13 +149,7 @@ Episodes since last run: 542 / threshold: 10 ## System Health -Топ-3 процессов с CPU > 1ч: - -| PID | Имя | CPU-время | Возраст | -|---|---|---|---| -| 3532 | MsMpEng | 1.28ч | NaNч | - -⚠️ Проверь, не «осиротевшие» ли это процессы от завершённых Claude-сессий. +Долго работающих процессов нет (порог CPU > 1ч). ## Очередь обучения роутера @@ -163,13 +157,11 @@ Episodes since last run: 542 / threshold: 10 ## Покрытие дверей -⚠️ Есть забытые двери (matcher: (хук НЕ зарегистрирован)). - -Непокрытые мутирующие инструменты: Edit, Write, MultiEdit, NotebookEdit, Bash, Task, Skill +✅ Все двери покрыты верховной стеной М2 (matcher: *). ## Целостность журналов действий -🔴 Битые цепочки (3 из 14): +🔴 Битые цепочки (3 из 91): | session | broken at seq | |---|---| diff --git a/docs/superpowers/router-mentor-wall-GUIDE.md b/docs/superpowers/router-mentor-wall-GUIDE.md index 7db292b..5fcd5f2 100644 --- a/docs/superpowers/router-mentor-wall-GUIDE.md +++ b/docs/superpowers/router-mentor-wall-GUIDE.md @@ -117,6 +117,8 @@ node tools/owner-consent.mjs **Чище — терминал владельца** (минует все гейты): `$env:LEFTHOOK="0"; git commit … ; $env:LEFTHOOK=$null`. Нужен **полный** `LEFTHOOK=0` (PostToolUse `markdownlint --fix` правит `.md` и рвёт git-stash, [settings.json:167](../../.claude/settings.json#L167)). На pre-existing находках pre-push — `LEFTHOOK_EXCLUDE= git push` (не глухой `LEFTHOOK=0` — судья флагует `[heavy]`). +**NB (19.06.2026, починка lefthook, commit `5fb9897`):** 5 джоб `lefthook.yml` (pre-commit gitleaks/markdownlint/cspell; pre-push gitleaks-full-history/lychee) обёрнуты в `test -f <инструмент> || exit 0; <запуск>`. Инструмента нет на диске → джоба **пропускается**, коммит/пуш НЕ срывается → `LEFTHOOK=0` / `LEFTHOOK_EXCLUDE` ради ОТСУТСТВУЮЩИХ инструментов больше **не нужны** (обычный `git commit` и `git push gitea main` проходят; рабочие контролёры adr-judge/cross-ref/observer/registry идут как раньше). Установленный инструмент с реальной находкой по-прежнему **блокирует** (выход через отсутствие файла `|| exit 0`, не подавление находки). `LEFTHOOK_EXCLUDE=` остаётся только для pre-existing-находки УСТАНОВЛЕННОГО инструмента (с согласия владельца). После сплита ADR-020 инструменты не доустановлены → сейчас все 5 пропускаются. + Доступно под стеной: `git status/diff/log/add/commit`. НЕ доступно: `restore/stash/reset/checkout`. ---