Modules

Each module is a self-contained pattern your agent applies: preflight checks, a procedure, marked decision points that all ship defaults, and a verification step. Apply what your table needs; skip the rest. Everything below is shipped and CI-verified on Windows, macOS, and Linux; items marked live-proven have also been exercised end to end on a real campaign.

module what it gives your table
cli the campaign’s vendored command core: config, health checks, an upgrade-safe record of what’s applied live-proven
wiki the knowledge architecture: schema, fail-closed visibility, twin pages, attribution capture, the player projection live-proven
lint the health check: broken links, orphans, log format, contribution conflicts, and the spoiler firewall live-proven
render markdown to a clean static site, nothing more live-proven
publish the safety pipeline ending in a Cloudflare Pages deploy: strict lint → firewall → build → ship live-proven
retrieval the two-token Worker endpoint: MCP for agents, a REST facade for Custom GPT Actions live-proven
lore-bot the Discord archivist: corpus-only answers, cited pages, self-refreshing knowledge live-proven
transcriber local whisper.cpp transcription with per-speaker merge — the free replacement for paid transcript services verified
contribs player contributions with attribution, consent receipts, and the sale-build fence verified
companion at-the-table agents under one rule: what’s possible and what’s true, never what’s better verified
orlog fork-first timeline reconciliation with the Ørlǫg chronology tool verified
routines maintenance that runs itself: idempotent, safe to miss, safe to double-run verified

Coming: the session recorder (specced — one bot records per-speaker audio with react-gated consent), Discord server scaffolding, and — further out — transactable campaigns: your world, cleared and packaged, as something another table can buy and hand to their agent.

Modules are contributable: the contract is public, and a community VTT module lands the same way ours do — by meeting it.