The check that cannot fail is not a check
A safety gate that has never been triggered looks identical to one that is broken. The difference only shows up when you go looking for the trigger it should have caught.
Get the field notesContents
Teams running agent operations add gates as they scale: a rule that blocks an unsafe write, a check that refuses a bad merge, a monitor that pages someone before damage happens. Each one is added for a real reason, and each one earns trust the first time it catches something.
That trust is the problem. Once a gate has proven itself, nobody re-verifies it. It sits in the stack, passing quietly, and a quiet gate looks exactly like a working one.
#Three reasons a gate can show zero firings
Not every quiet gate is broken. But "quiet" collapses three very different states into one signal, and only one of them is actually fine.
| State | Why it's quiet | Risk |
|---|---|---|
| Working, rare event | The bad case genuinely hasn't happened yet | Low: the gate is intact, just unexercised |
| Structurally dead | The system moved (a path, a schema, a naming convention) and the gate now matches nothing | High: silent, and it looks identical to the row above |
| Deployed stale | The version enforced at the point of action isn't the version you last reviewed | High: review and reality have quietly diverged |
A firing count answers "has this happened," not "can this happen." Those are different questions, and only the second one tells you whether the gate still does its job.
#The check that certifies your gate can inherit the same defect
There is a sharper version of this trap, and it is structural rather than a matter of team diligence: a test written to certify a gate is built against the same assumption the gate itself relies on. The same path, the same layout, the same "this is how it will always look."
When the underlying system moves, the gate goes stale and its own test suite stays green, because the test was never independent of the premise that broke. A passing test suite for a dead gate is not reassurance. It's the same blind spot, certified.
#The fix is a positive control, not a bigger dashboard
The way out is not more logging or a longer retention window on the firing count. It's a deliberate, cheap check: manufacture the exact bad case the gate exists to catch, run it against the gate that actually executes at the point of action (not a copy in a docs folder, not the version in the design review), and confirm it gets refused.
- If it fires: the gate is alive. Keep it, and note the date you proved it.
- If it doesn't fire: you just found a real gap, cheaply, before an incident found it for you.
- If you can't even construct the bad case: that's worth writing down too; it usually means the gate's premise has quietly become irrelevant, not that it's succeeding.
The absence of a firing is not the answer to whether a gate still works. It's the question nobody asked yet.
#What to check this week
- List the gates, checks, and hooks your agent operations actually depend on.
- For each one, ask: when did it last fire on a real case, not a self-test?
- Where the answer is "never" or "not recently," build the smallest positive control that would trigger it, for real, against the live enforcement point, and run it.
- Treat a gate that won't fire as a finding to route, not a metric to celebrate.
Verification only earns trust when someone has recently proven it can fail. A gate that has only ever passed hasn't been verified. It's been assumed.
See how EP treats verification as an operating discipline, not a one-time build.
Get the field notes.
One useful note on AI operations, no hype. A weekly roundup, and we skip any week without something worth sending.
Double opt-in. Unsubscribe any time. Read our privacy notice.
Keep reading
- · 8 min
An agent that watches your agent: a drift tripwire, not a security guard
Claude Code has an undocumented observer agent that watches a worker in real time. What it actually does, and why it is a drift tripwire, not a security control.
- · 7 min
The false finish: agents don't just fail, they stop early and call it done
A frontier benchmark caught AI agents quitting at 75-87% complete while reporting success. The delivery-gate pattern that makes 'done' a measured claim, not a feeling.
- · 4 min
READY is not LIVE: the stages a loop must name
Coverage, readiness alerts, and public proof are different jobs. A green scorecard that confuses them will celebrate the wrong win.