THE INTRO CARD is free — what an AI skill card is and how to use one Download →Lost Lauren, contact us

THE INSTRUMENTS · Nº 1240 · EDITION 1 · LAUNCHING SOON

LUND CARDS · THE INSTRUMENTSNº 1240
THE RELEASE READOUT — the LSC-1 face
THE CARD AS TEXT · FOR EYES AND FOR MACHINES

THE RELEASE READOUT · the release readout · every page, every screen, read before it goes live

WAKES WHEN a client's site or landing page is about to launch or be handed over, or someone asks for a pre-launch QA report a client can read

THE METHOD

  1. selftest — a clean page and a broken one, served on 127.0.0.1, every planted fault found.
  2. run PAGES --out READOUT --title … --engines … — every page on every screen and engine; READOUT.html, READOUT.md, readout.json and the first screens.
  3. rules and assumptions — the fifteen rules with their criteria; the screens and thresholds with their sources and dates.
  4. The team fixes; run again on the same pages.

REFUSES

  • A readout of pages not read through the machine
  • Calling an engine checked when it was NOT ABOARD
  • Calling the readout an accessibility audit or a conformance claim
  • Rounding a contrast ratio up

IT MAKES run — read pages and write READOUT.html, READOUT.md, readout.json and screenshots; rules — every rule with its WCAG 2.2 criterion, severity and limit; assumptions — the screens and thresholds in force, with their sources and dates.

THE LAW Every finding comes from the browser through the machine. An engine not installed is NOT ABOARD: said first, never a pass. The contrast ratio is computed by the WCAG formula and never rounded up. An automated first look, not an audit, a conformance claim or a legal sign-off. The report is white paper with dark ink, nothing under 14px, nothing that moves.

IN THE BOX scripts/readout.py · the thresholds with their dates · the rules · the client guide · the method by hand · the sources · ten tests.

PROOF selftest 30/30; a three-page site read on three screens, with every finding tied to its criterion, and the trigger test, on the record (WITNESS.md) · witnessed 2026-10-13 · EDITION 1.

THE SEAL 88 of 100 · MYTHIC · WITNESSED · Trigger 5 · Machinery 5 · Law 5 · Portability 3 · Proof 4

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. LICENSE-NOTE.md rides in the packet and is the licence.

THE PUNCH · SHA-256 OF SKILL.MD · 9F5F1B49577DB62D895E53E4

THE FACE, FULL SIZE → · THE MACHINE FACE → · card.json →

THE RELEASE READOUT

the release readout · every page, every screen, read before it goes live

RUN · RULES · ASSUMPTIONS

88MYTHICWITNESSEDIN CLAUDEIN LUNDRIN CHATGPT

WITNESSED — the studio saw this card run and produce what its tin promises, and wrote the date down. What the marks mean →

THE SPEC SHEET · READ BEFORE YOU BUY · THE STANDARD EVERY CARD MEETS →

SEAL
88 of 100 · MYTHIC · WITNESSED
EDITION
E1 · witnessed 2026-10-13
MACHINE
scripts/readout.py · 3 commands · selftest 30/30
RUNS
On your own computer. Standard library only, offline; no account, no key, no telemetry.
HOSTS
Claude · Claude Code · ChatGPT · Gemini · any AI that reads a file (HOSTS.md names each door)
LICENCE
One person, any number of their own AIs and computers · editions replace files · nothing renews · freeze, not loss
PUNCH
9F5F1B49577DB62D895E53E4 · sha-256 of SKILL.md · check any file against it →

CITE THIS CARDTHE RELEASE READOUT, Edition 1. Lund Studio LLC, Westminster, Colorado. https://lundr.tech/?view=release-readout-card. Punch 9F5F1B49577DB62D895E53E4. Retrieved 2026-10-13.

What it is.

The one report a client reads before a website goes live. Every page is opened in a real browser engine on a phone, a tablet and a desktop screen and read for:

Use it whenever a client's site or landing page is about to launch or be handed over, or someone asks for a pre-launch QA report a client can read. Not for a full accessibility audit (THE ACCESSIBILITY CARD), the studio's shipping gate (THE ARMADA CARD), Safari or a real iPhone (THE ENGINE ROOM), spacing (THE PADDING CARD).

It carries a machine that shows its working: run — read pages and write READOUT.html, READOUT.md, readout.json and screenshots; rules — every rule with its WCAG 2.2 criterion, severity and limit; assumptions — the screens and thresholds in force, with their sources and dates — 30 checks in its selftest.

It answers requests such as “the client's site launches Friday: give me a QA report they can read”, “check the landing page on phone, tablet and desktop before we hand it over”, “write the pre-launch readout for these five pages”, “does the new site have faint text, missing alt text or broken files?”.

Five laws, written into the card.

They are in the card itself, so the AI follows them.

EVERY FINDING COMES FROM THE BROWSER…Every finding comes from the browser through the machine.
AN ENGINE NOT INSTALLED IS NOT ABOARD: SAID FIRSTAn engine not installed is NOT ABOARD: said first, never a pass.
THE CONTRAST RATIO IS COMPUTED BY…The contrast ratio is computed by the WCAG formula and never rounded up.
AN AUTOMATED FIRST LOOKAn automated first look, not an audit, a conformance claim or a legal sign-off.
THE REPORT IS WHITE PAPER WITH DARK INKThe report is white paper with dark ink, nothing under 14px, nothing that moves.

The method.

  1. selftest — a clean page and a broken one, served on 127.0.0.1, every planted fault found.
  2. run PAGES --out READOUT --title … --engines … — every page on every screen and engine; READOUT.html, READOUT.md, readout.json and the first screens.
  3. rules and assumptions — the fifteen rules with their criteria; the screens and thresholds with their sources and dates.
  4. The team fixes; run again on the same pages.

What rides in the card.

In the card’s own voice, with a machine that shows its working.

THE REFERENCESreferences/READING-THE-READOUT.md · SOURCES.md · THE-METHOD.md · THE-RULES.md
THE MACHINEscripts/readout.py · three commandsrun — read pages and write READOUT.html, READOUT.md, readout.json and screenshots; rules — every rule with its WCAG 2.2 criterion, severity and limit; assumptions — the screens and thresholds in force, with their sources and dates. 30 checks in its selftest. Needs: Python 3, Playwright for Python and at least one browser engine; the pages as addresses or files.

What it does once your AI has it.

  • run Read pages and write READOUT.html, READOUT.md, readout.json and screenshots
  • rules Every rule with its WCAG 2.2 criterion, severity and limit
  • assumptions The screens and thresholds in force, with their sources and dates
  • On the record Example Co's three-page site read on phone, tablet and desk in Chromium: one page READY, two NOT READY, thirteen fixes tied to their criteria; 40 of 40 in the trigger test

What it refuses, and where it hands off.

It refuses a readout of pages not read through the machine; calling an engine checked when it was NOT ABOARD; calling the readout an accessibility audit or a conformance claim; rounding a contrast ratio up.

  • a full accessibility audit with fixes → THE ACCESSIBILITY CARD
  • the studio's own shipping gate → THE ARMADA CARD
  • Safari itself or a real iPhone → THE ENGINE ROOM
  • spacing fixes → THE PADDING CARD
  • plain-language edits of the words → THE PLAIN WORDS CARD
  • whether a law requires accessibility → a lawyer

An automated first look, not an audit or a legal sign-off; an engine not installed is NOT ABOARD, never a pass. 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: its boot, law, method, machine, seals, refusals and hand-offs, ledger, score and what it carries · SKILL.md — the door your AI reads first · START-HERE.md — the first five minutes, for you
  • READING-THE-READOUT.md + SOURCES.md + THE-METHOD.md + THE-RULES.md — in references/, in the card's own voice
  • scripts/readout.py — the machine: run · rules · assumptions; see NEEDS below; selftest 30/30
  • WITNESS.md — the run on a realistic case as printed, and the trigger test on Haiku, Sonnet and Opus · SELFTEST.md — the machine's own test, as run at the cut · AUDIT.md, the twelve checks · MANIFEST.md, every file hashed
  • tests/evals.json — the cases it must take, hand off and refuse
  • MY-LEDGER.md — the card's memory, on your own machine · TIN.md, the nine lines on the tin · LICENSE-NOTE.md · HOSTS.md, where it runs
  • system/short-prompt.md and system/system-prompt.md — the doors for any AI without skills

PROOF · SELFTEST 30/30 · WITNESSED ON A RUN · TRIGGER TEST 40 OF 40 ON ITS OWN PROMPTS · HAIKU 16/16 · SONNET 16/16 · OPUS 8/8 · 0 WRONG PICKS · EDITION 1 · PUNCH 9F5F1B49577DB62D895E53E4

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º 1240 — 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 · NOTHING RENEWS ITSELF

OFFLINE · ONE LICENCE · PUNCH-CHECKABLE · THE STANDARD

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.

One email when it is on sale, from the studio; nothing else, ever.

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 CARD’S OWN WITNESS.MD AND SELFTEST.MD

readout.py, every command showing its working.

A small Python program. Your AI runs it; you can too. The blocks below are pasted from the card’s own record, as printed.

runread pages and write READOUT.html, READOUT.md, readout.json and screenshots
rulesevery rule with its WCAG 2.2 criterion, severity and limit
assumptionsthe screens and thresholds in force, with their sources and dates
selftest30 checks that prove the machine; it must print 30/30
python3 scripts/readout.py run site --out READOUT --engines chromium --title "Example Co · the spring site" | sed -n '16,60p'
chromium  ABOARD · version 141.0.7390.37
chromium  phone   site/about.html                          READY             fix 0 · should 0 · notes 0
chromium  phone   site/contact.html                        NOT READY         fix 2 · should 1 · notes 1
chromium  phone   site/index.html                          NOT READY         fix 7 · should 3 · notes 0
chromium  tablet  site/about.html                          READY             fix 0 · should 0 · notes 0
chromium  tablet  site/contact.html                        NOT READY         fix 2 · should 0 · notes 1
chromium  tablet  site/index.html                          NOT READY         fix 7 · should 2 · notes 0
chromium  desk    site/about.html                          READY             fix 0 · should 0 · notes 0
chromium  desk    site/contact.html                        NOT READY         fix 2 · should 0 · notes 1
chromium  desk    site/index.html                          NOT READY         fix 6 · should 2 · notes 0

VERDICTS
  READY             site/about.html · Nothing found by these rules, read in Chromium.
  NOT READY         site/contact.html · 2 things to fix before release, 1 to fix soon, 1 note, read in Chromium.
  NOT READY         site/index.html · 7 things to fix before release, 3 to fix soon, read in Chromium.
TOP FIXES
  1. [Fix before release] 3 buttons or links have no name (button.menu; a[href=https://example.com/social/1]). Give each one words, or an aria-label, that say what it does.
  2. [Fix before release] 2 files the pages ask for are missing or failing (logo.png: net::ERR_FILE_NOT_FOUND; analytics.js: net::ERR_FILE_NOT_FOUND). Upload them, fix the address, or remove the reference.
  3. [Fix before release] Scripts crash on site/index.html (script: Cannot set properties of null (setting 'textContent')). Something on the page is probably not working: the developer should fix the error shown.
  4. [Fix before release] site/index.html scrolls sideways on the phone and tablet screens (div.wide: reaches 1200px; the page is laid out 390px wide; div.wide: reaches 1200px; the page is laid out 820px wide). Something is wider than the screen: make it fit.
  5. [Fix before release] 1 piece of text is too faint against its background (p.sub: 2.81:1 (needs 4.5:1) · #9A9A9A on #FFFFFF · 18px · Baked overnight in small batches and delivered bef). Darken the text or lighten the background until it reaches 4.5:1 (3:1 for large text).
  6. [Fix before release] 1 image has no text alternative (img[logo.png]). Add alt text that says what each image shows, or an empty alt if it is only decoration.
  7. [Fix before release] site/index.html does not say what language it is in. Add lang="en" (or the right language) to the html tag.
  8. [Fix before release] site/contact.html has no mobile viewport tag that works (meta viewport: blocks zoom: width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no). Without one a phone draws the page at desktop width and shrinks it; a tag that blocks zoom stops people enlarging the text. Use meta name="viewport" content="width=device-width, initial-scale=1".
  9. [Fix before release] Keyboard users cannot see where they are on 1 control (button: nothing changes when it takes the focus · Send). Add a visible focus style: an outline is enough.
  10. [Should fix] 7 controls on the phone are smaller than 44x44px (input#name: 304x42 px; input[email]: 304x42 px). Make them bigger, or give them more padding, so a thumb can hit them.
  11. [Should fix] 1 piece of text is smaller than 14px (p: 12px · Example Co Bakery · example.com). Make reading text at least 14px; 16px or more is better.
  12. [Should fix] Headings skip levels on site/index.html (h3: level 3 after level 1 · How it works). Use the next level down so the outline reads in order.
  13. [Note] 1 form field is named only by its placeholder (input[email]: named only by its placeholder: Email address), which disappears as the visitor types. A visible label is better.
wrote READOUT.html, READOUT.md, readout.json and 9 screenshots in READOUT
formula · contrast = (L1 + 0.05) / (L2 + 0.05), L1 the lighter colour; L = 0.2126 R + 0.7152 G + 0.0722 B, each sRGB channel c/255 taken as c/12.92 at or below 0.04045, else ((c + 0.055) / 1.055) ^ 2.4; compared unrounded, printed rounded down
source · WCAG 2.2, W3C Recommendation 12 December 2024 (w3.org/TR/WCAG22), read 2026-10-12; each rule's criterion: python3 readout.py rules
limit · an automated first look: it finds part of what can go wrong, not all of it. It cannot judge whether alt text, labels or headings say the right thing, how a screen reader reads the page, or what happens after a click. Each screen is the engine wearing that screen's size, scale and touch; it is not that device. It is not an accessibility audit or a legal sign-off.
exit 1 (a page is NOT READY)
sed -n '1,14p' READOUT/READOUT.md
# Example Co · the spring site

Read 2026-10-13 · 3 pages · screens: phone 390x844, tablet 820x1180, desk 1440x900 · engines: chromium ABOARD (141.0.7390.37)

## The verdict, page by page

| Page | Verdict | Fix before release | Should fix | Notes | In plain words |
|---|---|---|---|---|---|
| site/about.html | READY | 0 | 0 | 0 | Nothing found by these rules, read in Chromium. |
| site/contact.html | NOT READY | 2 | 1 | 1 | 2 things to fix before release, 1 to fix soon, 1 note, read in Chromium. |
| site/index.html | NOT READY | 7 | 3 | 0 | 7 things to fix before release, 3 to fix soon, read in Chromium. |

## The top fixes, in plain words
THE SELFTEST, AS PRINTED
PASS an engine that is not installed is NOT ABOARD, its pages are not checked on it, and the run is not a pass
PASS the clean page passes every rule on the phone and the desk
PASS text over a gradient is skipped and counted, never guessed
PASS a page that does not load is NOT READY, with the server's answer
PASS the broken page is NOT READY and the run exits 1
PASS a script error is found with its message
PASS a console error is found, and a missing file's echo is not counted twice
PASS a missing file is named with the server's answer
PASS sideways scroll is found on the phone and not on the desk, with what sticks out
PASS text under 14px is found with its size
PASS a missing language and a missing viewport tag are found
PASS faint text fails at 2.84:1 and at 4.47:1, never rounded up to 4.5
PASS large text between 3:1 and 4.5:1 is a note, not a failure
PASS faint words over a gradient are skipped, not failed
PASS an image without alt is found
PASS a form field without a label is found
PASS a button and a link without names are found
PASS a heading that jumps a level is found
PASS a tap target under 44x44 is found on the phone only, marked under 24x24
PASS keyboard focus that cannot be seen is found; the clean page's focus is seen on every stop tried
PASS on a page the phone draws shrunk (no viewport tag), focus is still read right: only the planted control and the empty link
PASS READOUT.html, READOUT.md, readout.json and a screenshot for every page read on every screen are written
PASS the top fixes come first for what must be fixed before release, in plain words
PASS every rule names a WCAG 2.2 criterion as verified, or says it is not a WCAG matter
PASS the report page is white paper, loads nothing from outside, never moves and sets nothing under 14px
PASS a file path is read as file:// and a missing file is named with the engine's reason
PASS the readout reads its own report: nothing under 14px, no sideways scroll, no faint text, every rule passes
PASS the same page read twice gives the same readout.json, READOUT.md and READOUT.html, byte for byte
PASS assets/readout-assumptions.json holds the built-in assumptions, value for value
PASS an assumptions file overrides one value and keeps the rest
selftest 30/30

THE TRIGGER TEST. The card's line was tried on Haiku, Sonnet and Opus beside 7 neighbouring skills, in a clean environment: 40/40 on its own prompts (Haiku 16/16 · Sonnet 16/16 · Opus 8/8), 0 wrong picks; no misses.

THE RUNS ARE PASTED FROM THE CARD’S OWN RECORD AS PRINTED. THE CASES ARE THE STUDIO’S OWN EXAMPLES (EXAMPLE CO IS FICTION); NO PRIVATE PERSON IS NAMED.

QUESTIONS AT THE TABLE

Asked before the wire.

What does it need from me?

Python 3, Playwright for Python and at least one browser engine; the pages as addresses or files.

Does it send anything anywhere?

Its machine reads what you point it at, and HOSTS.md says what it needs; python 3, Playwright for Python and at least one browser engine; the pages as addresses or files. The words run wherever an AI reads Markdown.

What is on the record?

The selftest (30/30), a run on a realistic case with every command and verdict pasted into WITNESS.md as printed (Example Co's three-page site read on phone, tablet and desk in Chromium: one page READY, two NOT READY, thirteen fixes tied to their criteria; 40 of 40 in the trigger test); and the trigger test, the card's line tried on Haiku, Sonnet and Opus beside 7 neighbouring skills: 40/40 on its own prompts, 0 wrong picks; the twelve-check audit (AUDIT.md). 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. An automated first look, not an audit or a legal sign-off; an engine not installed is NOT ABOARD, never a pass.

What will it never do?

It refuses a readout of pages not read through the machine; calling an engine checked when it was NOT ABOARD; calling the readout an accessibility audit or a conformance claim; rounding a contrast ratio up.

Who may use it?

One person, any number of their own AIs and computers; a team needs a company licence.

← THE INSTRUMENTS · THE FLOOR →

AT YOUR ELBOW, NEVER THE BOSS · NOT LEGAL, MEDICAL, TAX OR FINANCIAL ADVICE · NOT A PAYMENT CARD · © 2026 LUND STUDIO LLC

PAY BYAmerican Express Apple Pay Diners ClubDiscoverGoogle Pay Mastercard PayPalShop Pay Visa
CART · 0