{"slug":"series-continuity","title":"series-continuity","summary":"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 characters into the next book\", \"series continuity\", \"series bible\", or needs to keep cano","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-09-21T18:18:22.223473Z","repo":{"url":"https://github.com/danjdewhurst/story-skills","stars":253,"forks":39,"license":"MIT","updatedAt":"2026-09-29T19:59:29Z"},"bodyHtml":"<hr>\n<h2>name: series-continuity\ndescription: 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 characters into the next book\", \"series continuity\", \"series bible\", or needs to keep canon consistent across multiple Story Skills projects.</h2>\n<h1>Series Continuity</h1>\n<h2>Overview</h2>\n<p>Plan and maintain sequels, prequels, and companion books as linked Story Skills projects. Each book stays a standalone project with its own <code>story.md</code>, characters, world, chapters, and continuity files. Books point at each other through <code>story.md</code> frontmatter, and <code>story series</code> checks the canon they share.</p>\n<ul>\n<li><code>series</code> - kebab-case series id shared by every book, such as <code>the-ember-cycle</code></li>\n<li><code>book-number</code> - publication order (1, 2, 3...)</li>\n<li><code>follows</code> - paths to books set <strong>earlier</strong> in the story's chronology</li>\n<li><code>precedes</code> - paths to books set <strong>later</strong> in the story's chronology</li>\n</ul>\n<p>Chronology and publication order are separate. A prequel written after the first book has <code>book-number: 2</code> and <code>precedes: [../book-one]</code>.</p>\n<p>This skill owns the book-level layer: linked books and the canon they share. The within-serial installment layer — how serial or episodic installments are structured — is covered by the <code>genre-craft</code> skill's serial/episodic structure reference.</p>\n<p>Links are relative paths from the book root, and every link needs a matching backlink: if book two <code>follows: [../book-one]</code>, book one must list <code>precedes: [../book-two]</code>. Keep sibling books in the same parent folder so the paths stay short and portable.</p>\n<h2>When to Use</h2>\n<ul>\n<li>Starting a sequel, prequel, interquel, or companion book to an existing project</li>\n<li>Carrying characters, locations, systems, factions, artifacts, or glossary terms into another book</li>\n<li>Revising a book that other books in the series depend on</li>\n<li>NOT for a single standalone book (use <code>story-init</code>) or for within-book continuity (use <code>revision-continuity</code>)</li>\n</ul>\n<h2>Starting a Linked Book</h2>\n<ol>\n<li>Read the existing book first: <code>story.md</code>, <code>characters/_index.md</code>, <code>worldbuilding/_index.md</code>, <code>plot/timeline.md</code>, <code>continuity/state.md</code>, open files in <code>continuity/questions/</code> and <code>continuity/promises/</code>, and the final chapters.</li>\n<li>Ask the user for:\n<ul>\n<li>Title and synopsis</li>\n<li>Relationship: sequel (set after), prequel (set before), or companion (set alongside, with no chronology link)</li>\n<li>How much time passes between the books</li>\n<li>Which characters and places return</li>\n</ul>\n</li>\n<li>Create the project with the CLI, run from the folder that contains the existing book:</li>\n</ol>\n<pre><code># Sequel: set after book one\nstory init \"{Title}\" --follows {existing-book-dir} --synopsis \"{synopsis}\"\n\n# Prequel: set before book one\nstory init \"{Title}\" --precedes {existing-book-dir} --synopsis \"{synopsis}\"\n</code></pre>\n<p><code>init</code> checks that the linked path is a story project, writes the relative link, adds the backlink to the existing book's <code>story.md</code>, and inherits <code>series</code>, <code>genre</code>, <code>sub-genre</code>, <code>pov</code>, and <code>tense</code>. It sets <code>book-number</code> to one more than the highest linked number. Pass <code>--series</code>, <code>--book-number</code>, <code>--genre</code>, <code>--pov</code>, or <code>--tense</code> to override these.</p>\n<p>If the existing book has no <code>series</code> yet, pass <code>--series {series-id}</code> and add the same <code>series</code> (plus <code>book-number: 1</code>) to the existing <code>story.md</code>.</p>\n<p>If the CLI is not available, add the fields to both <code>story.md</code> files by hand.</p>\n<ol start=\"4\">\n<li>Add a <code>## Series Notes</code> section to the new <code>story.md</code> body. Record where the book sits in the chronology, the time gap, and the canon facts it must not contradict.</li>\n</ol>\n<h2>Carrying Canon Across Books</h2>\n<p>Only carry entities the new book actually uses. For each one, copy the file from the other book and then adjust it:</p>\n<ul>\n<li><strong>Keep the filename id identical.</strong> <code>story series</code> matches entities across books by id. A renamed file is a new entity to the checker.</li>\n<li><strong>Keep <code>name</code> identical.</strong> Put new titles or epithets in <code>aliases</code>, such as <code>General Maren</code> in a prequel for <code>Lord Maren</code>. A different <code>name</code> produces a warning.</li>\n<li><strong>Set state for this book's starting point, not the source book's ending.</strong>\n<ul>\n<li>Sequel: start from the earlier book's final <code>status</code>, relationships, ownership, and knowledge.</li>\n<li>Prequel: start from the earlier situation, and write the later book's facts as fixed endpoints in a <code>## Series Canon</code> section.</li>\n</ul>\n</li>\n<li><strong>Remove book-local references.</strong> <code>died-in</code> and every other chapter id points at chapters in the source book. For a character who died before this book begins, keep <code>status: deceased</code> and remove <code>died-in</code>.</li>\n<li><strong>Prune or carry every link.</strong> Relationships, <code>locations</code>, <code>notable-characters</code>, faction <code>members</code>, and artifact <code>owner</code>/<code>location</code> must point at entities that exist in this book, with backlinks. Either carry the linked entity too, or remove the reference.</li>\n<li><strong>Do not copy</strong> chapters, scenes, arcs, questions, promises, or <code>continuity/state.md</code>. Rebuild them for the new book:\n<ul>\n<li>Unresolved questions or promises the new book continues become new files in its <code>continuity/</code> folders.</li>\n<li>Events from the other book become <code>Backstory Events</code> rows in <code>plot/timeline.md</code> (sequel) or <code>Series Canon</code> notes (prequel).</li>\n<li><code>continuity/state.md</code> starts at <code>current-chapter: 0</code> with the carried character and object state. Carried knowledge goes in <code>knowledge-state</code> without <code>learned-in</code>, because the character already knew it when the book began.</li>\n</ul>\n</li>\n</ul>\n<h2>Fact Ids</h2>\n<p>Give series-relevant knowledge a stable <code>fact</code> id in <code>continuity/state.md</code>, and use the same id in every book:</p>\n<pre><code>knowledge-state:\n  - character: kael-voss\n    knows: The gallery tunnel reaches the Whisper Gate\n    fact: whisper-gate-route\n    learned-in: chapter-04   # only in the book where they learn it on the page\n</code></pre>\n<ul>\n<li>Fact ids are kebab-case, and each character lists a given fact only once per book. <code>story continuity</code> checks both rules.</li>\n<li>Add <code>learned-in</code> only in the book where the character discovers the fact. In later books, carry the entry without <code>learned-in</code>.</li>\n<li>Reuse the exact id in every book. The checker matches the character id plus the fact id, never the <code>knows</code> text.</li>\n<li>Give ids to the reveals, secrets, and discoveries a later or earlier book depends on. Everyday knowledge does not need one.</li>\n</ul>\n<p>After carrying entities, run in the new book:</p>\n<pre><code>story reindex .\nstory links .\nstory validate .\nstory series .\n</code></pre>\n<h2>What <code>story series</code> Checks</h2>\n<p><code>story series [path]</code> finds every book reachable through <code>follows</code> and <code>precedes</code>, then orders them by chronology. Books with no chronology constraint between them are ordered by <code>book-number</code>, then title. It lists shared canon and reports:</p>\n<ul>\n<li><strong>Errors</strong>\n<ul>\n<li>A linked path that is not a story project</li>\n<li>Books that declare different <code>series</code> ids</li>\n<li>A chronology cycle</li>\n<li>A character who is <code>deceased</code> in an earlier book but not <code>deceased</code> in a later one</li>\n<li>A later book whose chapter or scene lists that character as <code>pov</code> or under <code>characters</code>. Move flashbacks, memories, and ghosts to <code>mentions</code>.</li>\n<li>A later book where a character learns a <code>fact</code> (an entry with <code>learned-in</code>) that the same character already knows in an earlier book. In a prequel, the usual fix is to remove the knowledge from the prequel, or to change which book the discovery happens in.</li>\n</ul>\n</li>\n<li><strong>Warnings</strong>\n<ul>\n<li>A shared entity whose <code>name</code> (or glossary <code>term</code>) differs from the most recent earlier book</li>\n<li>An artifact that is <code>destroyed</code> in an earlier book but has a different status in a later one</li>\n</ul>\n</li>\n</ul>\n<p><code>story links .</code> also checks the book's own series links: each path exists, has a matching backlink, and uses the same <code>series</code> id.</p>\n<p>The checker cannot judge knowledge without fact ids, or ages, dates, travel time, or tone. Check those by reading both books' timelines and <code>Series Canon</code> notes.</p>\n<h2>Writing Against Canon</h2>\n<ul>\n<li><strong>Sequels:</strong> before drafting, reread the earlier book's final chapters, <code>continuity/state.md</code>, and every unresolved question or promise. Decide with the user which threads the new book picks up.</li>\n<li><strong>Prequels:</strong> the later book is canon. Every fixed endpoint must still be reachable by the end of the prequel. Do not mark a character <code>deceased</code> who is alive in a later book. Do not give a character knowledge that the later book shows them learning for the first time. Before drafting, list the later book's <code>fact</code> ids that have <code>learned-in</code>, and keep those facts out of the prequel's knowledge.</li>\n<li><strong>Revising an earlier book</strong> after later books exist: run <code>story series .</code> before and after the revision. Update the later books' <code>Series Notes</code> and carried entity files when canon changes.</li>\n</ul>\n<h2>Maintenance</h2>\n<p>After any change to series links or carried entities, run the checks in each affected book:</p>\n<pre><code>story validate .\nstory links .\nstory continuity .\nstory series .\n</code></pre>\n<p>If <code>story</code> is not installed, use <code>bun run story --</code> from the Story Skills repository checkout or the bundled fallback <code>node ../story-maintenance/scripts/story.js</code> with the same arguments, resolving the path relative to this skill folder.</p>\n<h2>Conventions</h2>\n<ul>\n<li>One project folder per book, with books side by side in a shared parent folder</li>\n<li><code>series</code> ids are kebab-case and identical in every book</li>\n<li>Entity ids and <code>name</code> values stay stable across books; variants go in <code>aliases</code></li>\n<li>Chronology goes in <code>follows</code>/<code>precedes</code>, publication order in <code>book-number</code></li>\n<li>Every link needs a matching backlink in the other book</li>\n</ul>\n","files":[{"path":"SKILL.md","sizeBytes":13038,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-09-29T20:58:44.458019Z","sha256":"7E39B8470A1ADDB7A0FDD63B75A618CC822A06DC60DE4E2DE1E5707726CF07C6","sizeBytes":4993},"review":null,"source":{"repositoryUrl":"https://github.com/danjdewhurst/story-skills","path":"skills/series-continuity","license":"MIT","commit":"a5a8034149e79c5a2c15037e71d1335dac5a7131","subtreeSha":"097D66F83A99091A0E452A132261AEF8B4221E8A6274BBB5A62A328149645C9C","lastSyncedAt":"2026-09-29T20:56:30.144144Z"},"reviewedAt":"2026-09-29T21:04:06.646247Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/danjdewhurst/story-skills/tree/main/skills/series-continuity"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install danjdewhurst-story-skills@llmmart"},{"target":"git","command":"git clone https://github.com/danjdewhurst/story-skills.git"}]}