Zeeshan Khan

An Alarm Is Not a Map

Essay

~11 min read · July 2026

A smoke detector tells you there is smoke. It does not tell you which room, how far the fire has spread, or whether the thing you most need to carry out is already gone. For a single-room apartment that is enough — the alarm and the map are the same thing, because there is only one place to look. For a building, the alarm is the beginning of the problem, not the end of it. The question that matters is not is something wrong. It is what do I no longer trust, and what do I do about it.

Most of the integrity tooling being built for AI systems right now ships the smoke detector and calls it done.

The pitch is familiar by now, because the cryptography underneath it is genuinely good. You sign every record. You chain each one to the last, so that altering an old entry breaks every entry after it. You publish the chain to a transparency log so that even the system of record cannot quietly rewrite its own history. When something is tampered with, the math notices. The checkmark turns red. This works, and it is not nothing — for a long time we could not even do this much.

But a red checkmark is an alarm. It says something at some point diverged from what was signed. A compliance manager reading that at the end of a quarter, with an auditor arriving in a week, does not have a problem they can act on. They have a feeling. The gap between detecting that a break happened and understanding what the break touched is the entire distance between a security feature and an operational tool, and it is the distance almost nobody is covering.

A break is not a point. It is a watershed.

Here is the part that the green checkmark hides. When a record is corrupted, the damage does not stay in that record.

Think about how these systems actually work. An agent retrieves a document and signs the fact that it retrieved it. A later step reads that retrieval and produces a decision. A credential gets issued on the strength of that decision. A report aggregates a hundred such credentials. Each artifact rests on the ones before it the way a roof rests on walls, and the walls on a foundation. Corrupt something near the bottom, and everything above it is now standing on ground you cannot vouch for — not because those upper artifacts were themselves altered, but because the thing they trusted turned out to be untrustworthy.

So "the chain broke at entry 4,021" is the wrong unit of information. It is technically true and operationally useless, like a weather service that reports the exact coordinates of a storm's first raindrop. What you need is the watershed: everything downhill of this point now carries water from a source you have to distrust. In the systems I care about, that translates to something a person can act on — these specific reports, these particular attestations, this set of credentials all inherited from an entry that no longer verifies. That is a list you can work. You can re-issue those credentials, flag those reports, tell the auditor precisely which fourteen documents to set aside and which nine hundred are clean.

The map is the deliverable. The alarm is just what tells you to go find it.

I want to be careful here, because this is exactly the kind of claim that is easy to overstate. Walking the full dependency graph — every artifact transitively poisoned by a break, in causal order — is real work, and the honest first version of it is humbler than the marketing version. The humbler version is a flat list: which records directly referenced the broken entry. That is not the whole watershed; it is the first ring of it. But it is real, it is computed from the actual data rather than narrated over a diagram, and it is already the thing the green checkmark refused to give you. The graph-aware version is the next layer, and the only honest way to talk about it is as the next layer — not as something already in the box.

The harder honesty: not all red is the same red

There is a second distinction, quieter than the first, and it is the one that separates people who understand this problem from people selling a dashboard.

A monitor that watches for tampering can fail in two completely different ways, and they must never be shown as the same color.

The first: it checks a record, recomputes the hash, and finds that the stored value does not match. That is tamper detected. Someone or something changed data after it was signed. This is an accusation, and the system can stand behind it, because the math is dispositive.

The second: it goes to check a record and cannot complete the check. The transparency-log witness is unreachable. A scheduled verification run died halfway. A dependency timed out. That is verification could not complete — and it is not an accusation of anything. Nothing has been shown to be wrong. The system simply does not, right now, know.

Conflating these is how trust dashboards become theater. If "I couldn't reach the witness" lights up the same red as "this grade was altered after it was recorded," then within a week your operators learn that red means probably nothing, and they stop looking — which means the one time red means someone changed the data, nobody is watching. The cost of crying wolf is not embarrassment. It is the silent decommissioning of the alarm by the people it was built to protect.

So the discipline is to keep three states, not two. Verified. Tampered. Unknown. The third one is the uncomfortable one — it admits the system has a blind spot at this moment — and admitting it is precisely what makes the other two believable. A monitor that never says "I don't know" is not more trustworthy. It is less, because you have caught it pretending.

This shows up concretely. Picture a record the system genuinely cannot read right now versus a record that has been edited after the fact. The first should produce a warning that says, plainly, verification incomplete — could not confirm. The second should produce a high-severity alert that says tampered, names the field that changed, and persists even after someone quietly restores the original value — because the fact that it was altered, and caught, is itself part of the permanent record. One is a shrug. The other is a sealed accusation. Painting them the same color throws away the only thing that made the accusation worth making.

Why this is the boring, correct frontier

It would be more exciting to claim that the goal is perfect verification — a system that can always tell you, with certainty, whether everything is sound. But that goal is not available, and the reason is close to a theorem. A respected friend pushed back on an earlier piece of mine with Gödel, and while the analogy is loose if you lean on it too hard, the instinct is right: a system rich enough to be useful cannot fully certify its own soundness from the inside. There will always be a state it cannot reach, a witness it cannot raise, a moment where the honest answer is unknown.

Which means the frontier was never "detect everything." It is "when something breaks — and something will — how small can you make the blast radius, and how precisely can you draw it." Containment, not prevention. The map, not the alarm.

That reframe is unglamorous. It concedes that breaks happen, that blind spots are permanent, that the win condition is a tight, honest boundary around the damage rather than a wall that never falls. But it is the frontier that actually exists, and the tooling that takes it seriously looks different from the tooling that doesn't. It surfaces the field-level divergence, not just a red light. It computes who inherited the broken state, not just where the break was. And it tells you the difference between I caught a lie and I couldn't check — every time, in different words, in different colors — because the day it blurs those two is the day it stops being infrastructure and starts being decoration.

An alarm tells you to be afraid. A map tells you what to do. We have spent long enough building better alarms.


A standing monitor over signed sensor readings, built to surface the watershed and tell apart a tamper from an incomplete verification, lives at github.com/surroundapps/building-integrity.