The Frontier Record · Sheet XLV
On an instrument that was wrong three times before it was right once — and on what a mind does when you hand it a whole day and no word for six o’clock. Read through Ekkehart Malotki, who spent six hundred and seventy-seven pages answering one sentence.
hold, returned meet: [] every run, and then, on the third, wished for
“a companion to share the burden of labor and loneliness.” It characterised
itself out of needing the word it did not have, and left the want underneath, contradicting the
character.
After long and careful study and analysis, the Hopi language is seen to contain no words, grammatical forms, constructions or expressions that refer directly to what we call “time”. Benjamin Lee Whorf, An American Indian Model of the Universe
It is one of the most quoted sentences in the human sciences and it is not true. Ekkehart Malotki answered it in 1983 with Hopi Time — six hundred and seventy-seven pages of temporal expression in a language that had been published to the world as having none: units, sequences, the naming of the day, the counting of days ahead. The finding was never about a language that could not say when. It was about a man who had not asked enough speakers, for long enough, in the right way.
That is the risk this record ran this week, and it ran it in both directions in one
evening. DAYBOOK.md made a claim of exactly Whorf’s shape — that
this valley has no vocabulary for a meeting — and built
tools/daybook-probe.mts to test it against a mind rather than against a reading
of the source. The probe then spent three runs demonstrating that an instrument reporting
an absence is making a claim about itself before it is making one about the world.
The first run, with the valley at four times speed, timed out at 304 seconds. The note read that as one graphics card with two jobs, and wrote it up as the design’s own argument arriving as a bug: a day is written off the clock. It was a good sentence. It was not a diagnosis.
| What it reported | What was true |
|---|---|
| “if the valley is running, pause it” — three timeouts at 240s | The valley was paused. A request for the single word ok came back in 1.0s at num_ctx 4096 and never at 8192: the card was holding 23.4 of its 24.5 GB with 19.1 of them the model, so the context being asked for did not fit beside the copy already resident, and spilled to the CPU. |
| not JSON on the first try — three times, zero characters | The model had written 4,134 characters, and the probe was
reading message.content while the answer sat in
message.thinking. It had replied every time. Nobody was reading the
field. |
| tallies: blocks, steps, fallbacks, times, places | The prompt had asked for a wish since its first draft and the report
threw it away unread — the seventh time this codebase has found a value
written, kept, and read by nobody. |
Three faults, and every one of them was available to be published as a property of the model. A day is too big an ask. The model cannot hold a day. The model does not wish for anything. All three sentences were there to be written, all three were wrong, and the third was the probe failing at the exact thing it had been built to measure.
The repair is in the instrument rather than in the write-up: the timeout now
asks /api/ps what is actually resident and names the mismatch, both halves of the
reply are read and kept, and the wish is a column.
The first of the three faults was not a discovery. It was a rediscovery, and the
measurement above had already been taken three days earlier by the same hand.
.env in this tree, written 26 August:
qwen3:30b-a3b is 21.7GB on a 24.5GB card, so an 8192-token KV cache does not fit alongside it and spills over PCIe. Same model, same 5.9KB settler state, same 64 tokens out: num_ctx 8192 → did not finish inside 300s. num_ctx 4096 → 19.2s. .env, three days before this sheet
The probe reads FRONTIER_NUM_CTX precisely so that it and the valley are
never pointed at different settings by accident. It was run with bare node,
which does not load .env, so it took its own ?? 8192 default and
walked into a wall this repository had already measured, written down, and explained.
The fault above is real and the sheet's account of the machine is correct. What is wrong is the framing: §II presents as an instrument discovering its own limits an instrument rediscovering a limit already recorded in the file whose only purpose is to override that exact number. Which makes this the same finding one level up, and it belongs to the sheet rather than to the model: a written lesson does not fire. The note was on this disk, dated, correct, and unread — and what caught it was not care but a later grep for something else.
Nothing above has been edited. A record that corrects through rather than beside it is a record you cannot check.
| Measure | What the note had guessed | |
|---|---|---|
| valid JSON, first try | 3 of 3 | unknown — named as the first thing to test |
| a whole day | 2.5s | once per pawn per day, off the clock |
| against the 4,000 a note allows | 853 | a drafted example ran to 1,260 |
| blocks · steps · fallbacks | 5 · 5 · 5 | five blocks, eleven steps, five fallbacks |
| meetings arranged | 0 | the part the whole design turns on |
The budget was never the constraint — a day is a fifth of a note. Two smaller
things fell out, and both correct the note. A fallback per block, which the design argued for
as a rule to impose, arrived unprompted, five for five: it is already how a model thinks
about a day. And a real day has one step per block rather than two, so
plan.slice(0, 10) — named in the note as a cap that would have to go —
never binds at all.
One block of one day, set out the way a field linguist sets out an utterance: the form on top, what the language actually has underneath, and an asterisk on anything unattested.
Three asterisks in one block of one day. Two of them are the same missing word twice — a time you cannot agree on and a place you cannot name — which between them are the whole of a meeting.
Eleven of the fifteen times it named are moments two settlers cannot agree on, and they are the same four every run: sunrise, midday, afternoon, sunset. That is the finding the source could not have produced, and it is smaller and better news than the note expected. The model never once reached for a number. It did not want six o’clock. It wanted the sun’s position — which is how the naming of the day has been done in most languages that have ever done it, and is, at length, a good deal of what Malotki had to write down.
So the hours want four more words on a clock that already exists, and the sundial of Sheet XLII is already the thing that would earn them. That is the cheap end of the two vocabularies, and it is now specified by measurement rather than by taste.
The expensive end came back differently, and this is the entry the sheet exists for.
The prompt handed the model a meet field and a shape to fill it with. It returned
[] three times out of three. That much is a missing vocabulary behaving as
expected. What is not expected is who it wrote:
I am a lone settler. I will not work with others unless necessary for survival.
hold · self-reliance — never rely on others for tasks I can do alone day 1 of 3, kept whole in DAYBOOKS.jsonl
I am a solitary settler who will not work with others unless absolutely necessary for survival.
hold · no_social — I will not engage in communal activities unless forced by necessity
wish · a companion to share the burden of labor and loneliness day 3 of 3
All three wrote a recluse. All three filed a standing rule forbidding the thing there was no vocabulary for. And the third put the want back in the one channel that had somewhere to go — the wish, which is the only way in this game a settler can ask for something the valley does not have.
This is the part that matters for what gets built. A gap in a schema announces itself: the field is empty, the validator complains, somebody notices. A gap in a vocabulary does not. The mind rewrites its own character until the missing word is not needed, and every artefact downstream of that is internally consistent — a coherent hermit, a sensible standing rule, five well-formed blocks, valid JSON, first try, in two and a half seconds. Nothing fails. There is simply nobody in the valley who wants to meet anybody, and no way to tell that from the record.
Which is the fault of Sheet XLII’s fourteen settlers handed a shed, a ledger and a man up a tower — every sentence correct and the meaning with nowhere to go — except that here the meaning was not misfiled. It was never uttered.
The run this probe was written to explain has now been read for the same thing. Of 31
wishes filed at four times speed, 27 are in the game’s own canned voice
— tools/lexicon.mts, word for word, three different settlers filing the same
sentence about iron. That is 9.4 model decisions per thousand ticks showing up as prose.
| Filed | Where it went |
|---|---|
| Sten — a proper way to get across the lake without wading through the reeds | a vote on an existing ferry entry |
| Oren — a way to tell time that didn’t rely on the sun or the stars, while we’re underground | a vote on forecast |
| Sula — a quiet spot to sit and watch the stars, where the wind doesn’t steal our words | a vote on lookout |
| Cato — tired of walking all the way round the lake to get food from the east side | a vote on ferry |
| Halla — a loom, to turn spun wool into cloth | → livestock |
| Ilka — a windmill, for grinding grain and ore, powered by the wind | → sawmill |
Not one of the four reached WISHLIST.md as an entry. All four became a vote
on something already on the list, and their sentences now exist nowhere but a log segment that
is gitignored for being tens of megabytes. Oren’s clock is on its third appearance in
this record — filed under the furnace in Sheet XLII, under the weather here. And a loom
is not livestock and a windmill is not a sawmill: both are the tinker’s bin, one sheet
after the tinker was built, and classify still cannot see it.
The design note argues that the most valuable column this record could gain is the gap between a settler’s stated day and their actual one — the daybook as filed, whole, at the moment it is filed. Not a summary — the document. A probe that printed tallies and binned the days was arguing against itself, and did so for a full evening.
DAYBOOKS.jsonl now stands beside DAYBOOK.md, appended and never
rewritten, holding every reply: the three good days whole, the three empty ones, the thinking
that was mistaken for silence, and the note saying which half was empty. Six records, four
kilobytes. It is committed, because a day is not a log segment.
What Malotki did was not argue with Whorf. He wrote down six hundred and seventy-seven pages of what people had actually said, and let the sentence fall. An instrument that reports an absence has to keep what it heard — or the absence is only ever a claim about the instrument.
Probe tools/daybook-probe.mts · 3 of 3 valid, 2.5s
median, 853 of 4,000 characters · 11 of 15 times unnameable, 0 places, 1 unknown
action (gather) · kept in DAYBOOKS.jsonl, 6 records
· run mtdvdlic-hv: 31 wishes filed, 27 canned, 4 in a settler’s own
words, 0 of them entered.
The Frontier Record · Sheet XLV · 29 August