Promote SKILL-FIRST PRINCIPLE from advisory (autoloader additionalContext) to BLOCKING (PreToolUse exit-2) via three-hook architecture for canonical skills enterprise/vault/sequential-thinking. enforc

Decision

Promote SKILL-FIRST PRINCIPLE from advisory (autoloader additionalContext) to BLOCKING (PreToolUse exit-2) via three-hook architecture for canonical skills enterprise/vault/sequential-thinking. enforce-skill-first.py blocks Bash|Grep|Glob|Read when canonical skill was suggested + not invoked + tool args match domain keywords. 10/10 test cases green. Bypass via SKILL_FIRST_BYPASS=1 env (logged). Plus 8-agent parallel setup audit eradicated 905MB dead weight (orphan marketplace, off-contract outputs, dangling crons, 2 unwired hooks, docker cache, stale vault meta/log symlink). Added feedback_vault_proactive_workflows.md mandating 5 Vault touchpoints.

Rationale

Behavioral-only SKILL-FIRST enforcement (CLAUDE.md text + advisory autoloader) repeatedly failed — agent ignored autoloader and grepped filesystem instead of invoking suggested canonical skill. Needed harness-level block. setup-curator-guard.py already proves the pattern for Write/Edit; this extends to Bash/Grep/Glob/Read for the broader constellation. Premortem surfaced four latent risks: (1) static domain_keywords list will drift as paths rename — mitigation: regenerate from skill descriptions on hook deploy; (2) marker leak across long sessions — mitigated by session-mcp-cleanup MARKER_GLOBS extension; (3) false-positive blocking on incidental keywords like “vault” — mitigated by AND-of-three conditions (suggested + not-invoked + tool-args-match); (4) silent disablement if autoloader changes match criteria — needs a cron audit (residual risk, captured in NOVA handoff). Bias detection flagged anchoring on “first 10/10 test result” — countered: tests cover the architecture mechanism, not all real-world tool-arg patterns; recommend logging blocks to build a corpus and tune keywords every 90 days.

Alternatives Rejected

Outcome

Pending