{
 "format": "LSC-1",
 "edition": 2,
 "cut": "2026-10-14",
 "header": "AI SKILL CARD · LSC-1",
 "house": "THE METHODS",
 "wing": "THE STUDIO ROOM",
 "no": "Nº 427",
 "name": "THE SOURCE CARD",
 "handle": "source-card",
 "role": "The research seat: every claim beside the source that holds it, and no claim without one.",
 "description": "Use when a piece of writing or research makes claims that must each stand on a named source: logging sources, tying claims to them, citing. Not for judging novelty or writing the piece.",
 "wakes_when": {
  "face": "A claim needs its source beside it.",
  "situations": [
   "A report, page or pitch makes claims and nobody can say where each one came from.",
   "A source list has grown and no one knows which claims it still carries.",
   "A piece is going out and the person wants every claim checked against a source first.",
   "A reference list must be written in one plain style from what was actually used."
  ]
 },
 "loop": [
  "Log every source with where it lives",
  "Tie each claim to a source and a quote",
  "Check: NO SOURCE is named, never hidden",
  "Cite from the ledger, in one style"
 ],
 "never": [
  "Never prints a claim as sourced without a row",
  "Never cites a source nobody logged",
  "Never calls a web page checked without a date",
  "Never claims a certainty it does not have"
 ],
 "hand_off": [
  "Whether a claim is new against what exists → THE PRIOR ART CARD",
  "The claims in a text pulled out and asked for their proof → THE HONEST CARD",
  "A citation style the ledger does not know → the person's own style guide"
 ],
 "in_the_box": [
  "SKILL.md",
  "CARD.md",
  "▣ scripts/sources.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/sources.py",
  "usage": [
   "python3 scripts/sources.py add-source --sources SOURCES.csv --source-id S --title T --kind K [--author A] [--year Y] [--where W] [--checked-on YYYY-MM-DD]  — append one source; kind is book, paper, page, record, interview or own-data; a duplicate id is refused; a page with no checked_on is taken and flagged UNCHECKED by check",
   "python3 scripts/sources.py add-claim --claims CLAIMS.csv --sources SOURCES.csv --claim-id C --claim TEXT [--source-id S] [--quote Q] [--note N] [--open]  — append one claim tied to a logged source; a source id not on the ledger is refused (SOURCE NOT FOUND) unless --open logs the claim with a blank source as NO SOURCE",
   "python3 scripts/sources.py check --sources SOURCES.csv --claims CLAIMS.csv [--today YYYY-MM-DD] [--max-quote-words 40] [--stale-days 180]  — every claim SOURCED, NO SOURCE or SOURCE NOT FOUND; a page source is UNCHECKED without a day and STALE when checked longer ago than the limit; a quote over the word limit is LONG QUOTE; exit 1 on any NO SOURCE or SOURCE NOT FOUND",
   "python3 scripts/sources.py cite --sources SOURCES.csv --claims CLAIMS.csv [--style plain|numbered] [--draft] [--out REFS.md]  — the reference list from the sources a claim uses, by author then year, with UNUSED sources listed apart; refused as DRAFT · n UNSOURCED while any claim lacks a source, unless --draft",
   "python3 scripts/sources.py gaps --sources SOURCES.csv --claims CLAIMS.csv  — claims with no source, claims pointing at no row, and sources no claim uses",
   "python3 scripts/sources.py selftest  — build a fictional ledger in a temp dir and prove every command, flag and refusal"
  ],
  "selftest": "20/20"
 },
 "punch": {
  "hex": "53B8D7F304967D3D81AB580C",
  "bits": "010100111011100011010111111100110000010010010110011111010011110110000001101010110101100000001100",
  "of": "SKILL.md",
  "method": "first 96 bits of SHA-256"
 },
 "proof": "Machine selftest 20/20 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 185 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, `sources.py`, whose selftest passes (20/20); +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 12 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 claims, one per line, in the words they are made.",
  "The sources, with where each one lives.",
  "The day each web page was last read."
 ],
 "studio_edition": "Planned as a separate seat, not in this box and not yet on sale: the studio's own source ledger for its pages and books.",
 "hold": null,
 "disclaimer": "not a judgement of truth · 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."
}
