Liminalis
Lens 02 campaign
Forgame masters · prep · live play at the table
Campaign lens

“I want a campaign that holds together when the players go sideways.”

A prepared campaign is a graph of things the players might discover, and most of them fall apart because exactly one route led to the thing everything else depended on. The Campaign lens makes that structure explicit enough to check — and then helps run the game once it starts.

§ 01  The revelation graph

Discoverable truths, as a graph with dependencies.

Not entity → entity relationships — entity → knowledge. What can be found out, what has to be known first, and how many distinct routes reach each thing. Once the structure is data, validation can walk it.

Campaign validation — The Ashfall Compact 9 revelations · 1 flagged
SURFACE REAL ULTIMATE The ash is spreading The mill closed Wardens are hiring The wells were sold 3 PATHS Vess took the fee 4 PATHS Who signed it 1 PATH — FLAGGED The Compact is still in force The finale turn
Three-path rule violated ×1 Reachability OK No dead ends Over-centralisation: Vess
Campaign validation walks the graph and reports reachability, the three-path rule, dead ends, over-centralisation and pacing. Every finding is advisory and arrives with a remediation proposal you review — one-click or full-fix. Representative composite of the application UI.
Why three paths

A revelation with one route to it is a single point of failure that fires at the table, in front of everyone, with no way to recover. The validator finds them before the session, tells you which they are, and offers to add routes. Then it lets you decline — a deliberate bottleneck is a legitimate design choice, and the tool's job is to make sure you made it on purpose.

§ 02 prep
Reuse firstpopulation suggests existing NPCs before inventing new ones
§ 02  The campaign skeleton

Ten stages from premise to gap analysis.

The same staged, dependency-ordered builder as the Novel lens, tuned for play — each stage generated against everything already decided, reviewed before the next one runs.

Stage What it settles
Premise What the campaign is about at the table.
The Truth Three layers — the surface story, the real one, and the ultimate one.
Principal forces & fronts Who is pushing, and toward what.
Hooks Why these characters are here at all.
Revelation architecture The graph above — the discoverable truths and their dependencies.
Act thresholds What has to be true for the campaign to move up a gear.
Consequence matrix What changes in the world depending on what the party does.
Side arcs The material that isn't load-bearing.
Finale invariant What must hold at the end regardless of route taken.
Gap analysis What the skeleton is missing.
World population

It threads in, rather than duplicating

Ask for the world to be filled in and the system suggests existing NPCs and locations to use instead of minting near-duplicates — with a redundancy check in validation to catch the ones it missed. A campaign should accumulate a world, not a pile of interchangeable innkeepers.

Vocabulary

Same engine, different words

A “Thread” in the Novel lens is a “Quest” here — same underlying document type, same retrieval, same weave machinery. The lens descriptor changes the word, the tree section, and the reverse-index axis label. Nothing in the engine knows the difference.

§ 03  Running the game

Live play is a different mode, not a chat feature.

01

The Narrator

An AI game master with its own system prompt, canon-precedence rules, player-driven-character rules and the project's narrator style. Not an assistant that also roleplays — a distinct mode with different behaviour.

02

Free-flow turn-taking

Four people talking doesn't produce four replies. Messages buffer, and the Narrator takes one turn after a lull, covering everything said since. Typing indicators extend the lull so a slow typer isn't cut off; a hard maximum wait guarantees a talkative table still gets its turn.

03

Dice that are deliberately dumb

XdY+Z, real randomness, and no rules interpretation whatsoever. What counts as a roll and how to read it is the model's job, with your game-system document in context — so the roller can't be wrong about a system it was never told about.

04

Voice at the table

The desktop client runs speech-to-text locally. Audio never leaves the machine — it isn't uploaded, buffered server-side, or sent to a transcription provider.

05

Virtual tabletop bridge

A module syncs dice rolls and character sheets from a hosted Foundry VTT instance into mechanics documents, behind a per-project API key, with a GM-only bestiary.

Autonomous steering

The Pacing Watcher

A background process that reads the recent transcript, the campaign spine, and its own prior notes, and judges whether play is on track. When it isn't, it folds a single private note into the Narrator's next turn — no approval gate, no visible interruption.

The part that makes it more than a nudge generator: it also judges whether its last steer was followed, ignored, or redirected — so it never re-forces a direction the players legitimately declined. Bigger ideas become drafts for out-of-play review instead. The GM can also run it on demand with /steer.

Built · not yet proven in real play

Access control

The GM wall is architectural

GM-only material — the Truth, GM notes, whole folders — is stripped from a player's retrieval before context is assembled. It is not filtered out of the answer afterwards, and it is not merely hidden in the interface.

The difference matters: material that never enters the context window cannot be coaxed out by asking cleverly, rephrasing, or injecting instructions. A player joining by invite sees a tree that reflects what their character could know, and no amount of prompt ingenuity gets round it.

Point of view

A knowledge ledger per character

A background worker watches live sessions and records what each present character has actually been exposed to. Filter the tree to what a character knows, or ask the reverse question — who knows about this document?