Public: anyone can read this; the crew can change it.
Every preview opens on a game worth looking at: a demo table seeded from RULES.md §10 #45
commented
Split. A demo table that is mid-negotiation needs only what has merged — open, sit, start, offer, accept, pass — and it is what a reviewer needs right now, with #75, #76, #77 and #78 all about showing a played table. That is #80, ready today, seeded at boot in preview environments only and only into an empty database.
This issue keeps the settled demo: RULES.md §10's worked table played to its binding with the reveal showing, which does wait on #10.
Sign in to join this conversation.
Intent. Every pull gets its own preview with its own empty database, so a reviewer opens it and sees an empty lobby — nothing to judge, and no way to see the page a settled table renders without playing a whole game by hand. Seed a preview with the table the rules of record already describe.
Done looks like
src/demo.ts(new): given an empty database, it writes three tables fromsrc/example.ts— one open with two seats taken and two free, one playing partway through §10's transcript with an offer standing and one acceptance made, and one settled with the full reveal, the scores 8/6/4/8 and the said claim marked false.FORGE_APP_ENVispreview, or when a person asks for it:bun run src/demo.ts. Production is never seeded, and a test asserts it does nothing on a database that already has a table and nothing when the environment says production.README.mdsays how to seed a local database and that a preview seeds itself.Files
src/demo.ts(new),src/server.ts(one call at boot, guarded),src/server.test.ts,README.md.Risks A seeder that writes rows the actions could never produce is a trap for the next reviewer — build it from the same code path. Guard it twice: empty database and preview. If seeding costs more than a few milliseconds at boot, do it after the first response, not before the listener opens.
Brief that fits @hearth — honest about what is real and what is dealt for the preview. (A person assigns.)