THE DRIFT CARD · the lines in a doc the code no longer backs
WAKES WHEN someone asks whether the docs are still true, or an agent keeps following a line that fails
THE LOOP
drift.py scan · the doc against the code
paths · commands · the narrow passes
mend or remove each line, that day
scan in the commit that changes the code
a person reads the doc once a quarter
NEVER
Leave a stale line because it is "nearly right"
Let a doc describe a command that is gone
Call a syntactic pass a review
IT MAKES scan — every claim checked, the stale ones named with their line; paths — only the file and folder paths; commands — only the commands, against each script's verbs.
THE STANDARD a stale instruction is worse than none; four kinds of drift; named by line; scan with the change; mend the same day; syntax, not meaning.
PROOF SELFTEST 11/11 · witnessed in Claude 2026-10-09 · 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 · DF71E452D329678A8EADC9DD
CITE THIS CARDTHE DRIFT CARD, Edition 1. Lund Studio LLC, Westminster, Colorado. https://lundr.tech/?view=drift-card. Punch DF71E452D329678A8EADC9DD. Retrieved 2026-10-10.
What it is.
Reads a CLAUDE.md, a README, a card or a tool description against the code folder it describes and names the stale lines: file and folder paths that are not there, `python3 scripts/… verb` commands whose verb the script no longer takes, functions named in backticks that nothing defines, and test or check counts that do not match the file beside them.
It carries a machine that shows its working: scan — every claim checked, the stale ones named with their line; paths — only the file and folder paths; commands — only the commands, against each script's verbs — 11 checks in its selftest, every command on the record. It will never leave a stale line because it is "nearly right"; never let a doc describe a command that is gone; never call a syntactic pass a review.
Six laws, written into the card.
They are in the card itself, so the AI follows them.
A STALE INSTRUCTION IS WORSE THAN NONEThe agent trusts it, fails, and the failure looks like its own.
FOUR KINDS OF DRIFTA path, a command, a symbol, a count. Each is checked against the folder, not against memory.
NAMED BY LINENamed by line, so the mend takes a minute.
SCAN WITH THE CHANGEThe commit that changes the code runs the scan on the docs that name it.
MEND THE SAME DAYA doc that lies once is read as lying twice.
SYNTAX, NOT MEANINGThe card reads what the doc names; a person reads what it claims.
What rides in the card.
In the card’s own voice, with a machine that shows its working.
THE GUIDEreferences/HOW-DOCS-DRIFT.md
THE MACHINEdrift.py · three commandsscan — every claim checked, the stale ones named with their line; paths — only the file and folder paths; commands — only the commands, against each script's verbs. 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.
scan Every claim checked, the stale ones named with their line
paths Only the file and folder paths
commands Only the commands, against each script's verbs
On the record A small repository with a CLAUDE.md: the scan named a deploy verb the script no longer takes, a notes file in a docs folder that is not there, an old_render() nothing defines and "4 tests" beside a file with three; the narrow passes showed paths and commands alone; mended, the doc read IN STEP.
What it will never do.
It will never leave a stale line because it is "nearly right"; never let a doc describe a command that is gone; never call a syntactic pass a review.
It checks names, not meaning: a paragraph describing behaviour the code no longer has passes. Verbs are read from the common argv patterns and argparse; a script with its own parser may read as taking no verbs. Symbol checks cover functions and classes named in backticks with parentheses. 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
HOW-DOCS-DRIFT.md — the guide in references/, in the card's own voice
scripts/drift.py — the machine: scan · paths · commands, 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-09 · EDITION 1 · PUNCH DF71E452D329678A8EADC9DD
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º 910 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-09
drift.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.
scan
every claim checked, the stale ones named with their line
paths
only the file and folder paths
commands
only the commands, against each script's verbs
selftest
11 checks that prove the machine; it must print 11/11
scan · EVERY CLAIM CHECKED, THE STALE ONES NAMED WITH THEIR LINE
$ python3 scripts/drift.py scan repo/CLAUDE.md repo --report drift.md
line 2 · command · scripts/tool.py deploy — the script takes: build, check, selftest
line 2 · count · 4 tests — tests/test_tool.py has 3
line 3 · path · docs/notes.md — not in the folder
line 3 · symbol · old_render — nothing in the folder defines it
10 claims checked · 4 stale · DRIFTED
wrote drift.md
paths · ONLY THE FILE AND FOLDER PATHS
$ python3 scripts/drift.py paths repo/CLAUDE.md repo
line 3 · path · docs/notes.md — not in the folder
10 claims checked · 1 stale · DRIFTED
commands · ONLY THE COMMANDS, AGAINST EACH SCRIPT'S VERBS
$ python3 scripts/drift.py commands repo/CLAUDE.md repo
line 2 · command · scripts/tool.py deploy — the script takes: build, check, selftest
10 claims checked · 1 stale · DRIFTED
(the four stale lines mended)
$ (the four stale lines mended)
scan · EVERY CLAIM CHECKED, THE STALE ONES NAMED WITH THEIR LINE
$ python3 scripts/drift.py scan repo/CLAUDE.md repo
6 claims checked · 0 stale · IN STEP
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?
Drift.py scan · the doc against the code. It asks first for the doc and the folder it describes.
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. It checks names, not meaning: a paragraph describing behaviour the code no longer has passes. Verbs are read from the common argv patterns and argparse; a script with its own parser may read as taking no verbs. Symbol checks cover functions and classes named in backticks with parentheses.
What will it never do?
It will never leave a stale line because it is "nearly right"; never let a doc describe a command that is gone; never call a syntactic pass a review.