A direction spec: one character, seven campaigns (one per demon king), one saga — then it ends. The character, companions, deeds and level carry between campaigns; the world does not. Deliberately adds no milestone and no BOM line. Its real payload is a set of guardrails on milestones that are about to be built blank and would otherwise foreclose the shape: - M5 owes a level curve — design it to a ceiling of 20 across 7 tiers, with tiered enemy stat blocks and never a scaling multiplier. - M9 owes a save format — two objects (Saga + Campaign), not one blob. Humiliations move to the Saga or they die with the campaign. - M3/M4 — don't foreclose a saga entry path; don't couple construct() to the creation scene. - Build tool — add tier:1..7 when the item/quest namespaces land. Difficulty is fixed at world-construction time from the campaign index, never during play. That prohibition is the whole design; a world that re-levels with the player is a treadmill. The canon-log contract does not change: party[].disposition, humiliations[] and established_facts[] already exist, and player still admits no number. The Saga becomes the source; the canon log a projection of it. The seam is one optional fourth arg to NewGame.construct(). Greywater at tier 1 under Ghaul is, unintentionally, already campaign 1. 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 nextadr/— Architecture Decision Records- 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.