Worldbuilding
SkillDocs & knowledgeHelps your agent build fictional worlds for stories, creating locations, maps, magic systems, religions, and histories.
Use Worldbuilding in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add Worldbuilding and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the Worldbuilding skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
About this skill
This skill should be used when the user asks to "create a location", "add a location", "magic system", "political system", "build the world", "add culture", "world history", "technology system", "religion", "economy", "map", "travel times", "routes", "calendar", "moons", "seasons", "naming language"
What this skill tells your AI
The instructions your AI receives, as published by danjdewhurst/story-skills in skills/worldbuilding/SKILL.md and read by Ahel’s review.
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) - Create it with
story add location "{Location Name}" --type "{type}"when the CLI is available (add--region,--population,--controlled-by, and--characteras known); it writesworldbuilding/locations/{name-kebab}.mdand updatesworldbuilding/_index.md. Then fill the body fromreferences/location-template.md - Without the CLI, write the file from
references/location-template.mdtoworldbuilding/locations/{name-kebab}.md - Without the CLI, update the
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 wordcount . --write, andstory check .
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 wordcount . --write, andstory check .
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 wordcount . --write, andstory check .
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 wordcount . --write, andstory check .
Updating World Elements
- Read the existing file
- Make the requested changes. If a location or faction changes partway through the story (a city falls, a guild disbands), add a progression instead of editing the opening value (see Changes Over the Story)
- 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 wordcount . --write, andstory check .
Changes Over the Story
Location and faction files describe the world as the story opens. Record a later change as a progression, so drafting an early chapter does not see what happens in a late one:
progressions:
- from: chapter-10
field: status
value: occupied
- from: chapter-10
field: controlled-by
value: lord-maren
fromis the first chapter where the new value holds. It may be a plannedchapter-NNwith no file yetfieldis a kebab-case single-value field, existing (status,controlled-by,region) or new (ruler,population-note). List fields (notable-characters,routes,members,locations,tags) cannot change this wayvalueis one value. A faction'stypeandstatusmust stay within their allowed values- Keep entries in story order, and read the progressions up to the chapter being drafted before describing the place or faction in it
- Artifacts and systems do not take progressions; track an artifact's changes with
object-stateand scenestate-changes(see the revision-continuity skill)
After adding or editing progressions, run story reindex ., story wordcount . --write, and story check ..
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, systems, 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 the bundled fallback node ../story-maintenance/scripts/story.js with the same arguments. Use node <checkout>/bin/story.js instead only when the user names a Story Skills repository checkout or you are working in one. Write the script as an absolute path (resolve the fallback relative to this skill folder) and run it from the folder you would run story from, so . and other relative paths keep their meaning. Use Node, not Bun or a package script: Bun would load that folder's bunfig.toml (which can run code) and .env, and a package script runs from the checkout's root. 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- Adding a customcalendartostory.md, dating scenes in it, and recording seasons and moons as a system filereferences/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
Shared Conventions
Every story skill follows the shared conventions in ../story-maintenance/references/conventions.md, resolved relative to this skill folder. Read it before creating, renaming, or linking story files. If that file is missing because this skill was installed without story-maintenance, the essentials are: kebab-case ids and filenames, YAML frontmatter on every story-project file, _index.md files as the authoritative registries, bidirectional links between entities, characters for who is on the page and mentions for who is only referred to, status: deceased plus died-in: chapter-{NN} for deaths, and no project-local generator or build scripts (run only the installed or bundled Story CLI).
Signals
- GitHub stars
- 279
- Forks
- 45
- Last commit
- Oct 2026
Others that do the same job
Advanced
- Item type
- skill
- Key
story-skills-worldbuilding- Source
- github.com/danjdewhurst/story-skills
github.com/danjdewhurst/story-skills
Related picks
Skill · thedaviddias
The pick for JavaScriptmodern-javascript-patterns
Skill · wshobson
The pick for JavaScriptlark-markdown
Skill · larksuite
The pick for Markdownmarkdown-formatter
Skill · nvidia
The pick for Markdownhandoff
Skill · mattpocock
More in Docs & knowledgecanvas-design
Skill · anthropics
More in Docs & knowledge