← The sim loop — the evidence this design answers
Building a cartridge — the method, and what to watch
Written 2026-08-02, after D1–D3. Two games are on the device and a
third is not yet started. Everything below was paid for once: each law has a room number
or a run behind it, and none of it is a preference. Read this before building the next
cartridge — it is shorter than the mistakes.
The goal, in one line
Real people play real party games with an AI host and the game is never broken.
Not rarely broken: a game has 5–10 critical moments, and 95% each compounds into a wrecked
evening every few plays. The persona's whole attention goes to being good company.
The boundary
Code is the world. Minds are the voices. The machine does what is counting,
comparing, remembering, timing — and never guesses. The persona does what needs judgment
and personality — and never touches the table, by door rather than by request.
| the test | use it when |
| If it needs a number I chose, it is not a fact. | deciding whether
something the device computes is a FACT it may hand over or a JUDGMENT it must ask for.
「who got the most votes」— no number. 「are these two lines near-copies」— needed a
cutoff, so it is a verdict wearing a fact's clothes. |
| Can the cartridge define it, or must the code carry the concept? |
deciding FURNITURE against GENRE. A board's columns: the file names them —
furniture. 「Who is still in」: the code must understand what still-in MEANS — genre. |
| Push concepts into the cartridge until they will not go. | every
time something the code understands becomes something the file merely names, genre
becomes furniture. That is how a quiz became expressible: the code stopped knowing about
「the majority」and learned only that there are sides. |
| Genre that serves ONE game was drawn too tight. | 163 lines serving
werewolf, mafia and Spyfall is a good trade. 163 serving only 卧底 is a signal to look
again for the general version. |
The loop, per game
- Read the game's own rulebook and list what it needs that does not exist.
- Write the cartridge FIRST. It forces the vocabulary and exposes what is
missing far better than reasoning about it does.
- Add the missing pieces, asking of each: furniture or genre? Prefer furniture,
and build it as furniture even if only this game wants it today.
- Bench first — a whole game per scenario, no server, no model, no cost. A
process defect should die here, where it costs a second.
- Then live, with the console open. Read the console FIRST on any defect: the
refusals, the walls and the heals print there and never reach the saved record.
- Then the battery — all nine kinds, not the two happy ones.
- Write down what this game found in the EXISTING code. That is the real yield:
20Q found four of one genre's assumptions sitting in general code, and no amount of
staring at 卧底 would have surfaced any of them.
What to watch — the laws, each paid for once
Directives
- A directive can shape how something is said; it cannot stop something being
said. Three separate prohibitions lost: the host said「行,游戏收掉」and wrote no
tag; answered six rulings in perfect prose; named the sealed word on a win with the
ban sitting first in its list. When a prohibition keeps losing, build a door.
- Position is the dose. Measured in this codebase at 3/8 against 7/8 for the
same clause first-versus-last. One room lost SIX rulings running while its neighbours
lost none, because the line that decides whether the turn reaches the table sat mid-cue
with a generic tail after it. That line goes LAST, with nothing following it.
- Saying it is not doing it. When a moment needs data back, name it as the one
exception, give the exact line, and say plainly that the sentence is the voice and the
line is the move.
- No example speech in a moment directive. One anchoring example converges a
whole cast. The validator lints for it.
- Facts and obligations, never wording. The flow is shared; the rhetoric must
not be. Two personas on one cartridge must read differently or the design has failed.
- The not-yet answer is named, or it is never written.(D4, room e62c)A
ruling fired on the chosen player's first line; the host's intent was to pose the
question, no option matched that intent, so it wrote NO tag — twice running. A closed
list must cover the turn the host is actually having: a rule with a
wait_more answer now names it in the cue as the answer for a round still
in play, beside the exact line, last.
The world
- Every wait wears a dead man — and a dead man must never invent the thing it was
waiting for. A question wait that ran out advanced straight into「rule on this
question」with no question. Nudge, then fold.
- An exit needs an event of its own. A ballot's elimination was recoverable
from its counts; a 自爆 was recoverable from nothing, and the auditor read a lawful
ending as a violation. A world that does not record what it did cannot be checked.
- A board written is not a board seen. Every other writer publishes its
projection as it writes; the runner only wrote the ledger, so rows reached a screen on
the next reload.
- Publish on the channel the client listens on. The kit pill outlived its kit
because the payload rode the ACT applier's list, which goes out on the gate channel.
- An instrument's own clock lands before the runner's. Three layers: the schema
lints the ordering, the arm clamps it AFTER any scaling, and if it fires anyway it
CLOSES the card rather than stepping over it.
- The device holds the pen. On a cartridge room every mechanical write is the
runner's; the persona's are walled and scrubbed. Two writers on one board is the clobber
bug by construction.
- Gate on the CARTRIDGE, not on the running game. A gate keyed to「a game is in
progress」lapses the moment it ends, and the room hands itself back to improvisation.
- A new game's board clears the standing one first.(D4, room f1b0)The room's
chip fold keeps a re-declared handle's count BY DESIGN — a classic-path rule, so editing
a live scoreboard never resets a game — and the rematch door boots in place with no
sweep between the nights. Night two's chips arrived carrying night one's marks, in
every rematch of every cartridge, and nothing had ever read them. The device's board is
a screen, not a scoreboard being edited: a fresh game starts from a dark screen.
- Never call a public door from inside a locked block — the room lock is not
reentrant, and the deadlock is instant.
Testing
- A check that cannot tell nothing from something is not a check. The rematch
checks passed on a table where game one never ended.
- A law that cannot fail is a law nobody is checking. Every new rule gets a
negative control.
- Check what ARRIVES at a window, not only what got written. Three bugs in one
sitting hid in exactly that gap, because every check read the surface a reload
refreshes.
- A number you care about is a number the world keeps. An inferred metric read
1-of-4 while the true rate was zero.
- A door whose only test bypasses the door stays shut. Every sweep test built
its blocks by hand, so a real tag in a real reply had never once reached the sweep.
- Fixtures are CHOSEN, not named. Naming a kit meant that the day it grew a
flow block, ten unrelated checks went red — twice.
- A truncated judge is not a neutral judge. Ask for the verdict on the first
line; it failed a host that the transcript showed pulling three players back by name.
- The sims cannot find what only happens to real people taking real time. Four
of the owner's bugs were that, and three were timing tuned on a bench where nobody reads,
laughs, or thinks.
Authoring the kit file
- Deleting the flow block must leave a playable rulebook. Dual mode is the
fallback, and it is what a game outside the vocabulary gets.
- Scope the prose. The brief still describes the mechanical half — it must — so
it carries a note saying that half is the device's while a device is running. Without it
the host reaches for the pen every turn and is refused every turn.
- A cartridge language expressive enough to encode any game guarantees nothing,
and the guarantee is the entire reason the device exists. Games that do not fit are
REFUSED and fall back to the persona hosting from memory.
Done, for one game
Every ending reached unaided · the record audits clean · the confusion judge says
nothing · nothing walled that should not be · the battery green on all nine kinds · and
what this game taught the shared code written down.
Carried into the next build
- Conduct is narrated, not enforced. A refusal or a joke satisfies「this player
spoke」. Telling a real move from a joke needs a mind — the ruling moment is the shape of
the answer, and it now exists.
- A human GM cannot hold the device. Three welds to a persona seat; declined
honestly rather than crashing, and no further.
- The furniture still missing: collect · compose · dice and spinner · score ·
a clock. The four remaining kits want all five between them.
- D5 is what makes this a user feature. Until prose compiles to a cartridge,
「a new game is just a file」means the developer can add games quickly, not that anyone
else can.