THE RUN RECEIPT · what a run changed, read and sent — chained
WAKES WHEN an agent is about to work on a folder someone will audit, or a client wants the receipt
THE LOOP
receipt.py start · the folder hashed
log every read, run and send as it happens
finish · changed, added, removed, sealed
check --allow · the chain and the sends
render · the page; keep it beside the work
NEVER
Edit a log line afterwards: the chain breaks
Log a send without its destination
Call unlogged reads proven
IT MAKES start — the before-state, every file hashed; log — a chained line on the record; finish — the after-state: changed, added, removed, sealed; check — the chain holds? the changes match? the sends allowed?; render — the one-page receipt.
THE STANDARD hash before, hash after; every line chains to the last; a send names where it went; the allow list judges the sends; the receipt says what it cannot prove; finished means sealed.
PROOF SELFTEST 10/10 · 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 · 1E31429EF12E59571D658744
CITE THIS CARDTHE RUN RECEIPT, Edition 1. Lund Studio LLC, Westminster, Colorado. https://lundr.tech/?view=run-receipt-card. Punch 1E31429EF12E59571D658744. Retrieved 2026-10-10.
What it is.
Keeps a run receipt for an agent's work on a folder: hashes every file at the start, logs what the agent read, ran and sent (and where) with each line chained to the last, hashes everything again at the finish, lists what changed, appeared or vanished, and seals it; check proves the chain and judges every send against an allow list; render writes the one-page receipt a person reads.
It carries a machine that shows its working: start — the before-state, every file hashed; log — a chained line on the record; finish — the after-state: changed, added, removed, sealed; check — the chain holds? the changes match? the sends allowed?; render — the one-page receipt — 10 checks in its selftest, every command on the record. It will never edit a log line afterwards: the chain breaks; never log a send without its destination; never call unlogged reads proven.
Six laws, written into the card.
They are in the card itself, so the AI follows them.
HASH BEFORE, HASH AFTERWhat changed is a difference between two facts, never a report.
EVERY LINE CHAINS TO THE LASTA log line edited afterwards breaks every hash after it, and check says so.
A SEND NAMES WHERE IT WENTA send names where it went, or it is refused at the log.
THE ALLOW LIST JUDGES THE SENDSA destination not on it is named; no allow list given is said aloud.
THE RECEIPT SAYS WHAT IT CANNOT PROVEReads and sends that were never logged are not on it, and its last line says so.
FINISHED MEANS SEALEDNo line is added after finish; a new run is a new receipt.
What rides in the card.
In the card’s own voice, with a machine that shows its working.
THE GUIDEreferences/WHAT-A-RECEIPT-PROVES.md
THE MACHINEreceipt.py · five commandsstart — the before-state, every file hashed; log — a chained line on the record; finish — the after-state: changed, added, removed, sealed; check — the chain holds? the changes match? the sends allowed?; render — the one-page receipt. Every command prints its working and refuses a bad input; 10 checks in its selftest, every command on the record.
What it does once your AI has it.
start The before-state, every file hashed
log A chained line on the record
finish The after-state: changed, added, removed, sealed
check The chain holds? the changes match? the sends allowed?
render The one-page receipt
On the record A folder of three files hashed at start; a read, a run and a send logged in a chain; the work changed one file, added one, removed one; finish listed exactly those and sealed the receipt; check held against the right allow list and named the send against the wrong one; the one-page receipt rendered.
What it will never do.
It will never edit a log line afterwards: the chain breaks; never log a send without its destination; never call unlogged reads proven.
It proves the folder's before and after and that the log is unedited; it cannot see a read or a send the agent did not log. Hashing a very large folder takes time. For a watch from inside the process, THE OFFLINE PROOF sits beside this card. 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
WHAT-A-RECEIPT-PROVES.md — the guide in references/, in the card's own voice
scripts/receipt.py — the machine: start · log · finish · check · render, standard library only, selftest 10/10
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 10/10 · 5 COMMANDS ON THE RECORD · WITNESSED IN CLAUDE 2026-10-09 · EDITION 1 · PUNCH 1E31429EF12E59571D658744
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º 900 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
receipt.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.
start
the before-state, every file hashed
log
a chained line on the record
finish
the after-state: changed, added, removed, sealed
check
the chain holds? the changes match? the sends allowed?
render
the one-page receipt
selftest
10 checks that prove the machine; it must print 10/10
start · THE BEFORE-STATE, EVERY FILE HASHED
$ python3 scripts/receipt.py start work --out receipt.json --task mend the report and send it to the client
receipt started · 3 files hashed · receipt.json
check · THE CHAIN HOLDS? THE CHANGES MATCH? THE SENDS ALLOWED?
$ python3 scripts/receipt.py check receipt.json --allow lund.example
DOES NOT HOLD · 3 lines · 1 sends · changes {'changed': 1, 'added': 1, 'removed': 1}
sent to client.example.com, which is not on the allow list (lund.example)
render · THE ONE-PAGE RECEIPT
$ python3 scripts/receipt.py render receipt.json --out receipt.md
wrote receipt.md
head -12 receipt.md
$ head -12 receipt.md
# RECEIPT · mend the report and send it to the client
- folder: `work`
- started: 2026-10-09 14:55:15 · finished: 2026-10-09 14:55:15
- seal: `fdf25fcd473d4f5b787f87c03d7adbca7983dbdf669fab19e88af8c695531993`
## What changed
- changed: 1 · added: 1 · removed: 1
- changed `report.md` 7eb2ca55b87a → 70d97830b405
- added `summary.md` 7c96f5b19ebb
- removed `old.txt` 44ea8ede9025
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?
Receipt.py start · the folder hashed. It asks first for the folder the work happens in, the allow list of places a send may go, and the discipline to log as it happens.
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 (10/10) 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. It proves the folder's before and after and that the log is unedited; it cannot see a read or a send the agent did not log. Hashing a very large folder takes time. For a watch from inside the process, THE OFFLINE PROOF sits beside this card.
What will it never do?
It will never edit a log line afterwards: the chain breaks; never log a send without its destination; never call unlogged reads proven.