Working notes · architecture

How this is put together

The novel is written from a realized world: 2,435 people who each have a life, a group, a household, a place, a body that eats and starves, a stance on six questions, relationships that move, and a memory of what they lived through. This is the machine that realizes that world and carries it forward a day at a time so the story never has to invent a fact it could have looked up.

Read it top to bottom. Section 02 is the spine — what about a person is computed and what is accepted — and every later section is one part of how that table comes true.

01 — what this is for

You never author 2,435 of anything

You author rules, targets, counts and exceptions. The machinery derives the individuals and refuses when your rules cannot all be true at once. Three parties hold the whole world this way: you, the agent that writes your sentences into the files the engine reads, and the engine, which computes consequences and never invents a fact.

WhoDoes what
You“The kiln cracked this week — no bricks.” Or, most days, nothing at all until the draft asks.
The agentDrafts the day. Writes the production entry for bricks with a yield of zero, cites the range a working kiln would have produced, records your sentence as the reason. Drafts everything else the day needs for the other 2,434 people, at the grain of cohorts, from the record and the plan.
The engineChecks zero is a permitted value. Checks the kiln crew exists. Realizes the day against yesterday, computes the physics, extends every memory, and hands you back what needs you and what changed.
YouRead the brief — at the cadence you set. “That direction”, or “another way”.

The division of authority is on the record. The agent settles small, reversible choices and must record each one. You rule what cannot be delegated — the population total, the role envelopes, lead-character canon, the premises of the story — and you judge at the level of rooms, people and distributions, never keys. Named characters are drafted like everyone else, from their record and disposition; the difference is that whatever the draft does with them is the first thing you read.

02 — the spine

A person, and what moves them

Everything about a person is set one of two ways. Computed: a rule derives it from facts already in the record, with no one in between. Accepted: it was proposed — by you, by the agent's draft, by a model's candidate, by a rule the agent applied — and became a fact when you accepted it. Who proposed it is noted; it changes nothing about its standing. The table is the whole design in one place; the rest of the page says how each row is made true.

About a personKindHow it moves, and who proposes
Identity, life, occupation, family, biographyaccepted2,457 character records, proposed and written by you and by agents under your rules. Read-only to everything below.
Traits, crisis disposition, the twelve stable dimensions, voicecomputedScored from the biography by the psychology engine, once. Day-0 facts; a group may admit on them.
Group, seat, household, spouse, guardian, hostcomputedThe Day-0 solve, from the group contracts you wrote. Structure, created jointly, least-moved from your proposal. §03.
Crew, placecomputedEach day, by the same solve against yesterday, inside whatever the day's draft dictates. §04.
What they ate, deficit, risk band, alivecomputedThe ledger's arithmetic from the ration policy and the deaths dictated. Never a behaviour.
Belief frame, bloc, strategic position, dominant concernacceptedAt cohort grain with a reason — “445 of the uncommitted convert by Day 2” — proposed by the agent from the weeks walks and any rule it applies, accepted by you, disaggregated to named people by a seeded rule.
Health-state, crew and status lensescomputedFall out of the physics and the staffing. Nobody proposes them.
MoralecomputedA cohort stream from accepted events and physical reads. What it moves in turn — a smaller hunt, a bloc — is a rule the agent applies in the draft, and you accept the result.
Relationships: intact, strained, broken, allied, formed…acceptedAfter Day 0, a state on every pair, changed at cohort-pair grain — “three couples across the mainland/foreign line break under the ration cut” — and disaggregated to real pairs the record has joined. Named pairs you pin. unbuilt
Memory: what they lived throughcomputedAn event reaches exactly the people it reached, through the groups, crews and places the day realized. §07.
How a lead reacts; what they sayacceptedFor the dozen leads only, on request, a model proposes from memory and disposition; you accept or reject. §07.

Two things fall out. Your hand touches about a dozen people individually; the other 2,400 are handled at cohort grain and every one of them still has a full row every day. Anything may be computed about behaviour, and nothing enters the record unaccepted. If morale is computed to lower a hunt's draw, the agent applies that rule in its draft and you see the smaller hunt before it is real. What is refused is only a rule that bypasses you: one running inside the ledger's replay, where the record would come to depend on a value nobody signed.

03 — day zero

Can this world exist?

Before anything moves, one question: given every rule you wrote about groups, relationships, capacities and pins, is there any assignment of 2,435 people that satisfies all of them at once? The answer is usually no, and that is the point.

Day 0 — the composition loop The composition groups by properties, ranges, required relations, pins, facts One solve, one question membership, relations, households, staffing, places and quantities together Impossible — these 3 facts the normal answer; the product A world, least-moved verified; ranges for what you asked You accept Day 0 or change a fact and run again Change one thing, run again an agent moves a person, adds an attribute, at the last resort widens a rule — each change recorded with its cost; it stops at what only you may change. The loosening allowance is zero today, on purpose.
Figure 1 — Day 0. The red box is where most runs end, and it is the answer, not a failure.
Select a box above to read what it does.

What the solve decides on Day 0 becomes structure: who is in which group, who is married to whom, who lives where. Everything in section 02 marked computed on Day 0 comes from here. It is also where the first real run found a real defect — seventeen people no group would admit, because one file spelled a group name with capitals and ten others did not — which is the loop doing its job.

04 — every day after

The loop

Once Day 0 is accepted, the same machinery runs one day at a time, and you are in the loop every day without writing every day. Six steps; you are the last one.

Day d — from yesterday's accepted world to tonight's 1 · The agent drafts the whole day, at cohort grain, from record and plan 2 · Realized against yesterday; the draft is fixed, the rest is filled 3 · The ledger computes counts become people; food, deficit, bands, work, pairs 4 · Memory grows each person's record of the day, checked 5 · The brief what your people did, what changed, what's for you 6 · You: “that direction” — or “another way” Daily, weekly, or every n days — your call. Accept, and the span enters the record and the next opens. Redirect with a sentence, and it is re-drafted with it. Correct an earlier day, and everything after re-runs.
Figure 2 — the loop. Steps 2 to 4 are deterministic from the draft; step 1 proposes and step 6 is yours.
Select a step above to read what it does.

Why one day at a time. Your dictation lands day by day, so the placement must read each day's file before placing that day; a solve over ten days at once would decide day ten's crews before day one had been read, which is the forward simulation by another name. A run over a window is still available as a what-if — “what does this placement do to who dies by day ten” — and it promotes nothing.

Inside step 3, the ledger's day has seven fixed steps of its own. Step 5 is the only place arithmetic happens; the other six are bookkeeping around it. Every categorical change enters at steps 3 and 4 from the accepted day file, which is where any behavioural rule's result already sits; step 5 reads nothing that was not accepted.

One day of the ledger — a fixed order, never varied 1 · Carry yesterday's people, stocks and policy 2 · Merge policy the day's rule deltas over what was carried 3 · Dictation deaths, then people, then groups 4 · Picks band-validated against the day's conditions 5 · Physics need → ration → intake → stock decrements → spoilage → cumulative deficit → risk bands → refeed windows 6 · Validate checks fire at their own application points 7 · Emit one state file, one diff file, one ledger row — and tomorrow starts from this The rule that holds this order together Step 5 may read only person traits, the merged policy, the day's picks, the recipes and yesterday's stocks. Nothing else. No physics function reads another person's state, and every categorical move enters at steps 3 and 4 from the day file.
Figure 3 — inside the physics step: the ledger's day. Step 5 is where the arithmetic happens.
Select a step above to read what it does.
05 — what you see

The brief

At every pause the agent writes you the entry a chronicler would write for the span, from the record, every sentence citing the row it stands on. It is editorial judgement, not a dump, and it comes in a fixed order so the first thing you read is the thing most likely to be wrong.

In orderWhat it holds
Your peopleAnything a lead or a named character did, was moved to, or reacted with that you would want to check: a lead placed somewhere wrong, a reaction that reads false, a named couple changed.
The colonyWhat happened that matters. A ration cut. The first death. A bloc forming, a cohort flipping its frame, the kiln failing, a cohort drifting from the plan past the tolerance you set.
What the loop could not decideOne line: a drafted change the constraints refused, an entry outside the agent's delegation (a death canon does not name, lead canon, a premise), a candidate awaiting your yes.
Then the countsFor whoever wants them: lenses and pairs per cohort with the entry behind each move; the solve's own moves; stocks, bands, deaths; what changed since the last pause; at a window's close, every count beside the weeks walk's target.
Sampled livesEvery week, and on request: a seeded handful of ordinary people, their window told as prose — where they were, whom they were with, what changed for them and why — from the record and memory alone. Add anyone by name.

The last row is the honesty check for everyone the brief does not mention. Rules that run unread produce absurdities that a table hides and one person's ten days told straight does not. What nothing eliminates is noticing late; what the loop buys is that noticing late is cheap — reopen the day, fix the rate or the rule, and everything after it re-runs.

06 — what it refuses

The guards that matter

About fifty named checks exist because an agent writes the inputs, and an agent will confidently invent a plausible value. Five of them decide the character of the whole thing.

GuardRefuses
Nobody falls throughA person no rule matches stops the build. The alternative is a silent default nobody chose, which is how a colony quietly becomes wrong.
Nothing enters unacceptedAny rule may be computed about behaviour, in the draft. The ledger's replay — the re-derivation of the record from the accepted files — reads no mood, memory or reaction and no behavioural rule, and ledger code importing anything from that side fails a static check. This is the whole of what has been called the firewall: the machine proposes, you accept.
Dramatic licence is declaredA death written for somebody the physiology says was not close to dying needs an explicit argument. A number outside its researched range needs one too.
Two accounts must agreeThe solve's calorie total and the ledger's, replayed over the same day file, must match to the calorie. On 18 August they were 7.2% apart with every test green; nothing but this check could see it.
Nothing drifts unseenRun the thirty day files through the ledger twice from scratch; the two outputs must be identical byte for byte, or something non-deterministic crept in. Every file a run reads gets a hash recorded with the run, so a later run can prove it saw the same inputs. Edit day 3's file after day 7 was accepted, and days 3 to 7 are flagged for a re-run.
07 — the third part

What each person remembers

The physics can be complete and still barely reduce the work of writing, because plot is psychology. This part carries the other side: not what happened to somebody, but what they made of it, and what that makes a lead say when you ask.

Read-only inputs — owned elsewhere Biography & voice the life before, and how they talk Behavioural synthesis the 52-trait pipeline Stance scaffold crew · location · bloc · concern The physical ledger what they could have seen 1 · the digester Disposition The stable psychology every memory is interpreted through. Its source is a swappable variable — not a settled choice. 2 · memory, two strata Record what objectively happened around them, days 0..N Reflection the record digested through the disposition — and it accumulates as days roll 3 · the query oracle Disposition × digested memory × the scene Returns candidate reactions and dialogue for a scene being written. It needs no ground truth, because fiction has none — the author is the filter. It proposes. It never writes canon. THE FIREWALL — no output of this part is ever read by a physics step The only way through: an authored decision The oracle emits a candidate in the day-file grammar. It becomes real only when it is in a day you accept, where it is dictation like any other. That authored step is the whole safety property. It is the day loop's acceptance (section 04): the agent drafts the next day with the candidate in it, and you accept or redirect.
Figure 5 — the cognitive part. The dashed line is a rule, not a drawing convention.
Select a box above to read what it owns.

One open question here, and nothing waits on it: whether a lead's biography or their 52-trait profile grounds their reactions better. Both sources run today; the comparison needs a scene and your blind verdict, and the loop is built either way.

08 — state of play

Where it stands

Working

The Day-0 solve at 2,435 people, run once on the real colony: it found a real defect and named one person. The ledger across thirty days with every declared relation. The seam between them, replay holding to the calorie. Memory, disposition and the oracle. Valid time on every fact.

Agreed and unbuilt

The loop of section 04: the agent's draft, realization against yesterday, the brief with its sampled lives, accept and redirect at your cadence. The pair stream of section 02 — today a relationship is Day-0 structure and nothing moves it. And a re-encoding of one constraint family in the solve, which is why a whole-colony run does not yet fit this machine's memory; the horizon was never the cost.

Waiting on you

The vocabulary of pair states. Three physical guesses stamped as guesses: shelter per square metre, litres per fridge, insulin dose-days per litre. The research ratification the map coordinates rest on. A scene and a blind verdict for the biography-versus-profile comparison.

09 — the map

Where this sits

Everything above is the middle band. You author the top; the middle turns those decisions into something that can be interrogated; the bottom is what a reader ever sees, and it owns none of it.

Authored — a person decides this Character records 2,435 · a life plus labels Worldbuilding canon politics · economy · famine Narrative & timeline 113 chapters · Day-0 sequence Recipes & day files the daily decision enter as declarations, never as prose Modelled — the three parts above Substrate layers Day 0 lenses · weeks graph what could happen The group solver people into groups, by property The material world stocks, labour, deaths Memory and disposition what each person has lived through one-way sync Checked — does it hold, and what does the corpus say Query projection prod_db · joins, bulk analysis Alice-Python Years 1–50 · national macro RimWorld-Headless Days 1–100 · colony survival Published — renders the above, owns none of it The novel 1628world.com Substrate viz /substrate-viz/ Daily state /daily-state/ Cockpit /cockpit/
Figure 6 — the project. The middle band is everything on this page.
Select a box above to read what it owns.

What the research established about the ground is written to be read at the site, by topic, with the map as a figure in it; the map on its own is here: eleven layers, two scales, 21 conflicts, and since 30 September the facts checked against the real coast marked on each feature. Beside it, The ground, checked: the eight things the resource research got wrong about the real coast, with the evidence and the sources opened.

A map, not an authority. The system is specified in specs/substrate/ and described in MASTER_PLAN.md and substrate/daily_state/docs/ARCHITECTURE.md. Where this page and those disagree, they are right and this is stale.