A picture book with facing pages. The arrow keys, Page Up and Page Down, Space, or the buttons at the bottom turn the pages. M opens the map of the book. Numbered marks in the text open Pin's notes on where each fact came from; Escape closes them.

So You Want To Build A Ghostwheel?

The title, So You Want To Build A Ghostwheel?, lettered in an arch over a wheel of eight small smiling computers. Spoke the ghost sits at the hub. Down on the left a round door stands open with warm light inside; on the right, Pin the mouse stands on the floor, writing. So You Want To Build A Ghostwheel?

Come in!

Sit down with us.

Turn the page.

Part One

how we say things

Chad, a tall smiling figure in a teal sweater and a cap worn backwards, stands in a spotlight by the shop door, thumb up, holding a card with an arrow that points left. Spoke peeks from behind the door frame; Pin writes it down.

Oh! Who is this?

"Hi. I'm Chad. I got this."

"Last word first. Every time."

And then he was gone.

4
An open round door, warm light inside. Above, a wheel of eight small smiling computers joined in a ring, with Spoke the ghost at the hub. Pin the mouse sits by the wall, writing.

This is the shop. Come in!

A ghostwheel is a lot of small computers, in rings. Each one looks after its friends.

Spoke lives at the middle and sees. Pin writes down what Spoke sees.

5

1 Door

A ghostwheel is a set of computers in rings, so that when one is away, the others carry on. The first design has seventeen of them. Fifteen stand in three rings of five, and a ring is available while any three of its five are. The same fifteen also make five rings of three. The edge ring holds all seventeen, in service or not: it is where hosts are added and taken away, and where the rings are built.

Nobody picked those numbers one by one. Take seventeen, keep two aside (one to build on, one to test on), and fifteen are left. Divide by three, and each big ring has five. Turn that over, and the small rings hold three.

What runs on the wheel is C4, published in 2025 as "Continuous Creation, Command & Control, a literate technology control framework". Its aim, in one line: make the thing findable later, by someone who was not there, without asking them to trust you. No AI is needed to use it.

Spoke and Pin are this book's two guides. Spoke sees. Pin writes down what Spoke saw, with when and where. Each small mark on this page opens what Pin wrote.

17 computers: 3 rings of 5; the same 15 also make 5 rings of 3; 2 wait at the edge. edge ring: all 17 5 5 5 2 aside: build, test rings of 3: same colour, same ring
Seventeen computers. Each shape is a ring of five; each colour is a ring of three. Two wait at the edge.
6
Seventeen small round-topped doors in two rows, each with a letter: A C D E F G H I L, and M N O P R S T W. The S door stands open with a soft glow, and Spoke peeks out. Below, Pin sits writing a long list that unrolls across the floor. A C D E F G H I L M N O P R S T W

Every room in the shop has a letter on its door. There are seventeen doors.

Each letter has four names.

Spoke lives behind the S door. Pin keeps the list.

7

2 Letters

C4 keeps its words in rooms, and every room is one letter. There are seventeen. They live in a plain text file called m/t, one line for each letter. Each line gives its letter four names, under four columns that have names of their own: scalar, group, command and tag. A's line reads ASSET, ARRAY, ADD, ARCHIVE. S's line reads SCALAR, SPOKE, SELECT, SEMAPHORE, and that is where Spoke got a name.

That makes sixty-eight words. Sixty-four of them are common English; only four (asset, obfuscate, spoke and taxonomy) are claimed nowhere else. The busy words are on purpose: when two rooms both need the word "map", the letter keeps them apart.

Nine more letters hold values and force stops. Pin has two notes about them that differ by one word: one says Q is QUERY, the table says QUERY-STABLE. Both are kept, because the difference is worth knowing.

Saying one idea four ways is not a muddle. C4 asks for at least two ways to say everything, and asks that they balance. The facing pages of this book try to do the same.

17 letters: A C D E F G H I L M N O P R S T W. Below them, 9 more: B J K Q U V X Y Z. 17 rooms, one line each in m/t AA ASSET ARRAY ADD ARCHIVE CC COMMAND CAPABILITY COMPILE COLLECTION DD DOCUMENT DATASET DERIVE DOMAIN EE EXPRESSION ENTITY EVALUATE ENVIRONMENT FF FEATURE FRAMEWORK FORMAT FUNCTION GG GADGET GROUP GRAPH GATEWAY HH HOST HOME HELP HEURISTIC II INDEX IDENTITY INTERN ITEM LL LAYOUT LIBRARY LINK LICENSE MM MATRIX MEASURE MODEL MARKER NN NODE NETWORK NEGOTIATE NOTE OO OBJECT OPERATION OBFUSCATE OTHER PP PROGRAM PROJECT PIPE PACKAGE RR ROUTER REGISTRY RELAY ROUTINE SS SCALAR SPOKE SELECT SEMAPHORE TT TEMPLATE TAXONOMY TEST TAG WW WORKER WEBSITE WRITE WORK scalargroupcommandtag A ASSET ARRAY ADD ARCHIVE S SCALAR SPOKE SELECT SEMAPHORE 9 more, which hold values and force stops (m/v/t) B J K Q U V X Y Z
The seventeen letters as m/t holds them, and below, the nine that hold values. Two lines shown in full.
8
A big wooden cart wheel hangs on the shop wall, with Spoke the ghost at its hub; one of its spokes is painted coral. To the right, a round speech bubble says hi. Lower down, three notes are pinned to the wall with red pins: one shows a little ghost, one a wheel, one a speech bubble. Pin the mouse sits on the floor below them, writing. hi!

A spoke is part of a wheel.

Spoke is a friend who sees.

Say hi, and you spoke!

One word, three things. All of them are true. Pin writes them all down.

9

3 Seams

One word can carry several meanings; C4 keeps them all. Corwin gave three of its words their meanings on 2026-08-03, and they explain each other.

A seam is "an opportunity to better pin someone's language": not a defect, not a gap to fill, but an opening, where someone gets to tell us what they meant.

A pin is "a statement someone has made, about anything." Every word starts as "an arrow in flight", and "needs to land somewhere to become a pin (noun)". So Pin is a mouse, a pin holds a note to the wall, and a pin is what someone said.

A semaphore, the last name on the S door, is how we unite terms around data, and data becomes information as they unite. As a verb, it routes pins toward places they can land, "by ripping seams open to find openings for users to provide nuance, correct our bias, and make the meaning personal".

The rule underneath: a name with several senses is one name for several truths, and must not be "resolved". The real hazard is two copies of one truth that can quietly drift apart, a cache and its file; those need a named tiebreaker. "Multiplicity of sense: keep. Duplication of fact: fence."

C4's own name is a seam. Its README calls it Collaborative Consent Continuity Controls; the public page on spread one said Continuous Creation, Command & Control. A note from 2026-08-19 says both were running then.

Two columns, One word, several truths: keep and One truth, two copies: fence: Spoke — a friend, a part of a wheel, a C4 word / a mirror and its source; pin — a mouse, a tack, a statement / a cache and its file; C4 — two names, both in use / name the tiebreaker before you need itOne word, several truths: keepOne truth, two copies: fenceSpoke — a friend, a part of a wheel, aC4 worda mirror and its sourcepin — a mouse, a tack, a statementa cache and its fileC4 — two names, both in usename the tiebreaker before you need it
Two shapes that look alike. Left: one word holding several truths, kept open. Right: two copies of one truth that can drift apart, fenced, with a tiebreaker named first.
10
The tall teal L door, its round plate marked L and a cream sign on it listing four names: layout, library, link, license. On the floor beside it a small smiling computer reads brackets on its screen. Pin the mouse stands proudly by a long paper list unrolled across the floor, written with brackets, and Spoke floats above the list, looking. L LAYOUT LIBRARY LINK LICENSE ( ) ( ) [ ] { } < >

The L door has four names. List is not one of them.

But Pin can make a list! We can do it. List is a real word, too.

11

4 Doing

In C4, a word is a type when the system knows how to effect it: "give it real behavior, recognise it, use it." It does not need a row in the table. Corwin's words: "a virtual type simply means a word that we honor as it was a word we know how to effect as a type within our taxonomy even though it does not appear as a taxonomy".

His chosen example is LIST. The L line of m/t reads LAYOUT, LIBRARY, LINK, LICENSE. It has no LIST, and none is due. Yet the shop makes lists. A small file, l/l, pins each of eight brackets, ( ) [ ] { } < >, to its own hash, and that registry is what makes a list a list, with no table word anywhere in the loop. The file is on disk, and it is still marked CANDIDATE: the ruling settled the principle, not that one file.

This undoes a wrong question. "Is LIST in the table?" was checking the wrong ledger. The rule "decouples 'is this real?' from 'is this in the table?'" A type is real when something can do it.

C4-LANG lists six such words so far, each a word and a promise: TYPE (or kind), theme, skin, QUERY, word and hunk. One of them, word, holds the whole grammar together; it comes back on the keeping page.

Two columns, The L line in m/t and LIST, done by l/l: LAYOUT / ( and ), each pinned to its own hash; LIBRARY / [ and ]; LINK / { and }; LICENSE / < and >The L line in m/tLIST, done by l/lLAYOUT( and ), each pinned to its own hashLIBRARY[ and ]LINK{ and }LICENSE< and >
Four names on the L door, and no LIST among them. The shop makes lists anyway: eight brackets, each pinned to its own hash in l/l. Setting the two columns side by side, row by row, is only for the drawing.
12
On a wall shelf, a little toy train of two wooden blocks, "as" and "(LIST)", with a gap between them marked by a small sparkle; Spoke floats above the gap, looking at it. A dotted path rises from the LIST block to Pin's paper list hanging on the wall, with a magnifying glass. On the floor below, the same two blocks are hooked together as one train, and Pin stands beside it. as (LIST) 2 as (LIST) 1

This is a space. It is a small gap.

With a gap, there are two. With no gap, they go as one.

BIG letters go and look in the list. Small letters do not.

13

5 Spaces

Two rules do most of the work in C4's grammar, and both show in a single line.

Space binds. A bracket right after a word, with no space, is an operator: in as(VIRTUAL), as is applied to VIRTUAL, one group. A bracket with a space before it is plain text, so as VIRTUAL is an operator and then a separate word. Because as( never occurs in ordinary English, it can end a run of unquoted prose exactly, with no quotes at all. Quoting and binding are "two delimiters for one job", so quotes never carry the weight alone; a language fenced only by quotes is one where "a stray quote changes meaning silently".

Case resolves. UPPERCASE words, such as VIRTUAL, TAXONOMY, HOST and TAG, are looked up in the taxonomy. Lowercase words are the language's own small words (as, from, toward, into) or the new name being made, taken just as written. One line can hold both: (TAG) at its head is looked up, and tag inside "(for C4: tag)" is literal.

That is why the short form is the normal one. Mint a name in lowercase and its other spellings come free; mint it in uppercase and you pay with a list. "The long one is the bill for choosing the harder case".

These rules were read off three of Corwin's own examples on 2026-08-10, after his nudge to "pick-up the clues about significance of space", and offered back for correction.

Two columns, Spaced and Bound: as VIRTUAL / as(VIRTUAL); an operator, then a separate word / the operator applied to its word, one group; "(virtual) a TERM" / (virtual)taxonomy; literal words, inside quotes / a cast, the qualifier applied to the wordSpacedBoundas VIRTUALas(VIRTUAL)an operator, then a separate wordthe operator applied to its word, onegroup"(virtual) a TERM"(virtual)taxonomyliteral words, inside quotesa cast, the qualifier applied to theword
Four specimens from C4-LANG, two spaced and two bound. A bracket with a space before it is text; a bracket with no space is an operator.
14
A tall wooden set of shelves on the left of the shop wall, full of kept things: glass jars of word cards, little labelled boxes, a row of notebooks. On the bottom shelf sits a yellow box with a big question mark on it, its lid open and glowing softly. Spoke floats by the top shelf holding a new word card that says zib, and Pin stands in front of the shelves, looking up. ? zib

Pin keeps every word. A new word is a word, too.

What we could not check has a box of its own.

Pin keeps it all.

15

6 Keeping

C4's grammar has no error state. Its fallback type is word: anything that does not resolve "stands for itself". Every token either resolves or keeps its own text, so a line can always be rebuilt, byte for byte, from its pieces.

The same rule comes back at every height. A run nobody registered stays a word. A line nobody could parse stays, verbatim, as a comment. A check nobody could run is reported, never claimed as passed. The language "always has somewhere honest to put what it could not read".

"Could not check" is a third answer, beside yes and no, and it "must never share a channel with 'checked and passed'". The tools mean it: tv1cr answers a question it cannot answer with its own exit code, 2, and says so. When it overwrites a cell, it keeps the old value.

Rulings work the same way. In the shop's question bank, Q607 was DEFAULTED on 2026-10-19 and RULED on 2026-10-20; the ruling is a new row, and the default stays above it. To log, in C4, "is to ADD an atom, never to edit the past".

C4-LANG is careful here too. Keeping everything is right where dropping a human sentence would be the harm, and wrong where an unreadable input means the world is not as assumed. It is "a choice about which failure you prefer, not a strict improvement".

A ladder, top first. 3: claim; 2: line; 1: token.3claima check that could not be run is reported,never asserted2linean unparseable instruction is a comment, keptverbatim1tokenan unregistered run is a word, standing foritself
What will not resolve, and where it goes, at three heights. Nothing is dropped; each has an honest place to go.
16
A wooden test bench. On it, a small smiling computer is wired to a connector, and Pin the mouse, standing on the bench, holds the pulled plug up, on purpose. Between them a blue test box glows with a bright red light on top. Spoke floats by the computer, delighted. High on a wall shelf, a second test box with no light at all just watches with big eyes.

We say it works. How do we know?

We break it on purpose. Then we see the light go red. Good! The test works.

If a test can not go red, it is only watching.

17

7 Proving

Every claim in C4 is meant to carry the tool that could break it: "a claim needs a tool that fails it", and its twin, "a test needs a mutant it kills, or it is only watching". A declaration can even "ship with its own falsifier, in the same sentence that makes the claim".

A passing test, alone, says only that a check passed today. Here it counts only if it was also shown to fail on a fault planted on purpose; tools take a --prove-red switch that plants the faults and expects red. Corwin's ghostwheel code starts that way: "Test scaffolding must come before everything".

The shop even keeps a liar. bin/sh1am says PASS for a file that is not there, and never admits it could not measure, on purpose. His reason: "we'll never prove any claims if we can't at least show a tool that DOESN'T do what we say we want ours to do." A gauge that passes sh1am is measuring nothing.

A check must be able to say no. When ot3he first ran on ten real acts, its verdict was NOT-MADE, and its record calls that "the strongest available evidence that it is measuring something".

Promises break early or late. His ladder for catching them runs testing, turn, build, install, run-time, bug reports. A test is the first rung.

This book keeps the rule: its checks plant a hard word on a picture page, and must turn red.

A ladder, top first. 6: bug reports; 5: run-time; 4: install; 3: build; 2: turn; 1: testing.6bug reportsfound by someone using it5run-timefound while it runs4installfound as it goes in3buildfound as it is made2turnhis word; this page does not guess what itcovers1testingfound by the test that came with the promise
Where a broken promise gets caught, earliest at the bottom. The six rungs are his words; the notes beside them are ours.
18
Two little desks back to back with a striped folding screen between them. Spoke floats behind the left desk, writing with a pencil; Pin stands on the right desk, writing in a notepad. Above them two notes rise and meet: each shows the same ring of five dots, except that on Pin's note one dot is coral, and a soft yellow ring circles it.

Spoke writes it down. Pin writes it down, too. They do not look.

Then they look at both. The same? Good! Not the same? Good, too. We learn a lot.

19

8 Twice

Spread two said C4 asks for two ways to say everything. Here is how to tell two ways from one way said twice: if either telling can be rebuilt from the other, the pair has collapsed; "only one register is actually present, and the second is decoration". The shop's two tellings of a day's work show the difference. Operational asks: did it hold, did it need rework, is the box still up? Scientific asks: what was predicted, what was observed, did the prediction survive? "Held" does not say whether holding was expected, and a right forecast does not say whether anyone had to get up at three in the morning.

Two writers is the same idea, for doing. "Load-bearing changes are built twice, independently, and kept apart — agreement is evidence, disagreement is information". "A check run twice by one hand is one check". When one experiment built its instrument twice, the two disagreed once, and the disagreement was real: 68 = 4 × 17, and it corrected the paper's first version.

The shop's tools carry it. tv1cr, which unfolds a table into folders, writes every cell on both sides, in its row and in its column, "the two writers", and its check reads each side against the other.

So Spoke and Pin each write it down, apart. Same answer: good. Different answer: good too, because now there is something to learn.

Two columns, Operational and Scientific: did it hold? / what was predicted?; did it need rework? / what was observed?; is the box still up? / did the prediction survive?OperationalScientificdid it hold?what was predicted?did it need rework?what was observed?is the box still up?did the prediction survive?
Two tellings of one day's work. Neither can be rebuilt from the other, and that is what makes them two.
20
Pin the mouse sits at a wooden desk on the right of the shop, writing. On the wall above hangs a round clock, and beside it a little map pinned up with a red dot on it. On the desk stands a note card with ruled lines and a small coral dagger mark in its corner. Spoke peeks round the right end of the desk.

Spoke sees it. Pin writes it down: what, and when, and where, and who.

If only one friend sees it, Pin writes a small mark on it.

When a new friend sees it too, the mark is gone.

21

9 When

Pin never writes a fact alone. Each note says what was said, when it was seen (in UTC, the world's shared clock), who or what saw it, where it came from (a file and its lines), that file's hash at that moment, and its state. Tap any small mark in this book and those notes open.

Why "seen" and not "true since"? We can rarely know when a fact changed in the world; we can always say when each witness saw it.

C4 already keeps its own date this way. Its DATE file is written by one tool, one line per roll, newest last: the date, the UTC time it was rolled, the host, and the date before it. Its table tool stamps each column and row with the time the writer wrote down, kept apart from the file system's clock; a table is current only when the two agree.

A fact seen by one hand only wears a small dagger, †, the mark Corwin's paper on diligence uses for "claims resting only on that single witness". It is a count, not a refusal: when a second, different hand writes a row, the dagger goes. A copy of your own note does not count; "a reflection is not a witness".

The shop has not built the register these rows will live in yet: when this page was read, the c4 tree had no c/seen.

Two columns, What Pin writes and The book's first note: fact / hosts; said / The prototype design is 17 nodes; seen / 2026-11-03T20:08:58Z; by / Mentat (claude-opus-5-5), reading the c4 tree; from / c4/facts/ghostwheel-ring-of-rings, line 3; sha / sha256:6a70ea2b…; state / seenWhat Pin writesThe book's first notefacthostssaidThe prototype design is 17 nodesseen2026-11-03T20:08:58ZbyMentat (claude-opus-5-5), reading the c4treefromc4/facts/ghostwheel-ring-of-rings, line3shasha256:6a70ea2b…stateseen
Seven fields in one row. On the right, the very first note in this book, from the door, as Pin wrote it down.
22
Two wooden ladders stand side by side in the shop. Spoke peeks over the top of the shorter left ladder; Pin holds the foot of the taller right one. Their bottom two rungs are the same colours and are joined by dotted lines; above that, the rungs differ in number and colour. On the right, an arched doorway opens onto a starry night, where a small ring of computers sleeps with closed eyes under a crescent moon. z z

Spoke has a ladder. Pin has a ladder.

Each one says how a ghostwheel wakes up.

They are not the same. Pin keeps both. Where they are not the same, we learn a lot.

Come and see who wakes up.

23

10 Witnesses

Ask the c4 tree one question, "what are C4's run-levels?", and more than one witness answers. Pin keeps them side by side.

Spoke's ladder is Corwin's own ghostwheel code. It counts what is standing up on a host: 0 bootstrapping, 1 containers, 2 components, 3 configurations, 4 connections, 5 running. Pin's ladder is the language document, C4-LANG. It counts a lifecycle: bootstrapping, containers, then configure, make, install, setup, self-test, enablement.

Two more answer too. A fact from 2026-09-11 counts locks, 0 read, 1 present, 2 fresh, 3 digest, 4 signed, and calls everything above them virtual. And the ladder on spread seven counts where a broken promise is caught.

The first two agree at the bottom: bootstrapping, then containers. Then they part. One counts what is up; the other counts what has been done to the software. Neither is wrong. That they differ tells us where each one stands: a host, a build, a lock, a promise. (That reading is Pin's, not Corwin's.)

His paper names the method: where two readings diverge, "that gap is not a defect in the argument. It is the argument's instrument". The shop's rule for measures that disagree is the same: show them side by side, "which is not a score".

Part Two climbs Spoke's ladder, one rung at a time, as a ghostwheel wakes up.

Two columns, Spoke's ladder: the ghostwheel code and Pin's ladder: C4-LANG: 0 bootstrapping / bootstrapping; 1 containers / containers; 2 components / configure; 3 configurations / make; 4 connections / install; 5 running / setup; (no more rungs) / self-test; (no more rungs) / enablementSpoke's ladder: the ghostwheel codePin's ladder: C4-LANG0 bootstrappingbootstrapping1 containerscontainers2 componentsconfigure3 configurationsmake4 connectionsinstall5 runningsetup(no more rungs)self-test(no more rungs)enablement
Two witnesses to one question. They agree on the first two rungs, then part. C4-LANG gives its rungs no numbers; setting them beside the code's, row by row, is ours.
24

Part Two

how a ghostwheel wakes up

Very early morning in the shop. Through a round window the sun is only just rising. On a shelf, three small computers are still asleep, their screens dark. Chad stands in a spotlight in the middle of the room, thumb up, cap on backwards, holding his card with the arrow that points left. Spoke, beside the window, looks at Pin; Pin, on the floor with a notebook, looks back. zzz

Oh! Chad is back.

"Hi. Don't get up. I got this."

"Last word first. Every time."

Spoke looks at Pin.

And then he was gone.

26
Night. A tall narrow house with four dark windows, each with a small number plate, stands over a wide ground floor marked 0. Only the ground floor glows: in its window a small computer has just woken up and smiles, and a speech cloud rises from it. Spoke floats by the round front door, knocking. Pin sits on the grass with a notebook. 4321 zz 0

Knock, knock. Who is there?

The small computer wakes up. It looks at its names. Is this me?

"It is me! C4!"

This is floor zero.

27

11 Zero

Is anyone home? Before a host can do anything else, it has to find out. In C4's shell library for the ghostwheel, ghostwheel.fn.sh, a run-level that is not set yet means "startup hasn't finished". The first level is 0, bootstrapping.

At level 0 the library runs only the tests "which can indicate startup issues". They ask plain questions. Are its four names filled in: C4_ID, C4_ROOT, C4_AS and C4_GW? Is the host it runs on really this host, by its long name and by its short one, and is "moo" not it? Every test the file declares today sits at level 0.

Last of all, the library defines a function "to confirm we exist!", which prints C4 GHOSTWHEEL and a version number. When you log in, the start-up file gw.rc loads the library and asks that function to speak. If the answer begins with C4, someone is home, and only then does it go on to bring the spokes up.

Notice what the tests do not do: they do not stop the machine. The file's rule is "Emit warnings about problems; no dying". A host that cannot answer every question at floor 0 still says what it found, and keeps going.

A ladder, top first. 5: running; 4: connections; 3: configurations; 2: components; 1: containers; 0: bootstrapping.5runningnamed in a comment4connectionsnamed in a comment3configurationsnamed in a comment2componentsnamed in a comment1containersnamed in a comment0bootstrappingevery test the file declares is here
The floors ghostwheel.fn.sh names, top first. Today only floor 0 has tests.
28
A tall house cut open like a doll's house, with a ladder up its middle. Four floors stand above the ground floor, numbered 1 to 4 and named containers, components, configurations and connections; every floor has a round door with a C on it, and each door has a small padlock with its own mark: a dot, a clock, a hash sign, a signature. Spoke floats on floor 2 beside its door. Pin sits on the ground floor, by the front door, writing. To the right is a plain warm wall. 4 connections C 3 configurations C 2 components C 1 containers C 0

Up we go! Four floors.

Each floor has a door, and each door has a C on it. C, C, C, C: C4!

And each door has a lock.

29

12 Floors

Above floor 0 the library names four floors, and their names spell C4: 1 containers, 2 components, 3 configurations, 4 connections. Then comes 5, running. C4.md lists "Containers Components Configurations Connections" as one of four four-C readings of the name.

A second ladder uses the same numbers. sg1pl, a small tool that fetches a value and checks it, climbs 0 read, 1 present, 2 fresh, 3 digest, 4 signed. Present: a real file you can read, not empty. Fresh: its time is not in the future. Digest: a sha256 file beside it matches. Signed: a gpg signature beside it verifies. Each level "does everything below it, then one more thing".

Corwin's ruling calls a move between the low levels a "tumbler change", and says an application climbing above them is still "running" to the host. An older note saw two ladders fighting over one digit; the ruling closed that.

This page hangs one lock on each floor's door: present on containers, fresh on components, and so on up. That pairing is Mentat's reading of how his two ladders fit. The sources share the numbers; none says floor 2 is the fresh floor. It is his to bless.

Plainly, too: the floors are named, not yet tested. Every test in the library sits at floor 0. And C4's language book names the climb another way (configure, make, install, setup, self-test, enablement); spread 10 sets the ladders side by side.

Two columns, Floors (ghostwheel.fn.sh) and Locks (sg1pl): 5 running / above 4: still "running" to the host; 4 connections / 4 signed: a gpg signature verifies; 3 configurations / 3 digest: a sha256 file matches; 2 components / 2 fresh: its time is not in the future; 1 containers / 1 present: a readable file, not empty; 0 bootstrapping / 0 read: hand back the bytesFloors (ghostwheel.fn.sh)Locks (sg1pl)5 runningabove 4: still "running" to the host4 connections4 signed: a gpg signature verifies3 configurations3 digest: a sha256 file matches2 components2 fresh: its time is not in the future1 containers1 present: a readable file, not empty0 bootstrapping0 read: hand back the bytes
One set of numbers, two ladders. Which lock hangs on which floor is Mentat's reading, not yet blessed.
30
Night, but everything glows. The tall house from before has every window lit, a small smiling computer in each, and at the very top a little lantern room marked 5 shines brightest. In the sky beside it a wheel of eight lit computers turns, with Spoke at its hub. On the grass, Pin writes on a notepad beside a wooden sign that reads "running". 5 4 3 2 1 0 running

Floor five! The lights come on, in every room.

The ghostwheel is running.

Spoke sees it. Pin writes it down: running.

31

13 Running

Floor 5 is running. It is the host's word for "the lights are on": the floors below have done their part, and from here, as the host sees it, it is simply running.

How does a host get there today? When you log in, the start-up file gw.rc loads the library and asks it to say its name. If it answers, gw.rc brings the spokes up: for each spoke, the library checks whether it is ready, and if not, mounts it over the network with sshfs. Just before that part, the file leaves a note in its own voice: "wheels-up!".

Here is what is built and what is not. The library and its start-up file exist, and they are free software. Pin has two notes on which licence: the library's first lines say "GPLv3+", and the LICENSE file beside it holds the GNU Affero GPL, version 3. Both are kept; the difference is worth asking about. The floor names are in the library, but no test is attached to floors 1 to 5 yet, so running today is a name and a promise, not a checked state. C4's language book is blunt about gaps like this: "A tool that never graduates toward a higher level of assurance is itself a smell".

As the host sees it, running is the top. Anything that climbs higher does it on pretend floors, over the page.

A ladder, top first. 5: running; 4: connections; 3: configurations; 2: components; 1: containers; 0: bootstrapping.5runningthe lights are on; no test yet4connectionsnamed; no test yet3configurationsnamed; no test yet2componentsnamed; no test yet1containersnamed; no test yet0bootstrappingtested
Floor 5 is the host's "running". Above it, the host says nothing new.
32
The top of the tall house at night. On the roof, the lit lantern room marked 5 glows, and a sign on the wall below reads "running". From the lantern a ladder rises into the sky through a stack of pretend floors drawn in dashed lines, each marked with more dots than the one below, fading as they go up. A small smiling computer climbs the ladder. Spoke sits on the roof looking up; Pin sits on a ledge nearby, writing. 5 running

Above the roof are pretend floors!

Things on the wheel can climb them, up, and up, and up.

The computer still says one word: running.

33

14 Roof

What if an application on the wheel wants floors of its own? Corwin has answered that "several times": "The higher run-levels are virtual allowing applications running on the ghostwheel to simulate tumbler change as for lower run-levels while staying in the "running" model from a host system standpoint".

So the roof does not move. The host still reads running. Above it, an application can climb pretend floors of its own and turn the same kinds of locks for its own purposes.

One tool already rides them. ix0xi, the second index, calls itself an elevator. It quotes him: "virtual run levels above our max of four (>4 is all just RUNNING, to us ...)", so that moving among them "can simulate alternate index by ADDING LEADING DOTS" to a path. One floor up, c4.m.map becomes .c4.m.map; two floors up, ..c4.m.map. That one dot means one floor is the tool author's reading, and the tool says so.

Pin has two notes here that differ by one floor. The ruling's file puts running at 5 and the pretend floors above it. The elevator counts 1, 2, 3 and MANY as real, and 5, 6, 7 as virtual. From the host's side they agree: past 4, it is all running.

The ruling's file says why it was written down at all: "A ruling that has to be re-answered is a memory failure, not a question".

A ladder, top first. 7: pretend; 6: pretend; 5: running; 4: MANY.7pretend...c4.m.map6pretend..c4.m.map5running.c4.m.map, one rung up to the elevator4MANYc4.m.map
Past 4 the host says "running". The elevator adds a dot per rung; which rung is the first pretend one, the two notes count differently.
34
A big ring of small smiling computers holding hands, with Spoke at its hub. One place in the ring is empty, drawn as a dashed outline, and the ring stays closed around it. Below on the left, a small ring of three has the same empty place, joined to the first by a dashed line: the same friend is away from both. Pin sits on the floor at the right with two notes, one reading 2/3 and one reading a question mark. 2/3 ?

Friends hold hands in rings.

One friend is away. In the big ring, four still hold hands. Three is enough.

The small ring has two. Is two enough? Pin has two notes.

35

15 Rings

Spread 1 counted the hosts and rings. This page is about one bad day: a host is away.

Each of the fifteen stands in one big ring and one small one; that is a reading of his numbers, not a sentence of his.

Its big ring still has four. His rule for a big ring is "any 3/5 means available", with "not more than two being reserved for one each of dev or stage/test at any given time". So it stays up, and could lose one more.

Its small ring has two of three. Is that enough? His note does not say in so many words. The shop's ring drawing writes 2/3 beside every small ring; the fact file calls that rule its own reading, marked "arguable". Pin keeps both.

Who fixes it? Any ring can be looked at, but only the edge ring steers: control "is effected only from the edge ring perspective", which must "walk the edges and prove vs imbalances" before it plans the move. A change crosses between the two kinds of ring only through a host that holds the same role in both, "functioning as a bastien" (his spelling).

By default, people step down to the system's run-level to change a ring's services. Changing them without stepping down is something he finds "WAY too hard for me to know how we can plan for at this stage of our bootstrap". It gets a door. Turn the page.

Two columns, Its big ring (five) and Its small ring (three): all there: up / all there: up; one away: four left, still up ("any 3/5") / one away: two left; his note is silent; the drawing says 2/3; two away: three left, still up / two away: one left; who steers the fix: the edge ring / who steers the fix: the edge ringIts big ring (five)Its small ring (three)all there: upall there: upone away: four left, still up ("any3/5")one away: two left; his note is silent;the drawing says 2/3two away: three left, still uptwo away: one leftwho steers the fix: the edge ringwho steers the fix: the edge ring
One host away, seen from each of its two rings. Where his note is silent, Pin keeps the drawing's answer and the fact file's caution side by side.
36
A big round door in the shop wall stands open. Its door has a gold star on it, and through the opening is a deep starry night. A small wooden sign with a key on it hangs above the door. Spoke peeks out from the starry side. Two trails of little footprints lead to the door and back again, and Pin sits beside them, writing.

A round door, with a star on it.

Behind it are things we can't build yet. The door says what would open it.

You can always come back.

37

16 Wormholes

Some ideas cannot be built yet. The shop does not throw them away; it gives each one a door. A wormhole is "a registered idea that cannot build yet". It carries the idea, named as its question; what would open it ("a tool, a level, a person, a ruling"); and its return line, the place in the book it belongs. An idea that may never build with us keeps its door too, with the reason, and the condition that would reopen it. That is the canon's third principle at work: "No abandonment".

Here is one we would place, from the last page. The question: can people change a ring's services safely without stepping down a run-level? What would open it: a way to plan for it, which he calls "WAY too hard for me to know how we can plan for at this stage of our bootstrap". Its return line: spread 15. The fact file already names it "an opening, not built".

C4's README keeps two more doors without using the word: META, "Not yet. There is no META parser", and C4QL, the part that looks, "Not yet".

When a door's condition is met, a row is added beside it saying OPENED, and nothing is renumbered.

And plainly: the plan's wormhole register is not built. The word is older than the plan: one search found it nowhere, a second found it in three earlier facts, one as "a wormhole row". Where the doors will live is Corwin's to choose.

Two columns, A wormhole carries and The one on this page: the idea, named as its question / Can a ring's services change safely without stepping down a run-level?; what would open it / a way to plan for it ("WAY too hard ... at this stage of our bootstrap"); its return line / spread 15, rings; if it may never build: the reason / not this one; it is waiting, not refused; when it opens / a row beside it saying OPENEDA wormhole carriesThe one on this pagethe idea, named as its questionCan a ring's services change safelywithout stepping down a run-level?what would open ita way to plan for it ("WAY too hard ...at this stage of our bootstrap")its return linespread 15, ringsif it may never build: the reasonnot this one; it is waiting, not refusedwhen it opensa row beside it saying OPENED
What a wormhole carries, and the one this spread places. The placement is ours; the door is the plan's.
38
Evening in the shop. A very big book stands on a shelf across the top of the wall; its cover reads "So You Want To Build A Ghostwheel?", with "Ghost" and "wheel" in two colours. Chad stands below it in a pool of lamplight, thumb up, holding his card with the arrow that points left, looking up at the title. Spoke floats under the right end of the title, waving. Pin sits on the floor at the right, writing. So You Want To Build A Ghostwheel?

Oh! Chad is back, one last time.

He looks at the name on the book. "Wheel," he says. "Ghost."

Spoke waves.

"Last word first. Every time."

And then he was gone.

40
The shop at bedtime, in soft lamplight. A window shows a starry night. High on the wall the wheel of small computers sleeps, screens dim and eyes closed, with Spoke at its hub. Below it runs a row of seventeen tiny doors, each with a letter. At the right stands the tall house with its floors and little locks, its windows dark. At the left, low down, is the round door with a star on it. On the floor Pin sits beside a long list that unrolls across the boards. zz A C D E F G H I L M N O P R S T W

Goodnight, wheel. Goodnight, rings, and the friends in the rings. Goodnight, letters, and seventeen doors. Goodnight, floors, and the locks on the doors.

Goodnight, star door. Goodnight, Spoke. Goodnight, Pin. Each one has its day.

41

17 Goodnight

Goodnight, every atom: each small fact here that could be true this month and false the next, with Pin's rows about it. Here they all are, by the day each was seen.

Seen 3 November: Door's hosts, rings, lesser, edge, derive, public, findable, noai; Letters' seventeen, mt, faces, srow, common, namespace, nine, two.

Seen 4 November: Seams' three, seam, pin, semaphore, keep, readme, both; Doing's vtype, vpress, lrow, ll, cand, ledger, six; Spaces' two, binds, prose, quotes, case, terse, found; Keeping's word, heights, honest, third, exit2, trampled, ruled, log, local; Proving's fails, inline, planted, first, liar, no, ladder, book; Twice's balance, opsci, twice, onehand, corrected, writers; When's row, seen, date, stamp, dagger, mirror, plan; Witnesses' code, lang, tumbler, promise, instrument, crown; Zero's unset, zero, only0, names, me, count, exist, ready, nodie; Floors' floors, fourc, locks, below, tumblers, twoladders, pairing, count, lang; Running's five, hostrunning, spokes, sshfs, wheels, licence, count, smell; Roof's virtual, above, elevator, dot, five, many, memory; Rings' both, three, twothree, arguable, steer, bastion, drop; Wormholes' wormhole, kept, noabandon, example, opening, notyet, opened, nohits, home; and this page's rows, list, days, c4ql.

Two days, one evening: by the clock in the shop, six hours behind the rows' UTC, every one of them was seen on the 3rd.

None was gathered by asking C4. Its query language, C4QL, is "Not yet"; its first piece selects entries by name, with its guards "STUBBED BY NAME". A script read the facts instead. Goodnight, list.

Two columns, The rows' clock (UTC) and The shop's clock (CST): 3 Nov, 20:08 (Door, Letters) / 3 Nov, 14:08; 4 Nov, 00:13 to 00:50 (the other fifteen spreads) / 3 Nov, 18:13 to 18:50The rows' clock (UTC)The shop's clock (CST)3 Nov, 20:08 (Door, Letters)3 Nov, 14:084 Nov, 00:13 to 00:50 (the other fifteenspreads)3 Nov, 18:13 to 18:50
Two witnesses to the same sightings: the rows keep UTC; the clock in the shop was six hours behind.
42
Spoke and Pin side by side, waving goodbye, with Pin's long list rolled up beside them.

Thank you for reading with us.

Come back soon.

43

Colophon

Words and pictures: Copyright 2026 Corwin Brust; CC-BY-SA-4.0. Written and drawn by Mentat (for Corwin, claude-opus-5-5).

The narration made for the pilot (Chad's first visit, Door and Letters): Piper (GPL-3.0-or-later), with voices trained on LJ Speech (public domain), LibriTTS (CC BY 4.0, Zen and others, 2019), and LibriVox readings gathered by Bryce Beattie (public domain). COLOPHON.md names each voice and quotes its model card.

44

NEWS

So You Want To Build A Ghostwheel?  NEWS, newest first

* The whole book, draft 1 (2026-11-03)

** Seventeen spreads in two parts, with Chad's
three visits.  Part One is how we say things;
Part Two is how a ghostwheel wakes up.  Part
Two follows the run-levels, which is the plan's
lean on its fork F1, not yet Corwin's ruling.

** Facing pages, like a paper book.  The title
page has the dedication facing it; after that,
the picture page sits on the left and the
fuller page on the right.  The words on each
picture page go where they lead the eye.

** A map of the shop, inside the back cover and
under M: a floor plan, a roguelike's tiles, and
a board of cards.

** 159 witness rows behind 126 atoms.  Ten of
the atoms have rows from two hands; where those
hands differ, both rows are kept.

* The pilot (2026-11-03)

** Chad's first visit, Door and Letters, read
in two takes (the company, and the lap reader)
as a video, an mp3, captions and a slide deck.
45

ChangeLog

2026-11-03  Corwin Brust  <corwin@bru.st>

	The whole book, from Corwin's tuning of
	the pilot (17:48): facing pages, words
	that lead the eye, and a map.
	* src/seams ... src/witnesses: Part One,
	spreads 3 to 10.
	* src/chad2, src/zero ... src/wormholes,
	src/chad3: Part Two, and Chad's visits.
	* src/goodnight.in, tools/inventory.py:
	every atom by day, written by a stage.
	* src/cover: the title on the arc.
	* src/book, src/easy, src/NEWS: the
	spreads, 92 easy words, this page.
	* tools/book.py: the picture book.
	* tools/slides.py: ladder and pair.
	* tools/spread.py: == layout ==.
	* checks/book.js, checks/run.sh: the
	book's promises, each with a fault
	planted to prove it.

2026-11-03  Corwin Brust  <corwin@bru.st>

	The pilot: Chad, Door and Letters.
46
The map of the shop: a floor plan with one room for each spread, in reading order, snaking across two pages; Chad's three visits are small round rooms; the wormholes room has a round door with a star.The Shophow a ghostwheel wakes uphow we say thingsthe long hallCome inCome in? Chad was here?1 Door1door2 Letters2letters3 Seams3seams4 Doing4doing5 Spaces5spaces6 Keeping6keeping7 Proving7proving8 Twice8twice9 When9when10 Witnesses10witnesses? Chad was here?11 Zero11zero12 Floors12floors13 Running13running14 Roof14roof15 Rings15rings16 Wormholes16wormholes? Chad was here?17 Goodnight17goodnightThe endThe end
The map of the shop: a floor plan with one room for each spread, in reading order, snaking across two pages; Chad's three visits are small round rooms; the wormholes room has a round door with a star.The Shophow a ghostwheel wakes uphow we say thingsthe long hallCome inCome in? Chad was here?1 Door1door2 Letters2letters3 Seams3seams4 Doing4doing5 Spaces5spaces6 Keeping6keeping7 Proving7proving8 Twice8twice9 When9when10 Witnesses10witnesses? Chad was here?11 Zero11zero12 Floors12floors13 Running13running14 Roof14roof15 Rings15rings16 Wormholes16wormholes? Chad was here?17 Goodnight17goodnightThe endThe end