THE SKILL AUDIT · a skill packet read before it runs on files
WAKES WHEN a skill arrives from outside, or a packet is about to be published or run on real files
THE LOOP
skillaudit.py list · every file, hashed
audit · findings, the score, the verdict
NAMED → read each line before trusting it
HOLD → do not run it; mend or return it
punch · tie the packet to its room
NEVER
Run a HOLD packet on real files
Read a NAMED reach as a fault in the author
Audit a packet without opening every script
IT MAKES audit — the findings, the score, the verdict; list — every file with its size and hash; punch — the punch: sha-256 of SKILL.md, first 24, upper.
THE STANDARD the door first; every script the door names is in the packet; a reach is NAMED, a key is HOLD; no path into a home, no contact line; a licence and a selftest ride along; the punch ties the packet to its room.
PROOF SELFTEST 11/11 · witnessed in Claude 2026-10-10 · Edition 1.
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. THE-CLAUSES.md rides in the packet and is part of the licence.
THE PUNCH · SHA-256 OF SKILL.MD · DB99671DA0C0E941B8D25113
CITE THIS CARDTHE SKILL AUDIT, Edition 1. Lund Studio LLC, Westminster, Colorado. https://lundr.tech/?view=skill-audit-card. Punch DB99671DA0C0E941B8D25113. Retrieved 2026-10-10.
What it is.
Audits a skill folder or .skill.zip before an agent runs it: the door present with a name hosts accept and a description that says when to use it, every script the door names on disk, every script read for a network module, a shell call, an eval, a key or token, a path into someone's home, an email address or a phone number, a licence note and a selftest present, the punch printed; findings by file and line, a score out of 100, and a verdict of CLEAN, NAMED or HOLD.
It carries a machine that shows its working: audit — the findings, the score, the verdict; list — every file with its size and hash; punch — the punch: sha-256 of SKILL.md, first 24, upper — 11 checks in its selftest, every command on the record. It will never run a HOLD packet on real files; never read a NAMED reach as a fault in the author; never audit a packet without opening every script.
Six laws, written into the card.
They are in the card itself, so the AI follows them.
THE DOOR FIRSTNo SKILL.md, no name, no description: HOLD.
EVERY SCRIPT THE DOOR NAMES IS IN THE PACKETEvery script the door names is in the packet, or the door lies: HOLD.
A REACH IS NAMED, A KEY IS HOLDA network module is for a person to read; a key or token in a packet never ships.
NO PATH INTO A HOME, NO CONTACT LINEA home path is a build leaking; an email or a phone in a packet is a person's.
A LICENCE AND A SELFTEST RIDE ALONGA packet without them is NAMED.
THE PUNCH TIES THE PACKET TO ITS ROOMSKILL.md's SHA-256, first 24, upper; a changed byte is a new packet.
What rides in the card.
In the card’s own voice, with a machine that shows its working.
THE GUIDEreferences/READ-BEFORE-IT-RUNS.md
THE MACHINEskillaudit.py · three commandsaudit — the findings, the score, the verdict; list — every file with its size and hash; punch — the punch: sha-256 of SKILL.md, first 24, upper. Every command prints its working and refuses a bad input; 11 checks in its selftest, every command on the record.
What it does once your AI has it.
audit The findings, the score, the verdict
list Every file with its size and hash
punch The punch: sha-256 of SKILL.md, first 24, upper
On the record A clean packet listed with every file hashed, audited CLEAN at 100 and punched; a packet as it might arrive audited HOLD: a key in a script, a script the door names that is not there, a network import, a shell call, an eval, a home path, an email address and a phone number, each by file and line.
What it will never do.
It will never run a HOLD packet on real files; never read a NAMED reach as a fault in the author; never audit a packet without opening every script.
The audit reads Python by pattern and other scripts by the same patterns; a reach hidden in a compiled library, an encoded string or another program is not read, which is why a shell call is named. The score is a reading aid; the findings are the audit. A CLEAN packet can still do what its door says it will, which is the thing to read. It is an AI reading a text file: it can be wrong, so check what matters against your own records and the source.
What’s in the buy.
CARD.md — the whole card: who it is, its laws, when it says no, what it carries · SKILL.md — the door your AI reads first · START-HERE.md — the first five minutes, for you
READ-BEFORE-IT-RUNS.md — the guide in references/, in the card's own voice
scripts/skillaudit.py — the machine: audit · list · punch, standard library only, selftest 11/11
WITNESS.md + SELFTEST.md — every command on the record, as it printed · MANIFEST.md, every file hashed · AUDIT.md, the twelve checks
MY-LEDGER.md — the card's memory, on your own machine · TIN.md · LICENSE-NOTE.md · THE-CLAUSES.md · HOSTS.md
card.svg + card-machine.svg + card.json · card.html, the card as one offline file · the doors for ChatGPT, Gemini, Cursor, Claude Code and MCP hosts (rules/, system/, mcp/)
PROOF · SELFTEST 11/11 · 3 COMMANDS ON THE RECORD · WITNESSED IN CLAUDE 2026-10-10 · EDITION 1 · PUNCH DB99671DA0C0E941B8D25113
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º 972 PROPOSED — 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. 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.
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 WITNESSED RUN OF 2026-10-10
skillaudit.py, every command showing its working.
A small Python program, standard library only. Your AI runs it; you can too. Every block below is pasted from the card’s own WITNESS.md, as printed.
audit
the findings, the score, the verdict
list
every file with its size and hash
punch
the punch: sha-256 of SKILL.md, first 24, upper
selftest
11 checks that prove the machine; it must print 11/11
(two packets on disk: one the studio's own shape, one as a packet might arrive from outside)
$ (two packets on disk: one the studio's own shape, one as a packet might arrive from outside)
$ python3 scripts/skillaudit.py audit arrived-card
HOLD SKILL.md names scripts/missing.py, which is not in the packet
NAMED README.md:1 an email address in the packet
NAMED README.md:1 a phone number in the packet
NAMED scripts/fetch.py:1 imports urllib: a network reach, to be declared on the card's face
NAMED scripts/fetch.py:3 a shell call (os.system)
NAMED scripts/fetch.py:5 eval( on the source
HOLD scripts/fetch.py:4 a key, token or password in the packet
NAMED scripts/fetch.py:6 a path into a home folder (/Users/someone): write ~ instead
HOLD · 34 of 100 · 5 files · 534 bytes · 2 scripts · punch B66918EF1FBDEEEBEA328D21
THE NUMBERS, NAMES AND DATES IN THESE RUNS ARE THE STUDIO’S OWN EXAMPLES, INVENTED FOR THE RECORD; NO REAL COMPANY, PERSON OR PROPERTY IS NAMED.
QUESTIONS AT THE TABLE
Asked before the wire.
What does it need from me?
Skillaudit.py list · every file, hashed. It asks first for the skill folder or .skill.zip, as it arrived.
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 self-test (11/11) and every command run on real example inputs, pasted into WITNESS.md as they printed; 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. The audit reads Python by pattern and other scripts by the same patterns; a reach hidden in a compiled library, an encoded string or another program is not read, which is why a shell call is named. The score is a reading aid; the findings are the audit. A CLEAN packet can still do what its door says it will, which is the thing to read.
What will it never do?
It will never run a HOLD packet on real files; never read a NAMED reach as a fault in the author; never audit a packet without opening every script.