docs(content): create the content roadmap — Spine, BOM, Backlog
Implements the docs restructure half of the content-track design (the
currency item is code and stays unbuilt). Content stops being unbounded:
the work is now a countable checklist with an end.
content/roadmap.md — new. Three sections, only one of which is ever the
work:
Spine Greywater Docks + one dungeon, patron Ghaul the Yoke; the
cosmology touching ground. Plus what is already canon.
BOM ~57 discrete pieces for a complete, playable game, per
milestone. Numbers, not vibes.
Backlog Everything the slice does not need. Not a debt — where ideas
go to be safe.
Its rule: never author anything that is not in the Bill of Materials.
The BOM carries a Fixed/Variable column — the seven-campaign saga spec's
only ask of this table. ~37 fixed / ~20 variable: a second town costs the
20, not the 57. That is also the exact split v2 generation would need.
content/lore/canon-roadmap.md becomes a pointer (older specs and plans
reference the old path). An items-and-prices table does not belong under
lore/.
docs/roadmap.md — M4..M9 each gain a "Content it consumes →" line into
the BOM.
world-building skill — SKILL.md and evals.json now point at
content/roadmap.md, and the skill is told to respect the BOM rule: ideas
that arrive during authoring go to the Backlog, not into the world.
Build + --check green; generated content/world and content/server are
byte-identical. No Python touched.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,64 +1,11 @@
|
||||
# Canon Roadmap
|
||||
# Moved
|
||||
|
||||
The world's answer to `docs/roadmap.md`: what is authored vs pending, and the
|
||||
order the Margreave is being written. Source of truth is `content/lore/*.md`;
|
||||
`content/world` + `content/server` are BUILT from it (`python -m content_build`).
|
||||
The canon roadmap is now the **content roadmap**: [`content/roadmap.md`](../roadmap.md).
|
||||
|
||||
## Authored (status: canon)
|
||||
It grew past canon — it holds the Spine, a Bill of Materials (items, prices,
|
||||
quests, the map), and a Backlog. An items-and-prices table does not belong under
|
||||
`lore/`. See the
|
||||
[content-track design](../../docs/superpowers/specs/2026-07-12-content-track-design.md).
|
||||
|
||||
- **cosmology.md** — the overarching theme: the Warden (distant good god), the
|
||||
Sent (his angels), the Seven (demonic host), and the two economies +
|
||||
possession (`rule.the-pact`, `rule.blood-price`, `rule.possession`). The
|
||||
backdrop every future piece of content reconciles against.
|
||||
- **the-seven.md** — the seven demon kings, one `person.*` each: Kareth (Red
|
||||
King), Vael (Quiet Knife), Morren (Grey Mother), Ghaul (the Yoke), Ishri (Open
|
||||
Mouth), Nuun (Hollow Choir), Draeth (Crowned Worm).
|
||||
- **FTH-axis callings** (folded into the cosmology, from the races/classes
|
||||
spec): the Bonesetter channels the Warden, the **Bloodsworn** (resolves the
|
||||
warlock's former `[CANON-TBD]` name) pacts one of the Seven. Applying `Bloodsworn` to calling
|
||||
data and a Bloodsworn's patron choice are M4; any Luck effect is an M5/
|
||||
Improviser reconcile.
|
||||
- **mechanics.md** — hosts `rule.disposition-ladder` (the required-once gate
|
||||
vocabulary), reparented out of the retired Duncarrow scaffolding.
|
||||
- **specimen.md** — a synthetic `status: candidate` disposition-gate specimen
|
||||
(validated by `--check`, emitted nowhere); the world-building skill's structure
|
||||
example. Not game canon. The Duncarrow scaffolding (Crell chain, Mera Fenn) is
|
||||
deleted.
|
||||
|
||||
## Lesson from the Duncarrow purge
|
||||
|
||||
Generated content under `content/world/` has a client-side consumer:
|
||||
`client/scripts/content/content_db.gd` (loaded via `client/scripts/harness/npc_harness.gd`)
|
||||
and its GUT tests in `client/tests/unit/test_content_db.gd`. Deleting generated
|
||||
content — a whole namespace of topics/npcs/canon — is a **client change**, not
|
||||
just a content change; check `client/` before purging.
|
||||
|
||||
## The seven-campaign saga — what it asks of content
|
||||
|
||||
The saga direction spec
|
||||
([`docs/superpowers/specs/2026-07-12-character-reuse-seven-arc-design.md`](../../docs/superpowers/specs/2026-07-12-character-reuse-seven-arc-design.md))
|
||||
authors **no content** and adds **no BOM line**. It asks two things of the content
|
||||
track, both of which land inside work already sequenced:
|
||||
|
||||
- **`tier: 1..7` on the entry envelope**, validated by the build tool — added at the
|
||||
moment the `item` and `quest` namespaces land (already an M7/M8 prerequisite in the
|
||||
content-track design). Schema, not content.
|
||||
- **When the Bill of Materials is written, mark each line fixed vs variable.**
|
||||
*Fixed substrate* (identical in every campaign): currency, the price table,
|
||||
abilities, callings, the cosmology, the Seven, the disposition ladder.
|
||||
*Per-campaign variable*: the town, its NPCs, their gated knowledge, the quest
|
||||
chain, the king. This tells you which BOM lines town #2 reuses verbatim — useful
|
||||
now, and the exact split v2 generation will need.
|
||||
|
||||
Pleasant accident: **the Greywater slice is already campaign 1** — tier 1, patron
|
||||
Ghaul the Yoke. Nothing in the content-track design changes.
|
||||
|
||||
## Pending (not yet authored)
|
||||
|
||||
- Per-town knowledge that grounds the cosmology: possessed NPCs, blood-harvest
|
||||
sites, shrine fronts — authored as gated `rumor`/`fact`/`secret`.
|
||||
- The Barbarian ⚔ calling name (`[CANON-TBD]`); the Bloodsworn's patron-choice
|
||||
detail (M4). Regions/towns of the Margreave beyond the scaffolding.
|
||||
- **Backlog (saga, tiers 2–7):** the other six kings as campaign patrons; tiered
|
||||
enemy families; the three story-shapes (cult cell → cult that owns a city → the
|
||||
king). Parked, not lost.
|
||||
This pointer exists because older specs and plans reference the old path. It holds
|
||||
no canon and emits nothing.
|
||||
|
||||
Reference in New Issue
Block a user