Commit Graph

4 Commits

Author SHA1 Message Date
Дмитрий b917360e9b chore(brain): archive §12 + 4 routing/dormancy artefacts + 2 memory + switch 2 consumers to nodes.yaml (phase 1 task 4)
Phase 1 Task 4 of LLM-first router overhaul. Aggressive scope per user
choice (AskUserQuestion 2026-05-25).

Pravila changes:
- §12 (lines 678-748) extracted to docs/archive/.../pravila-12/, body
  replaced by 1-paragraph placeholder pointing to §17 (Task 5) + ADR-016.
- §0 priority chain dropped §12, added forward note about §17.
- §16.4 cross-refs migrated: tools/observer-classification-map.json
  -> docs/registry/nodes.yaml + buildClassificationMap;
  tools/.node-dormancy.json -> nodes.yaml status field + buildDormancyMap.
- §16.5 hard-rule list: §12 -> §17.

Code refactor (preserves test green):
- tools/observer-coverage-checker.mjs + observer-transcript-parser.mjs
  switched from readFileSync(.json) to loadRegistry + adapter.
- 9/9 + 154/154 GREEN.

git mv into archive/routing-docs/:
- tools/observer-classification-map.json, .node-dormancy.json,
  extract-node-dormancy.mjs, extract-node-dormancy.test.mjs.

lefthook.yml: job 12b removed.

Memory (user-level, cp+add-f):
- feedback_superpowers_hard_rule.md, feedback_feature_via_writing_plans.md
  copied to archive/memory/. MEMORY.md user-level updated.

Plan deviations (TASKLOG.md):
- registry-to-classification-map.mjs KEEP (4+ active consumers).
- routing-off-phase.md NOT ARCHIVED (auto-generated derivative).
- router-procedure.md deferred.

Verification: vitest tools/ 539 passed (baseline 543 -7 dormancy +3 rollback).

Rollback: node tools/test-rollback.mjs --execute + git reset --hard
brain-pre-llm-bootstrap.

Plan: docs/superpowers/plans/2026-05-25-llm-first-router-overhaul.md Task 4.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-25 14:28:24 +03:00
Дмитрий 4d7e9ca0e4 feat(observer): C5 surfaces missed-activation count via runCoverageChecker 2026-05-21 09:59:56 +03:00
Дмитрий 3ec638cbd2 fix(observer): C5 coverage driven by hook registration, drop commit ratio (COV-1)
Bug: checkCoverage flagged anomaly when "recent commits > 0 AND episodes == 0".
Two design flaws, proven in this project:
- Wrong unit: commits = work-unit (one turn → many commits via subagent
  workflow); episodes = turn-unit. A 1023-vs-19 ratio is not anomalous, it's
  expected.
- Wrong window: the 14-day commit window predated the Stop-hook's existence
  (registered 2026-05-19). For 13 of 14 days the hook didn't exist — 889
  commits were structurally impossible to mirror as episodes.

Result: the C5 indicator was either always-red (flagging the hook's birth
as anomaly) or always-green (any episode count vs huge commit count = ok).
Either way uninformative.

Fix:
- checkCoverage(episodeCount, hookRegistered) — drops the commit param.
  Warn iff hook is registered AND 0 episodes this month → the hook is
  silently failing. If the hook isn't registered, 0 episodes is correct.
- runCoverageChecker derives hookRegistered from settings.json
  (isObserverStopRegistered helper) and passes it to checkCoverage.
  No more git execFileSync — pure fs.

Tests rewritten under the new contract: 7/7 (was 6, +1 drift-hazard guard
ensuring detail strings never mention "commit"). 15/15 coverage tests green.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 11:07:58 +03:00
Дмитрий d080198220 feat(observer): coverage + registration-integrity controller (C5)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 10:38:25 +03:00