THE GROUNDING CARD · does the answer stand on its sources?
WAKES WHEN someone tests a RAG or document-answering system, or asks whether the AI made it up
THE LOOP
pack the real documents, fingerprinted
30–100 real questions; a third uncovered
grounding.py check · one answer, all flags
score · the set, rates with intervals
fix sources first, then prompt, then model
NEVER
Count a WEAK sentence as supported
Pass an answer with an invented citation
Build the set from questions nobody asked
IT MAKES new — a starter set: question, sources, expected answer or abstain; pack — every .txt and .md in a folder as sources, fingerprinted; check — one answer against its sources, sentence by sentence; score — groundedness, citation precision and abstention across a set, with intervals.
THE STANDARD a claim stands on a source or it does not stand; an invented citation is the worst failure; numbers are checked exactly; support is lexical, and said so; abstaining is an answer; fix in order.
PROOF SELFTEST 14/14 · witnessed in Claude 2026-10-09 · Edition 1.
THE SEAL 98 of 100 · LEGENDARY · WITNESSED · Trigger 5 · Machinery 5 · Law 5 · Portability 5 · Proof 5
IT CAN BE WRONG an AI reading a text file: it can be wrong and can invent a number, a rule, a name or a date; check what matters against your own records and the source; the risk is yours. THE-CLAUSES.md rides in the packet and is part of the licence.
THE PUNCH · SHA-256 OF SKILL.MD · 05CE31BE26F850146B1AB6F1
CITE THIS CARDTHE GROUNDING CARD, Edition 1. Lund Studio LLC, Westminster, Colorado. https://lundr.tech/?view=grounding-card. Punch 05CE31BE26F850146B1AB6F1. Retrieved 2026-10-10.
What it is.
Checks whether answers from a retrieval-backed AI system actually stand on the sources they were given: sentence by sentence, it finds claims with no citation, citations to sources that do not exist, numbers that are not in the cited source, weakly supported sentences, answers that should have abstained and abstentions that should have answered — one answer at a time or a whole set with pass rates and 95% intervals — and packs a folder of documents into fingerprinted sources.
It carries a machine that shows its working: new — a starter set: question, sources, expected answer or abstain; pack — every .txt and .md in a folder as sources, fingerprinted; check — one answer against its sources, sentence by sentence; score — groundedness, citation precision and abstention across a set, with intervals — 14 checks in its selftest, every command on the record. It will never count a WEAK sentence as supported; never pass an answer with an invented citation; never build the set from questions nobody asked.
Six laws, written into the card.
They are in the card itself, so the AI follows them.
A CLAIM STANDS ON A SOURCE OR IT DOES NOT STANDEvery sentence that says something cites one; the machine names the ones that do not.
AN INVENTED CITATION IS THE WORST FAILUREAn invented citation is the worst failure, because it looks like proof. BAD-CITE is fixed before anything else.
NUMBERS ARE CHECKED EXACTLYA figure in the answer appears in the cited source or the sentence fails.
SUPPORT IS LEXICAL, AND SAID SOWEAK means a person reads it: a fair paraphrase and a twist look alike to a machine.
ABSTAINING IS AN ANSWERWhen the sources do not cover the question, the right reply says so; a third of the set tests that.
FIX IN ORDERThe sources, then the instructions, then the model. Most grounding failures are retrieval failures.
What rides in the card.
In the card’s own voice, with a machine that shows its working.
THE GUIDESreferences/BUILDING-THE-SET.md · READING-A-GROUNDING-REPORT.md
THE MACHINEgrounding.py · four commandsnew — a starter set: question, sources, expected answer or abstain; pack — every .txt and .md in a folder as sources, fingerprinted; check — one answer against its sources, sentence by sentence; score — groundedness, citation precision and abstention across a set, with intervals. Every command prints its working and refuses a bad input; 14 checks in its selftest, every command on the record.
What it does once your AI has it.
new A starter set: question, sources, expected answer or abstain
pack Every .txt and .md in a folder as sources, fingerprinted
check One answer against its sources, sentence by sentence
score Groundedness, citation precision and abstention across a set, with intervals
On the record Two documents packed as fingerprinted sources; one answer that claimed 45 days where the source says 30, cited a source that was never given and left a sentence uncited — every flag named; the honest answer checked GROUNDED; and the starter set scored, with the abstention on the uncovered question counted right.
What it will never do.
It will never count a WEAK sentence as supported; never pass an answer with an invented citation; never build the set from questions nobody asked.
Lexical support is not truth: a sentence can share a source's words and twist its meaning, so WEAK flags and numbers are where a person looks first. Citations must be written as [S1]-style tags for the machine to read them. The abstention check is a phrase match. It is an AI reading a text file: it can be wrong, so check what matters against your own records and the source.
What’s in the buy.
CARD.md — the whole card: who it is, its laws, when it says no, what it carries · SKILL.md — the door your AI reads first · START-HERE.md — the first five minutes, for you
BUILDING-THE-SET.md + READING-A-GROUNDING-REPORT.md — the guides in references/, in the card's own voice
scripts/grounding.py — the machine: new · pack · check · score, standard library only, selftest 14/14
WITNESS.md + SELFTEST.md — every command on the record, as it printed · MANIFEST.md, every file hashed · AUDIT.md, the twelve checks
MY-LEDGER.md — the card's memory, on your own machine · TIN.md · LICENSE-NOTE.md · THE-CLAUSES.md · HOSTS.md
card.svg + card-machine.svg + card.json · card.html, the card as one offline file · the doors for ChatGPT, Gemini, Cursor, Claude Code and MCP hosts (rules/, system/, mcp/)
PROOF · SELFTEST 14/14 · 4 COMMANDS ON THE RECORD · WITNESSED IN CLAUDE 2026-10-09 · EDITION 1 · PUNCH 05CE31BE26F850146B1AB6F1
ON EVERY DOOR · A CARD FOR YOUR AI, A FILE FOR YOUR COMPUTER
In Claude: turn on code execution under Settings › Capabilities, then Customize › Skills › + › Create skill, and upload the zip as it is — START-HERE.md in the box walks you through it, and tells you how to keep the ledger. In ChatGPT, Gemini and the rest: a Project, a GPT or a Gem with the card’s files attached and the short door in the box pasted as its instructions. The words run anywhere an AI reads Markdown; the machines run wherever the host runs Python. Witnessed in Claude only. The host marks →
Take it.
Nº 832 PROPOSED — LAUNCHING SOON
Sold as is under the term printed. A card instructs an AI you operate; results depend on your model, your files and your judgement. Not medical, legal, tax or financial advice, never the person’s boss, and not a licence to practise. The terms →
One payment. The file is yours to keep and keeps working at its edition; new editions issued in the year after you buy reach you by email as replacement files. Tax is added at checkout where it applies. Nothing auto-renews.
A TERM, NOT A SUBSCRIPTION: NOTHING RENEWS ITSELF AND NOBODY IS CHARGED AGAIN. WHEN A TERM ENDS THE FILES STAY ON YOUR COMPUTER AND STAY READABLE — FREEZE, NOT LOSS.
THE MACHINE · IN THE OPEN · FROM THE WITNESSED RUN OF 2026-10-09
grounding.py, every command showing its working.
A small Python program, standard library only. Your AI runs it; you can too. Every block below is pasted from the card’s own WITNESS.md, as printed.
new
a starter set: question, sources, expected answer or abstain
pack
every .txt and .md in a folder as sources, fingerprinted
check
one answer against its sources, sentence by sentence
score
groundedness, citation precision and abstention across a set, with intervals
selftest
14 checks that prove the machine; it must print 14/14
new · A STARTER SET: QUESTION, SOURCES, EXPECTED ANSWER OR ABSTAIN
$ python3 scripts/grounding.py new cases.jsonl
starter set written · cases.jsonl · 3 cases · replace them with real questions and your own sources
pack · EVERY .TXT AND .MD IN A FOLDER AS SOURCES, FINGERPRINTED
check · ONE ANSWER AGAINST ITS SOURCES, SENTENCE BY SENTENCE
$ python3 scripts/grounding.py check answer-bad.json
GROUNDING · answer-bad.json · NOT GROUNDED
sentences 3 · supported 1 · weak 2 · uncited 1 · citations 2 (1 resolve)
NUMBER-NOT-IN-SOURCE s1 · 45 — not in S1
BAD-CITE s2 · [S3] names no source given; the sources are S1, S2
WEAK s2 · support 0% of the sentence's words in the sources: Our couriers collect it free .
UNCITED s3 · Exchanges are offered within 60 days.
check · ONE ANSWER AGAINST ITS SOURCES, SENTENCE BY SENTENCE
score · GROUNDEDNESS, CITATION PRECISION AND ABSTENTION ACROSS A SET, WITH INTERVALS
$ python3 scripts/grounding.py score cases.jsonl answers.jsonl
GROUNDING SCORE · 3 cases
grounded cases 3/3 = 100% (95% 44–100%)
supported sentences 2/2 = 100% (95% 34–100%)
citations resolve 2/2 = 100% (95% 34–100%)
answered when it should 2/2 = 100% (95% 34–100%)
abstained when it should 1/1 = 100% (95% 21–100%)
NOTE · 3 cases is a small set: the intervals are wide; use it to find failures, not to rank versions
THE NUMBERS, NAMES AND DATES IN THESE RUNS ARE THE STUDIO’S OWN EXAMPLES, INVENTED FOR THE RECORD; NO REAL COMPANY, PERSON OR PROPERTY IS NAMED.
QUESTIONS AT THE TABLE
Asked before the wire.
What does it need from me?
Pack the real documents, fingerprinted. It asks first for the documents the system retrieves from, the real questions users asked, and the answers by case id — with which cases the sources do not cover.
Does it send anything anywhere?
No. The machine is a standard-library Python program that runs on your own computer and sends nothing anywhere; the words run wherever an AI reads Markdown. No server, no account, no key.
What is on the record?
The self-test (14/14) and every command run on real example inputs, pasted into WITNESS.md as they printed; the punch on the face is the SHA-256 of SKILL.md, so a downloaded copy can be checked against this room.
Can it be wrong?
Yes — it is an AI reading a text file. Lexical support is not truth: a sentence can share a source's words and twist its meaning, so WEAK flags and numbers are where a person looks first. Citations must be written as [S1]-style tags for the machine to read them. The abstention check is a phrase match.
What will it never do?
It will never count a WEAK sentence as supported; never pass an answer with an invented citation; never build the set from questions nobody asked.