Skip to content
Content
Skill

/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 structure", "story arc", "plot outline", "snowflake method", or wants to plan and manage the

From plugin
story-skills
37524 skills

Claude Code

$ npx -y skills add danjdewhurst/story-skills --skill plot-structure --agent claude-code

SKILL.md

plot-structure.SKILL.md
name: plot-structure
description: 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 structure", "story arc", "plot outline", "snowflake method", or wants to plan and manage the narrative structure of a story. It owns book-level pacing; NOT for the craft of scene outcomes or chapter hooks, which this skill only plans in the outline (use scene-craft), or a pacing check as a revision pass (use revision-continuity).

Plot Structure

Overview

Plan and manage story arcs, plot points, setups and payoffs, and the narrative timeline. Each arc is a markdown file in `plot/arcs/`, and `plot/timeline.md` holds the planned events and backstory in story order. The plot index lists all arcs, their status, and theme coverage.

Prerequisites

A story project must already exist (created via the story-init skill). Verify by checking for `story.md` in the project root.

Choosing a Story Structure

1. Read `story.md` for genre, themes, and `form` (`novel`, `novella`, `novelette`, `short-story`, `flash`, `serial`, `picture-book`, `chapter-book`). For `short-story` and `flash`, use `references/short-story-form.md` instead of a multi-act beat sheet 2. Consult `references/structure-models.md` for available structures 3. Recommend a structure based on genre (default to three-act if unclear). If the user wants to design the whole book top-down before drafting, or asks for the Snowflake Method, follow `references/snowflake.md` on top of the chosen structure 4. Update `plot/_index.md` frontmatter `structure` field 5. Populate the story structure section with the beat sheet 6. When the outline settles which chapter carries a beat, record it as that chapter's `beat` (see Recording Beats on Chapters) 7. When CLI access is available, run `story reindex .`, `story wordcount . --write`, and `story check .`

Recording Beats on Chapters

A chapter's optional `beat` frontmatter field names the beat-sheet beat it delivers, so `story grid`, `story context`, and the codex can show the structure chapter by chapter.

1. Use the beat names of the model in `plot/_index.md`, as `references/structure-models.md` spells them (`Inciting Incident`, `Midpoint`, `All Is Lost`, `Ten (Twist)`), or the writer's own label when they adapt the model. The field is free text, and the CLI checks only that it is text, not that it names a known beat 2. Write it with the chapter: `story add chapter '{Title}' --number {N} --beat '{Beat}'`, or add `beat: {Beat}` to an existing chapter's frontmatter. Quote a value that looks like a number or contains `: ` or `#` (`beat: "Try/Fail #2"`), since an unquoted `#` starts a comment 3. Keep it a short label: `story validate` warns `beat-too-long` above 60 characters. What happens in the beat goes in the chapter's `## Outline` 4. Leave `beat` off the chapters between beats. A beat that runs over several chapters, such as Fun and Games, goes on the chapter where it starts 5. Run `story reindex .`, `story wordcount . --write`, and `story check .`, then `story grid .`. Once any chapter has a beat, the grid shows a `(beat)` row above its hook and outcome rows. Check each beat against its position in the model (a Midpoint near the middle chapter, All Is Lost near three quarters of the way through): beats that bunch up, or a long run of chapters with none, are where a middle sags

Creating an Arc

1. Read `story.md` for themes 2. Read `plot/_index.md` for existing arcs 3. Read `characters/_index.md` to understand available characters 4. Ask for:

  • Arc name
  • Type (main, subplot, character, thematic)
  • Which characters are involved
  • Which themes it serves
  • Which MICE threads the arc carries (optional `mice-threads:` frontmatter, written as a block list with one `- event` or `- character` item per line, or as a `[event, character]` flow list; see `references/mice-quotient.md`)

5. Build the arc through conversation: setup, escalations, climax, resolution 6. Scaffold the file with `story add arc '{Name}' --type main --character {id} --theme '{theme}'`, which writes `plot/arcs/{arc-name-kebab}.md` with the sections of `references/arc-template.md` and lists the arc in `plot/_index.md`, then fill in the sections. Without the CLI, write the file from `references/arc-template.md` to `plot/arcs/{arc-name-kebab}.md` 7. Leave the arcs table in `plot/_index.md` to `story reindex .`, which rebuilds it from the arc files; never add a row by hand 8. Update the hand-written `## Theme Tracking` section in `plot/_index.md` 9. If characters are referenced, verify they exist in `characters/` 10. When CLI access is available, run `story reindex .`, `story wordcount . --write`, and `story check .`

Managing Plot Points

Plot points live within arc files in the "Plot Points" table. When adding a plot point:

1. Read the relevant arc file 2. Add the plot point to the table with chapter reference (if known) 3. Add the event to `plot/timeline.md` in chronological order 4. If the plot point sets up a later payoff or raises a question, record it in the one place Setup and Payoff Records below gives it 5. When CLI access is available, run `story reindex .`, `story wordcount . --write`, and `story check .`

Timeline Management

`plot/timeline.md` is the hand-kept plan: a chronological list of the story's events across all arcs, including backstory and events not drafted yet. It does not own when a drafted scene happens: the scene's `date` and `time` do, and `story timeline .` orders the drafted scenes from them. Do not add a plan row for each drafted scene.

When adding events:

  • Insert in chronological order
  • Keep entries concise (one line per event)
  • Use the `| When | Event | Arc | Chapter |` table with these cell formats:
  • **When:** story-relative time for story events (e.g. `Day 1, morning`), or how long ago for backstory (e.g. `12 years ago`, `~300 years ago`)
Read more
@danjdewhurst
Ships withstory-skills

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

Stars on GitHub

Momentum

stars in total
375
Star history of danjdewhurst/story-skills on GitHub, a chart by star-history.com

Other skills on story-skills.

adaptation

adaptation

This skill should be used when the user asks to "make an audiobook", "narration script", "narrator", "ACX", "Findaway",…

chapter-writing

chapter-writing

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

More skills from other plugins.

prompt-lookup

prompt-lookup

Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use…

@gh-f@gh-fInstall Skill
ppt-master

ppt-master

AI-driven presentation workflow for generating editable PPTX decks and slides, reconstructing page visuals, creating reusable…

@hugohe3@hugohe3Install Skill
morph-ppt

morph-ppt

Use this skill when the user wants a .pptx with smooth cross-slide animation — PowerPoint Morph transitions, Keynote-style…

officecli13d33k
@iofficeai@iofficeaiInstall Skill

Questions about plot-structure.

Which coding agents can use plot-structure?
plot-structure installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.