The mock's screen over M4-a's proven model. Five mock/model reconciles recorded: the skills section the mock never drew, seven callings not five, nameplate cards with prose on selection, a minus button, no portrait arrows. No AI call anywhere — the DM's entrance is the shell, one screen later. The screen shows the roll by calling the same pure roll_attributes(seed) construct does, so it displays numbers without ever handing one over. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
/docs — cross-cutting docs
Anything affecting both client and api, plus planning and roadmap. Side-specific docs live in /api/docs and /client/docs.
Put here:
roadmap.md— phases, POC scope, what's nexttraps.md— bugs we have already shipped, and the guards that catch them. Read before writing tests: every one of them passed a green suite.adr/— Architecture Decision Recordscanon-log.md— the cross-boundary contract (§11)- Shared contracts — canon log schema, tag syntax, retry policy (§11, §12)
- Anything spanning the HTTP boundary
The charter itself — CLAUDE.md — stays at the repo root. It is the source of truth; these docs elaborate, they do not override it.