← 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.
- One call carries a choice; it cannot reliably carry authorship.(D4, the
quiz)D3 measured that a RULING needs no schema-forced second call — 9/9 on one call,
the pick riding the speech. D4 measured the SAME shape failing for the compose: 3 of
9 first asks lost the tag, then 5 of 9, hosts saying 卡片已上 over a card that never
landed. Picking one option off a list is not authoring three structured fields
mid-performance. The compose is two beats now — a DATA-ONLY ask whose reply is
nothing but the line(an empty bubble, dropped), then the voice with the card.
Measure per shape; the D3 conclusion was one shape's.
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.
- An empty settle must not advance a program built on somebody.(D4, the
buzzer)A first-tap ballot that dies on its own clock with zero taps means nobody
challenged — stepping forward would open cups over a bid nobody doubted. The empty
buzzer nudges once and re-arms from its own step; a second empty clock folds the game.
Sibling of「a check that cannot tell nothing from something is not a check」, on the
world's side.
- The idle fold measures the TABLE's pulse, never the host's.(D4, the quiz
battery's abandoned rooms)The compose take marked progress, so the host's own
authorship reset the fold every round and a fully ignored quiz robotted on forever —
a question per round over a table that never tapped once. What counts as the world
moving: thumbs on a settle, a line heard, a box filled. The host keeping busy is not
a table being alive.
- A fact the world HOLDS but does not hand over is a fact the persona will
invent.(room 1009, 2026-08-06)After question seven of eight, the quiz host
announced the winner and said goodbye; the eighth card then landed anyway, was played,
and the device named the same winner properly at the end. The device was right the
whole way — what it never said was「this is 7 of 8」. The result moment was handed
the answer, the tally, the scorers and the standings, and nothing at all about where
the night stood, so the host inferred it — from the board's 第几题, which names the
question being asked and therefore reads 8 on the last round. The fix is
not a sterner instruction: the
round fact now carries the length the table
declared and how many are left(read off the SAME end rule the device ends on, so
「how many remain」can never disagree with when it actually stops), and the moment is
forbidden to call a winner while any are. ⚠ The general form: when a moment's
obligations require the host to know where the game IS, the position must be a FACT,
not something derivable from furniture. A counter is not a narrator.
- A rule the persona is TOLD and the device does not keep is worse than no
rule.(room 4bdb, 2026-08-06)The quiz's written brief promised the table「ONE
sudden-death question」and the flow's
on_tie:"continue" was unbounded
— it simply kept buying rounds until somebody happened to lead. Question six came back
level, the hosts played the promise they had been given and closed the night, and a
seventh card landed on top of them. Both halves were internally consistent; the
contradiction was between them, which is the version nobody notices until a table sits
in it. tie_rounds now bounds it(1 for the quiz), and when the
tie-break is spent the rule fires anyway — top_score already shares the
name on a level score, so a draw is a lawful ending rather than a state to play out
of, and the winner fact says LEVEL rather than handing the host two
names in the slot it reads as THE WINNER. ⚠ The test that existed only covered the
tie-break that BREAKS the tie; the branch that bit the table had none.
- A fairness the players cannot SEE is broken.(D4, the owner's dice
verdict)The cups were dealt as a card deck whose every face was an independent
random draw — arithmetically identical to dice — and the owner rejected it on
sight: the room reads「a sealed deck · 20 cards」, believes a fixed composition,
and starts counting cards. The machine being fair is not enough; the TABLE must be
able to tell. Dice look like dice.
- A ritual wait may be completed by the house; a judgment wait may not.
(D4, the unshaken cup)The dead-man law says never invent the thing you waited
for — but a SHAKE is entropy, not information: after one named nudge the house
shakes a straggler's cup itself, because randomness is the world's own to supply
and a lazy thumb must never hang a game. A ruling stays un-inventable forever.
- A control does what its label says — a shared reflex beats a hidden one.
(D4, the owner's 开 design)The first cascade design made「open my cup」secretly
end the round for everyone: a familiar button doing more than it says. The owner's
alternative — one CHALLENGE BUTTON riding the composer, its label the cartridge's
own word(开牌!· 抢答 · stop)— is single-purpose, reusable by any game, and sits
under the thumbs already typing. Prefer a reusable object with an honest label over
a special behaviour wired into an existing gesture.
- A concept and its commonest carrier will fuse; the second carrier splits
them.(D4, game two — twice in one bench run)「The game's deal」had fused with
「the sighted deal」because 卧底's deal has the dealer's eyes;「a ballot」had fused
with「an elimination」because one game had ballots. The cups — dealt blind, settled by
a buzzer — split both. When you name a thing in general code, ask what of the current
game's shape rode in with the name.
- 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.
- A ruled window is a NAMED validator plus dials, never kit logic.(The collect
phase, 2026-08-03.)When a phase has in-game rules the world must enforce — a bidding
ladder, a word chain — the rules live as a pure function in the validator library, spec'd
by a flowchart, benched branch by branch; the cartridge names it. The host's role narrows
to INTERPRETER: it reads the player's line into the strict form, the world rules it, and
a void comes back through the host with the exact reason. Three layers were measured
failing first: the persona taught restraint(the staging overrode it), the staging
taught the window(it then judged legality itself, wrongly — the staging layer holds no
rulebook). Judgment belongs to the world; interpretation to the mind.
- Chosen silence must be legible to the machinery around it. The same evening's
pair: a silent pass painted an empty bubble(the one extractor missing the router's drop
law), and the client's no-response warning fired on deliberate quiet(it predates
silence as a lawful answer). When a new behaviour makes「nothing」a valid output, every
surface that treated「nothing」as failure needs to learn the difference.
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.