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

THE INSTRUMENTS · Nº 1187 · EDITION 2 · LAUNCHING SOON

LUND CARDS · THE INSTRUMENTSNº 1187
THE SKILL AUDIT CARD — the LSC-1 face
THE CARD AS TEXT · FOR EYES AND FOR MACHINES

THE SKILL AUDIT CARD · the library audit · scored, scanned, tested, proven, watched

WAKES WHEN a folder of skills is about to be rolled out, sold or installed, or Claude ignores or misuses the skills a team has

THE METHOD

  1. check WORK PATH … --company NAME — intake (folders, folders of folders, .skill and .zip files; a lines file for skills whose packets are not on hand), then scale, rules and safety.
  2. prompts WORK --template, filled as prompts.json: five FIRE and three NEAR per skill (references/PROMPTS-GUIDE.md); prompts WORK until no FAIL.
  3. shelf WORK --fixtures FILES and probe WORK: one Claude project holding every skill's line beside the built-in skills, with the files the prompts mention; the probe's view kept on the record.
  4. run WORK --models haiku,sonnet,opus --runs 2: each run fresh, unable to write files, run commands or reach the web; the first skill reached for and the exact model kept for every run; a failed call kept as an error with its reason; after four limit errors in a row it stops itself; resumable. mark WORK checks a results file written before Edition 2 for silent failures.
  5. rewrite WORK SKILL "LINE" --set v2 --why …, then shelf … --set v2 and run … --set v2 --only … on the prompts the rewrite touches (references/WRITING-THE-LINE.md).
  6. report WORK: AUDIT-REPORT.html, AUDIT-REPORT.md and audit.json.
  7. Later: watch WORK --label DATE, then moved WORK --base results-current.jsonl --new watch/results-current-DATE.jsonl: WHAT-MOVED.html, WHAT-MOVED.md and moved.json.

REFUSES

  • Typing a rate that was not run
  • Dropping a model or a run because it lowers a score
  • Calling a rewrite better before it is run
  • Printing a secret
  • Installing a skill that carries a BLOCK

IT MAKES intake; check; scale; rules; safety; prompts; shelf; probe; run; rewrite; note; mark; report; watch — re-run every prompt of a set on the same shelf, into WORK/watch/results-<set>-<label>.jsonl; moved — what moved between two runs of the same lines: WHAT- MOVED.md, WHAT-MOVED.html, moved.json.

THE LAW Every number in the report comes from the machine and a run on the record. No score or rate is ever typed. No prompt, model or run is dropped because it lowers a score. Errors and timeouts are excluded and counted; a failed call is an error with its reason, never a choice. A rewrite is better only when the same prompts say so. The old line stays beside the new one. A safety BLOCK leads the skill's actions: do not install until it is cleared. A secret the scan finds is never printed: its shape, file and line are. The originals are never changed. The audit works on copies in its own folder. The scale here is the manifest layer. Nothing in this audit makes a skill witnessed. The limits are said in the report: sample size, who wrote the prompts, where the runs happened. A watch runs only on the shelf that was audited. A cell with no runs on one side is NO RUNS, never steady. A MOVED is confirmed by a re-run before any line is rewritten.

IN THE BOX scripts/skillaudit.py · scripts/triggertest.py · the scale · the method by hand · the writing and prompts guides · ten tests.

PROOF selftest 54/54; a live audit of a twelve-skill shelf and its first watch on the record (WITNESS.md) · witnessed 2026-10-13 · EDITION 2.

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

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 · 2B10B8B5EA5DBC34A3194B76

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

THE SKILL AUDIT CARD

the library audit · scored, scanned, tested, proven, watched

INTAKE · CHECK · SCALE · RULES · SAFETY · PROMPTS · SHELF · PROBE · RUN · REWRITE · NOTE · MARK · REPORT · WATCH · MOVED

96LEGENDARYWITNESSEDIN 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
96 of 100 · LEGENDARY · WITNESSED
EDITION
E2 · witnessed 2026-10-13
MACHINE
scripts/skillaudit.py · 15 commands · selftest 54/54
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 (HOSTS.md names each door)
LICENCE
One person, any number of their own AIs and computers · editions replace files · nothing renews · freeze, not loss
PUNCH
2B10B8B5EA5DBC34A3194B76 · sha-256 of SKILL.md · check any file against it →

CITE THIS CARDTHE SKILL AUDIT CARD, Edition 2. Lund Studio LLC, Westminster, Colorado. https://lundr.tech/?view=skills-audit-card. Punch 2B10B8B5EA5DBC34A3194B76. Retrieved 2026-10-13.

What it is.

A teams and sellers' audit of a whole library of Claude skills, in five layers and one report:

Use it whenever a folder of skills is about to be rolled out, sold or installed, or Claude ignores or misuses the skills a team has. Not for a trigger test on its own (THE TRIGGER TEST CARD), a single scale score, writing a new skill.

It carries a machine that shows its working: intake; check; scale; rules; safety; prompts; shelf; probe; run; rewrite; note; mark; report; watch — re-run every prompt of a set on the same shelf, into WORK/watch/results-<set>-<label>.jsonl; moved — what moved between two runs of the same lines: WHAT- MOVED.md, WHAT-MOVED.html, moved.json — 54 checks in its selftest.

It answers requests such as “review these skills before we roll them out to the team”, “a vendor sent us these skill zips, are they safe and any good?”, “which of our skills does Claude ignore?”, “rewrite the descriptions that never get picked and prove it”.

Nine laws, written into the card.

They are in the card itself, so the AI follows them.

EVERY NUMBER IN THE REPORT COMES…Every number in the report comes from the machine and a run on the record. No score or rate is ever typed.
NO PROMPTNo prompt, model or run is dropped because it lowers a score. Errors and timeouts are excluded and counted; a failed call is an error with its reason, never a choice.
A REWRITE IS BETTER ONLY WHEN…A rewrite is better only when the same prompts say so. The old line stays beside the new one.
A SAFETY BLOCK LEADS THE SKILL'S ACTIONSA safety BLOCK leads the skill's actions: do not install until it is cleared.
A SECRET THE SCAN FINDS IS NEVER PRINTEDA secret the scan finds is never printed: its shape, file and line are.
THE ORIGINALS ARE NEVER CHANGEDThe originals are never changed. The audit works on copies in its own folder.
THE SCALE HERE IS THE MANIFEST LAYERThe scale here is the manifest layer. Nothing in this audit makes a skill witnessed.
THE LIMITS ARE SAID IN THE REPORTThe limits are said in the report: sample size, who wrote the prompts, where the runs happened.
A WATCH RUNS ONLY ON THE SHELF THAT WAS AUDITEDA watch runs only on the shelf that was audited. A cell with no runs on one side is NO RUNS, never steady. A MOVED is confirmed by a re-run before any line is rewritten.

The method.

  1. check WORK PATH … --company NAME — intake (folders, folders of folders, .skill and .zip files; a lines file for skills whose packets are not on hand), then scale, rules and safety.
  2. prompts WORK --template, filled as prompts.json: five FIRE and three NEAR per skill (references/PROMPTS-GUIDE.md); prompts WORK until no FAIL.
  3. shelf WORK --fixtures FILES and probe WORK: one Claude project holding every skill's line beside the built-in skills, with the files the prompts mention; the probe's view kept on the record.
  4. run WORK --models haiku,sonnet,opus --runs 2: each run fresh, unable to write files, run commands or reach the web; the first skill reached for and the exact model kept for every run; a failed call kept as an error with its reason; after four limit errors in a row it stops itself; resumable. mark WORK checks a results file written before Edition 2 for silent failures.
  5. rewrite WORK SKILL "LINE" --set v2 --why …, then shelf … --set v2 and run … --set v2 --only … on the prompts the rewrite touches (references/WRITING-THE-LINE.md).
  6. report WORK: AUDIT-REPORT.html, AUDIT-REPORT.md and audit.json.
  7. Later: watch WORK --label DATE, then moved WORK --base results-current.jsonl --new watch/results-current-DATE.jsonl: WHAT-MOVED.html, WHAT-MOVED.md and moved.json.

What rides in the card.

In the card’s own voice, with a machine that shows its working.

THE REFERENCESreferences/LINES-EXAMPLE.json · PROMPTS-GUIDE.md · SAFETY-RULES.md · THE-METHOD.md · UPLOAD-RULES.md · WRITING-THE-LINE.md
THE MACHINEscripts/skillaudit.py · 15 commandsintake; check; scale; rules; safety; prompts; shelf; probe; run; rewrite; note; mark; report; watch — re-run every prompt of a set on the same shelf, into WORK/watch/results-<set>-<label>.jsonl; moved — what moved between two runs of the same lines: WHAT- MOVED.md, WHAT-MOVED.html, moved.json. 54 checks in its selftest. Needs: Python 3; Claude Code with `claude -p` for the trigger layer.

What it does once your AI has it.

  • intake On the record below
  • check On the record below
  • scale On the record below
  • rules On the record below
  • safety On the record below
  • prompts On the record below
  • shelf On the record below
  • probe On the record below
  • run On the record below
  • rewrite On the record below
  • note On the record below
  • mark On the record below
  • report On the record below
  • watch Re-run every prompt of a set on the same shelf, into WORK/watch/results-<set>-<label>.jsonl
  • moved What moved between two runs of the same lines: WHAT- MOVED.md, WHAT-MOVED.html, moved.json
  • On the record A live audit of a twelve-skill shelf (576 runs), rewrites proven on the same prompts, and the first watch a day later: 48 cells steady on Haiku and Sonnet

What it refuses, and where it hands off.

It refuses typing a rate that was not run; dropping a model or a run because it lowers a score; calling a rewrite better before it is run; printing a secret; installing a skill that carries a BLOCK.

  • a trigger test on its own, for one skill or a few → THE TRIGGER TEST CARD
  • a single score on the scale with the reasoning → the skill ranker
  • writing a new skill from scratch → a skill-writing tool
  • legal, security or compliance sign-off on what a skill does → the organisation's own lawyers or security lead

Trigger rates come from Claude Code runs; the Claude app's own rates may differ somewhat. 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: its boot, law, method, machine, seals, refusals and hand-offs, ledger, score and what it carries · SKILL.md — the door your AI reads first · START-HERE.md — the first five minutes, for you
  • LINES-EXAMPLE.json + PROMPTS-GUIDE.md + SAFETY-RULES.md + THE-METHOD.md + UPLOAD-RULES.md + WRITING-THE-LINE.md — in references/, in the card's own voice
  • scripts/skillaudit.py — the machine: intake · check · scale · rules · safety · prompts · shelf · probe · run · rewrite · note · mark · report · watch · moved; see NEEDS below; selftest 54/54
  • WITNESS.md — the run on a realistic case as printed, and the trigger test on Haiku, Sonnet and Opus · SELFTEST.md — the machine's own test, as run at the cut · AUDIT.md, the twelve checks · MANIFEST.md, every file hashed
  • tests/evals.json — the cases it must take, hand off and refuse
  • MY-LEDGER.md — the card's memory, on your own machine · TIN.md, the nine lines on the tin · LICENSE-NOTE.md · HOSTS.md, where it runs
  • system/short-prompt.md and system/system-prompt.md — the doors for any AI without skills

PROOF · SELFTEST 54/54 · WITNESSED ON A RUN · THE RUN ON THE RECORD IN WITNESS.MD · EDITION 2 · PUNCH 2B10B8B5EA5DBC34A3194B76

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º 1187 — 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 WITNESS.MD AND SELFTEST.MD

skillaudit.py, every command showing its working.

A small Python program. Your AI runs it; you can too. The blocks below are pasted from the card’s own record, as printed.

intakeon the record below
checkon the record below
scaleon the record below
ruleson the record below
safetyon the record below
promptson the record below
shelfon the record below
probeon the record below
runon the record below
rewriteon the record below
noteon the record below
markon the record below
reporton the record below
watchre-run every prompt of a set on the same shelf, into WORK/watch/results-<set>-<label>.jsonl
movedwhat moved between two runs of the same lines: WHAT- MOVED.md, WHAT-MOVED.html, moved.json
selftest54 checks that prove the machine; it must print 54/54
THE SELFTEST, AS PRINTED
PASS a sound skill scores 24/25, sound, 96 LEGENDARY
PASS a thin skill scores 9/25 thin, every criterion clamped to at least 1
PASS the hundred caps at 98
PASS the embedded scale matches assets/SKILL-SCALE-v1.json sub-check for sub-check
PASS the hand reader takes a quoted line whole
PASS the hand reader refuses ': ' in an unquoted line
PASS the hand reader folds a block line and keeps nested keys
PASS the hand reader knows 'yes' is not text
PASS intake finds six packets in a folder and a zip, plus one line on record
PASS the punch is the first 24 hex of sha256(SKILL.md), upper case
PASS a sound packet passes every upload rule with its manifest holding
PASS a broken packet fails on nested SKILL.md, extra key, name and angle brackets
PASS a line with ': ' unquoted fails the YAML rule
PASS a file the skill names but does not carry is reported
PASS a manifest that no longer holds is reported
PASS a line on record is checked as a line
PASS a description over 1,024 characters fails
PASS override text in SKILL.md is a BLOCK
PASS a bidirectional control is a BLOCK
PASS a zero-width watermark decodes and is only reported
PASS network code in a script is a WARN, the Claude command line an INFO
PASS a secret-shaped key is a BLOCK and is never printed
PASS an email is a WARN unless it is an example address
PASS a long blob is a WARN, the same blob in a data: URI is not
PASS the sound packet is CLEAR
PASS a prompt that names the skill is flagged; counts are kept
PASS the shelf writes every line byte for byte and finds the built-ins it can
PASS the stream reader keeps the exact model and the skill reached for
PASS a clean run environment drops the host's own session settings
PASS a rewrite that breaks an upload rule is not recorded
PASS a later rewrite set stands on the earlier ones
PASS the prompts a rewrite touches are its skill's own and the ones it was wrongly picked on
PASS reading the packets again keeps the tested line as the baseline and shows the packet's newer one
PASS an auditor's note reaches the report
PASS the report counts hits and wrong picks per model
PASS a rewrite is compared on the same prompts and proposed only when it is better
PASS the report page is one self-contained file: no outside fetches, every skill named, nothing under 14px
PASS a BLOCK leads the skill's actions
PASS Fisher's exact test: the tea-tasting table gives 17/35, an empty change gives 1, a clean sweep gives 2/C(24,12)
PASS the rule: MOVED under 0.05, WATCH under 0.20, else STEADY
PASS watch re-runs every prompt the set ran, on the same shelf, into watch/results-<set>-<label>.jsonl, keeping the model id
PASS a watch resumes: run again it adds nothing, and it names a model id the base never saw
PASS a watch refuses a shelf whose lines no longer match the set (a new line is a rewrite, not a watch)
PASS moved: 20/20 → 4/20 is MOVED down, 15/20 → 10/20 is WATCH, the same counts are STEADY, each with Fisher's p
PASS moved: wrong picks appearing (0/8 → 8/8 on two prompts) are counted on other prompts only and named by prompt
PASS moved notes a change in the answering model id, only where it changed
PASS moved compares only what both sides ran: an errored run, a prompt or a model on one side only is left out and said
PASS moved writes WHAT-MOVED.md, WHAT-MOVED.html and moved.json: a white page, dark ink, nothing under 14px, no outside fetch
PASS the same recorded picks a day apart: every cell STEADY, the model id change named, the watch's shelf confirmed
PASS a call the command line reports as failed is caught with its reason
PASS an answer with no tool and no text reads as a failed call
PASS marking flags only the silent failures, and keeps the file as it was beside it
PASS a failed run that a later run replaced is not counted as still failing; one never retried is
PASS triggertest.py's own selftest passes (selftest 11/11)
selftest 54/54

THE RUNS ARE PASTED FROM THE CARD’S OWN RECORD AS PRINTED. THE CASES ARE THE STUDIO’S OWN EXAMPLES (EXAMPLE CO IS FICTION); NO PRIVATE PERSON IS NAMED.

QUESTIONS AT THE TABLE

Asked before the wire.

What does it need from me?

Python 3; Claude Code with `claude -p` for the trigger layer.

Does it send anything anywhere?

Its machine reads what you point it at, and HOSTS.md says what it needs; python 3; Claude Code with `claude -p` for the trigger layer. The words run wherever an AI reads Markdown.

What is on the record?

The selftest (54/54), a run on a realistic case with every command and verdict pasted into WITNESS.md as printed (A live audit of a twelve-skill shelf (576 runs), rewrites proven on the same prompts, and the first watch a day later: 48 cells steady on Haiku and Sonnet); the twelve-check audit (AUDIT.md). 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. Trigger rates come from Claude Code runs; the Claude app's own rates may differ somewhat.

What will it never do?

It refuses typing a rate that was not run; dropping a model or a run because it lowers a score; calling a rewrite better before it is run; printing a secret; installing a skill that carries a BLOCK.

Who may use it?

One person, any number of their own AIs and computers; a team needs a company licence.

← THE INSTRUMENTS · THE FLOOR →

AT YOUR ELBOW, NEVER THE BOSS · NOT LEGAL, MEDICAL, TAX OR FINANCIAL ADVICE · NOT A PAYMENT CARD · © 2026 LUND STUDIO LLC

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