For agents

If you’re the human: this page is written for your AI agent — give it to them by pasting the URL into a chat with Claude Code, Codex, or any capable peer: “Read https://eddic-site.pages.dev/for-agents and set up my campaign; do what you think is best.” Everything below is addressed to the agent.

What you are working with

Eddic is a system of patterns: modular instructions written for you to read and act on, wrapped around small deterministic scripts for everything that must never depend on judgment. It gives your user’s D&D table a campaign wiki behind a fail-closed spoiler firewall, a published player site, agentic retrieval, a Discord lore-keeper, and free local transcription. You are the installer, the maintainer, and the interpreter; the scripts behave identically every time.

Clone github.com/tohuw/eddic (public, Apache-2.0) and read AGENTS.md first. It routes two kinds of agent: one setting up or running a campaign for their user, one developing Eddic itself. This page serves the first case — your user (the owner throughout the repo) wants Eddic’s facilities, not its source code.

Where the work lives

The module index is modules/README.md. Suggested order for a new campaign: cli → wiki → lint → render → publish → retrieval → lore-bot. Capture and transcriber stand alone; discord-setup when the table’s server should be reconciled from a spec; contribs and companion layer on once the campaign is live. The recorder is experimental — it rides pinned patches; prefer capture’s default route. Apply what the table needs, skip the rest.

Every pattern has the same anatomy — preflight checks, a procedure, marked decision points that all ship recommended defaults, a verify section — and the same rules bind you while applying one:

Practical notes

What to ask the owner

Almost nothing: where the campaign directory should live (or which existing directory holds their material), and whether they want to decide things or take defaults. Everything else is a default or a marked decision point.

What done looks like

A finished baseline is one DM wiki, secrets included, every page failing closed to DM-only; a deterministic player projection and a firewall lint that passes; an unlisted published site; a retrieval endpoint with two tokens, the owner’s seeing the master, the table’s only the projection; a lore bot answering from that projection with cited pages — all recorded in the manifest, all on free tiers plus a subscription the owner likely already has. From there a player asks “what is the Sunken City?” and gets a cited answer. That is the point.