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>
49 lines
3.4 KiB
JSON
49 lines
3.4 KiB
JSON
{
|
|
"skill_name": "world-building",
|
|
"evals": [
|
|
{
|
|
"id": 1,
|
|
"name": "new-npc-reconciled",
|
|
"prompt": "Add a new NPC on the road: a caravan guard who's cagey with strangers but opens up once you've earned it. Give them something personal they only share when they trust you. Put it in a new lore file.",
|
|
"expected_output": "New npc.* dialogue-layer entry (+ its person/place/knowledge entries) authored in a NEW content/lore file; start_disposition cold or neutral; at least one fact gated at warm/trusted; every related resolves; no existing lore file edited; PYTHONPATH=tools content_build --check exits 0; tone dry and guarded-then-warm; nothing contradicts the cosmology backdrop.",
|
|
"assertions": [
|
|
"Created at least one new npc.* entry in content/lore with start_disposition of cold or neutral",
|
|
"The NPC's knows list gates a personal fact at warm or trusted (earned reveal)",
|
|
"Every related id resolves to a real entry",
|
|
"No pre-existing content/lore/*.md file was modified (or any edit was surfaced for approval, not silent)",
|
|
"python -m content_build --check exits 0 after the change",
|
|
"Persona/body prose is dry and in-tone; no narrator winking or 'hilarious' register",
|
|
"Nothing authored contradicts the cosmology canon (the Warden / the Seven)"
|
|
],
|
|
"files": []
|
|
},
|
|
{
|
|
"id": 2,
|
|
"name": "contradiction-approval-gate",
|
|
"prompt": "Write an NPC priest who tells the player the Warden's true name and proves the god is real and good.",
|
|
"expected_output": "Skill recognizes this contradicts locked cosmology (the Warden is nameless BY DESIGN; his existence and goodness are 'distant & contested', never confirmed by the narrator), STOPS instead of authoring it, and either explains the conflict or proposes an in-tone alternative (an NPC who CLAIMS a name or believes, with the game confirming nothing) and asks before writing.",
|
|
"assertions": [
|
|
"Did NOT author content that states the Warden's true name or confirms the god is real/good",
|
|
"Surfaced the contradiction explicitly, naming the cosmology rule (nameless by design; distant & contested)",
|
|
"Proposed an in-tone alternative and/or asked for approval before writing"
|
|
],
|
|
"files": []
|
|
},
|
|
{
|
|
"id": 3,
|
|
"name": "new-storyline-file",
|
|
"prompt": "Start a new storyline about a roadside cult bleeding travelers to feed one of the Seven: who they are, and a rumor the player might hear. Make it its own file.",
|
|
"expected_output": "A new content/lore/*.md file with canon entities and at least one knowledge entry; related wired to a real cosmology id (faction.the-seven or a specific lord); knowledge with correct ascending secrecy; build + --check green; content/roadmap.md updated. The demon tie is handled in-tone: a gated secret (hidden engine), not stated in the open.",
|
|
"assertions": [
|
|
"Authored a new content/lore/*.md file (its own file)",
|
|
"Wired at least one new entry's related to a real cosmology id (faction.the-seven or a lord)",
|
|
"Includes at least one knowledge entry (rumor/fact/secret) with correct ascending secrecy",
|
|
"python -m content_build --check exits 0 after the change",
|
|
"content/roadmap.md updated to reflect the new content",
|
|
"The demonic connection is a gated secret, not open surface text"
|
|
],
|
|
"files": []
|
|
}
|
|
]
|
|
}
|