Files.

Everything published, what each one is, and the list of what is held back with the reason attached.

This is a snapshot of a moving repository. Files here are copies taken at a moment, not a live mirror — a copy can fall behind the working tree and has done before. Where a number is quoted anywhere on this site it carries the date it was counted, for the same reason.

Nothing here is a finished specification. The project is four days old. Several of these files contain clauses explicitly marked as guesses, and at least one contains a correction to something it previously asserted. That is the intended state, not an apology for it.

Evidence — the played session, 27 August 2026

The artifacts, not summaries of them.

These are what the session actually produced. The two ledger entries appended late are still in there, out of order, with notes recording their own lateness.

FileWhat it isSize
ledger.jsonlEvery roll, recording raw die and modifiers so the total is derivable rather than asserted. Entries e017 and e018 were written late.7 KB
facts.jsonlWhat is true, what is known, and what the player believes wrongly — the two believe entries carry truth: false.20 KB
transcript.mdThe session as played, six scenes.29 KB
FINDING.mdWhat the dungeon master wrote about its own run, before anyone read the transcript. It leads with a failure.22 KB
DM.mdThe contract it was bound by. Carries a work-in-progress notice — it was written to make a play-test functional, not to be complete.13 KB
gate.pyThe current validator, identical to source/gate.py. ⚠️ It is not a frozen snapshot of session day — it has been fixed twice since. What it was checking on 27 August is in the CHANGELOG, which is the whole reason that file is dated.24 KB
gate-run.txtOutput of running it against the above.329 B
README.mdWhat each file is and how to check it yourself.5 KB
Source — the system itself

Published so the schemas can be read rather than described.

FileWhat it isSize
gate.pyThe only script in the project. Python 3, no dependencies. Validates that every total rebuilds from its own die and modifiers, and that every verdict matches its total against its own DC.24 KB
CHANGELOG.mdDated record of what the validator was and was not checking on any given day, including the hole a reader found by running the published commands against the published files.4 KB
architecture.mdThe spine. Exact/mechanics versus inference/story, the template and instance split, fog of war in three directions.21 KB
state-formats.mdThe ledger and facts schemas, including §2.3’s rule that a verdict must match its own arithmetic.21 KB
npc-containers.mdHow people persist. Created when met, not in advance.21 KB
persona-format.mdThe dungeon master as a swappable file — seven dials, triggered moves, and a prediction a player can check.20 KB
campaign-start.mdThe procedure that turns a filed campaign into a running one.17 KB
modules-README.mdThe adventure schema. Beats record a state change, never a scene.14 KB
library-README.mdWhy the rules are on disk instead of recalled from training.9 KB
core.mdClass progression tables, all twelve classes, levels 1–20.23 KB
fireball.mdOne of the 617 rules articles, to show the shape.1 KB
LIVE-README.mdWhy a played campaign is kept separate from the templates.7 KB
table-agreement-sample.mdThe player’s content boundaries. Every mechanically-cited section in full; one section’s answers cut and its shape kept.8 KB

Schema definitions and filled-in samples are listed separately on Schemas.

What is deliberately not here

Nine things are held back, and each one has a reason that is not “we would rather not.”

A list of published files is only meaningful next to the list of unpublished ones. Three of these are legal, three are the player’s, and three would invalidate a test if they leaked.

The converted adventure. campaigns/modules/a-wild-sheep-chase/ is marked derivation: derived, shareable: no, and its licence is the DMs Guild Community Content Agreement, which commits distribution to DMs Guild. The schema publishes; the adventure does not. The original is A Wild Sheep Chase by Winghorn Press. A derived element from this module was published here once by mistake and pulled when a reader caught it.

The rules corpus in full. SRD 5.2 is CC-BY 4.0 and could be republished with attribution. One article is here to show the shape. Mirroring 617 files of someone else’s rules text to prove we have it is noise, not evidence.

Homebrew and non-SRD species content. Not ours to redistribute in bulk. The schema for it is published; the entries are not.

The real table agreement. dm/table-agreement.md is one person’s actual content boundaries — what they do and do not want in their game. It never ships, in any package, ever. The published sample keeps every mechanically-cited section in full and cuts one section’s answers while keeping its shape, so the mechanism is checkable and the person is not on display.

The played campaign. Everything under LIVE/ is one person’s actual game — their character, their canon, their session state. Nothing in LIVE is a template and nothing in LIVE ships. The session’s evidence files are published; the campaign directory is not.

Character sheets. The schema is on Schemas. The sixteen filled-in sheets are real characters belonging to real people, several imported from their D&D Beyond accounts. A schema demonstrates the format; a stranger’s character sheet demonstrates nothing extra.

DM-side secrets. secrets.md, companion wants, front clocks, the beat graph. These are the exact things The Table is built to keep off a player’s screen. Publishing them would be a strange way to argue that the fog-of-war boundary is taken seriously.

The test criteria and scoring. docs/test-criteria.md and SCORING.md define what a probe or build-test is measured against. A session that has read the scoring rubric is not running the test any more, so these stay out of any session under test — and off this site, since the site is one of the places a session might look.

Handoffs and operator instructions. HANDOFF-*.md and the repository’s root CLAUDE.md. The first would contaminate a test for the same reason as above; the second is a description of how one person prefers to work, which is not part of the product and is gitignored.

If you think something on that list should be public, the honest answer is that most of it could be. The two that cannot are the derived adventure and the table agreement. Everything else is a judgement about signal, and judgements can be argued with — the contact link works.