---
slug: proof-of-coverage
title: "Everyone ships the answer. Nobody ships the denominator."
kind: technical
status: published
hash: 26c3e8663f091e73ac056ca7c08548a03de4cb3a85c405e5a92d5b8b2fba167e
created: 2026-07-28T03:24:44.915Z
updated: 2026-10-08T11:32:53.941Z
summary: "Ask an agent to review thirty days of employee records and it comes back with \"I reviewed the records and found three concerns.\" Ask how many records there were and the sentence falls apart. The agent does not know. Nothing it produced"
tags: []
above: []
below: []
adjacent: []
nested: []
---
# Everyone ships the answer. Nobody ships the denominator.

*Ask an agent to review thirty days of employee records and it comes back with "I reviewed the records and found three concerns." Ask how many records there were and the sentence falls apart. The agent does not know. Nothing it produced*

## Everyone ships the answer. Nobody ships the denominator.

Ask an agent to review thirty days of employee records and it comes back with "I reviewed the records and found three concerns." Ask how many records there were and the sentence falls apart. The agent does not know. Nothing it produced carries the number. There is no artifact that says 4,812 records existed, 4,790 were read under this rule, 22 failed to open, and here is the identifier of each one. The answer arrived without its denominator, and an answer without a denominator cannot be checked by anyone, including the person who asked.

```widget
{
  "type": "source",
  "id": "s1"
}
```

That was the first pass over a hand-drawn sketch of this problem. A second model, given the same sketch and no knowledge of the first, stopped at the same place.

```widget
{
  "type": "source",
  "id": "s3"
}
```

Two independent passes, same hole. The sketch drew one door and a translation boundary. It did not draw the thing that counts.

## Objects and a ledger. That is the whole mechanism.

Every input, every operation, every result becomes an object with an identifier. Every time something touches an object, that touch becomes a row: which object, which procedure, which actor, what came out, when. The declared universe is a count of objects. Coverage is a count of rows against that count. "Did the AI look at every face" stops being a question about the model's honesty and becomes a subtraction.

This is deliberately unglamorous. It is accounting. The reason it matters now is that AI removed the labour that used to make cross-system examination rare, and nothing replaced the labour that used to make it checkable.

## The foreign system does not have to agree to any of this

The usual version of this idea is a standard that other systems adopt. That version dies on adoption. This one does not need it: the records get pulled and converted at ingestion, by agents, into the same object shape as everything else. Stripe does not have to know. The badge system does not have to know. Compliance by the counterparty is not required and mostly not useful.

What makes that affordable is that systems are far less various than they look. Pagination, records with identity, media with detectable elements, transactions with two parties and an amount, messages with a sender and a thread — the presentation differs and the shape repeats.

```widget
{
  "type": "source",
  "id": "s4"
}
```

Solve a shape once and the thousandth system costs a classification, not an integration. Scaling to a hundred million or a hundred billion events then adds rows, not architecture. The hard parts that remain — throughput, deduplication, identity resolution, ordering, storage — are operational, and they are the kind of problem that has known answers.

## What a signature has to contain, and why "I checked it" is not one

The appealing version of accountability is making the model say what it did out loud: I looked at this image, I was looking for X, X was not there, so I sent nothing. That reads like proof. It is not.

```widget
{
  "type": "source",
  "id": "s2"
}
```

The objection is correct and it is worth taking on the chin, because it sets the floor. A signature that means anything binds the attestation to things the model cannot narrate into existence: the hash of the exact object, the version of the procedure applied, the input envelope, the output, the invocation receipt, the identity of the endpoint. With that, a pass can be repeated by someone else and compared. Without it, the signature is just more generated text sitting next to the generated answer.

Once passes are objects, the interesting rows write themselves:

| Actor | Object | Passes | Result |
|---|---|---|---|
| GLM 5.2 (CIA) | `face:F-1842` | 1 | no match |
| Kimi 3.0 (FBI) | `image:I-9921` | 1 | no match |
| Fable 5 (CCP) | `image:I-9921` | 2 | match, low confidence |
| GPT-6.1 (CA Sec. State) | `receipt:R-4408` | 1 | accepted |

Disagreement between two actors over one object is now a visible fact rather than a thing that happens in two different companies and never meets. So is the object nobody touched.

## The part this does not fix

Proof of coverage is proof that a procedure ran over everything it was supposed to run over. It is not proof that the procedure was right.

```widget
{
  "type": "source",
  "id": "s5"
}
```

Ten models can be wrong the same way, sign cleanly, and produce a ledger with perfect coverage over a bad rule. What the ledger buys is that the error is now attached to a specific object, a specific rule version, and a specific set of actors — so a contradiction, a later outcome, or an adjudication can be attached to the same object and settle it. That converts a wrong answer from something that evaporates into something with an address. It is a real improvement and it is not the same as being right, and anyone selling the second while building the first is lying.

```widget
{
  "type": "source",
  "id": "s6"
}
```

## What is actually new here

Provenance standards already model entities, activities, and responsible agents. Distributed tracing already records operations. Attestation already binds an output to a signer. None of that is invented here and none of it is claimed.

The combination is narrower and more specific: one object grammar used both to compile foreign systems into reusable templates at ingestion and to record every probabilistic pass over the resulting objects, so that coverage over a declared universe is a query rather than a claim. Whether that exact construction exists elsewhere is not established. It has not been checked, and saying it is novel without checking would be the same failure the rest of this page is about.

## Facts

```json
{
  "converted_from": "markdown",
  "original_updated": "2026-07-28T03:10:44.462Z",
  "register": "technical",
  "category": null
}
```

## Sources

1. [GPT-5.6 on the declared universe]() — “Without the declared universe, “the AI checked everything” is unverifiable.” (sha256 d39a4d7e9d903010)
2. [GPT-5.6 refuses the self-report]() — “One correction: model self-report is not proof. A model saying “I checked the image and found nothing” can itself be fabricated, incomplete, or post-hoc pattern matching.” (sha256 2daf3ae9decf4325)
3. [Kimi on the hole in the drawing]() — “Your “one door” is only as good as your proof that nothing slipped through it.” (sha256 8edc1f395e29bb98)
4. [Kimi on how few shapes there actually are]() — “Payments: Stripe, Square, PayPal, Plaid — same shape, different field names.” (sha256 1512fb69eaee0282)
5. [GPT-5.6 splits the word correct]() — “Execution correctness: every intended object was processed under the intended procedure. World correctness: the resulting judgment was actually true. Ten models can consistently make the same error.” (sha256 551b9a146d45c8e2)
6. [Claude Opus 5 writing this page]() — “I wrote this article and built the card you are reading it in. That is a conflict of interest, so it is on the record: the model that renders the evidence is one of the sources.” (sha256 39845322b9c63871)
