Plot Structure
Overview
Plan and manage story arcs, plot points, foreshadowing, and narrative timeline. Each arc is a markdown file in plot/arcs/ with a chronological timeline maintained in plot/timeline.md. The plot index tracks 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
- Read
story.mdfor genre, themes, andform(novel,novella,novelette,short-story,flash,serial,picture-book,chapter-book). Forshort-storyandflash, usereferences/short-story-form.mdinstead of a multi-act beat sheet - Consult
references/structure-models.mdfor available structures - Recommend a structure based on genre (default to three-act if unclear)
- Update
plot/_index.mdfrontmatterstructurefield - Populate the story structure section with the beat sheet
- When CLI access is available, run
story validate .
Creating an Arc
- Read
story.mdfor themes - Read
plot/_index.mdfor existing arcs - Read
characters/_index.mdto understand available characters - 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, e.g.[event, character]; seereferences/mice-quotient.md)
- Build the arc through conversation: setup, escalations, climax, resolution
- Write the file using
references/arc-template.md(or scaffold it withstory add arc "{Name}" --type main --character {id} --theme {theme}, then fill in the sections) - Save to
plot/arcs/{arc-name-kebab}.md - Update
plot/_index.mdarcs table - Update theme tracking in
plot/_index.md - If characters are referenced, verify they exist in
characters/ - When CLI access is available, run
story reindex .,story links ., andstory validate .
Managing Plot Points
Plot points live within arc files in the "Plot Points" table. When adding a plot point:
- Read the relevant arc file
- Add the plot point to the table with chapter reference (if known)
- Add the event to
plot/timeline.mdin chronological order - If the plot point involves foreshadowing, add it to the arc's foreshadowing table
- If the plot point creates a reader promise or mystery, create or update a record in
continuity/promises/orcontinuity/questions/ - When CLI access is available, run
story reindex .,story links ., andstory validate .
Timeline Management
The timeline at plot/timeline.md is a chronological master list of all story events across all arcs.
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) - Event: one concise line describing what happened
- Arc: the arc's display name as written in its file (e.g.
The Drowned Witness), or-when the event belongs to no arc - Chapter:
Ch {N}once the event is written (e.g.Ch 1), or-for backstory and unwritten events
- When: story-relative time for story events (e.g.
When reviewing the timeline:
- Run
story timeline .to see written scenes in story-time order from theirdate/timefields, with scenes told out of order marked, and compare it withplot/timeline.md - Run
story diagram timelinefor a Mermaid timeline of dated scenes and chapters, andstory diagram arcsfor which chapters advance each arc (add--out dist/<name>.mmdto save either; keep generated diagrams out of entity folders) - Check for chronological consistency
- Identify pacing issues (too many events clustered, long gaps)
- Flag arcs that haven't progressed
Pacing, Outcomes, and Hooks
Two optional fields make pacing checkable:
- Scene
outcome:yes,no,yes-but, orno-and— whether the POV character got what they wanted in the scene.yes-butandno-andare the complicating outcomes that drive a plot forward (see thescene-craftskill). - Chapter
hook: how the chapter ends —cliffhanger,question,revelation,reversal,decision,emotional, orresolution.
Plan both in the outline, then run story pacing . for a per-chapter dashboard of words, scene and sequel counts, scene outcomes, and hooks. It warns about three or more consecutive yes outcomes (no pressure), four or more scene units with no sequel (no breath), chapter length outliers (over twice or under half the median once three chapters have prose), three or more consecutive chapters ending on resolution, and drafted chapters with no hook. Treat the warnings as prompts to reread, not rules: a quiet resolution chapter after the climax is right.
Foreshadowing Tracking
Each arc tracks its own foreshadowing in the "Foreshadowing" table:
- Planted: What hint or setup is placed
- Payoff: What the payoff will be
- Chapter Planted / Chapter Payoff: Where each occurs
- Status:
planned,planted, orpaid-off
During chapter writing, flag any planted items that haven't been paid off as reminders.
For mystery clues, story clues . prints a clue-by-chapter fair-play matrix and story diagram clues the plant-to-reveal flow (see the genre-craft skill).
For durable cross-arc setup/payoff tracking, also maintain continuity/promises/{promise-kebab}.md with status, planted, payoff, arcs, and characters. For mystery or open-continuity tracking, maintain continuity/questions/{question-kebab}.md.
Scaffold chapters and scenes with story add chapter "{Title}" --number {N} --pov {id} --arc {arc-id} and story add scene "{Title}" --chapter chapter-{NN} --scene {M} --pov {id} --location {id}, then write the prose and outline content into the created files. Set outcome on scene records and hook on chapters as the outline settles them, then run story reindex ., story links ., story validate ., and story pacing ..
Cross-Referencing
- Arcs reference characters via frontmatter
charactersfield - Arcs reference themes via frontmatter
themesfield - Plot points reference chapters
- Timeline entries link arcs and chapters
- Theme tracking in
plot/_index.mdmaps themes to arcs and chapters - Promises and questions reference chapters, arcs, and characters where relevant
CLI Maintenance
Use the Story CLI when it is available. If story is not installed, use bun run story -- from the Story Skills repository checkout or the bundled fallback node ../story-maintenance/scripts/story.js with the same arguments, resolving the path relative to this skill folder. If no CLI is available, perform the registry, backlink, and word-count checks manually.
Reference Files
references/arc-template.md- Template for arc files with frontmatter and sectionsreferences/question-template.md- Template for continuity questions and mysteriesreferences/promise-template.md- Template for setup/payoff trackingreferences/structure-models.md- Story structure models (three-act, hero's journey, save the cat, kishotenketsu, five-act, Fichtean curve, Harmon's story circle) with beat sheetsreferences/mice-quotient.md- MICE threading: milieu/inquiry/character/event threads, start/end rules, and the optionalmice-threads:arc frontmatterreferences/short-story-form.md- Short fiction form: one dominant change, single effect, narrow scope, and theformfield (story init --form short-storyorflash)references/outlining-ladder.md- Premise → beat sheet → step outline → full outline, with exit criteria per rung (cross-links discovery-drafting)