Catch us at Boulderthon · Booth 115Lost Lauren, contact us

LUND CARDS · THE INSTRUMENTS

LUND CARDS · THE INSTRUMENTSNº 079 · PROPOSED
THE MIGRATION CARD — the LSC-1 face, front
THE CARD AS TEXT · FOR EYES AND FOR MACHINES

THE MIGRATION CARD · the rollback written first, the counts before and after

WAKES WHEN a migration is about to run

THE LOOP

  1. Name the card; point it at the repo, the log, the spec or the page
  2. Run the machine: migration.py
  3. Read the result: PASS or every fault by name
  4. Fix what was named; run again until PASS
  5. Write the ledger line: built · failed · next

NEVER

  • Refuse work outside this card's seat and hand it to its sibling: THE TEST-FIRST CARD
  • Refuse to invent proof, prices, quotes or numbers
  • Refuse anything that builds against the studio's sealed methods
  • Refuse a migration that has no rollback

IN THE BOX

  • scripts/migration.py
  • CARD.md
  • LICENSE-NOTE.md
  • MY-LEDGER.md
  • SKILL.md
  • TIN.md

PROOF SELFTEST 3/3 · A TRUE ROLLBACK PASSES WITH THE COUNTS PRINTED; A ROLLBACK THAT LOSES ROWS

THE PUNCH · SHA-256 OF SKILL.MD · AFD441676C155A14A9A54F0A

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

THE MIGRATION CARD

the rollback written first, the counts before and after

THE ROLLBACK FIRST · THE COUNTS · THE COPY

98LEGENDARYWITNESSEDIN 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 →

What it is.

No migration is accepted without a rollback that provably returns the schema. migration.py refuses a migration with no down script before anything runs; then applies up and down on a copy of the database and prints the row counts before, after up and after down — a rollback that loses rows or leaves the schema changed is named, never assumed. The card carries migration.py with a selftest.

the check runs on SQLite copies; for other engines the card names what it could not copy rather than pretending it ran Refuses: Refuse a migration that has no rollback. Refuse to pass a rollback that loses rows or leaves the schema changed.

What’s in the buy.

  • scripts/migration.py — the machine, with its selftest
  • CARD.md + SKILL.md · TIN · LICENCE + LEDGER · MANIFEST, every file hashed · the two faces, card.json, card.html

PROOF · SELFTEST 3/3 · A TRUE ROLLBACK PASSES WITH THE COUNTS PRINTED; A ROLLBACK THAT LOSES ROWS REFUSED BY THE COUNT; NO ROLLBACK REFUSED BEFORE ANYTHING RUNS · 2026-09-09 · PUNCH AFD441676C155A14A9A54F0A

ON EVERY DOOR · A CARD FOR YOUR AI, A FILE FOR YOUR COMPUTER

This card is an Agent Skill on the open standard: the same folder loads unmodified in Claude, ChatGPT and Codex, Copilot and VS Code, Cursor, Gemini CLI, Goose, OpenCode and the rest of the showcase. Its words are Markdown, so any chat with an instructions box holds them, any local model runs them offline, and any MCP client can load them — THE UNIVERSAL CUT: a pasteable system card, the rules-file family, an Ollama Modelfile, an MCP server, all cut from this card’s own SKILL.md by THE CARD FORGE. The universal cut is in this card’s box. And card.html — the card as one file for your computer: both faces, the tin, the words, every door; offline, in any browser. The machines aboard run wherever the host can run Python; the words run everywhere. The host marks →

Take it.

Nº 079 · 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 legal, tax, medical or financial advice. The terms →

LAUNCHING SOON

THE TERM LADDER · PICK YOUR WINDOW

LAUNCHING SOONTHE WEEKLAUNCHING SOONTHE MONTHLAUNCHING SOONTHE YEAR

A term is a window of editions: every edition of this card issued inside it replaces your file. When the window closes, the file you hold keeps working — freeze, not loss. Nothing auto-renews; come back and take another term when you want the next editions.

LAUNCHING SOON.

← ALL THE CARDS · THE DECK

GOES WITH

CART · 0