Commit Graph

3 Commits

Author SHA1 Message Date
Дмитрий c20a53c0da refactor(hooks): decide() returns enriched flags so main() drops duplicate computation (Phase 4 DRY follow-up) 2026-05-28 16:13:05 +03:00
Дмитрий a3f5f392cd feat(brain-retro): Cut 11 chain-hook effectiveness ledger + analyzer (Phase 4 #2) 2026-05-28 15:48:39 +03:00
Дмитрий d1d5308013 feat(brain-governance): classifier threshold 0.7→0.8 + chain-recommendation enforcer + registry test bump
Three brain-governance hardening changes from retro #8 follow-up:

1. enforce-classifier-match: confidence threshold raised 0.7→0.8 (was producing false-positives on borderline LLM recommendations like #3 GitHub MCP for local debug, #36 adr-kit for status readouts). 2 new vitest tests cover boundary values 0.7 and 0.75 (now allowed).

2. enforce-chain-recommendation (NEW): PreToolUse hook blocking mutating tool calls when router gave recommended_chain length >= 2 and controller is not expanding it. Allows pass when: any chain node already invoked, inline 'chain-override: <reason>' present, or global override-phrase in user prompt. 20 vitest tests cover empty chain, single-node bypass, override variants, alias resolution, mixed numeric/string ids.

3. registry-load.test.mjs: bump expected counts 85→86 nodes / 77→78 active (collateral fix after parallel session added #86 graphifyy in 27289c05).

Full vitest tools-sweep: 1022/1022 GREEN.

Reviewer APPROVE on spec compliance + code quality (non-blocking observations: test count mis-report in implementer's claim 33→20 actual, hardcoded 'superpowers:' alias prefix, no direct test for extractCalledSkillIds — deferred).

Hook activation in .claude/settings.json deferred — controller will register separately based on owner's choice (block / warn-only / defer).
2026-05-28 05:33:22 +03:00