Worldbuilding
Overview
Create and manage world elements for a story project. Locations, systems (magic, politics, technology, etc.), factions, and artifacts are stored as markdown files in the worldbuilding/ directory with YAML frontmatter. All elements cross-reference characters and other story elements.
Prerequisites
A story project must already exist (created via the story-init skill). Verify by checking for story.md in the project root.
Creating a Location
- Read
story.mdfor genre, era, and tone context - Read
worldbuilding/_index.mdfor existing locations and systems - Ask for the location's name and type (city, fortress, wilderness, etc.)
- Build the location through conversation, covering:
- Physical description and atmosphere
- History relevant to the story
- Culture and customs of inhabitants
- Notable features characters will interact with
- Current state at story's timeline
- Routes to other locations: travel time in hours and mode (see
references/maps-and-routes.md) - Pronunciation, if the name is invented or easily misread (
pronunciation: "KEL-ah-mar")
- Before settling an invented name, run
story names "{Candidate}"to catch clashes and look-alikes (seereferences/naming-languages.md) - Write the file using
references/location-template.md - Save to
worldbuilding/locations/{name-kebab}.md - Update
worldbuilding/_index.mdlocations table - If notable characters are listed, verify those character files exist and add this location's kebab-case identifier to each character file's
locationsfrontmatter list - When CLI access is available, run
story reindex .,story links ., andstory validate .
Maps, Routes, and Travel
Record travel between locations as routes on the location file, not in prose notes, so the CLI can check it:
routes:
- to: harbor-district
hours: 1.5
mode: on foot
- to: saltmarsh-fort
hours: 9
mode: coach
tois a location id;story links .checks it exists.- A route is two-way unless the other location declares its own route back (for example, uphill slower than down).
story continuity .errors when a character appears in two dated scenes at locations joined by a route and the story time between them is shorter than the route'shours.story diagram locationsprints the route network as a Mermaid map-graph with edges labelled in hours; add--out dist/locations.mmdto save it. Use it to spot unreachable places and implausible shortcuts.
Use the travel speeds table in references/economy-logistics.md to set plausible hours, and references/maps-and-routes.md for the full workflow.
Creating a System
- Read
story.mdfor genre and themes context - Read
worldbuilding/_index.mdfor existing systems - Identify the system type and consult
references/world-element-types.mdfor the relevant prompts. For calendars, naming languages, economies, and magic costs, also usereferences/calendars.md,references/naming-languages.md, andreferences/economy-logistics.md - Build the system through conversation, addressing the key questions for that type
- Write the file using
references/system-template.md - Save to
worldbuilding/systems/{name-kebab}.md - Update
worldbuilding/_index.mdsystems table - Cross-reference with characters who interact with the system (e.g., magic-users for a magic system)
- When CLI access is available, run
story reindex .,story links ., andstory validate .
Creating A Faction
Use story add faction "{Faction Name}" --type "{family|guild|government|military|religion|company|community|criminal|other}" when the CLI is available. Otherwise create worldbuilding/factions/{name-kebab}.md with frontmatter fields name, type, status, members, locations, and tags.
Cover:
- Purpose and ideology
- Power base, resources, and territory
- Important members
- Conflicts and pressure points
Then:
- Save to
worldbuilding/factions/{name-kebab}.md - Update the Factions table in
worldbuilding/_index.md - If members are listed, verify those character files exist
- When CLI access is available, run
story reindex .,story links ., andstory validate .
Creating An Artifact
Use story add artifact "{Artifact Name}" --type "{object|weapon|document|technology|relic|symbol|resource|other}" when the CLI is available. Otherwise create worldbuilding/artifacts/{name-kebab}.md with frontmatter fields name, type, status, owner, location, and tags.
Cover:
- Description and recognition details
- Function, constraints, and costs
- History and prior owners
- Current owner/location state
Then:
- Save to
worldbuilding/artifacts/{name-kebab}.md - Update the Artifacts table in
worldbuilding/_index.md - If an owner or location is listed, verify those files exist and cross-reference back
- When CLI access is available, run
story reindex .,story links ., andstory validate .
Updating World Elements
- Read the existing file
- Make the requested changes
- If cross-references changed, update the linked files
- Update
worldbuilding/_index.mdif name, type, or status changed - When CLI access is available, run
story reindex .,story links ., andstory validate .
Cross-Referencing
- Locations reference characters via
notable-charactersin frontmatter - Characters reference locations via
locationsin frontmatter - Factions reference character members and locations
- Artifacts reference an owner character or faction and a current location
- Systems reference practitioners via character tags
- Location
routesreference other locations by id - Invented names across characters, locations, factions, artifacts, and glossary terms may carry a
pronunciation;story build --format narrationgathers them into a pronunciation guide for audiobook narrators - When a location is used in a chapter, the chapter's frontmatter
locationsfield links back - Keep the
worldbuilding/_index.mdworld overview section current as elements are added
CLI Maintenance
Use the Story CLI when it is available. If story is not installed, use bun run story -- from the Story Skills repository checkout or the bundled fallback node ../story-maintenance/scripts/story.js with the same arguments, resolving the path relative to this skill folder. If no CLI is available, perform the registry, backlink, and word-count checks manually.
Reference Files
references/location-template.md- Template for location filesreferences/system-template.md- Template for system filesreferences/faction-template.md- Template for faction filesreferences/artifact-template.md- Template for artifact/object filesreferences/world-element-types.md- Detailed prompts for each system type (magic, political, technology, religion, economic, military, social)references/maps-and-routes.md- Recordingroutes, thestory diagram locationsmap-graph, and the continuity travel checkreferences/calendars.md- Recording a custom calendar, seasons, and moons as a system file and dating scenes consistentlyreferences/naming-languages.md- Phonology sketches, naming rules per culture, pronunciation, and thestory namescollision checkreferences/economy-logistics.md- Prices and wages, supply lines, magic and technology costs, and a travel speeds table by mode