diff --git a/lefthook.yml b/lefthook.yml index 09be6b8d..f259f9cf 100644 --- a/lefthook.yml +++ b/lefthook.yml @@ -150,6 +150,53 @@ pre-commit: Если это осознанное архитектурное изменение — сначала обнови app/deptrac.yaml (и при необходимости ADR-005), затем коммить. + # 11. l1-watcher — детектор settings.json ↔ Tooling Прил. Н drift + # (brain governance C1, ADR-011 spec §6.1). WARN-mode (|| true): 9 pre-existing + # drifts (frontend-design@claude-plugins-official + 8 ToB plugins) — известный + # naming-vocabulary mismatch (settings.json machine name vs Tooling human name). + # Strict mode после добавления tools/.l1-watcher-aliases.txt — follow-up. + - name: l1-watcher + glob: "{.claude/settings.json,docs/Tooling_v8_3.md}" + run: node tools/l1-watcher.mjs || true + fail_text: | + l1-watcher detected settings.json ↔ Tooling Прил. Н drift. + Run /claude-md-management:claude-md-improver to formalize plugin. + (Currently WARN-only per follow-up alias work.) + + # 12. cross-ref-checker — version drift между нормативными файлами + # (brain governance C2, ADR-011 spec §6.2). WARN-mode (|| true): real-world + # surfaces noise от исторических «наследие» entries в headers нормативки — + # refinement (scope to §0 cross-refs marker) — follow-up. + - name: cross-ref-checker + glob: "{docs/Pravila_raboty_Claude_v1_1.md,docs/Tooling_v8_3.md,docs/Plugin_stack_rules_v1.md,CLAUDE.md,MEMORY.md}" + run: node tools/cross-ref-checker.mjs || true + fail_text: | + cross-ref-checker detected version drift in §0 cross-refs. + Update offending file. + (Currently WARN-only per follow-up refinement.) + + # 13. observer-of-observer — счётчик чтений docs/observer/ + 54-week self-prune + # (brain governance C3, ADR-011 spec §6.3). Скрипт всегда exit 0 (warn-only by + # design). При observer infrastructure не используется >=54 недель — warn. + - name: observer-of-observer + run: node tools/observer-of-observer.mjs check + fail_text: | + observer-of-observer reports stale state. + Consider running /brain-retro or archiving docs/observer/. + +# Post-commit: regenerate STATUS.md dashboard (informational, not gate) +post-commit: + parallel: false + jobs: + # 14. status-md generator — brain governance C4, ADR-011 spec §6.4. Rebuilds + # docs/observer/STATUS.md after each commit. Pure JS +execFileSync — Security + # Guidance #40 compliant. STATUS.md becomes staged for NEXT commit — owner + # reviews before persisting. + - name: status-md + run: node tools/status-md-generator.mjs && git add docs/observer/STATUS.md || true + fail_text: | + status-md regeneration failed. + # Pre-push: проверки перед git push (медленнее, но реже запускаются) pre-push: parallel: false