{
 "format": "LSC-1",
 "edition": 1,
 "cut": "2026-10-13",
 "header": "AI SKILL CARD · LSC-1",
 "house": "THE HOME GROUND",
 "wing": "THE MEETING HOUSE",
 "no": "Nº 1231",
 "name": "THE AFFILIATE PLAYBOOK",
 "handle": "affiliate-playbook-card",
 "role": "A small nonprofit's year run from the director's own playbook: calendar, acknowledgments, board packets.",
 "description": "Use when a small nonprofit's director runs the year: board calendar, return due date, donor acknowledgment drafts and board packets from their playbook. Not tax or legal advice.",
 "wakes_when": {
  "face": "A nonprofit director runs the year from a playbook.",
  "situations": [
   "A director sets up the year's calendar.",
   "Gifts came in and acknowledgments are due.",
   "A board meeting needs its packet."
  ]
 },
 "loop": [
  "Set the year: meetings and the return date",
  "Draft acknowledgments by printed thresholds",
  "Build the board packet from the playbook",
  "Leave every figure to the treasurer"
 ],
 "never": [
  "Never puts a value on a noncash gift",
  "Never certifies a figure",
  "Never gives tax or legal advice"
 ],
 "hand_off": [
  "Tax questions → the treasurer or an accountant",
  "Volunteer days → THE VOLUNTEER DAY",
  "Governance disputes → counsel"
 ],
 "in_the_box": [
  "SKILL.md",
  "CARD.md",
  "▣ scripts/affiliate.py (machine)",
  "▣ scripts/evals.py (test runner)",
  "tests/EVALS.json (8 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/affiliate.py",
  "usage": [
   "python3 scripts/affiliate.py calendar --year 2026 [--org org.json]  — board meetings, the information-return due date from the rule in org.json (NO DUE-DATE RULE SET if absent, exit 1), and state items only if org.json lists them",
   "python3 scripts/affiliate.py acks [--today YYYY-MM-DD] [--gifts gifts.csv] [--org org.json] [--out acks]  — lists gifts that meet the thresholds in org.json and writes one letter draft per gift into the --out folder; a threshold not set prints NO THRESHOLD SET and its rule is skipped (exit 1)",
   "python3 scripts/affiliate.py board-packet --meeting YYYY-MM [--org org.json] [--gifts gifts.csv] [--playbook playbook.md] [--out FILE]  — agenda skeleton: consent items, finance, programs, open items from the playbook's headings",
   "python3 scripts/affiliate.py export [--org org.json] [--gifts gifts.csv] [--out FILE]  — the organization and its gift records as one JSON document",
   "python3 scripts/affiliate.py selftest  — builds its own fixtures in a temporary folder and runs the numbered checks"
  ],
  "selftest": "20/20"
 },
 "punch": {
  "hex": "CBC017B2AA5AA91C83A233CE",
  "bits": "110010111100000000010111101100101010101001011010101010010001110010000011101000100011001111001110",
  "of": "SKILL.md",
  "method": "first 96 bits of SHA-256"
 },
 "proof": "Machine selftest 20/20 witnessed in Claude, 2026-10-13, on fictional fixtures. Tests in fresh chats and any run on real data are owed.",
 "seal": {
  "score": 96,
  "of": 100,
  "band": "LEGENDARY",
  "mark": "WITNESSED",
  "criteria": {
   "Trigger": 5,
   "Machinery": 5,
   "Law": 5,
   "Portability": 5,
   "Proof": 4
  },
  "scale": "five Skill Scale criteria, each out of 5, ×4, capped at 98; computed by the cutter from the packet",
  "computed": {
   "Trigger": "+2 description 177 characters with a trigger and an anti-trigger; +1 3 situations it wakes on; +2 8 tests of all three kinds aboard",
   "Machinery": "+3 a machine of its own, `affiliate.py`, whose selftest passes (20/20); +1 eight or more selftest checks; +1 4 working commands besides the selftest",
   "Law": "+1 3 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-13, on fictional fixtures; +1 run from inside the packet itself; 0 of 1: the 8 tests asked in fresh chats with the card installed — owed"
  }
 },
 "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": [
  "Your organization's fiscal year end and meeting months.",
  "The acknowledgment thresholds and return due-date rule, confirmed by your treasurer or accountant.",
  "Your gift records.",
  "Your own playbook: how you run the year."
 ],
 "studio_edition": "Planned as a separate seat, not in this box and not yet on sale: the studio's own nonprofit playbook.",
 "hold": "Held off sale until counsel has read it.",
 "disclaimer": "not tax or legal advice · 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."
}
