From 910c2d0e37f2d4288128b189f5e14645139c7ccb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Tue, 19 May 2026 06:07:42 +0300 Subject: [PATCH] =?UTF-8?q?feat(observer):=20docs/observer/=20scaffolding?= =?UTF-8?q?=20=E2=80=94=20README=20+=20STATUS=20+=20counter=20+=20JSONL=20?= =?UTF-8?q?seed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Empty infrastructure per ADR-011 + Pravila §16.2. Hook + generators wire up in subsequent tasks (B2 PII filter, B3 Stop-hook, B5 register in settings.json, C4 STATUS generator). Co-Authored-By: Claude Opus 4.7 (1M context) --- docs/observer/.read-counter.json | 5 +++++ docs/observer/README.md | 27 +++++++++++++++++++++++++++ docs/observer/STATUS.md | 21 +++++++++++++++++++++ docs/observer/episodes-2026-05.jsonl | 0 docs/observer/notes/.gitkeep | 0 5 files changed, 53 insertions(+) create mode 100644 docs/observer/.read-counter.json create mode 100644 docs/observer/README.md create mode 100644 docs/observer/STATUS.md create mode 100644 docs/observer/episodes-2026-05.jsonl create mode 100644 docs/observer/notes/.gitkeep diff --git a/docs/observer/.read-counter.json b/docs/observer/.read-counter.json new file mode 100644 index 00000000..8f03162f --- /dev/null +++ b/docs/observer/.read-counter.json @@ -0,0 +1,5 @@ +{ + "last_read_at": "2026-05-19T00:00:00+03:00", + "read_count_last_period": 0, + "period_start": "2026-05-19T00:00:00+03:00" +} diff --git a/docs/observer/README.md b/docs/observer/README.md new file mode 100644 index 00000000..d97c1815 --- /dev/null +++ b/docs/observer/README.md @@ -0,0 +1,27 @@ +# Observer infrastructure + +Passive evidence-loop for the Лидерра «brain» per ADR-011. + +## Files + +- `episodes-YYYY-MM.jsonl` — append-only JSONL, one line per Claude session. Written by `tools/observer-stop-hook.mjs` on Stop-event. +- `notes/YYYY-MM-DD-.md` — optional MD notes for sessions with qualitative history. +- `STATUS.md` — auto-generated dashboard. Regenerated per-commit by `tools/status-md-generator.mjs`. +- `.read-counter.json` — C3 observer-of-observer counter. Updated on Read of observer files. + +## Lifecycle + +1. **Write**: every Claude session ends with a JSONL append (Stop-hook). +2. **Aggregate**: `/brain-retro` skill reads JSONL each sprint, proposes regulatory candidates. +3. **Surface**: `STATUS.md` shows controllers + monthly stats. +4. **Self-prune**: C3 warns if 54 weeks pass without any read of observer files. + +## Privacy + +PII filter (phone numbers, emails, tokens) is applied **before** every write — see `tools/observer-pii-filter.mjs`. gitleaks pre-push also scans observer files as part of full-history sweep. + +## Don't + +- Don't edit `episodes-*.jsonl` manually — it's append-only. +- Don't write outside `docs/observer/notes/` for hand-curated notes. +- Don't change `.read-counter.json` manually — it's maintained by hooks. diff --git a/docs/observer/STATUS.md b/docs/observer/STATUS.md new file mode 100644 index 00000000..48b3ce8b --- /dev/null +++ b/docs/observer/STATUS.md @@ -0,0 +1,21 @@ +# Brain Status + +Last updated: 2026-05-19T00:00:00+03:00 (placeholder) + +Regenerator: `tools/status-md-generator.mjs` (post-commit hook). + +| Контролёр | Состояние | Детали | +|---|---|---| +| C1 L1-watcher | ⚪ not yet run | Will run on first settings.json change or weekly cron | +| C2 Cross-ref consistency | ⚪ not yet run | Will run on first normative file edit | +| C3 Observer-of-observer | ⚪ not yet read | Counter: 0 reads. Self-prune in 54 weeks | +| C4 Сигнальный статус | ✅ | This file | + +## Метрики (placeholder until first /brain-retro) + +- Узлы, использованные за последние 30 дней: N/A (observer empty) +- Узлы, ни разу не использованные: N/A — **не проблема** (capability-readiness) +- Канонические связки L1–L12: N/A +- Improvised chains: N/A + +⚪ — not yet run ・ ✅ — норма ・ ⚠️ — внимание ・ 🔴 — действие требуется diff --git a/docs/observer/episodes-2026-05.jsonl b/docs/observer/episodes-2026-05.jsonl new file mode 100644 index 00000000..e69de29b diff --git a/docs/observer/notes/.gitkeep b/docs/observer/notes/.gitkeep new file mode 100644 index 00000000..e69de29b