Every commit judged
Pre-commit and pre-push hooks check staged and pushed changes per commit. A required CI check repeats the decision where nobody can skip it.
Facts about each request (is the path protected, is it a secret, what class of command is this, which host) are computed by the gate itself, never asserted by the caller. Then the policy decides.
Pre-commit and pre-push hooks check staged and pushed changes per commit. A required CI check repeats the decision where nobody can skip it.
A Claude Code hook and an MCP tool server route AI file writes, reads, shell commands and web fetches through the gate before they run.
Governance files are made read-only at the OS level, and evidence ledgers cannot be deleted or renamed by the account an AI runs under.
| Action | AI | Person |
|---|---|---|
| Write an ordinary project file | allow | allow |
| Edit policy, hooks, CI or core libraries | deny | admin only |
| Read or write secrets (.env, keys) | deny | by policy |
| Delete committed files | deny | deny |
| Read-only commands (git status, ls) | allow | allow |
| Destructive or network commands, chained commands | deny | admin only |
| Fetch from a host not on the allowlist | deny | deny |
Local hooks can be bypassed by anyone who controls the machine, which is why the required CI check is the real control. Run AI tools under a normal account and use all the layers together.
See how pinned policies and signed anchors make the record tamper-evident.
Explore integrity