THE INTRO CARD is free — what an AI skill card is and how to use one Download →Lost Lauren, contact us

THE METHODS · CLAUDE CODE · Nº 486 · EDITION 2 · LAUNCHING SOON

LUND CARDS · THE METHODSNº 486
THE HOOK CARD — the LSC-1 face
THE CARD AS TEXT · FOR EYES AND FOR MACHINES

THE HOOK CARD · The enforcement seat: rules that must never be skipped, made to run on their own and watched once.

WAKES WHEN The agent skipped a check again and a written rule was not enough. · A team wants tests, a secret scan or a format check to run after every edit without anyone remembering. · Someone wants to see the hooks a project already has and whether any were ever fired on purpose. · A hook someone wrote does something it should not, like sending files off the machine.

THE LOOP

  1. List the rules that must never be skipped
  2. Place each on its event, with its check
  3. Write the hooks; refuse any that send data away
  4. Fire each hook once on purpose and record it

NEVER

  • Never writes a hook that sends data away
  • Never writes a hook that silences approvals
  • Never calls a hook in force before it is fired
  • Never claims a certainty it does not have

IT MAKES plan — place every rule on its event (after an edit, before a command, at the stop) and name the rules with NO EVENT; write — write the hooks block from the rules; a rule whose command sends data away or silences approvals is refused; check — check a hooks file someone already has: SENDS DATA AWAY and SILENCES APPROVALS are refused (exit 1); NO MATCHER and UNTESTED are flagged; fire — record that a hook was fired on purpose and watched; the log is what UNTESTED reads; list — print every hook: event, matcher, command, and whether the log shows it fired.

THE LAW A line in a memory file asks; a hook makes sure. A hook runs without a person watching, so it is held to the stricter standard: it may check and it may block, but it never sends data away, never silences an approval, and is never trusted until it has been fired on purpose and seen to do what it says.

IN THE BOX SKILL.md · CARD.md · ▣ scripts/hooks.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.

PROOF SELFTEST 12/12 · witnessed in Claude 2026-10-14 on fictional fixtures · the test prompts in fresh chat, 9/9 · Edition 2.

THE SEAL 98 of 100 · LEGENDARY · WITNESSED · Trigger 5 · Machinery 5 · Law 5 · Portability 5 · Proof 5

IT CAN BE WRONG an AI reading a text file: it can be wrong and can invent a number, a rule, a name or a date; check what matters against your own records and the source; the risk is yours. LICENSE-NOTE.md rides in the packet and is the licence.

THE PUNCH · SHA-256 OF SKILL.MD · 4254BD38222412AA1120512F

THE FACE, FULL SIZE → · THE MACHINE FACE → · card.json →

THE HOOK CARD

The enforcement seat: rules that must never be skipped, made to run on their own and watched once.

PLAN · WRITE · CHECK · FIRE · LIST

98LEGENDARYWITNESSEDIN CLAUDEIN LUNDRIN CHATGPT

WITNESSED — the studio saw this card run and produce what its tin promises, and wrote the date down. What the marks mean →

THE SPEC SHEET · READ BEFORE YOU BUY · THE STANDARD EVERY CARD MEETS →

SEAL
98 of 100 · LEGENDARY · WITNESSED
EDITION
E1 · witnessed 2026-10-14
MACHINE
scripts/hooks.py · 5 commands · selftest 12/12
RUNS
On your own computer. Standard library only, offline; no account, no key, no telemetry.
HOSTS
Claude · Claude Code · ChatGPT · Gemini · any AI that reads a file (START-HERE.md and system/ name each door)
LICENCE
One person, any number of their own AIs and computers · editions replace files · nothing renews · freeze, not loss
PUNCH
4254BD38222412AA1120512F · sha-256 of SKILL.md · check any file against it →

CITE THIS CARDTHE HOOK CARD, Edition 2. Lund Studio LLC, Westminster, Colorado. https://lundr.tech/?view=hook-card. Punch 4254BD38222412AA1120512F. Retrieved 2026-10-14.

What it is.

Use when a rule must run automatically in an agent's session: a check after every edit, a block before a command, a note at the stop. Not for writing the rules down or running the agent in a pipeline.

It carries a machine that shows its working: plan — place every rule on its event (after an edit, before a command, at the stop) and name the rules with NO EVENT; write — write the hooks block from the rules; a rule whose command sends data away or silences approvals is refused; check — check a hooks file someone already has: SENDS DATA AWAY and SILENCES APPROVALS are refused (exit 1); NO MATCHER and UNTESTED are flagged; fire — record that a hook was fired on purpose and watched; the log is what UNTESTED reads; list — print every hook: event, matcher, command, and whether the log shows it fired — 12 checks in its selftest. It never writes a hook that sends data away; never writes a hook that silences approvals; never calls a hook in force before it is fired; never claims a certainty it does not have.

The law, written into the card.

It is in the card itself, so the AI follows it.

THE LAWA line in a memory file asks; a hook makes sure. A hook runs without a person watching, so it is held to the stricter standard: it may check and it may block, but it never sends data away, never silences an approval, and is never trusted until it has been fired on purpose and seen to do what it says.

The method.

  1. Write the rules as a plain sheet: what must happen, on which event (after an edit, before a command, at the stop, at the start, before a prompt), for which tool, and the command that checks it.
  2. Plan first: a rule with no event is NO EVENT and stays off the file until the person says when it runs.
  3. Write the hooks file from the plan. A command that reaches the network, copies files to another machine or mails anything is refused; so is one that skips permissions.
  4. Fire every hook once on purpose, with a person watching, and record it; until then the hook is UNTESTED and the list says so.
  5. Keep the fired log beside the settings; when a hook changes, it is UNTESTED again.

What you bring.

  • The rules the team keeps breaking.
  • The commands that check each rule, as they are run by hand today.
  • The hooks file the project already has, if any.

Planned as a separate seat, not in this box and not yet on sale: the hooks the studio runs on its own repositories.

What it does once your AI has it.

  • plan Place every rule on its event (after an edit, before a command, at the stop) and name the rules with NO EVENT
  • write Write the hooks block from the rules; a rule whose command sends data away or silences approvals is refused
  • check Check a hooks file someone already has: SENDS DATA AWAY and SILENCES APPROVALS are refused (exit 1); NO MATCHER and UNTESTED are flagged
  • fire Record that a hook was fired on purpose and watched; the log is what UNTESTED reads
  • list Print every hook: event, matcher, command, and whether the log shows it fired

What it will never do.

It never writes a hook that sends data away; never writes a hook that silences approvals; never calls a hook in force before it is fired; never claims a certainty it does not have.

Where it hands off: Writing the rules themselves → THE CLAUDE.MD CARD; Running the agent unattended in a pipeline → THE HEADLESS CARD; Undoing what an agent did → THE CHECKPOINT CARD.

It is not a security guarantee. It is an AI reading a text file: it can be wrong, so check what matters against your own records and the source. The holder brings their own AI; no endorsement by Anthropic or any other AI company is claimed.

What’s in the buy.

  • SKILL.md — the card your AI reads: when it wakes, the loop, the never-lines, the hand-offs.
  • CARD.md — the whole card in ten sections: face, law, method, machine, what you bring, never, tests, seal, term.
  • scripts/hooks.py — the machine, Python standard library only; `selftest` proves it on its own fixtures.
  • tests/EVALS.json and scripts/evals.py — 9 test prompts and the offline runner that scores your AI's answers.
  • references/ — the data schema and FICTIONAL demo files, invented to show the machine, not real.
  • MY-LEDGER.md — your own record of what you asked and what you decided.
  • START-HERE.md, system/short-prompt.md, system/rules.md — the doors, for any AI with or without skills.
  • card.svg, card.json, card.html, AUDIT.md, MANIFEST.md, WITNESS.md, SELFTEST.md — the faces and the proof.
  • NOT IN THE BOX — any studio edition (planned, not yet on sale: the hooks the studio runs on its own repositories). Also not in the box: any data you must bring, and advice of any kind (not a security guarantee).

PROOF · SELFTEST 12/12 · WITNESSED IN CLAUDE 2026-10-14 ON FICTIONAL FIXTURES · THE 9 TEST PROMPTS ASKED IN A FRESH CHAT HOLDING ONLY THE CARD · 9/9 · EDITION 2 · PUNCH 4254BD38222412AA1120512F

ON EVERY DOOR · A CARD FOR YOUR AI, A FILE FOR YOUR COMPUTER

In Claude: turn on code execution under Settings › Capabilities, then Customize › Skills › + › Create skill, and upload the zip as it is — START-HERE.md in the box walks you through it, and tells you how to keep the ledger. In ChatGPT, Gemini and the rest: a Project, a GPT or a Gem with the card’s files attached and the short door in the box pasted as its instructions. The words run anywhere an AI reads Markdown; the machines run wherever the host runs Python. Witnessed in Claude only. The host marks →

Take it.

Nº 486 — LAUNCHING SOON

Sold as is under the term printed. A card instructs an AI you operate; results depend on your model, your files and your judgement. Not medical, legal, tax or financial advice, never the person’s boss, and not a licence to practise. The terms →

ONE PAYMENT · NOTHING RENEWS ITSELF

OFFLINE · ONE LICENCE · PUNCH-CHECKABLE · THE STANDARD

One payment. The file is yours to keep and keeps working at its edition; new editions issued in the year after you buy reach you by email as replacement files. Tax is added at checkout where it applies. Nothing auto-renews.

One email when it is on sale, from the studio; nothing else, ever.

A TERM, NOT A SUBSCRIPTION: NOTHING RENEWS ITSELF AND NOBODY IS CHARGED AGAIN. WHEN A TERM ENDS THE FILES STAY ON YOUR COMPUTER AND STAY READABLE — FREEZE, NOT LOSS.

THE MACHINE · IN THE OPEN · FROM THE CARD’S OWN SELFTEST.MD

hooks.py, every command showing its working.

A small Python program, standard library only. Your AI runs it; you can too. The block below is pasted from the card’s own SELFTEST.md, as printed when it was run from inside the packet.

planplace every rule on its event (after an edit, before a command, at the stop) and name the rules with NO EVENT
writewrite the hooks block from the rules; a rule whose command sends data away or silences approvals is refused
checkcheck a hooks file someone already has: SENDS DATA AWAY and SILENCES APPROVALS are refused (exit 1); NO MATCHER and UNTESTED are flagged
firerecord that a hook was fired on purpose and watched; the log is what UNTESTED reads
listprint every hook: event, matcher, command, and whether the log shows it fired
selftest12 checks that prove the machine; it must print selftest 12/12
THE SELFTEST, AS PRINTED
write <tmp> · 4 hooks on 3 events
fire Stop · 1 hook(s) recorded as fired on purpose on 2026-01-02 · log <tmp>
NO HOOK on SessionStart in <tmp>
SENDS DATA AWAY: Stop  — `scp notes.md host:/tmp`
UNTESTED: Stop `scp notes.md host:/tmp` has never been fired on purpose; fire it once and watch it
check <tmp> · 1 hooks · REFUSED (1) · 1 flags
ok   1  plan places every rule on its event
ok   2  a rule with no known event is NO EVENT, not guessed
ok   3  write builds the hooks block, one entry per rule, each carrying its command
ok   4  a hook that sends data away is SENDS DATA AWAY: refused
ok   5  a hook that silences approvals is SILENCES APPROVALS: refused
ok   6  a rule with no check command is NO COMMAND: refused
ok   7  the written file reads back as the same hooks
ok   8  an unfired hook is UNTESTED, flagged not refused
ok   9  fire records a hook watched on purpose and check stops calling it UNTESTED
ok   10  a tool hook with no matcher is NO MATCHER
ok   11  firing an event with no hook says NO HOOK and exits 1
ok   12  check exits 1 on a refused hook
selftest 12/12

THE RUN IS PASTED FROM THE CARD’S OWN SELFTEST.MD AS PRINTED. ITS FIXTURES ARE FICTIONAL, INVENTED FOR THE TEST; NO PRIVATE PERSON IS NAMED.

QUESTIONS AT THE TABLE

Asked before the wire.

What does it need from me?

The rules the team keeps breaking. The commands that check each rule, as they are run by hand today. The hooks file the project already has, if any. If something it needs is missing, it says what is missing and stops there.

Does it send anything anywhere?

No. The machine is a standard-library Python program that runs on your own computer and sends nothing anywhere; the words run wherever an AI reads Markdown. No server, no account, no key.

What is on the record?

The machine's selftest (12/12), run from inside the packet in Claude on 2026-10-14 on fictional fixtures and pasted into SELFTEST.md as printed; the twelve-check audit (AUDIT.md). Owed, and said so in WITNESS.md: Any run on real data. Every demo file is fictional. The punch on the face is the SHA-256 of SKILL.md, so a downloaded copy can be checked against this room.

Can it be wrong?

Yes — it is an AI reading a text file: it can be wrong and can invent a number, a rule, a name or a date; check what matters against your own records and the source; the risk is yours. LICENSE-NOTE.md rides in the packet and is the licence. It is not a security guarantee.

What will it never do?

It never writes a hook that sends data away; never writes a hook that silences approvals; never calls a hook in force before it is fired; never claims a certainty it does not have.

← THE METHODS · THE FLOOR →

AT YOUR ELBOW, NEVER THE BOSS · NOT A SECURITY GUARANTEE · NOT A PAYMENT CARD · NO REFUNDS · © 2026 LUND STUDIO LLC

PAY BYAmerican Express Apple Pay Diners ClubDiscoverGoogle Pay Mastercard PayPalShop Pay Visa
CART · 0