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

THE DISCIPLINES · Nº 1089 · EDITION 1 · LAUNCHING SOON

LUND CARDS · THE DISCIPLINESNº 1089 PROPOSED
THE APP DEVELOPMENT CARD — the LSC-1 face
THE CARD AS TEXT · FOR EYES AND FOR MACHINES

THE APP DEVELOPMENT CARD · what ships first, tried on what, and ready

WAKES WHEN an app is being scoped, tested across devices, or made ready for the store

THE LOOP

  1. scope <features.md> · the first release
  2. matrix --os --devices · the grid to try
  3. matrix --results · coverage and failures
  4. release <checklist> --platform · READY?
  5. ship the musts; plan the rest

NEVER

  • Call a release READY with a line open
  • Count an untried cell as passed
  • Grow the first release past its line

IT MAKES scope — musts, shoulds, coulds, won'ts; the first release and its days; matrix — the grid; coverage, failures, untried cells; release — every store line TICKED, OPEN or MISSING; READY or NOT READY.

THE STANDARD an app is an experience, not a feature list; every feature is tagged; untried is not passed; the stores ask their own lines; the line on the first release is the owner's; the card reads lists.

IN THE BOX SKILL.md · CARD.md · TIN.md · START-HERE.md · LICENSE-NOTE.md · THE-CLAUSES.md · MY-LEDGER.md · WITNESS.md · SELFTEST.md · AUDIT.md · MANIFEST.md · HOSTS.md · scripts/appdev.py · references/THE-DISCIPLINE.md · rules/ (4 doors) · system/ (2 prompts) · mcp/mcp_card.py · card.json · card.svg · card-machine.svg · card.html.

PROOF SELFTEST 9/9 · 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 · 611D260B5D7D9F7B0C070DDA

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

THE APP DEVELOPMENT CARD

what ships first, tried on what, and ready

SCOPE · MATRIX · RELEASE

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 →

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

SEAL
98 of 100 · LEGENDARY · WITNESSED
EDITION
E1 · witnessed 2026-10-10
MACHINE
scripts/appdev.py · 3 commands · selftest 9/9
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
611D260B5D7D9F7B0C070DDA · sha-256 of SKILL.md · check any file against it →

CITE THIS CARDTHE APP DEVELOPMENT CARD, Edition 1. Lund Studio LLC, Westminster, Colorado. https://lundr.tech/?view=app-development-card. Punch 611D260B5D7D9F7B0C070DDA. Retrieved 2026-10-10.

What it is.

Keeps an app project honest from scope to store: scope reads a feature list tagged M, S, C or W (must, should, could, won't) into the first release — the musts and their days — and names untagged features, features written twice and a first release with more musts than the line; matrix lays out the test grid of operating systems by devices and, with a results file (os, device, flow, result), names every failed flow, every untried cell and a result off the grid, with coverage; release reads a release checklist against what the stores ask for on iOS, Android or both — version, build number, privacy policy, icons, screenshots, release notes, the oldest supported system, crash reporting, a review account, privacy labels or the data safety form — and says READY only when every line is there and ticked.

It carries a machine that shows its working: scope — musts, shoulds, coulds, won'ts; the first release and its days; matrix — the grid; coverage, failures, untried cells; release — every store line TICKED, OPEN or MISSING; READY or NOT READY — 9 checks in its selftest, every command on the record. It will never call a release READY with a line open; never count an untried cell as passed; never grow the first release past its line.

Six laws, written into the card.

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

AN APP IS AN EXPERIENCE, NOT A FEATURE LISTThe first release is the musts — what solves the user's problem — and the card counts them and their days.
EVERY FEATURE IS TAGGEDMust, should, could or won't; an untagged feature is named, and a won't stays written down as a won't.
UNTRIED IS NOT PASSEDThe grid names every cell no one has tried, and a failed flow stays on its cell until it passes.
THE STORES ASK THEIR OWN LINESiOS and Android each have theirs; READY means every line found and ticked, on every platform asked.
THE LINE ON THE FIRST RELEASE IS THE OWNER'STwelve musts by default; more is named as over-scoped, not refused.
THE CARD READS LISTSIt does not build, sign or submit an app, and it never holds a signing key.

What rides in the card.

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

THE GUIDEreferences/THE-DISCIPLINE.md
THE MACHINEappdev.py · three commandsscope — musts, shoulds, coulds, won'ts; the first release and its days; matrix — the grid; coverage, failures, untried cells; release — every store line TICKED, OPEN or MISSING; READY or NOT READY. Every command prints its working and refuses a bad input; 9 checks in its selftest, every command on the record.

What it does once your AI has it.

  • scope Musts, shoulds, coulds, won'ts; the first release and its days
  • matrix The grid; coverage, failures, untried cells
  • release Every store line TICKED, OPEN or MISSING; READY or NOT READY
  • On the record The feature list read into a first release of three musts and nine days, the untagged feature named; the test grid laid out, then read with results — one failed flow and two untried cells named; the release list read NOT READY on an open screenshots line and a missing export-compliance line.

What it will never do.

It will never call a release READY with a line open; never count an untried cell as passed; never grow the first release past its line.

The store lines are the common ones and the stores change their asks; read the store's own current list before submitting, and add its lines to the checklist. The grid knows only the results typed into it. Effort is the team's estimate in days; the card sums it and does not judge it. 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
  • THE-DISCIPLINE.md — the guide in references/, in the card's own voice
  • scripts/appdev.py — the machine: scope · matrix · release, standard library only, selftest 9/9
  • 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 9/9 · 3 COMMANDS ON THE RECORD · WITNESSED IN CLAUDE 2026-10-10 · EDITION 1 · PUNCH 611D260B5D7D9F7B0C070DDA

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º 1089 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 · 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 WITNESSED RUN OF 2026-10-10

appdev.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.

scopemusts, shoulds, coulds, won'ts; the first release and its days
matrixthe grid; coverage, failures, untried cells
releaseevery store line TICKED, OPEN or MISSING; READY or NOT READY
selftest9 checks that prove the machine; it must print 9/9
(a feature list written, tagged by MoSCoW, one left untagged)
$ (a feature list written, tagged by MoSCoW, one left untagged)
scope · MUSTS, SHOULDS, COULDS, WON'TS; THE FIRST RELEASE AND ITS DAYS
$ python3 scripts/appdev.py scope features.md
MUST     3  · Sign in with email 2d · Order list 3d · Pre-order by noon 4d
SHOULD   1  · Push reminders 1.5d
COULD    1  · Dark mode
WON'T    1  · Chat
the first release: 3 musts · 9 days written
UNTAGGED · line 8 · Loyalty points — mark it M, S, C or W
matrix · THE GRID; COVERAGE, FAILURES, UNTRIED CELLS
$ python3 scripts/appdev.py matrix --os iOS 17,iOS 18,Android 14 --devices small phone,large phone
            small phone     large phone     
iOS 17      —               —               
iOS 18      —               —               
Android 14  —               —               
6 cells to try · write results as os,device,flow,result and read them with --results
(results written for four cells)
$ (results written for four cells)
matrix · THE GRID; COVERAGE, FAILURES, UNTRIED CELLS
$ python3 scripts/appdev.py matrix --os iOS 17,iOS 18,Android 14 --devices small phone,large phone --results results.csv
            small phone     large phone     
iOS 17      PASS 1          —               
iOS 18      PASS 1          PASS 1          
Android 14  FAIL 1/1        —               
FAIL · Android 14 · small phone · checkout
coverage 4 of 6 cells (67%) · 1 failed flow · untried: iOS 17/large phone, Android 14/large phone
(a release checklist written)
$ (a release checklist written)
release · EVERY STORE LINE TICKED, OPEN OR MISSING; READY OR NOT READY
$ python3 scripts/appdev.py release checklist.md --platform ios
TICKED   version · Version bumped to 1.0
TICKED   build number · Build number 12
TICKED   privacy policy · Privacy policy link
TICKED   app icon · App icon all sizes
OPEN     screenshots · Screenshots for each phone size
TICKED   release notes · Release notes
TICKED   tested on the oldest supported system · Tested on the minimum OS
TICKED   crash reporting · Crash reporting on
TICKED   a review account · Demo account for review
TICKED   privacy labels · App privacy labels
MISSING  export compliance
NOT READY · 9 of 11 lines ticked

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?

Scope <features.md> · the first release. It asks first for the feature list, the systems and devices the app supports, and the release checklist.

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 (9/9) 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 store lines are the common ones and the stores change their asks; read the store's own current list before submitting, and add its lines to the checklist. The grid knows only the results typed into it. Effort is the team's estimate in days; the card sums it and does not judge it.

What will it never do?

It will never call a release READY with a line open; never count an untried cell as passed; never grow the first release past its line.

← THE DISCIPLINES · 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