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.
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.
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.
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.
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.
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.
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.
References (6)
GPT-5.6 on the declared universe“Without the declared universe, “the AI checked everything” is unverifiable.”
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.”
Kimi on the hole in the drawing“Your “one door” is only as good as your proof that nothing slipped through it.”
Kimi on how few shapes there actually are“Payments: Stripe, Square, PayPal, Plaid — same shape, different field names.”
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.”
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.”
the whole object this page is drawn from, as JSON
{
"schema":"http://google-preview.miscsubjects.com/schemas/jarticle.json",
"status":"published",
"slug":"proof-of-coverage",
"title":"Everyone ships the answer. Nobody ships the denominator.",
"kind":"technical",
"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",
"created":"2026-07-28T03:24:44.915Z",
"body": [
"## Everyone ships the answer. Nobody ships the denominator.\n\nAsk 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.",
{
"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.",
{
"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.\n\n## Objects and a ledger. That is the whole mechanism.\n\nEvery 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.\n\nThis 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.\n\n## The foreign system does not have to agree to any of this\n\nThe 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.\n\nWhat 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.",
{
"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.\n\n## What a signature has to contain, and why \"I checked it\" is not one\n\nThe 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.",
{
"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.\n\nOnce passes are objects, the interesting rows write themselves:\n\n| Actor | Object | Passes | Result |\n|---|---|---|---|\n| GLM 5.2 (CIA) | `face:F-1842` | 1 | no match |\n| Kimi 3.0 (FBI) | `image:I-9921` | 1 | no match |\n| Fable 5 (CCP) | `image:I-9921` | 2 | match, low confidence |\n| GPT-6.1 (CA Sec. State) | `receipt:R-4408` | 1 | accepted |\n\nDisagreement 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.\n\n## The part this does not fix\n\nProof 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.",
{
"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.",
{
"type":"source",
"id":"s6"
},
"## What is actually new here\n\nProvenance 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.\n\nThe 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": {
"converted_from":"markdown",
"original_updated":"2026-07-28T03:10:44.462Z",
"register":"technical",
"category":null
},
"sources": [
{
"id":"s1",
"type":"model",
"model":"GPT-5.6",
"surface":"web app",
"vendor":"OpenAI",
"object":"sketch:object-translation-protocol",
"passes":1,
"title":"GPT-5.6 on the declared universe",
"quote":"Without the declared universe, “the AI checked everything” is unverifiable.",
"verdict":"Coverage requires a declared denominator",
"summary":"First pass over the hand sketch. Named the missing primitive: a count of what was supposed to be examined.",
"accessed_at":"2026-07-27T00:00",
"claim_ids": [
"c1",
"c2"
],
"prev":"genesis",
"hash":"f9bdbbff862f50705b01608e36e1654c14482af681fe1379b6aede0e6ed2422e",
"quote_sha256":"d39a4d7e9d9030102ae072712ec6632e4ffa57091b2f6fbe49432d18dc63edf9"
},
{
"id":"s2",
"type":"model",
"model":"GPT-5.6",
"surface":"web app",
"vendor":"OpenAI",
"object":"claim:model-self-report-is-proof",
"passes":1,
"title":"GPT-5.6 refuses the self-report",
"quote":"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.",
"verdict":"Refuted — the environment must bind the attestation",
"summary":"Direct disagreement with the owner's position that a model narrating its reasoning makes the reasoning auditable.",
"accessed_at":"2026-07-27T00:00",
"claim_ids": [
"c4"
],
"prev":"f9bdbbff862f50705b01608e36e1654c14482af681fe1379b6aede0e6ed2422e",
"hash":"b5c1deea626cda808c0a470522fdc189ca5fd0c83072daa91390a84e140a6226",
"quote_sha256":"2daf3ae9decf43253d7ca04e5fb4d4199f959a665dbdc221fda8d92647a06c69"
},
{
"id":"s3",
"type":"model",
"model":"Kimi",
"surface":"kimi.com web app",
"vendor":"Moonshot",
"object":"sketch:object-translation-protocol",
"passes":1,
"title":"Kimi on the hole in the drawing",
"quote":"Your “one door” is only as good as your proof that nothing slipped through it.",
"verdict":"Sketch incomplete — no coverage auditor drawn",
"summary":"Independent pass over the same sketch, reaching the same missing primitive by a different route.",
"accessed_at":"2026-07-27T00:00",
"claim_ids": [
"c2"
],
"prev":"b5c1deea626cda808c0a470522fdc189ca5fd0c83072daa91390a84e140a6226",
"hash":"33c39bb28e55f4a2322791360fdf930894eb5f5700d6337eab825ce8dda30735",
"quote_sha256":"8edc1f395e29bb98d3a35815ec5064c07af3917231497fdeb5c7ae4bf464e81a"
},
{
"id":"s4",
"type":"model",
"model":"Kimi",
"surface":"kimi.com web app",
"vendor":"Moonshot",
"object":"claim:finite-grammars",
"passes":2,
"title":"Kimi on how few shapes there actually are",
"quote":"Payments: Stripe, Square, PayPal, Plaid — same shape, different field names.",
"verdict":"Agreed — the thousandth system is a classification, not an integration",
"summary":"Second pass on the same claim after being told to stop designing adapters. Landed on the pattern-library framing.",
"accessed_at":"2026-07-27T00:00",
"claim_ids": [
"c5"
],
"prev":"33c39bb28e55f4a2322791360fdf930894eb5f5700d6337eab825ce8dda30735",
"hash":"0af60c7abacc88a12fbd647b9da8eab6f15a7b27a055e7c695b75b9a7aafc3d9",
"quote_sha256":"1512fb69eaee0282a2343ac8987df023347bdd83e0185b794a361c134a5b6e3f"
},
{
"id":"s5",
"type":"model",
"model":"GPT-5.6",
"surface":"web app",
"vendor":"OpenAI",
"object":"claim:proof-makes-answers-correct",
"passes":1,
"title":"GPT-5.6 splits the word correct",
"quote":"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.",
"verdict":"Partially refuted — the ledger proves the first, not the second",
"summary":"The strongest objection raised across all passes. Unresolved, and left standing here.",
"accessed_at":"2026-07-27T00:00",
"claim_ids": [
"c6"
],
"prev":"0af60c7abacc88a12fbd647b9da8eab6f15a7b27a055e7c695b75b9a7aafc3d9",
"hash":"80d89ca4f5f92bc29e8d7df0e3e8454420ec031aade5cf06b3ed74fef33f2998",
"quote_sha256":"551b9a146d45c8e2101f4dfdbb7e890a24726a67a95f00d06914a09461cb26e3"
},
{
"id":"s6",
"type":"model",
"model":"Claude Opus 5",
"surface":"Claude Code",
"vendor":"Anthropic",
"authority":"miscsubjects build",
"object":"article:proof-of-coverage",
"passes":1,
"title":"Claude Opus 5 writing this page",
"quote":"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.",
"verdict":"Disclosed — self-authored, self-signed",
"summary":"The pass that produced this page, ledgered like any other pass.",
"accessed_at":"2026-07-27T00:00",
"claim_ids": [
"c7"
],
"prev":"80d89ca4f5f92bc29e8d7df0e3e8454420ec031aade5cf06b3ed74fef33f2998",
"hash":"4ef88dd73c05e1fcc1cd3fbf541774977a96e5ff7a160c6cca3ea43f14216e90",
"quote_sha256":"39845322b9c63871dd7a20e107340688ac2d60d308b2d2b49115ccc7c3a3dd3b"
}
],
"claims": [
{
"id":"c1",
"text":"An AI system that returns an answer has not shown which inputs produced it.",
"section":"The gap",
"tier":"system",
"source_ids": [
"s1"
],
"why_material":"It is the difference between an answer and a result you can act on."
},
{
"id":"c2",
"text":"Coverage cannot be claimed without a declared count of what was supposed to be examined.",
"section":"The gap",
"tier":"system",
"source_ids": [
"s1",
"s3"
],
"why_material":"Two models reached this independently from the same sketch."
},
{
"id":"c3",
"text":"Turning a foreign system's records into objects on a ledger does not require that system's cooperation.",
"section":"Ingestion",
"tier":"system",
"source_ids": [],
"why_material":"It removes adoption from the critical path."
},
{
"id":"c4",
"text":"A model narrating its own reasoning is not proof that the reasoning happened.",
"section":"Signing",
"tier":"system",
"source_ids": [
"s2"
],
"why_material":"It sets the minimum content of a signature: object hash, procedure, result."
},
{
"id":"c5",
"text":"Systems repeat a small number of shapes, so a new system is a classification against a known template rather than a new integration.",
"section":"Ingestion",
"tier":"system",
"source_ids": [
"s4"
],
"why_material":"It is the entire cost argument."
},
{
"id":"c6",
"text":"A coverage ledger proves that a procedure ran over every declared object. It does not prove the judgment was true.",
"section":"The limit",
"tier":"system",
"source_ids": [
"s5"
],
"why_material":"The open objection. Repetition across models narrows it; nothing here closes it."
},
{
"id":"c7",
"text":"The model that wrote this page is one of its sources, and says so on the card.",
"section":"The limit",
"tier":"system",
"source_ids": [
"s6"
],
"why_material":"Self-authored evidence is only usable when it is labelled."
}
],
"type":"article",
"updated":"2026-10-08T11:32:53.941Z",
"version":1,
"hash":"26c3e8663f091e73ac056ca7c08548a03de4cb3a85c405e5a92d5b8b2fba167e",
"styling": {
"scope":"shared",
"how":"no value on the page is set by hand: each comes from this theme, and each theme value becomes the CSS variable named beside it. PATCH http://google-preview.miscsubjects.com/api/jarticles/theme changes them.",
"widget_style": {
"what":"every widget may carry style: {…}; these are the only keys it reads",
"rotate":"degrees, a number",
"offset_x":"pixels, a number",
"offset_y":"pixels, a number",
"pulse":"true to pulse"
},
"theme": {
"color": {
"page_bg":"#f5f5f7",
"sheet_bg":"#ffffff",
"ink":"#1d1d1f",
"soft":"#424245",
"muted":"#6e6e73",
"dim":"#86868b",
"line":"#d2d2d7",
"accent":"#0071e3",
"accent_soft":"rgba(0,113,227,0.08)",
"link":"#0066cc",
"selection":"rgba(0,113,227,0.18)",
"widget_bg":"#f5f5f7",
"widget_border":"#d2d2d7",
"card_bg":"#ffffff",
"code_bg":"#f5f5f7",
"json_bg":"#161b19",
"json_ink":"#e6e1d4",
"json_key":"#7fd3c3",
"json_string":"#e9c46a",
"json_number":"#f4a261",
"json_bool":"#c792ea",
"json_null":"#928d7e",
"json_punct":"#6b6759",
"json_bar":"#0e1512",
"kind_badge_bg":"#0e6e60",
"kind_badge_ink":"#ffffff"
},
"color_dark": {
"page_bg":"#000000",
"sheet_bg":"#1d1d1f",
"ink":"#f5f5f7",
"soft":"#d2d2d7",
"muted":"#a1a1a6",
"dim":"#86868b",
"line":"#424245",
"accent":"#2997ff",
"accent_soft":"rgba(41,151,255,0.12)",
"link":"#2997ff",
"selection":"rgba(41,151,255,0.25)",
"widget_bg":"#2c2c2e",
"widget_border":"#424245",
"card_bg":"#1d1d1f",
"code_bg":"#2c2c2e",
"json_bg":"#0a0d0c",
"json_ink":"#e6e1d4",
"json_key":"#7fd3c3",
"json_string":"#e9c46a",
"json_number":"#f4a261",
"json_bool":"#c792ea",
"json_null":"#757062",
"json_punct":"#5d665f",
"json_bar":"#060807",
"kind_badge_bg":"#4fc1ab",
"kind_badge_ink":"#0b0f0d"
},
"font": {
"display":"-apple-system,BlinkMacSystemFont,\"SF Pro Display\",\"SF Pro Text\",\"Helvetica Neue\",Helvetica,Arial,sans-serif",
"body":"-apple-system,BlinkMacSystemFont,\"SF Pro Display\",\"SF Pro Text\",\"Helvetica Neue\",Helvetica,Arial,sans-serif",
"mono":"ui-monospace,SFMono-Regular,\"SF Mono\",Menlo,Consolas,monospace",
"google_fonts":""
},
"size": {
"body":"17px",
"small":"17px",
"eye":"17px",
"lead":"17px",
"h1":"52px",
"h2":"34px",
"h3":"22px",
"byline":"17px",
"h1_measure":"none",
"code":"17px",
"json":"17px",
"widget_title":"17px"
},
"leading": {
"body":"1.7",
"head":"1.18",
"lead":"1.5",
"json":"1.6"
},
"weight": {
"display":"700",
"head":"700",
"body":"400",
"strong":"700",
"eye":"700"
},
"tracking": {
"eye":"0.14em",
"display":"-0.03em",
"body":"-0.006em",
"badge":"0.08em"
},
"layout": {
"sheet_width":"1000px",
"text_width":"880px",
"gutter":"16px",
"sheet_padding":"56px 64px 64px",
"sheet_padding_mobile":"24px 18px 40px",
"sheet_margin":"28px auto 72px",
"block_gap":"1.15em",
"widget_gap":"28px",
"grid_gap":"14px"
},
"border": {
"sheet":"0px solid",
"sheet_radius":"30px",
"widget":"1px solid",
"widget_radius":"24px",
"card_radius":"24px",
"badge_radius":"999px",
"rule":"1px solid",
"code_radius":"18px",
"accent_bar":"3px"
},
"shadow": {
"sheet":"0 1px 1px rgba(0,0,0,.02),0 6px 26px rgba(0,0,0,.05)",
"widget":"none",
"card_hover":"0 10px 28px -16px rgba(28,27,23,0.35)"
},
"motion": {
"hover":"160ms ease"
}
}
},
"page":"http://google-preview.miscsubjects.com/a/proof-of-coverage",
"json":"http://google-preview.miscsubjects.com/a/proof-of-coverage.json",
"markdown":"http://google-preview.miscsubjects.com/a/proof-of-coverage.md",
"theme":"http://google-preview.miscsubjects.com/article-theme.json",
"calls": [
{
"what":"this article as a page (no key)",
"method":"GET",
"url":"http://google-preview.miscsubjects.com/a/proof-of-coverage",
"headers": {}
},
{
"what":"this article as its object (no key)",
"method":"GET",
"url":"http://google-preview.miscsubjects.com/a/proof-of-coverage.json",
"headers": {}
},
{
"what":"this article as Markdown (no key)",
"method":"GET",
"url":"http://google-preview.miscsubjects.com/a/proof-of-coverage.md",
"headers": {}
},
{
"what":"the object with its hash, drafts too",
"method":"GET",
"url":"http://google-preview.miscsubjects.com/api/jarticles/proof-of-coverage",
"headers": {
"x-sheets-key":"$(cat /Users/cyrusmassoumi/.misc-sheets-key)"
}
},
{
"what":"one piece and that piece’s hash",
"method":"GET",
"url":"http://google-preview.miscsubjects.com/api/jarticles/proof-of-coverage/at?path=facts",
"headers": {
"x-sheets-key":"$(cat /Users/cyrusmassoumi/.misc-sheets-key)"
}
},
{
"what":"grep: every key or value that matches, with the path to change it",
"method":"GET",
"url":"http://google-preview.miscsubjects.com/api/jarticles/proof-of-coverage/grep?q=owner",
"headers": {
"x-sheets-key":"$(cat /Users/cyrusmassoumi/.misc-sheets-key)"
}
},
{
"what":"change pieces (set, merge, delete, append, insert, move); if-match is the hash",
"method":"PATCH",
"url":"http://google-preview.miscsubjects.com/api/jarticles/proof-of-coverage",
"headers": {
"x-sheets-key":"$(cat /Users/cyrusmassoumi/.misc-sheets-key)",
"content-type":"application/json",
"if-match":"<hash from the read>"
},
"body": {
"ops": [
{
"op":"set",
"path":"facts.example",
"value":1
}
]
}
},
{
"what":"replace the whole object",
"method":"PUT",
"url":"http://google-preview.miscsubjects.com/api/jarticles/proof-of-coverage",
"headers": {
"x-sheets-key":"$(cat /Users/cyrusmassoumi/.misc-sheets-key)",
"content-type":"application/json",
"if-match":"<hash>"
},
"body": {
"slug":"proof-of-coverage",
"title":"…"
}
},
{
"what":"fetch every source, hash what came back and check the quote is in it",
"method":"POST",
"url":"http://google-preview.miscsubjects.com/api/jarticles/proof-of-coverage/verify",
"headers": {
"x-sheets-key":"$(cat /Users/cyrusmassoumi/.misc-sheets-key)",
"content-type":"application/json"
},
"body": {}
},
{
"what":"an Obsidian-style command",
"method":"POST",
"url":"http://google-preview.miscsubjects.com/api/jarticles/cli",
"headers": {
"x-sheets-key":"$(cat /Users/cyrusmassoumi/.misc-sheets-key)",
"content-type":"application/json"
},
"body": {
"command":"backlinks",
"file":"proof-of-coverage"
}
}
]
}