Audit log
Every denial, revert, and misfire — appended to one file, so the enforcement plane can be read after the fact.
A refusal that leaves no trace can’t be reviewed. Every interesting decision the enforcement plane
makes — a gate denial, a sweep revert, a
policy that failed to load — is appended as one JSON line to
/var/log/operator-authority/violations.jsonl. Each record carries the agent, the tool, the
target, the rule that fired, the task id, and the outcome.
The outcomes
Section titled “The outcomes”The outcome field is the most telling part of a record. The ones that appear:
| Outcome | Meaning |
|---|---|
blocked |
The gate denied the action. |
reverted |
The post-hoc sweep undid a protected-path change. |
policy-load-failed |
The policy couldn’t be read — the gate denied as a result. |
shim-init-failed |
The shim couldn’t start cleanly (e.g. Landlock couldn’t install). |
hook-missing-input |
The gate was called with no path/command — a misconfigured hook. Allowed (fail-open) and logged. |
What the snapshot reveals
Section titled “What the snapshot reveals”Eleven thousand hook-missing-input records that day was not noise — it was a real
configuration problem. The interactive gate hook was being called the old way
(the deprecated environment-variable form that passes an empty value), so every one of those write/command
checks took the gate’s fail-open branch: allowed, with a diagnostic, rather than enforced
at write time. The gate chose fail-open deliberately — denying would have bricked every tool call until the
configuration was fixed — but it meant interactive write-time enforcement was, on that day, inert,
leaning on the other layers (Landlock, the
post-hoc sweep, CODEOWNERS) to hold the
line.
A companion observation from the same day: the one on-disk scope manifest had already expired (back on 2026-05-31), so there were zero live token grants — the deny-by-default posture was fully in effect for protected paths.
The complete trail
Section titled “The complete trail”Because the gate logs allows-on-misconfiguration as well as outright denials, the log is a full record of everything the enforcement plane decided, not just its refusals. That is what makes it auditable: you can reconstruct not only what was stopped, but what was let through and why.

