Build Log
Gate Enforcement Gap
July 16, 2026
Gates were checklists enforced by Claude's own memory — built a real PreToolUse hook that mechanically blocks commits/pushes without fresh gate evidence.
Timeline
What shipped
A PreToolUse hook (.claude/hooks/gate-check.mjs) that mechanically blocks git commit/git push unless a fresh, substantive gate-evidence marker exists — wired into .claude/settings.json
Marker schema: .claude/gate-evidence.json (gitignored, session-scratch only — not the durable record)
Fixed crucible.mjs docs to mark interactive persona modes (pre/architect/customer/etc.) as terminal-only, pointing to crucible:council for programmatic use
Anvil + Strike entries capturing the process-vs-substance enforcement ceiling
“you have the ability to run this via the root level env that gives you API access to chat. last time you had no problem invoking this. why is this so inconsistent?”