Build Log
Gate Enforcement — Tier 1 Extension
July 16, 2026
Extended the mechanical gate-evidence hook from one trigger class (commit/push) to six — every gate whose trigger is a checkable file-edit or command pattern — while explicitly refusing to hook judgment-only gates.
Timeline
What shipped
Refactored .claude/hooks/gate-check.mjs from a single hardcoded commit/push check into a generic dispatcher driven by .claude/hooks/gates.config.mjs
Added .claude/hooks/lib/marker.mjs — shared marker-freshness/weak-evidence logic, now gate-agnostic (this is the exact reuse predicted in the prior session's compounding.proof)
Extended coverage to 6 trigger classes: Monorepo Safety/Quench (commit/push), Dependency/Env-Config (npm install, package.json edits), Schema (schema.ts/drizzle edits), Extraction (packages/forgekit-* edits), Test Setup (new *.test.ts files), Deploy (deploy commands)
Each gate class gets its own marker file (.claude/gate-evidence.<slug>.json) — evidence for one gate can never satisfy a different gate's check
Documented the enforced/unenforced split directly in triggers.md so future sessions don't assume mechanical coverage that doesn't exist
“yes, extend this through all of the gates please”