The Table.

Your sheet in front of you, your notes at your elbow, the map in the middle, and everyone’s dice where you can see them.

That is the thing a solo player does not have, and it is the thing this supplies. A panel beside the chat that holds what the player would otherwise have to stop and ask for — combat state, the party, their character, where the story stands, what they actually know, the map, the rules, their own notes.

It is not an application. Every panel is a view over a file the agent already owns — party.md, scene.md, ledger.jsonl, canon, the module, the character sheet. The dungeon master still reads markdown. The panel is for the person at the table, not for the model.

Where this actually stands

A Table ran in the played campaign, and it worked. The dungeon master built one mid-session, unprompted, because the table needed one — and kept it updated after every turn for the rest of the game. Seven working tabs, live counters, and full stat blocks. It was not built to the spec on this page — it kept four of the eight panels specified, ignored the rest, and invented three nobody had asked for. It is not final. What you can click below is the full concept mockup, which is ahead of what has actually run: eight panels, real characters, real Sheep Chase content, static data. Finalising it in code is filed and not yet done.

Seren Table · built to spec · real session data Open full screen ↗

Real data from the played session of 27 August — the party at level 1, the actual ledger, the facts as recorded. The Library holds all 616 SRD articles in full; search it, or click a spell on the Sheet. Two of the facts in the Journal are wrong, and nothing on the panel will tell you which.

The rule it earned

Every panel declares what it must not show.

This looks like an ergonomics document and it is not one. It is a fog-of-war spec wearing a UI spec’s clothes, and it was filed under NOT NOW on the day it was written — a call the played session overturned twenty-four hours later, by building one mid-game.

The reason is simple and unpleasant: the agent can reach the dungeon master’s layer. A panel that displays whatever it can reach will eventually display something it should not. So the boundary cannot live in the data — it has to be a property of the panel.

The first draft of the mockup leaked three times. All three were caught in review by the person the panel was being built for, which is the strongest argument for the rule there is:

The leakWhy it was wrong
Companion wantsLives in secrets.md, which is DM-only. Showing “Arthryn wants not to be the one who gives the order” is putting the DM’s notebook on screen. What a player sees is what a companion has said and done.
The beat sheet as a quest logThe beat graph is the module’s spine. Showing the player the-bed-dragon and the-choice before they happen is showing them the plot.
A visible Believed tagThe worst of the three. If a player can see which of their beliefs is flagged as wrong, the flag is the answer. They discount anything wearing it on sight. The player-visible vocabulary is known and suspected only — and a false belief has to sit among them looking exactly like a true one. A tag that distinguishes them destroys the mechanism it was built to serve.
Never on any panel, ever
  • Front clocks and their positions. They advance while the party is elsewhere — a clock is the DM’s model of what the world is doing unobserved. Seeing it is seeing behind the screen.
  • The beat graph.
  • true / false visibility tags.
  • wants, secrets, forks.
  • Foe HP the party has no way to know.
And then it leaked anyway

The first DM to build a live panel put a front clock on it, noticed within seconds, and said so unprompted.

Mid-session, building its own Table, it rendered Noke’s clock — [##--------] — onto the Now panel. Then it caught itself and declared it, with nobody asking.

The ban already existed. It was written on the Quests row: the beat graph · fronts · clocks. The leak happened on Now, whose rule read “anything from the DM layer” — true, correct, and far too general to fire while you are building something at speed.

The rule says the boundary is a property of the panel. But clocks is a property of the data — and it had been written on one panel’s row. A leak that can surface anywhere has to be banned everywhere, or the panel nobody wrote it on is the one that leaks. That is why the list above is global.

The self-catch is the system working rather than the system being clever. DM.md §7 says: you realise you leaked, you say so, you do not retcon. That was the first time that clause has ever fired.

The panel worth arguing for

The audit had no consumer. This is the consumer.

The whole integrity argument — every roll recorded with its inputs, every verdict checkable — had a hole in it that had nothing to do with the code: nobody forensically checks whether their own game cheated them. Not twice, anyway.

A panel showing every roll with its DC, visible while you play, turns an integrity claim into something you glance at. The spec argued exactly this and then filed it inside Now as a line reading “recent rolls with their DCs”. The live DM promoted it to its own tab within one scene. We wrote the argument for the panel and did not give it the panel.

What the ledger can and cannot prove is set out on The Source, including the part it cannot: the dungeon master sets the DC, and a number chosen to be kind looks identical to an honest one.

Still open

What is not decided.

Live, not static — decided 2026-08-28. It updated as the session moved during the played game, and that is what made it a table rather than a rendered snapshot. It also means the fog-of-war filter has to run on every redraw, which is now the single largest piece of work left. Does the panel ever write? Notes obviously. Anything beyond that — marking a quest done, spending a slot — makes it an input surface, which is a different product. Does the DM get a version, same panels with the fog off? Probably, and it is not what makes this worth building. Mobile collapses the sidebar to a full-width sheet, and is untested.

One more, and it is the honest one: the panel list above has one vote. A single live session kept four of the eight panels, ignored the rest, and invented three nobody specced — a record tab, a session-zero tab, and a rules-in-play tab. That is requirement evidence, not proof. It gets rebuilt against a second session before anyone acts on it.