docs(secretary): черта стрижки через закрытие в гайд §11
This commit is contained in:
+32
-28
@@ -1,6 +1,6 @@
|
||||
# Brain Status (auto-generated)
|
||||
|
||||
Last updated: 2026-06-25T09:14:25.680Z
|
||||
Last updated: 2026-06-26T15:28:49.277Z
|
||||
|
||||
| Контролёр | Состояние | Детали |
|
||||
|---|---|---|
|
||||
@@ -8,7 +8,7 @@ Last updated: 2026-06-25T09:14:25.680Z
|
||||
| C2 Cross-ref consistency | ✅ | [cross-ref-checker] OK — 0 drift in 4 files |
|
||||
| C3 Observer-of-observer | ✅ | [observer-of-observer] OK — last read 4 week(s) ago |
|
||||
| C4 Сигнальный статус | ✅ | This file (self-reference) |
|
||||
| C5 Observer-coverage | ✅ | 3044 episode(s) this month · Stop-hook + post-commit OK |
|
||||
| C5 Observer-coverage | ✅ | 3331 episode(s) this month · Stop-hook + post-commit OK |
|
||||
|
||||
## Кто на посту (оборона М1–М6)
|
||||
|
||||
@@ -32,26 +32,28 @@ Last updated: 2026-06-25T09:14:25.680Z
|
||||
| enforce-todowrite-skill-verifier.mjs | `enforce-todowrite-skill-verifier.mjs` | ✅ |
|
||||
| М4 Судья (приёмка + надзор) | `enforce-judge-gate.mjs` | 🔴 |
|
||||
|
||||
Недавние escape владельца: 0 · Недавние блоки: 8
|
||||
Недавние escape владельца: 0 · Недавние блоки: 10
|
||||
|
||||
**Недавние блоки (детали):**
|
||||
|
||||
| Время | Действие | Причина |
|
||||
|---|---|---|
|
||||
| 2026-06-25T07:54:02.996Z | bash:git commit -- "docs/superpowers/specs/2026-06-25-secretary-pipeline-A-design.md" "docs/secretary/протокол-наставник | floor: опасная по содержанию команда без аварийного выхода — блок (правило 8); FLOOR-ESCAPE: bash:git commit -- "docs/su |
|
||||
| 2026-06-25T07:51:49.071Z | bash:git commit -- "docs/superpowers/specs/2026-06-25-secretary-pipeline-A-design.md" "docs/secretary/протокол-наставник | floor: опасная по содержанию команда без аварийного выхода — блок (правило 8); FLOOR-ESCAPE: bash:git commit -- "docs/su |
|
||||
| 2026-06-25T07:48:28.072Z | bash:git commit -- "docs/superpowers/specs/2026-06-25-secretary-pipeline-A-design.md" "docs/secretary/протокол-наставник | [verify-gate] расписка отклонена (stale-fingerprint) — пере-прогоните verify (staged-diff изменился / битая подпись) |
|
||||
| 2026-06-25T07:48:27.839Z | bash:git commit -- "docs/superpowers/specs/2026-06-25-secretary-pipeline-A-design.md" "docs/secretary/протокол-наставник | floor: опасная по содержанию команда без аварийного выхода — блок (правило 8); FLOOR-ESCAPE: bash:git commit -- "docs/su |
|
||||
| 2026-06-25T04:50:29.265Z | bash:node -e "process.stdout.write('KEY='+(!!process.env.SECRETARY_LLM_KEY)+' BASE='+(process.env.SECRETARY_LLM_BASE_URL | floor: опасная по содержанию команда без аварийного выхода — блок (правило 8); FLOOR-ESCAPE: bash:node -e "process.stdou |
|
||||
| 2026-06-25T04:45:11.810Z | bash:grep -n "export function buildStepLine\\|export function splitRawIntoTurns\\|export function realBoundariesFromRaw" | разговорный режим: только думать/спрашивать (реализация — после печати артефакта и плана) |
|
||||
| 2026-06-25T04:45:11.692Z | bash:grep -n "export function buildStepLine\\|export function splitRawIntoTurns\\|export function realBoundariesFromRaw" | floor: опасная по содержанию команда без аварийного выхода — блок (правило 8); FLOOR-ESCAPE: bash:grep -n "export functi |
|
||||
| 2026-06-24T13:03:35.613Z | write:c:/моя/проекты/claude-brain/docs/secretary/протокол-наставника/прогон/находки.md | разговорный режим: только думать/спрашивать (реализация — после печати артефакта и плана) |
|
||||
| 2026-06-26T14:42:17.264Z | bash:ls -la ~/.claude/runtime/secretary-mode-*.json 2>/dev/null; echo "--- содержимое флагов ---"; for f in ~/.claude/ru | floor: опасная по содержанию команда без аварийного выхода — блок (правило 8); FLOOR-ESCAPE: bash:ls -la ~/.claude/runti |
|
||||
| 2026-06-26T12:58:47.855Z | bash:node -e "JSON.parse(require('fs').readFileSync(process.argv[1],'utf8')) && console.log('valid JSON, bytes:', requir | floor: опасная по содержанию команда без аварийного выхода — блок (правило 8); FLOOR-ESCAPE: bash:node -e "JSON.parse(re |
|
||||
| 2026-06-26T12:55:30.873Z | bash:f="C:/Users/Administrator/.claude/projects/c--------------claude-brain/memory/MEMORY.md"; echo "lines: $(wc -l < "$ | floor: опасная по содержанию команда без аварийного выхода — блок (правило 8); FLOOR-ESCAPE: bash:f="C:/Users/Administra |
|
||||
| 2026-06-26T12:47:02.309Z | bash:cd "c:/моя/проекты/claude-brain" && git commit -- tools/secretary-slim.mjs tools/secretary-slim.test.mjs tools/secr | floor: опасная по содержанию команда без аварийного выхода — блок (правило 8); FLOOR-ESCAPE: bash:cd "c:/моя/проекты/cla |
|
||||
| 2026-06-26T12:45:27.198Z | bash:cd "c:/моя/проекты/claude-brain" && git add tools/secretary-slim.mjs tools/secretary-slim.test.mjs && git commit -- | [verify-gate] расписка отклонена (stale-fingerprint) — пере-прогоните verify (staged-diff изменился / битая подпись) |
|
||||
| 2026-06-26T12:45:27.010Z | bash:cd "c:/моя/проекты/claude-brain" && git add tools/secretary-slim.mjs tools/secretary-slim.test.mjs && git commit -- | floor: опасная по содержанию команда без аварийного выхода — блок (правило 8); FLOOR-ESCAPE: bash:cd "c:/моя/проекты/cla |
|
||||
| 2026-06-26T11:00:25.748Z | bash:cd "c:/моя/проекты/claude-brain/docs/secretary/выпонение-задач-секретаря/" && node -e ' const p=JSON.parse(require( | floor: опасная по содержанию команда без аварийного выхода — блок (правило 8); FLOOR-ESCAPE: bash:cd "c:/моя/проекты/cla |
|
||||
| 2026-06-26T10:58:29.564Z | bash:node "C:/Users/ADMINI~1/AppData/Local/Temp/2/claude/c--------------claude-brain/135faced-f5a3-44a1-89ff-1d3a7ae854e | floor: необратимая команда без аварийного выхода — блок (вето-до-плана); FLOOR-ESCAPE: bash:node "C:/Users/ADMINI~1/AppD |
|
||||
| 2026-06-26T10:58:15.367Z | bash:node -e "const fs=require('fs'),p='c:/моя/проекты/claude-brain/docs/secretary/развитие-секретаря';for(const f of fs | floor: опасная по содержанию команда без аварийного выхода — блок (правило 8); FLOOR-ESCAPE: bash:node -e "const fs=requ |
|
||||
| 2026-06-26T09:35:55.128Z | bash:ls -la ~/.claude/runtime/ 2>/dev/null \| grep -i secret; echo "---flags---"; for f in ~/.claude/runtime/*secret*; d | floor: опасная по содержанию команда без аварийного выхода — блок (правило 8); FLOOR-ESCAPE: bash:ls -la ~/.claude/runti |
|
||||
|
||||
## Метрики (информационные, не алерты)
|
||||
|
||||
- Observer evidence: 3044 episodes this month, 0 observer_error markers, 198 PII matches before filter
|
||||
- Legacy v1 episodes (not in factor analysis): 3044
|
||||
- Last /brain-retro: 29 day(s) ago
|
||||
- Observer evidence: 3331 episodes this month, 0 observer_error markers, 258 PII matches before filter
|
||||
- Legacy v1 episodes (not in factor analysis): 3331
|
||||
- Last /brain-retro: 30 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).
|
||||
|
||||
## Метрики дисциплины
|
||||
@@ -60,16 +62,16 @@ Baseline дисциплины роутера (этап 2 router discipline overh
|
||||
|
||||
| Тип задачи | Эпизодов | % с триггер-матчем | % через скил |
|
||||
|---|---|---|---|
|
||||
| planning | 366 | 5.7% | 20.2% |
|
||||
| feature | 111 | 4.5% | 2.7% |
|
||||
| analysis | 68 | 5.9% | 4.4% |
|
||||
| bugfix | 55 | 7.3% | 21.8% |
|
||||
| cleanup | 4 | 25.0% | 25.0% |
|
||||
| planning | 374 | 5.6% | 20.1% |
|
||||
| feature | 119 | 4.2% | 3.4% |
|
||||
| analysis | 73 | 5.5% | 4.1% |
|
||||
| bugfix | 56 | 7.1% | 21.4% |
|
||||
| cleanup | 9 | 11.1% | 11.1% |
|
||||
| refactor | 1 | 0.0% | 0.0% |
|
||||
|
||||
Router step distribution: 1: 1548, 2: 1048, 3: 88, 5: 289
|
||||
Router step distribution: 1: 1697, 2: 1171, 3: 88, 5: 301
|
||||
|
||||
Boundaries applied (ADR / границы): 89 of 2973 эпизодов (3.0%).
|
||||
Boundaries applied (ADR / границы): 89 of 3257 эпизодов (2.7%).
|
||||
|
||||
## Активные многоэтапные проекты
|
||||
|
||||
@@ -81,11 +83,13 @@ Boundaries applied (ADR / границы): 89 of 2973 эпизодов (3.0%).
|
||||
|
||||
## Длинные сессии
|
||||
|
||||
⚠️ Сегодня (2026-06-25 UTC) есть сессии с ≥50 ходов — корреляция с падением дисциплины роутинга (retro #5 candidate B).
|
||||
⚠️ Сегодня (2026-06-26 UTC) есть сессии с ≥50 ходов — корреляция с падением дисциплины роутинга (retro #5 candidate B).
|
||||
|
||||
| session_id | макс. ход | % regulated | последний эпизод |
|
||||
|---|---|---|---|
|
||||
| `e0e992ac` | 87 | 10% | 2026-06-25T09:07:47.215Z |
|
||||
| `ddeb63dd` | 66 | 0% | 2026-06-26T09:27:13.726Z |
|
||||
| `e0e992ac` | 57 | 4% | 2026-06-26T04:12:06.721Z |
|
||||
| `040800af` | 51 | 10% | 2026-06-26T15:25:58.420Z |
|
||||
|
||||
Long sessions correlate with discipline drift. Если % regulated просел в текущей сессии — рассмотри перезапуск.
|
||||
|
||||
@@ -109,7 +113,7 @@ Episodes since last run: 542 / threshold: 10
|
||||
|
||||
## Reviewer: субагент vs fallback
|
||||
|
||||
0 эпизодов проверено из 3044.
|
||||
0 эпизодов проверено из 3331.
|
||||
|
||||
## Reviewer findings
|
||||
|
||||
@@ -135,9 +139,9 @@ Episodes since last run: 542 / threshold: 10
|
||||
|
||||
| PID | Имя | CPU-время | Возраст |
|
||||
|---|---|---|---|
|
||||
| 3440 | MsMpEng | 9.21ч | NaNч |
|
||||
| 1212 | svchost | 2.41ч | NaNч |
|
||||
| 4 | System | 2.24ч | 0.0ч |
|
||||
| 3440 | MsMpEng | 14.71ч | NaNч |
|
||||
| 21928 | Code | 4.88ч | 10093698.0ч |
|
||||
| 1212 | svchost | 3.61ч | 0.0ч |
|
||||
|
||||
⚠️ Проверь, не «осиротевшие» ли это процессы от завершённых Claude-сессий.
|
||||
|
||||
@@ -151,7 +155,7 @@ Episodes since last run: 542 / threshold: 10
|
||||
|
||||
## Целостность журналов действий
|
||||
|
||||
🔴 Битые цепочки (3 из 114):
|
||||
🔴 Битые цепочки (3 из 118):
|
||||
|
||||
| session | broken at seq |
|
||||
|---|---|
|
||||
|
||||
@@ -285,6 +285,14 @@ Claude обязан **запросить** подтверждение. В шта
|
||||
`process.kill` + `fs.rmSync`; пол пускает запуск скрипта, §3). Шаги 1-3 — в одном скрипте (kill → ждать →
|
||||
rm); шаг 4 — отдельным Edit.
|
||||
|
||||
**Стрижка через закрытие** (держать протокол от пухлости — согласовано 2026-06-26):
|
||||
- Садовник пишет ветки/кандидаты — это список дел, его НЕ жмут. Закрывать их — работа **ассистента**; на стол владельца идёт только **волевое**.
|
||||
- **Рабочее** (закрывает ассистент делом): сделать / проверить / поправить / убрать.
|
||||
- **Волевое** (только владелец): открытые вопросы (бизнес/вкус/правила), необратимое (коммит/пуш/удаление/выкатка), «закрываем дело?».
|
||||
- Руками протокол/рендер НЕ правят — закрытую ветку снимает садовник на церемонии (стоп-хук), закрытое уходит в `архив.md`, дерево худеет само.
|
||||
- ⚠️ **Урок 2026-06-26: садовник закрывает ТОЛЬКО по настоящему пруфу из диффа** (`close` требует `proof`, [secretary-gardener.mjs:13](../../tools/secretary-gardener.mjs#L13); «готово / я разобрал» — НЕ пруф). Перечисление прозой «закрываю КД-X, потому что Y» **не закрывает** — садовник скептичит и плодит НОВЫЕ ветки про саму стрижку (беговая дорожка, увидено живьём 2026-06-26). Закрывает только РЕАЛЬНОЕ дело с результатом: снёс файл, удалил узел, прогнал команду. **Стрижка = делать дела, а не писать про них.**
|
||||
- **Монитор пухлости** (КД-33): авто-алерта нет; процедурно — при старте дела глянуть число живых веток/кандидатов в `protocol.md` (раздел «Темы»); если десятки — звать стрижку реальным делом. Автоматизация (алерт по размеру) — отдельная задача с кодом+тестом, если решим.
|
||||
|
||||
[↑ наверх](#top)
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user