docs: canon log schema + origin seed design
Design spec for the §11 canon log, plus origin seeds as thin initial-state
overlays over a single static world. Three layers (world content / origin seed /
runtime canon log), the in/out boundary (numeric Luck never enters the AI
payload, §7), field-level schemas, new-game construction order, turn-to-turn
maintenance, and JSON storage validated on both client and api.
Folds content/npcs and content/quests under content/world/; adds
content/world/{locations,items} and content/origins. fallback/ kept outside
world/ (authored prose, not id-referenced).
Spec: docs/superpowers/specs/2026-07-09-canon-log-schema-design.md
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
16
content/world/README.md
Normal file
16
content/world/README.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# /content/world — static, ID-referenced content
|
||||
|
||||
The shared world. Authored once, identical every playthrough. Everything here
|
||||
carries a stable string **id** that origins and the canon log reference. Never
|
||||
seed initial *state* here — that is an origin's job (`/content/origins`).
|
||||
|
||||
```
|
||||
/locations Towns, dungeons, points of interest. id → location
|
||||
/npcs Persona + knowledge lists (charter §6). id → npc
|
||||
/quests Story skeletons and quest definitions (charter §17). id → quest
|
||||
/items Gear, consumables, cursed items (charter §7). id → item
|
||||
```
|
||||
|
||||
New-game construction resolves every id an origin references (start location,
|
||||
start quest, granted items, seeded companions) against this content, and fails
|
||||
loudly if one is missing. Keep ids stable — a rename is a breaking change.
|
||||
9
content/world/items/README.md
Normal file
9
content/world/items/README.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# /content/world/items
|
||||
|
||||
Item definitions — gear, consumables, cursed items — each with a stable **id**.
|
||||
An origin's `inventory_grants` resolves item ids here.
|
||||
|
||||
Cursed/blessed items move Luck (charter §7): *a cursed blade granting +4 STR and
|
||||
−5 LCK is the most interesting item in this game.* The item system supports the
|
||||
STR/LCK split on day one. Numeric effects live in game state; only narrative-worthy
|
||||
items surface as canon-log facts.
|
||||
8
content/world/locations/README.md
Normal file
8
content/world/locations/README.md
Normal file
@@ -0,0 +1,8 @@
|
||||
# /content/world/locations
|
||||
|
||||
The map — towns, dungeons, points of interest, each with a stable **id**. An
|
||||
origin's `start_location_id` resolves here; the canon log's `location` mirrors
|
||||
the current one (id + display name).
|
||||
|
||||
POC scope (§17): one town, one dungeon (three fights, one boss). One reusable
|
||||
world; origins vary only where the player begins within it.
|
||||
7
content/world/npcs/README.md
Normal file
7
content/world/npcs/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# /content/npcs
|
||||
|
||||
Per-NPC knowledge lists — an explicit list of what each NPC knows (charter §6). This is the *entire content* the NPC has to draw on, injected as `knowledge: [...]`. Not a prompt suggestion — the whole design.
|
||||
|
||||
POC scope (§17): **two NPCs** with authored knowledge lists.
|
||||
|
||||
Companions (Cadwyn, Brannoc) are voiced too but carry more (approval, humiliation log) — see charter §9.
|
||||
5
content/world/quests/README.md
Normal file
5
content/world/quests/README.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# /content/quests
|
||||
|
||||
Authored story skeletons and quest definitions. The *skeleton* is authored; the *prose* is generated (charter §1).
|
||||
|
||||
POC scope (§17): one town, one dungeon (three fights, one boss). AI-generated story skeletons are v2 — out of scope.
|
||||
Reference in New Issue
Block a user