{
 "format": "LSC-1",
 "edition": 2,
 "cut": "2026-10-14",
 "header": "AI SKILL CARD · LSC-1",
 "house": "THE METHODS",
 "wing": "CLAUDE CODE",
 "no": "Nº 490",
 "name": "THE CHECKPOINT CARD",
 "handle": "checkpoint-card",
 "role": "The undo seat: a named snapshot before the change, the difference since, a way back file by file.",
 "description": "Use when an agent is about to change many files and you want a way back: a named checkpoint, the difference since, a restore of one file or all. Not for version control or for planning the change.",
 "wakes_when": {
  "face": "Files are about to change.",
  "situations": [
   "An agent is about to edit a lot of files and nobody has committed.",
   "Something went wrong and someone wants to see exactly what changed since they last felt safe.",
   "One file needs to go back to how it was; the rest should stay.",
   "Someone wants to be sure a checkpoint is still what it was."
  ]
 },
 "loop": [
  "Take a named checkpoint before the change",
  "Diff: added, changed, removed since",
  "Restore one file or all, after a dry run",
  "Verify the checkpoint is intact"
 ],
 "never": [
  "Never overwrites a checkpoint",
  "Never restores over current work unasked",
  "Never copies a secret file into a checkpoint",
  "Never claims a certainty it does not have"
 ],
 "hand_off": [
  "Planning the change before it starts → THE PLAN CARD",
  "Keeping a real history across days → the team's version control",
  "Splitting the change across helpers → THE CREW CARD"
 ],
 "in_the_box": [
  "SKILL.md",
  "CARD.md",
  "▣ scripts/checkpoint.py (machine)",
  "▣ scripts/evals.py (test runner)",
  "tests/EVALS.json (9 tests)",
  "references/ (schema + fictional demo)",
  "START-HERE.md · system/ doors",
  "MY-LEDGER.md · LICENSE-NOTE.md",
  "card.svg · card.json · card.html",
  "AUDIT.md · MANIFEST.md · WITNESS.md · SELFTEST.md"
 ],
 "machine": {
  "file": "scripts/checkpoint.py",
  "usage": [
   "python3 scripts/checkpoint.py take --root DIR --name NAME [--store DIR/.checkpoints] [--today YYYY-MM-DD]  — copy every text file under DIR into the store under NAME with a manifest of hashes; a file that looks like a secret is left out and named",
   "python3 scripts/checkpoint.py diff --root DIR --name NAME [--store ...]  — what changed since the checkpoint: ADDED, CHANGED, REMOVED, one line per file",
   "python3 scripts/checkpoint.py restore --root DIR --name NAME [--file PATH] [--yes] [--store ...]  — put one file, or every file, back as it was at NAME; without --yes it only prints what it would do",
   "python3 scripts/checkpoint.py verify --root DIR --name NAME [--store ...]  — check the checkpoint's own files against its manifest: CORRUPT if any hash moved",
   "python3 scripts/checkpoint.py list [--store ...] --root DIR  — print every checkpoint with its date and file count",
   "python3 scripts/checkpoint.py selftest  — build a fictional folder in a temp dir and prove every command and every refusal"
  ],
  "selftest": "12/12"
 },
 "punch": {
  "hex": "6B3C3951EC09EC9BCBC795AC",
  "bits": "011010110011110000111001010100011110110000001001111011001001101111001011110001111001010110101100",
  "of": "SKILL.md",
  "method": "first 96 bits of SHA-256"
 },
 "proof": "Machine selftest 12/12 witnessed in Claude, 2026-10-14, on fictional fixtures. Tests in fresh chats and any run on real data are owed.",
 "seal": {
  "score": 98,
  "of": 100,
  "band": "LEGENDARY",
  "mark": "WITNESSED",
  "criteria": {
   "Trigger": 5,
   "Machinery": 5,
   "Law": 5,
   "Portability": 5,
   "Proof": 5
  },
  "scale": "five Skill Scale criteria, each out of 5, ×4, capped at 98; computed by the cutter from the packet",
  "computed": {
   "Trigger": "+2 description 196 characters with a trigger and an anti-trigger; +1 4 situations it wakes on; +2 9 tests of all three kinds aboard",
   "Machinery": "+3 a machine of its own, `checkpoint.py`, whose selftest passes (12/12); +1 eight or more selftest checks; +1 5 working commands besides the selftest",
   "Law": "+1 4 never-lines; +1 3 hand-offs; +1 a written law; +2 5 selftest checks prove a refusal or a flag inside the machine",
   "Portability": "+3 Python standard library only; +1 no network calls; +1 runs no other programs",
   "Proof": "+3 the machine's selftest witnessed in Claude on 2026-10-14, on fictional fixtures; +1 run from inside the packet itself; +1 the 9 tests asked in a fresh chat holding only the card, scored by scripts/evals.py: 9/9, witnessed on 2026-10-14"
  }
 },
 "term": {
  "price": "set on the store at sale",
  "licence": "one person, any number of their own AIs and computers; never another person",
  "renewal": "nothing auto-renews"
 },
 "you_bring": [
  "The folder the agent will work in.",
  "A name for the moment before the change.",
  "The habit of taking one before every big edit."
 ],
 "studio_edition": "Planned as a separate seat, not in this box and not yet on sale: the checkpoints the studio takes before every cut of its own builds.",
 "hold": null,
 "disclaimer": "not a backup service · not a payment card · no refunds · © 2026 Lund Studio LLC",
 "endorsement": "The holder brings their own AI; no endorsement by Anthropic or any other AI company is claimed."
}
