{
 "format": "LSC-1",
 "edition": 2,
 "cut": "2026-10-14",
 "header": "AI SKILL CARD · LSC-1",
 "house": "THE METHODS",
 "wing": "CLAUDE CODE",
 "no": "Nº 492",
 "name": "THE HEADLESS CARD",
 "handle": "headless-card",
 "role": "The pipeline seat: an agent run with no one watching — scoped, budgeted, gated, its log read back.",
 "description": "Use when an agent runs unattended in a pipeline: the job spec, its scope, budget and gates, and the run's log read into a report. Not for interactive sessions or for enforcing rules in one.",
 "wakes_when": {
  "face": "An agent will run with nobody watching.",
  "situations": [
   "A team wants an agent to run every night and open a pull request.",
   "A pipeline job exists and nobody is sure what it may change or spend.",
   "A run finished and someone needs to know what it did without reading the raw log.",
   "A result must be kept only if the checks passed."
  ]
 },
 "loop": [
  "Write the spec: scope, gates, budget, artifact",
  "Write the job; refuse auto-merge and secrets",
  "Read the run's log into a report",
  "Gate: keep or discard by the checks passed"
 ],
 "never": [
  "Never writes a job that merges or deploys alone",
  "Never puts a credential in a job file",
  "Never keeps a result whose checks did not pass",
  "Never claims a certainty it does not have"
 ],
 "hand_off": [
  "A rule that must run inside a live session → THE HOOK CARD",
  "The review of what the run changed → a person, with THE PLAN CARD's drift",
  "Packaging the pipeline steps for people to run by hand → THE COMMAND CARD"
 ],
 "in_the_box": [
  "SKILL.md",
  "CARD.md",
  "▣ scripts/headless.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/headless.py",
  "usage": [
   "python3 scripts/headless.py write --spec SPEC.json --out JOB.yml  — write the job file from the spec; AUTO-MERGE, AUTO-DEPLOY and SECRET INLINE are refused (exit 1)",
   "python3 scripts/headless.py check --file JOB.yml  — check a job file someone has: the three refusals above; NO BUDGET, NO TIMEOUT, NO GATE and NO ARTIFACT are flagged",
   "python3 scripts/headless.py report --log RUN.jsonl --out REPORT.md [--budget NUMBER]  — read the run's event log: what it did, what it changed, what it cost, where it stopped; OVER BUDGET when the spend passed the limit",
   "python3 scripts/headless.py gate --log RUN.jsonl --require TEXT [--require TEXT ...]  — did the log show every required check passing? KEEP or DISCARD, exit 1 on DISCARD",
   "python3 scripts/headless.py spec --out SPEC.json  — write a blank spec with every field named",
   "python3 scripts/headless.py selftest  — build a fictional spec and log in a temp dir and prove every command and every refusal"
  ],
  "selftest": "13/13"
 },
 "punch": {
  "hex": "BF9935FEB5E2D65D62D2B3E9",
  "bits": "101111111001100100110101111111101011010111100010110101100101110101100010110100101011001111101001",
  "of": "SKILL.md",
  "method": "first 96 bits of SHA-256"
 },
 "proof": "Machine selftest 13/13 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 189 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, `headless.py`, whose selftest passes (13/13); +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 8 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 task the job does.",
  "The paths it may change, and the checks that must pass.",
  "The runner's units for cost, and the log format it writes."
 ],
 "studio_edition": "Planned as a separate seat, not in this box and not yet on sale: the nightly jobs the studio runs on its own repositories.",
 "hold": null,
 "disclaimer": "not a CI 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."
}
