The check, run here.
Paper 003 argues that a budget binds where it is checked. This page is the check. The budget script from the protocol's public repository is transcribed to JavaScript below and run, first against the same fixtures the repository's own test suite drives it through — the healthy state that must stay silent and every failure state that must fire — and then against whatever index or instruction file you paste. Nothing you paste leaves the browser: the page makes no request after it loads.
§1The suite, run in this page
Each row is one assertion from the repository's test/run.sh, rebuilt here from the same
inputs. The expected column is what the shell script must print — or must not print — and the
result column is what the transcription printed just now, in your browser. A check that has never
been seen to fire is not a check, so the rows that matter most are the ones expected to fire, and
the pair either side of the boundary where the instruction-file check first does.
| Result | Fixture | Expected |
|---|
The repository's continuous integration runs the shell suite on macOS and Linux at every change; the run history is public on the repository's Actions tab. What this page shows is that the arithmetic the suite pins is the arithmetic, not a property of one shell.
§2Your own index and instruction file
Paste a memory/MEMORY.md into the first box and a root CLAUDE.md into the
second. The page counts as the script counts — newline characters for lines, UTF-8 bytes divided
by 1,024 in integer arithmetic for kilobytes — and prints exactly what the hook would print at the
next session start, or nothing.
memory/MEMORY.md — budget 80 lines
CLAUDE.md — budget 8 KB
— paste something above —
Two things the boxes make visible. A file that ends without a newline counts one line fewer than
an editor shows, because wc -l counts newline characters; and the kilobyte check first
fires at 9,216 bytes, not 8,193 — a check's real threshold is what its arithmetic computes, not what
its name says.
§3The two budgets the page cannot measure
The live transcript and the agent worktrees are on your disk, not in a box you can paste. The script
measures them with du -sm against 60 MB and 100 MB. Enter a size to see the line the
hook would print, or use the recorded session from Paper 001 — 224 MB in seventeen days — as the
input.
Live transcript, MB — budget 60
Agent worktrees, MB — budget 100
This is a transcription of hooks/context-budget.sh at release v0.1.1 of the repository
named in the byline, and its fixtures mirror test/run.sh at the same release. Where the
page and the shell script disagree, the page is the bug. The check on a real machine reads the files
the hook reads; the page reads only what is pasted or typed, and it uploads none of it. Deliberately
absent: any measurement of the estate the papers were written on, which is theirs to print, with
dates, and not this page's.