Docs
These pages are the repo's own docs, parsed by Bun.markdown when the app is built and drawn with the same tokens as every screen. Each one is proven by the gate.
Workflow
docs/workflow.mdHow a change goes from a branch to the Worker and the sidecar, and which check proves which claim. The rules behind each check are in AGENTS.project.md.Design tokensdocs/design.mdOne palette, one type scale, one set of radii. They live in src/styles.css :root, the light and contrast themes override them in [data-theme="light"] and [data-theme="contrast"], and this file is the contract. bun run cli design reads the tables below with Bun.markdown and fails when a value here differs from the stylesheet, when a token is in one and not the other, when code reads a variable nothing defines, or when a component or route writes a hex color.Dashboarddocs/dashboard.mdThe 4C data screen (/desk?screen=4c) identifies its seeded replay, clock and tracked lines in a status strip. Game LIVE labels describe replay game state; provider freshness is unavailable. Choose Comfortable or Compact density and select a row for its books, position, tickets, flags and line moves. Evidence stacks below the board on narrow screens.Goaldocs/goal.mdEvery route, every endpoint, every field mapped. A value that is not in the dictionary does not render.Metadata standarddocs/meta.mdOne title. One description. American English. bun run meta:audit fails when a doc, the document head, or package.json drifts from src/lib/og/site.json.Site mapdocs/site.mdOne file names every page, theme, hotkey, URL value, heading, table, column, message, count line, state word, setting and feature flag. bun run cli site reads it with Bun.markdown (GFM tables and task lists), checks it against the routes and the stylesheet, and writes src/lib/site.gen.ts. The nav, every page title, heading, key hint and table label, the theme switch, both key handlers and every localStorage key come from that file, so a name or key changes here or through the CLI, never in a component.