worldbuilding
Skill1 starsChanged 13 days agoMITView on GitHub
Use when the user wants to ADD or EDIT ONE character, location, lore entry, or story-timeline event, without spinning up a full story-bible flow. Triggers on "add a character to [title]", "save this location to the bible", "create a new lore entry for [thing]", "update [character]'s backstory", "describe a place and save it". For merging or deduplicating, use the `character-merge` skill instead.
6 other projects use a version of this.
Adopted by
Most recently taken up by
- mm-weber/loremaestertheir own version, first seen Nov 8, 2026
- boundlesslightbringer/novelwritertheir own version, first seen Nov 1, 2026
- Bisbi/ttrpg-studiotheir own version, first seen Oct 13, 2026
- danjdewhurst/story-skillstheir own version, first seen Jun 3, 2026
- Wondermonger-daydreaming/claude-skills-librarytheir own version, first seen May 30, 2026
- bs779517/story-skillstheir own version, first seen Feb 12, 2026
Other versions6 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 6
- danjdewhurst/story-skills★ 399same name
- mm-weber/loremaester★ 20same name
- bs779517/story-skills★ 8same name
- Wondermonger-daydreaming/claude-skills-library★ 7same name
- Bisbi/ttrpg-studio★ 2same name
- boundlesslightbringer/novelwriter★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository29 other files it gives its agents.
- ads-studioSkill
- blog-post-and-newsletterSkill
- calendarSkill
- chapter-draftingSkill
- character-mergeSkill
- financeSkill
- getting-startedSkill
- manuscript-importSkill
- manuscript-revisionsSkill
- markersSkill
- marketing-studioSkill
- mentionsSkill
- pen-namesSkill
- quick-task-captureSkill
- sales-studioSkill
- social-handoffSkill
- story-bibleSkill
- stos-setupSkill
- tasksSkill
- timelineSkill
- time-trackingSkill
- wordpress-connectSkill
- wordpress-llm-optimizationSkill
- wordpress-mediaSkill
- wordpress-pagesSkill
- wordpress-postsSkill
- wordpress-productsSkill
- wordpress-seoSkill
- worldbuilding-mergeSkill
The file
We split this skill into the rules it gives an agent
3 rules. 0 are common, 0 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 4 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 38
If the entry has natural associations ("she's in chapter 3"), call stos_worldbuilding_link for each.
- Very specific: line 42
If you need ONE record, use _get then _update:
- Very specific: line 56
Looping
_getto compare multiple records: Use the _get_many tools for 2 or more characters, locations or lore entries.
“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Worldbuilding — single entries
When to use this vs. other skills
| Situation | Skill |
| Add one or two entries | worldbuilding |
| Edit one field on an existing record | worldbuilding |
| Build out a whole title's bible | story-bible |
| Extract everything from a manuscript | story-bible |
| Merge / dedupe / consolidate characters | character-merge (never per-record _get in a loop) |
| Merge / dedupe locations or lore | worldbuilding-merge |
Canonical field values — send these exactly
The Story Bible tables have strict CHECK constraints, and several columns (aliases, family_group, key_features, tags, themes, story_framework, …) are arrays. The MCP tools now enforce both in their input schema: a non-canonical enum value, or a bare string where an array is expected, is rejected immediately with a clear error listing the allowed shape — a wasted round-trip, not a silent failure. Map synonyms to the canonical value below before calling the tool; pass array columns as real JSON arrays (["a","b"]), never a comma-joined string. If a value can't be mapped, omit the field entirely — never invent, never stash the original somewhere else.
| Field | Canonical values | Synonym → canonical |
characters.role_in_story | protagonist, antagonist, supporting, minor, love-interest, other | hero / heroine / lead / main / MC → protagonist • villain / big-bad / rival → antagonist • deuteragonist / mentor / sidekick / ally / foil / friend / family → supporting • love interest / romantic interest / romance → love-interest • background / extra / NPC / cameo / walk-on → minor |
characters.life_status | alive, dead, undead, missing, unknown | deceased / killed → dead • living / alive-and-well → alive • absent / lost / disappeared → missing • ghost / vampire / zombie → undead |
characters.pov_status | pov-character, non-pov | any POV / occasional-POV / multi-POV / "yes" / "true" / "POV" → pov-character • everything else (or "no" / "false") → non-pov |
events.act | act-one, act-two, act-three, act-four | 1 / I / "Act 1" / "Act I" → act-one (2/II → act-two, 3/III → act-three, 4/IV → act-four). Map non-structural beats (climax / midpoint / dark night / inciting incident) to the closest structural act and put the original beat label in description. |
Never send custom_fields on a Cowork worldbuilding create call. The StorytellerOS UI does not render those keys for Cowork-completed records — the data lands invisible. Stick to the named columns listed in each tool's writable-fields description.
Flow for one entry
- Resolve scope: pen name + (optionally) title or series.
- Draft the entry in the conversation — full fields, not a stub.
- Show it to the user for approval.
- Save:
stos_characters_create,stos_locations_create,stos_events_create, orstos_lore_create. - If the entry has natural associations ("she's in chapter 3"), call
stos_worldbuilding_linkfor each.
Editing an existing entry
If you need ONE record, use _get then _update:
stos_characters_get({ id })
// review the current fields
stos_characters_update({ id, fields: { backstory: 'updated paragraph...' } })If you need TWO OR MORE records, do NOT loop _get. Use stos_characters_get_many, stos_locations_get_many or stos_lore_get_many with { ids: [...] }: one round-trip instead of N. This matters because every MCP round-trip replays the full ~50KB tool schema; loading 10 characters via 10 separate _get calls vs. one bulk-get is the difference between 500KB and 50KB of overhead. The bulk-get tools cap at 100 ids per call. (Events don't have a bulk-get yet; for those, keep the loop small.)
Anti-patterns
- Creating a duplicate. If the user says "add Sasha to Curses and Currents", check
stos_characters_listfirst — Sasha may already exist under another title and just need astos_worldbuilding_link. If the user already knows there are duplicates, route them to thecharacter-mergeskill — it has a server-side duplicate finder that's dramatically cheaper than reviewing pairs in conversation. - Saving a stub. A character record with only
character_nameis technically valid but useless. Draft the full record before saving. - Looping
_getto compare multiple records. Use the_get_manytools for 2 or more characters, locations or lore entries. For dedup work, usecharacter-mergeorworldbuilding-merge. - Sending non-canonical enum values, or a string for an array column. The tool input schema rejects both with an explicit error — map enum synonyms first (see the table above), and pass array columns as JSON arrays.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

