{
 "format": "LSC-1",
 "edition": 2,
 "cut": "2026-10-14",
 "header": "AI SKILL CARD · LSC-1",
 "house": "THE METHODS",
 "wing": "THE STUDIO ROOM",
 "no": "Nº 437",
 "name": "THE ROAD CARD",
 "handle": "road-card",
 "role": "The road seat: milestones with owners, dates and dependencies; the path; the slips named.",
 "description": "Use when a project needs its milestones laid on a road with owners, dates and dependencies, the critical path found and slips reported. Not for daily task lists or for a look-back.",
 "wakes_when": {
  "face": "A project needs its road laid.",
  "situations": [
   "A project has a date and nobody can say which milestones must fall in which order.",
   "Something slipped and no one knows what it drags with it.",
   "A board wants the critical path on one sheet.",
   "A milestone is marked done and nobody wrote the day."
  ]
 },
 "loop": [
  "Lay the milestones with owners and dates",
  "Check: CYCLE, OUT OF ORDER, NO OWNER",
  "Find the critical path and the slack",
  "Board the slips; shift what depends"
 ],
 "never": [
  "Never marks a milestone done without a day",
  "Never hides a slip from the board",
  "Never shifts the file in place",
  "Never claims a certainty it does not have"
 ],
 "hand_off": [
  "Looking back after the road is walked → THE AFTER-ACTION CARD",
  "Ranking which project to run first → THE BOARD CARD",
  "The tasks inside one milestone → the team's own task list"
 ],
 "in_the_box": [
  "SKILL.md",
  "CARD.md",
  "▣ scripts/road.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/road.py",
  "usage": [
   "python3 scripts/road.py check --milestones MILESTONES.csv  — CYCLE with the loop, OUT OF ORDER with both days, NO OWNER, DONE WITHOUT A DAY (never counted done); exit 1 on CYCLE or DONE WITHOUT A DAY, the others named for a person",
   "python3 scripts/road.py path --milestones MILESTONES.csv  — the critical path: the longest chain in days from the earliest due day through the dependencies to the latest, each hop with its days, and the slack of every other milestone; refused on CYCLE or OUT OF ORDER (exit 1)",
   "python3 scripts/road.py board --milestones MILESTONES.csv --rule RULE.json [--today YYYY-MM-DD]  — every milestone LATE (days late, what it drags), AT RISK (due inside warning_days), ON TRACK or DONE, in that order; the slips listed; a done row with no day is DONE WITHOUT A DAY, not DONE",
   "python3 scripts/road.py shift --milestones MILESTONES.csv --id X --days N --out NEW.csv  — a new sheet with X and everything downstream of it moved N days (a done milestone is not moved); NEVER IN PLACE when --out is the input, ALREADY DONE when X is done (each exit 1); UNKNOWN ID exit 2",
   "python3 scripts/road.py selftest  — build a fictional road in a temp dir and prove every command, flag and refusal"
  ],
  "selftest": "14/14"
 },
 "punch": {
  "hex": "56EC7FB790E411EE8957CB9A",
  "bits": "010101101110110001111111101101111001000011100100000100011110111010001001010101111100101110011010",
  "of": "SKILL.md",
  "method": "first 96 bits of SHA-256"
 },
 "proof": "Machine selftest 14/14 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 180 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, `road.py`, whose selftest passes (14/14); +1 eight or more selftest checks; +1 4 working commands besides the selftest",
   "Law": "+1 4 never-lines; +1 3 hand-offs; +1 a written law; +2 10 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 milestones, with owners and dates.",
  "What each depends on.",
  "The house's warning window, in days."
 ],
 "studio_edition": "Planned as a separate seat, not in this box and not yet on sale: the studio's own roads for its builds.",
 "hold": null,
 "disclaimer": "not a promise of delivery · 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."
}
