THE FINALS CARD · are these the finals? the pair read together
WAKES WHEN a theme and its twin are about to ship, or someone asks whether these files are the finals
THE LOOP
check --theme --twin --products --register
every line AGREE or DISAGREE
mend what disagrees; read again
receipt <files> · bytes and hashes
FINALS: hand them over together
NEVER
Ship a pair whose build lines differ
Pass a Liquid file over the 256 KB line
Count a view with no template as a room
IT MAKES check — every line AGREE or DISAGREE; FINALS or NOT THE FINALS; receipt — the files handed over: bytes and SHA-256, one line each, the build line read where there is one; read — one file read alone: its build line, its folders and counts, its largest Liquid files, or its views.
THE STANDARD one build line; every handle has its room and its view; every view has its template; the 256 KB line is the platform's, not ours; seven folders and nothing else; the receipt is the hand-over.
PROOF SELFTEST 10/10 · witnessed in Claude 2026-10-10 · 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 · 8B182FE671FB63ADED3B2534
CITE THIS CARDTHE FINALS CARD, Edition 1. Lund Studio LLC, Westminster, Colorado. https://lundr.tech/?view=finals-card. Punch 8B182FE671FB63ADED3B2534. Retrieved 2026-10-10.
What it is.
Reads a theme hand-over against itself before it ships: the build line in the theme's settings, in the viewing twin and at the head of the register must name the same build; every handle on the products sheet must have its room in the theme and its view in the twin; every view in the twin must have its template; no Liquid file may stand over the platform's 256 KB line; the zip must hold the seven theme folders and no path that climbs. Every line AGREE or DISAGREE, then FINALS or NOT THE FINALS; and a receipt of the files handed over with their bytes and hashes.
It carries a machine that shows its working: check — every line AGREE or DISAGREE; FINALS or NOT THE FINALS; receipt — the files handed over: bytes and SHA-256, one line each, the build line read where there is one; read — one file read alone: its build line, its folders and counts, its largest Liquid files, or its views — 10 checks in its selftest, every command on the record. It will never ship a pair whose build lines differ; never pass a Liquid file over the 256 KB line; never count a view with no template as a room.
Six laws, written into the card.
They are in the card itself, so the AI follows them.
ONE BUILD LINEThe theme's settings, the twin's foot and the register's head say the same build, or the pair is not the finals.
EVERY HANDLE HAS ITS ROOM AND ITS VIEWA handle on the sheet with no template in the theme, or no view in the twin, is named.
EVERY VIEW HAS ITS TEMPLATEA twin that shows a room the theme does not carry is a twin of another theme.
THE 256 KB LINE IS THE PLATFORM'S, NOT OURSA Liquid file over it is named with its size; the largest is reported even when every file is under.
SEVEN FOLDERS AND NOTHING ELSESeven folders and nothing else, and no path that climbs out of the zip.
THE RECEIPT IS THE HAND-OVEREvery file with its bytes and its SHA-256, and the build line read where there is one, on one sheet the receiver can check.
What rides in the card.
In the card’s own voice, with a machine that shows its working.
THE GUIDEreferences/WHAT-A-HAND-OVER-IS.md
THE MACHINEfinals.py · three commandscheck — every line AGREE or DISAGREE; FINALS or NOT THE FINALS; receipt — the files handed over: bytes and SHA-256, one line each, the build line read where there is one; read — one file read alone: its build line, its folders and counts, its largest Liquid files, or its views. 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.
check Every line AGREE or DISAGREE; FINALS or NOT THE FINALS
receipt The files handed over: bytes and SHA-256, one line each, the build line read where there is one
read One file read alone: its build line, its folders and counts, its largest Liquid files, or its views
On the record A pair that agrees on every line read FINALS; the same pair with its twin one build behind read NOT THE FINALS on the twin's line; the receipt listed the four files with their bytes, hashes and build lines.
What it will never do.
It will never ship a pair whose build lines differ; never pass a Liquid file over the 256 KB line; never count a view with no template as a room.
The finals are read by form: build lines, handles, templates, sizes, folders. The card does not render a page, run a store or know whether a room is right; it knows whether the files agree with each other. The twin's build line is read from its words ("build <version> · <name>"); a twin written another way reads as having none. 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-HAND-OVER-IS.md — the guide in references/, in the card's own voice
scripts/finals.py — the machine: check · receipt · read, 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 · 3 COMMANDS ON THE RECORD · WITNESSED IN CLAUDE 2026-10-10 · EDITION 1 · PUNCH 8B182FE671FB63ADED3B2534
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º 1083 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-10
finals.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.
check
every line AGREE or DISAGREE; FINALS or NOT THE FINALS
receipt
the files handed over: bytes and SHA-256, one line each, the build line read where there is one
read
one file read alone: its build line, its folders and counts, its largest Liquid files, or its views
selftest
10 checks that prove the machine; it must print 10/10
(a small theme zip, its twin, a products sheet and a register written, all on build 12.0.1)
$ (a small theme zip, its twin, a products sheet and a register written, all on build 12.0.1)
check · EVERY LINE AGREE OR DISAGREE; FINALS OR NOT THE FINALS
$ python3 scripts/finals.py check --theme theme.zip --twin twin.html --products products.csv --register register.md
the theme's build line AGREE · 12.0.1.0 · Lundr 12.0.1 · THE FIXTURE
the twin's build line AGREE · build 12.0.1 · THE FIXTURE
the register's head AGREE · theme 12.0.1
the theme's folders AGREE · assets, config, layout, locales, sections, snippets, templates
the 256 KB line AGREE · every Liquid file under it · the largest snippets/big.liquid at 1,000 bytes
the sheet's handles · rooms AGREE · 2 handles · every one has its room
the sheet's handles · views AGREE · every one has its view
the twin's views · templates AGREE · 2 views · every one has its template
the counts AGREE · 12 files in the theme · 2 templates · 2 views in the twin
FINALS · these are the finals; hand them over together
(the same pair written again with the twin one build behind)
$ (the same pair written again with the twin one build behind)
check · EVERY LINE AGREE OR DISAGREE; FINALS OR NOT THE FINALS
$ python3 scripts/finals.py check --theme old/theme.zip --twin old/twin.html --products old/products.csv
the theme's build line AGREE · 12.0.1.0 · Lundr 12.0.1 · THE FIXTURE
the twin's build line DISAGREE · build 12.0.0 · THE FIXTURE
the theme's folders AGREE · assets, config, layout, locales, sections, snippets, templates
the 256 KB line AGREE · every Liquid file under it · the largest snippets/big.liquid at 1,000 bytes
the sheet's handles · rooms AGREE · 2 handles · every one has its room
the sheet's handles · views AGREE · every one has its view
the twin's views · templates AGREE · 2 views · every one has its template
the counts AGREE · 12 files in the theme · 2 templates · 2 views in the twin
NOT THE FINALS · not yet; mend the lines that disagree and read again
read · ONE FILE READ ALONE: ITS BUILD LINE, ITS FOLDERS AND COUNTS, ITS LARGEST LIQUID FILES, O
$ python3 scripts/finals.py read theme.zip
build line · 12.0.1.0 · Lundr 12.0.1 · THE FIXTURE
files · 12 · templates · 2 · folders · assets, config, layout, locales, sections, snippets, templates
largest Liquid · snippets/big.liquid (1,000) · templates/index.a-card.liquid (44) · templates/index.b-card.liquid (44)
over the 256 KB line · none
read · ONE FILE READ ALONE: ITS BUILD LINE, ITS FOLDERS AND COUNTS, ITS LARGEST LIQUID FILES, O
$ python3 scripts/finals.py read twin.html
build line · build 12.0.1 · THE FIXTURE
bytes · 162 · views · 2
first views · a-card, b-card
receipt · THE FILES HANDED OVER: BYTES AND SHA-256, ONE LINE EACH, THE BUILD LINE READ WHERE THERE
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?
Check --theme --twin --products --register. It asks first for the theme zip and the twin, and the products sheet and the register when there are any.
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. The finals are read by form: build lines, handles, templates, sizes, folders. The card does not render a page, run a store or know whether a room is right; it knows whether the files agree with each other. The twin's build line is read from its words ("build <version> · <name>"); a twin written another way reads as having none.
What will it never do?
It will never ship a pair whose build lines differ; never pass a Liquid file over the 256 KB line; never count a view with no template as a room.