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 project from scratch.
npx skills add https://github.com/danjdewhurst/story-skills --skill story-init
Initialize a new story project with a structured markdown folder layout. Creates the story bible, registries, scene tracking, continuity state, glossary, worldbuilding folders, plot structure, and chapter tracker - all as cross-referenced markdown files with YAML frontmatter.
story import <source> --title "{Title}" instead, then build out the bible from the entity candidates it printsIf the Story CLI is available, prefer using it to create the starter project, then inspect and refine the generated files as needed:
story init "{Title}" --genre "{genre}" --sub-genre "{sub-genre}" --setting-era "{era}" --pov "{pov-style}" --tense "{tense}" --synopsis "{synopsis}" --theme "{theme-1}" --theme "{theme-2}"
If story is not installed, use the bundled maintenance fallback when available, resolving the script path relative to the story-maintenance skill:
node ../story-maintenance/scripts/story.js init "{Title}"
If neither command is available, create the files manually using the steps below.
{story-title-kebab}/
├── story.md
├── characters/
│ └── _index.md
├── worldbuilding/
│ ├── _index.md
│ ├── locations/
│ ├── systems/
│ ├── factions/
│ └── artifacts/
├── plot/
│ ├── _index.md
│ ├── arcs/
│ └── timeline.md
├── scenes/
│ └── _index.md
├── continuity/
│ ├── state.md
│ ├── questions/
│ │ └── _index.md
│ └── promises/
│ └── _index.md
├── glossary/
│ ├── _index.md
│ └── terms/
└── chapters/
└── _index.md
story.md with the story bible:---
title: "{Title}"
schema-version: 2
genre: {genre}
sub-genre: {sub-genre}
setting-era: {era}
status: planning
themes:
- {theme-1}
- {theme-2}
pov: {pov-style}
tense: {tense}
---
Below the frontmatter, include sections:
_index.md with an empty registry:characters/_index.md:
---
type: character-registry
story: {story-title-kebab}
---
# Characters
## Registry
| Name | Role | Status | File |
|------|------|--------|------|
| *No characters yet* | | | |
## Relationship Map
*No relationships defined yet.*
## Family Trees
*No family trees defined yet.*
worldbuilding/_index.md:
---
type: world-registry
story: {story-title-kebab}
---
# Worldbuilding
## World Overview
*Describe the world at a high level here.*
## Locations
| Name | Type | Region | File |
|------|------|--------|------|
| *No locations yet* | | | |
## Systems
| Name | Type | File |
|------|------|------|
| *No systems yet* | | |
## Factions
| Name | Type | Status | File |
|------|------|--------|------|
| *No factions yet* | | | |
## Artifacts
| Name | Type | Status | File |
|------|------|--------|------|
| *No artifacts yet* | | | |
plot/_index.md:
---
type: plot-registry
story: {story-title-kebab}
structure: three-act
---
# Plot Structure
## Story Structure
**Model:** Three-Act Structure (adjust as needed)
## Arcs
| Name | Type | Status | File |
|------|------|--------|------|
| *No arcs yet* | | | |
## Theme Tracking
| Theme | Arcs | Chapters |
|-------|------|----------|
| *No themes tracked yet* | | |
plot/timeline.md:
---
type: timeline
story: {story-title-kebab}
---
# Story Timeline
| When | Event | Arc | Chapter |
|------|-------|-----|---------|
| *No events yet* | | | |
chapters/_index.md:
---
type: chapter-registry
story: {story-title-kebab}
---
# Chapters
## Registry
| # | Title | POV | Status | Word Count | File |
|---|-------|-----|--------|------------|------|
| *No chapters yet* | | | | | |
## Total Word Count: 0
Also create the v2 support files:
scenes/_index.md with frontmatter type: scene-registrycontinuity/state.md with frontmatter type: continuity-state, current-chapter: 0, and empty character-state, object-state, and knowledge-state listscontinuity/questions/_index.md with frontmatter type: question-registrycontinuity/promises/_index.md with frontmatter type: promise-registryglossary/_index.md with frontmatter type: glossary-registryIf manual initialization gets tedious, stop and ask the user to install or run the Story CLI rather than inventing a different project shape.
story next ." to show deterministic next actionsstory validate {story-title-kebab}
If using the bundled fallback, replace story with node ../story-maintenance/scripts/story.js, resolving the path relative to this skill folder.
These conventions apply across ALL story skills:
sera-voss.md, ashen-citadel.md)story.md frontmatter includes schema-version: 2_index.md files are authoritative registries for each domainstory.md is the top-level bible read by all skills for contextsera-voss)status: deceased and died-in: chapter-{NN} so story continuity can flag posthumous appearancesmentions vs characters - chapter and scene frontmatter lists characters present in-scene under characters; characters who are only referenced, remembered, recorded, or seen in flashback go under mentionschapter-{NN}-scene-{NN} and live in scenes/continuity/state.md, with open questions and promises tracked under continuity/questions/ and continuity/promises/.md files. Do not create project-local build scripts, generator scripts, or bulk writer scripts (for example build-*.js) to emit story files.story, bun run story --, or story-maintenance/scripts/story.js) for deterministic maintenance. Do not copy it into the user's story project, and remove any unavoidable scratch helper before finishing.Take danjdewhurst/story-init from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.