{
 "format": "LSC-1",
 "lsc": "LSC-1",
 "edition": "E1",
 "cut": "2026-10-09",
 "name": "THE APP DEVELOPMENT CARD",
 "handle": "app-development-card",
 "number": "Nº 1089",
 "house": "THE DISCIPLINES",
 "wing": "THE PRACTICES",
 "role": "what ships first, tried on what, and ready",
 "tagline": "A feature list read by MoSCoW into the first release with its days, a test grid of systems by devices with every untried and failed cell named, and the store's release list read before it goes.",
 "sigil": "▣",
 "hue": "#1F3A5F",
 "punch": "611D260B5D7D9F7B0C070DDA",
 "punch_of": "SKILL.md · sha-256 · first 24",
 "score": 98,
 "tier": "LEGENDARY",
 "layer": "WITNESSED",
 "score_line": "SELFTEST 9/9 · THREE COMMANDS ON THE RECORD",
 "honest_line": "I'm an AI reading a card. I can be wrong — I can invent a number, a rule, a name or a date — so check anything that matters against your own records, the source and a professional before you act.",
 "term": "one purchase · yours to keep · nothing renews itself",
 "free": false,
 "wakes": "an app is being scoped, tested across devices, or made ready for the store",
 "loop": [
  "scope <features.md> · the first release",
  "matrix --os --devices · the grid to try",
  "matrix --results · coverage and failures",
  "release <checklist> --platform · READY?",
  "ship the musts; plan the rest"
 ],
 "laws": [
  "**An app is an experience, not a feature list.** The first release is the musts — what solves the user's problem — and the card counts them and their days.",
  "**Every feature is tagged.** Must, should, could or won't; an untagged feature is named, and a won't stays written down as a won't.",
  "**Untried is not passed.** The grid names every cell no one has tried, and a failed flow stays on its cell until it passes.",
  "**The stores ask their own lines.** iOS 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's.** Twelve musts by default; more is named as over-scoped, not refused.",
  "**The card reads lists.** It does not build, sign or submit an app, and it never holds a signing key."
 ],
 "never": [
  "call a release READY with a line open",
  "count an untried cell as passed",
  "grow the first release past its line"
 ],
 "machine": "scripts/appdev.py · scope · matrix · release · selftest",
 "proof": "selftest 9/9 · THREE commands on the record",
 "faces": [
  "card.svg",
  "card-machine.svg"
 ],
 "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"
 ],
 "hundred": "Trigger 5 · Machinery 5 · Law 5 · Portability 5 · Proof 5 — 25 of 25 → 98 of 100 · LEGENDARY"
}
