Skip to content
alyn
danjdewhurst

story-skills

Agent Skills for end-to-end story writing in markdown, packaged as Codex and Claude Code plugins.

$npx skills add danjdewhurst/story-skills
Stars
408
Installs
13k
Forks
61
Updated
11 h ago
License
MIT

24 skills in this pack.

61
danjdewhurst

story-maintenance

This skill should be used when the user asks to "validate", "reindex", "repair registries", "check links", "run the continuity, pacing, clue, voice, or name checks", "count words"…

Pack40813kCoding
59
danjdewhurst

adaptation

This skill should be used when the user asks to "make an audiobook", "narration script", "narrator", "ACX", "Findaway", "pronunciation guide", "how long is the audiobook", "adapt to a…

Pack40813kImages & art
59
danjdewhurst

chapter-writing

This skill should be used when the user asks to "write a chapter", "next chapter", "chapter outline", "draft chapter", "continue the story", "write a scene", "outline a chapter", or wants…

Pack40813kWriting
59
danjdewhurst

character-management

This skill should be used when the user asks to "create a character", "update a character", "add a character", "build a family tree", "character relationships", "character timeline"…

Pack40813kCoding
59
danjdewhurst

discovery-drafting

This skill should be used when the user asks about "pantsing", "discovery write", "write without an outline", "discovery draft", "write into the dark", "story kernel", "reconcile a…

Pack40813kProduct management
59
danjdewhurst

editorial-review

This skill should be used when the user asks for a "sensitivity reader", "authenticity reader", "cultural review", "is this portrayal okay", "real people in my novel", "defamation", "can I…

Pack40813kWriting
59
danjdewhurst

feedback-triage

This skill should be used when the user asks to "process beta reader feedback", "alpha reader feedback", "feedback round", "synthesize reader feedback", "reader notes", "beta feedback"…

Pack40813kWriting
59
danjdewhurst

genre-craft

This skill should be used when the user asks about "mystery", "fair play", "clue", "red herring", "romance beats", "HEA", "thriller", "ticking clock", "horror", "dread", "MG", "YA", "middle…

Pack40813kCoding
59
danjdewhurst

interactive-fiction

This skill should be used when the user asks to "write a branching story", "interactive fiction", "choose your own adventure", "plan the branches", "choice graph", "add a choice"…

Pack40813kWriting
59
danjdewhurst

line-editing

This skill should be used when the user asks to "line edit", "edit my prose", "polish this chapter", "tighten the prose", "improve the sentences", "copyedit", "proofread", "proof pass"…

Pack40813kWriting
59
danjdewhurst

plot-structure

This skill should be used when the user asks to "create a plot arc", "story structure", "add a plot point", "story timeline", "track foreshadowing", "pacing", "sagging middle", "act…

Pack40813kCoding
59
danjdewhurst

premise-workshop

This skill should be used when the user asks to "brainstorm a story idea", "I have an idea for a story", "what if", "develop a premise", "is this idea strong enough", "workshop my logline"…

Pack40813kWriting
59
danjdewhurst

publishing

This skill should be used when the user asks to "self-publish", "publish my book", "ISBN", "copyright page", "book metadata", "BISAC", "keywords", "KDP", "IngramSpark", "Draft2Digital", "go…

Pack40813kWriting
59
danjdewhurst

reader-panel

This skill should be used when the user asks for a "simulated beta read", "reader panel", "persona read", "first read before my beta readers", "how would a genre reader react", "would a…

Pack40813kProduct management
59
danjdewhurst

research

This skill should be used when the user asks to "research", "fact-check", "check the history", "is this accurate", "research notes", "sources", "historical accuracy", "technical accuracy"…

Pack40813kResearch
59
danjdewhurst

revision-continuity

This skill should be used when the user asks to "revise a chapter", "continuity check", "find inconsistencies", "audit character state", "check timeline consistency", "developmental edit"…

Pack40813kCoding
59
danjdewhurst

scene-craft

This skill should be used when the user asks to "plan a scene", "scene structure", "sequel scene", "dialogue subtext", "deep POV", "psychic distance", "try fail", "scene cards"…

Pack40813kCoding
59
danjdewhurst

series-continuity

This skill should be used when the user asks to "write a sequel", "write a prequel", "start book two", "continue the series", "companion novel", "spin-off", "link books in a series", "carry…

Pack40813kWriting
59
danjdewhurst

story-init

This skill should be used when the user asks to "start a new story", "initialize a story project", "create a story", "new book", "set up a story", or wants to begin a new fiction writing…

Pack40813kWriting
59
danjdewhurst

submission

This skill should be used when the user asks to "write a query letter", "query", "querying", "pitch", "blurb", "back cover copy", "jacket copy", "comp titles", "comparable titles"…

Pack40813kWriting
59
danjdewhurst

theme-craft

This skill should be used when the user asks about "theme", "controlling idea", "thematic argument", "moral argument", "thematic arc", "flat arc", "negative arc", "the lie", "antagonist…

Pack40813kTesting
59
danjdewhurst

verse-craft

This skill should be used when the user asks to "write a poem", "write a limerick", "write a sonnet", "haiku", "villanelle", "ballad", "song lyrics", "a song for my character", "a rhyme"…

Pack40813kWriting
59
danjdewhurst

voice-style

This skill should be used when the user asks to "create a style sheet", "style guide", "house style", "keep the voice consistent", "voice drift", "British or American spelling", "character…

Pack40813kCoding
59
danjdewhurst

worldbuilding

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…

Pack40813kCoding

From the README

How to use story-skills

Story Skills

Plan, track, and draft fiction in markdown,
with a continuity checker that catches mistakes before readers do.

npm version npm downloads a month CI status Node version MIT license OpenSSF Scorecard GitHub stars

Quick start  ·  Continuity engine  ·  Skills  ·  CLI  ·  Examples  ·  Docs  ·  Contributing

Prefer an app? Plothold is a web app built on Story Skills by the same maintainer, with a writing partner and the same continuity engine. It is paid, with a free trial, and stores your book on its servers, as its privacy policy explains.

story continuity flags a character who died in chapter 2 but appears in chapter 4, a payoff that lands before its setup, and a question resolved before it is asked

Story Skills gives agents a shared project format for fiction: the story bible, characters, worldbuilding, plot arcs, scenes, continuity state, promises and payoffs, and chapter drafts. Everything is plain markdown with YAML frontmatter, packaged as Agent Skills and as Codex and Claude Code plugins.

The companion story CLI treats the story bible as a checkable contract. Its continuity engine finds dead characters who reappear, payoffs that land before their setup, and stale story state, before a reader does. Read why it works this way.

Plain markdown
Every character, place, scene, and chapter is a markdown file with YAML frontmatter. Diff it, branch it, and open it in any editor.

24 skills, premise to print
From testing a spark of an idea to the query letter and the print interior, in Claude Code, Codex, or any agent that reads SKILL.md.

A continuity compiler
Deaths, promises, open questions, and object and knowledge state live in frontmatter, so contradictions show up like type errors.

Any language
Write in any language and script. Builds set right-to-left scripts and vertical Chinese, Japanese, and Korean text.

Builds for every reader
EPUB, DOCX, a Shunn manuscript, a print interior, an HTML review copy, a screenplay, and Twine and ink, all from one project.

A book by pull request
GitHub Actions templates draft the next chapter on a schedule and fail a pull request that breaks continuity.

Quick start

Writing in claude.ai without a terminal? Writers: start here shows how to upload a skill as a zip. To skip setup entirely, Plothold is a paid, hosted app built on Story Skills.

Claude Code. Type these inside a Claude Code session, not a shell:

/plugin marketplace add danjdewhurst/story-skills
/plugin install story-skills@story-skills

Codex

codex plugin marketplace add danjdewhurst/story-skills
codex plugin add story-skills@story-skills

Any other agent that supports SKILL.md can use the Agent Skills CLI:

npx skills add danjdewhurst/story-skills   # or: bunx skills add danjdewhurst/story-skills

Then ask your agent to "Start a new story".

The continuity engine

Language models are weak at long-range consistency, and prompting does not fix that. Story Skills makes it deterministic. Character deaths, promises and payoffs, open questions, scene casts, and object and knowledge state live in frontmatter. story continuity reports contradictions the way a compiler reports type errors.

examples/the-unraveled-thread/ is a deliberately broken mystery. Every file is well formed, so it passes story validate and story links, but the story does not hold together:

$ story continuity examples/the-unraveled-thread
Continuity check failed: 4 errors, 3 warnings, 0 dismissed
error: chapters/chapter-04.md lists edran-vale, who died in chapter-02; move posthumous appearances to mentions
error: continuity/promises/the-broken-compass.md pays off in chapter-02 before it is planted in chapter-03
error: continuity/questions/who-burned-the-mill.md resolves in chapter-02 before it is introduced in chapter-03
error: continuity/state.md knowledge-state[0] references missing chapter chapter-05
warning: chapters/chapter-03.md POV character nessa-thorn is not listed in characters [pov-not-in-cast]
warning: continuity/promises/the-sealed-letter.md was planted in chapter-01, 3 chapters ago, and has no payoff yet [promise-unpaid]
warning: continuity/state.md object-state[0] status active conflicts with worldbuilding/artifacts/vales-compass.md status destroyed [state-status-conflict]

Each finding names its file and reproduces exactly, and CI asserts this output on every commit. Intentional flashbacks and posthumous appearances stay legal through the chapter mentions field. Findings listed in continuity/exemptions.md are reported as dismissed. story doctor and story next turn the same checks into repair actions.

Prefer an app?

Plothold with a sample mystery open: the writing partner on the left, and on the right each chapter's promises and open questions, with the story check all clear

Plothold is a web app for writing fiction, built on Story Skills, for writers who would rather not use a terminal or a coding agent. You chat with a writing partner on one side, and the book updates on the other: chapters, cast, world, open threads, and a story check powered by the same continuity engine. It runs in the browser on a laptop or a phone, imports drafts from Word, and exports EPUB, PDF, and Word.

Plothold is a paid product made by the Story Skills maintainer, and its subscriptions fund Story Skills development. It has a free trial. Your book is stored on Plothold's servers; its privacy policy says how it is handled. Story Skills itself stays free and MIT-licensed, and Plothold is a separate product built on top of it.

Skills

Most books move through the skills roughly in this order. research, scene-craft, voice-style, verse-craft, and editorial-review are used whenever they are needed rather than at one fixed point. story-maintenance runs underneath all of them, and series-continuity starts the next book. The Skills catalogue has the full details and how the skills hand work to each other.

The skills in five stages: set up, plan, draft, revise, and send it out. series-continuity loops back to start the next book, and story-maintenance runs the CLI checks under every stage.

The table lists the skills in the same order, with what each one does and a request that starts it.

Skill Try saying
premise-workshop
Tests a spark as a premise, then hands off to story init
"Is there a novel in this idea?"
story-init
Scaffolds the story bible, folders, and registries
"Start a new story"
character-management
Builds character profiles, relationships, and arcs
"Create a character"
worldbuilding
Builds locations, systems, factions, and invented terms
"Design a magic system"
plot-structure
Plans arcs with three-act, hero's journey, Save the Cat, and other structures
"Create a plot arc"
theme-craft
Finds the controlling idea, the moral argument, and the motifs
"What's my story really about?"
genre-craft
Checks genre conventions, such as mystery fair play, romance beats, and horror
"Plan a fair-play mystery"
research
Checks the real-world facts a story relies on, with sources and confidence
"Fact-check the sailing in chapter 4"
chapter-writing
Drafts chapters from an outline and the story context
"Write the next chapter"
discovery-drafting
Drafts from a story kernel, then reconciles the bible after each chapter
"I want to discovery-write"
scene-craft
Checks scene structure, dialogue, POV, and chapter openings
"Does this chapter breathe?"
voice-style
Keeps the style sheet: spellings, dialogue punctuation, and character voices
"Set up a style sheet for this book"
verse-craft
Writes and scans verse, with stresses and rhyme schemes shown
"Does this limerick scan?"
interactive-fiction
Plans branching books: choice graphs, endings, and Twine and ink builds
"Plan where the branches rejoin"
revision-continuity
Revises drafts and audits continuity and character state
"Continuity-check chapter 3"
line-editing
Edits lines with a reason for each change, and checks that character voices differ
"Line edit chapter 3. Everyone sounds the same."
reader-panel
Runs simulated persona reads before human readers see a chapter
"Give me a simulated beta read of chapters 1 to 5"
feedback-triage
Turns alpha and beta reader feedback into a revision plan
"Triage the beta feedback"
editorial-review
Handles sensitivity reads, permissions, the AI-use statement, and editor rounds
"I'm quoting a song lyric as my epigraph. What do I need?"
submission
Checks submission readiness and drafts the query letter, synopsis, and comp titles
"Help me query agents"
publishing
Self-publishing production: retailer metadata, ISBNs, EPUB and print interiors, and pricing
"Get my book ready for KDP and IngramSpark in 6x9"
adaptation
Carries the story into audiobook, screenplay, picture-book, comics, and translated editions
"Make a narration script so I can audition narrators"
series-continuity
Starts sequels and prequels, and checks shared canon across books
"Start a prequel to The Last Ember"
story-maintenance
Runs the deterministic CLI checks: validation, continuity, reports, and exports
"Validate my story project"

line-editing owns the prose pass. For general writing checks as well, add better-writing with npx skills add forjd/better-writing.

Companion CLI

The optional story CLI handles deterministic project maintenance, and the skills handle the creative work. The CLI needs Node 18 or newer and has no runtime dependencies:

npx story-skills --help
npm install -g story-skills   # then: story --help (Windows too)

Without Node, install the standalone binary with Homebrew on macOS or Linux. Releases after 0.17.0 also attach a binary for macOS, Linux, and Windows to the releases page:

brew install danjdewhurst/tap/story-skills   # then: story --help

Check a downloaded archive against the release's checksums file before you run it. Getting started covers every install route, the checksum steps, and running the CLI from a clone.

These are the commands writers use most:

Command Purpose
story init "The Last Ember" Scaffold a story project
story import draft.md --title "The Lost Coast" Split an existing manuscript into a project and list its recurring names
story add character "Sera Voss" Create a file for a character, place, scene, promise, clue, or other entity
story rename character sera-voss "Sera Vale" Rename an entity and update its references in frontmatter and links
story check [path] --strict Run validation, link checks, and continuity in one scan; --strict also fails on warnings
story list chapters --where status=draft List the entities whose frontmatter matches a filter
story wordcount [path] --write Count chapter words and update the chapter registry
story next [path] Recommend the next writing or maintenance action
story knowledge sera-voss --at chapter-03 Show what a character knew at a chapter
story context chapter-03 --budget 6000 Pack the drafting context for a chapter into a token budget
story prose [path] Lint prose for filter words, adverbs, and style-sheet spellings
story progress [path] --log Report words against targets and the deadline
story export [path] --out dist/manuscript.md Combine front matter, chapters, and back matter into one manuscript
story build [path] --format epub Build an EPUB with the cover, publishing metadata, and accessibility metadata
story build [path] --format html Build a review copy whose paragraphs carry anchors such as ch03-p12

Other build formats are markdown, docx, shunn, print (a paged HTML interior for Paged.js, WeasyPrint, or Prince, or a PDF with --pdf), narration, codex, metadata, fountain, twee, and ink. The CLI reference lists every command and option.

The CLI only maintains the project. Agents write story content to markdown files and never create project-local build or generator scripts.

Import an existing manuscript

Most writers start with a draft, not a blank page. story import builds a project from one:

story import draft.md --title "The Lost Coast" --genre mystery
story import brouillon.md --title "La Côte perdue" --language fr

It reads markdown, plain text, or a Word .docx. It splits the manuscript on chapter headings, or imports a folder of chapter files, and builds the full project with word counts and registries. Import, export, and builds covers the options, including --force.

How it works

Every story element is a markdown file with YAML frontmatter. The skills cross-reference those files to keep the project consistent.

  • story.md is the bible that every skill reads. Its schema-version: 2 field lets the CLI reject incompatible formats.
  • Entity files use kebab-case identifiers, such as sera-voss or chapter-01. The CLI takes the id from the name, and transliterates Cyrillic and Greek names. A name in a script with no transliteration, such as 李明, needs an id from story add --id. Names themselves can use any script.
  • _index.md files are the registries for each domain.
  • Relationships are bidirectional.
  • Scene records and continuity state keep character knowledge, object ownership, and setups and payoffs in files, so they carry over between sessions.
The project layout that story-init creates
my-story/
├── story.md                  # Story bible: title, genre, themes, POV, tense
├── style-sheet.md            # Voice, house spellings, and watch words
├── characters/
│   └── _index.md             # Character registry
├── worldbuilding/
│   ├── _index.md             # World overview
│   ├── locations/
│   ├── systems/
│   ├── factions/
│   └── artifacts/
├── plot/
│   ├── _index.md             # Arc overview
│   ├── arcs/
│   └── timeline.md
├── scenes/
│   └── _index.md             # Machine-readable scene registry
├── continuity/
│   ├── state.md              # Character, object, and knowledge state
│   ├── questions/
│   │   └── _index.md
│   ├── promises/
│   │   └── _index.md
│   └── clues/
│       └── _index.md
├── glossary/
│   ├── _index.md
│   └── terms/
└── chapters/
    └── _index.md             # Chapter registry

Some files appear only when needed: matter/ for front and back matter, research/ for research notes, progress.md for the session log, and continuity/exemptions.md for dismissed findings. The Project format reference and schemas/story.schema.json define the contract.

Examples

Complete books made with Story Skills:

Example projects in this repository:

the-last-ember
A fantasy with a magic system, a plot arc with foreshadowing, and a drafted chapter

the-fall-of-the-citadel
A prequel to The Last Ember, linked with series. Run story series examples/the-last-ember for the chronology

harbor-of-second-light
A near-future mystery with memory technology and populated continuity state

the-gull-rock-light
A short branching story, built to Twine and ink

bo-and-the-missing-moon
A 32-page picture book with spread briefs

the-left-luggage-office
A weekly serial with episode questions and cliffhangers

salt-and-lantern
An anthology of three stories by different writers

the-unraveled-thread
A deliberately broken project that shows the continuity findings

quatre-heures-dix-sept
A short story in French

kirimi-eki-no-wasuremono
A short story in Japanese, set in vertical columns

laysat-lil-bay
A short story in Arabic, built right to left

Writing in other languages covers what works in each language and script.

Write a book with pull requests

A story project with deterministic checks is one an agent can advance unattended. The templates/github/ workflows turn a story repository into a self-drafting book:

  • story-checks.yml runs story check and story report --actionable on every push to main and every pull request, so a chapter PR with a continuity contradiction fails its checks. Mark the story-checks job as a required status check to block the merge.
  • draft-next-chapter.yml runs Claude Code on a schedule. It drafts the next chapter within word, turn, and spend budgets, then opens a pull request for review. The agent cannot push.
  • review-copy.yml publishes an HTML review copy to GitHub Pages, and manuscript-note.yml gives readers an issue form for notes on exact paragraphs.

Copy the workflows into .github/workflows/, add an ANTHROPIC_API_KEY secret for the drafting workflow, and set Settings > Pages > Source to GitHub Actions for the review copy. GitHub Pages sites are public unless your plan supports private Pages. For a private manuscript, see keeping the manuscript private. Automation and CI covers the rest, including the note form's label.

Contributing

Contributions are welcome. Start with CONTRIBUTING.md and the Code of Conduct. User-visible changes are listed in the changelog. The development guide covers the repository layout, the CLI, tests, and releases.

bun install
bun run test
bun run check:metadata

The evals/ harness regression-tests the writing skills against seeded briefs and known traps. See evals/README.md.

Star history of danjdewhurst/story-skills

License

Story Skills is released under the MIT License.


Back to top

Questions

What is danjdewhurst/story-skills?

Agent Skills for end-to-end story writing in markdown, packaged as Codex and Claude Code plugins.

How do I install story-skills?

Run "npx skills add danjdewhurst/story-skills" and choose the skills you want. Many packs also document their own install path (for example a Claude Code plugin marketplace) in the README below.

How many skills are in story-skills?

24 SKILL.md skills. Alyn lists 24 of them with their own pages.