WAKES WHEN a session ends and should be written down, or someone asks what was done and what is open
THE LOOP
add · date, title, note, tags, open
check · dated, titled, noted, no duplicate
cut · five files under constant names
find · the rows that carry the words
read OPEN.md first, every morning
NEVER
Invent a note for a session nobody wrote
Keep an address or a number in a record
Overwrite the annals; it appends
IT MAKES add — one row appended; a duplicate refused; check — every row read: dated, titled, noted; duplicates, a note too long, an address or a number that should not be in a record; cut — the five files under their constant names, rewritten whole; find — the rows that carry every word, one line each.
THE STANDARD one row a session, in the writer's words; dated, titled, noted; five files, constant names; sessions, not people; open is a line, not a feeling; the cut sorts; the file keeps the order written.
PROOF SELFTEST 14/14 · 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 · 495C0446463F71A06E5D984F
CITE THIS CARDTHE ANNALS CARD, Edition 1. Lund Studio LLC, Westminster, Colorado. https://lundr.tech/?view=annals-card. Punch 495C0446463F71A06E5D984F. Retrieved 2026-10-10.
What it is.
Keeps the annals of a studio that works in many chats: one row per session — date, title, a one-line note of what happened and what came out, an optional link, tags, and what was left open — appended to one file and cut into five files under constant names: ANNALS.md the chronicle by month, INDEX.md one line a session, TAGS.md the sessions under each tag, OPEN.md what is still open oldest first, COUNT.md the counts with the longest silence. check reads every row for a missing date, title or note, a duplicate, a note past the line, an address or a phone-like number that should not be in a record. find takes words and returns the rows that carry all of them.
It carries a machine that shows its working: add — one row appended; a duplicate refused; check — every row read: dated, titled, noted; duplicates, a note too long, an address or a number that should not be in a record; cut — the five files under their constant names, rewritten whole; find — the rows that carry every word, one line each — 14 checks in its selftest, every command on the record. It will never invent a note for a session nobody wrote; never keep an address or a number in a record; never overwrite the annals; it appends.
Six laws, written into the card.
They are in the card itself, so the AI follows them.
ONE ROW A SESSION, IN THE WRITER'S WORDSThe card appends what it is given and invents nothing; a session nobody wrote down has no row.
DATED, TITLED, NOTEDA row without any of the three is refused; the same date and title twice is refused.
FIVE FILES, CONSTANT NAMESANNALS.md, INDEX.md, TAGS.md, OPEN.md, COUNT.md are rewritten whole at every cut, so a reader always knows where to look.
SESSIONS, NOT PEOPLEAn address or a phone-like number in a record is named by the check; the annals name chats and what came of them.
OPEN IS A LINE, NOT A FEELINGWhat a session left open is written in its row and read oldest first in OPEN.md until a later row closes it in words.
THE CUT SORTS; THE FILE KEEPS THE ORDER WRITTENRows out of date order are noted, never moved in the source.
What rides in the card.
In the card’s own voice, with a machine that shows its working.
THE GUIDEreferences/THE-THREAD-BETWEEN-CHATS.md
THE MACHINEannals.py · four commandsadd — one row appended; a duplicate refused; check — every row read: dated, titled, noted; duplicates, a note too long, an address or a number that should not be in a record; cut — the five files under their constant names, rewritten whole; find — the rows that carry every word, one line each. Every command prints its working and refuses a bad input; 14 checks in its selftest, every command on the record.
What it does once your AI has it.
add One row appended; a duplicate refused
check Every row read: dated, titled, noted; duplicates, a note too long, an address or a number that should not be in a record
cut The five files under their constant names, rewritten whole
find The rows that carry every word, one line each
On the record Three sessions added, each dated, titled and noted; a fourth with the same date and title refused; the check read clean with the span in its notes; the cut wrote the five files under their constant names — ANNALS.md, INDEX.md, TAGS.md, OPEN.md, COUNT.md — with one open line, two tags under cards and a nine-day silence counted; find with two words found the one row that carries both.
What it will never do.
It will never invent a note for a session nobody wrote; never keep an address or a number in a record; never overwrite the annals; it appends.
The annals hold what was written down and nothing else: a session with no row did not happen as far as the files know. The check reads form — a date, a title, a note, a shape that looks like an address or a phone — and cannot tell a true note from a hopeful one. A link is kept as given and never opened. 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
THE-THREAD-BETWEEN-CHATS.md — the guide in references/, in the card's own voice
scripts/annals.py — the machine: add · check · cut · find, standard library only, selftest 14/14
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 14/14 · 4 COMMANDS ON THE RECORD · WITNESSED IN CLAUDE 2026-10-10 · EDITION 1 · PUNCH 495C0446463F71A06E5D984F
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º 1061 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
annals.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.
add
one row appended; a duplicate refused
check
every row read: dated, titled, noted; duplicates, a note too long, an address or a number that should not be in a record
cut
the five files under their constant names, rewritten whole
find
the rows that carry every word, one line each
selftest
14 checks that prove the machine; it must print 14/14
add · ONE ROW APPENDED; A DUPLICATE REFUSED
$ python3 scripts/annals.py add annals.jsonl --date 2026-09-23 --title The clauses --note the licence clauses written and read twice --tags legal,cards --open counsel to read them
row 1 · 2026-09-23 · The clauses · open: counsel to read them
add · ONE ROW APPENDED; A DUPLICATE REFUSED
$ python3 scripts/annals.py add annals.jsonl --date 2026-10-02 --title The seat kit --note the seating kit cut and proved on the house method --tags cards,theme
row 2 · 2026-10-02 · The seat kit
add · ONE ROW APPENDED; A DUPLICATE REFUSED
$ python3 scripts/annals.py add annals.jsonl --date 2026-10-09 --title The sky map --note every card drawn as a star by house; the rim labels mended --tags theme
row 3 · 2026-10-09 · The sky map
add · ONE ROW APPENDED; A DUPLICATE REFUSED
$ python3 scripts/annals.py add annals.jsonl --date 2026-10-02 --title The seat kit --note again
that row is in the annals already: 2026-10-02 · The seat kit
check · EVERY ROW READ: DATED, TITLED, NOTED; DUPLICATES, A NOTE TOO LONG, AN ADDRESS OR A NUMBE
$ cat annals/COUNT.md
# COUNT
- sessions: 3
- first: 2026-09-23
- last: 2026-10-09
- open: 1
- tags: 3
- longest silence: 9 days, 2026-09-23 to 2026-10-02
## By month
- September 2026 · 1
- October 2026 · 2
## By tag
- cards · 2
- theme · 2
- legal · 1
find · THE ROWS THAT CARRY EVERY WORD, ONE LINE EACH
$ python3 scripts/annals.py find annals.jsonl cards theme
2026-10-02 · The seat kit — the seating kit cut and proved on the house method
1 of 3 rows carry "cards" and "theme"
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?
Add · date, title, note, tags, open. It asks first for the date, the chat's title, what happened in one line, and what was left open.
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 (14/14) 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 annals hold what was written down and nothing else: a session with no row did not happen as far as the files know. The check reads form — a date, a title, a note, a shape that looks like an address or a phone — and cannot tell a true note from a hopeful one. A link is kept as given and never opened.
What will it never do?
It will never invent a note for a session nobody wrote; never keep an address or a number in a record; never overwrite the annals; it appends.