The purge plan assumed content/world/** was pure build output. The client reads it: content_db.gd loads content/world/topics/ (now absent, since every topic was Duncarrow-generated) and its tests asserted on deleted ids. - content_db: a missing content dir is an empty dir, not an error (§13) - test_content_db: repoint at cosmology canon; drop deleted npc.mera-fenn - test_content_db: assert the no-body-on-client invariant structurally, so it cannot pass vacuously when the topic set is empty - schema.md: finish repointing the worked example onto specimen.md's ids - restore a local real-bible --check smoke test (was only in CI) - roadmap: record that generated content has client consumers Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
/content — authored game data
Cross-cutting authored writing, split by role in the data model (see the canon
log spec in /docs):
/world Static, ID-referenced game content. Identical every playthrough.
/locations The map — towns, dungeons, points of interest (by id)
/npcs Per-NPC persona + knowledge lists (charter §6)
/quests Story skeletons and quest definitions (charter §17)
/items Item definitions — gear, consumables, cursed items (§7)
/origins Thin starting-state seeds. One per starting point. POC authors one.
/fallback Authored degraded-DM text for every AI surface (charter §13)
The three layers
world/is static content the origin and the canon log reference by stable string id. Authored once; the same for every play.origins/are thin seeds — where the player starts, the situation, and disposition/quest/item/build seeds. Values, not maps. Increase replayability without multiplying authoring work.fallback/is not world content — it is degraded-DM prose (§13), consumed when the API is down. It sits outsideworld/on purpose: nothing resolves an id against it.
At new-game, code constructs the runtime canon log from a chosen origin +
world content + character creation. See /docs/canon-log.md (spec) —
authored via the design under /docs/superpowers/specs.
Authoring notes
- NPC knowledge lists are the whole design (§6). The only thing stopping the blacksmith from revealing the twist. Real authoring work — budget for it.
- Fallback text is content, not error handling (§13). Every AI-dependent surface needs one before it ships.
- Story skeletons are authored for now. AI-generated skeletons are v2 (§17).