series-continuity
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSeries Continuity
系列连续性
Overview
概述
Plan and maintain sequels, prequels, and companion books as linked Story Skills projects. Each book stays a standalone project with its own , characters, world, chapters, and continuity files. Books point at each other through frontmatter, and checks the canon they share.
story.mdstory.mdstory series- - kebab-case series id shared by every book, such as
seriesthe-ember-cycle - - optional retail series name, such as
series-title, that the metadata sheet prints in place of the idThe Ember Cycle - - publication order (1, 2, 3...);
book-numberfor a prequel published later, a decimal such as0for a between-books novella1.5 - - paths to books set earlier in the story's chronology
follows - - paths to books set later in the story's chronology
precedes
Chronology and publication order are separate. A prequel written after the first book has and lists under .
book-number: 2../book-oneprecedesThis 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 skill's serial/episodic structure reference.
genre-craftLinks are relative paths from the book root, and every link needs a matching backlink: if book two lists under , book one must list under . Keep sibling books in the same parent folder so the paths stay short and portable.
../book-onefollows../book-twoprecedes将续集、前传和伴随作品作为相互关联的 Story Skills 项目进行规划和维护。每本书仍是独立项目,拥有各自的 、角色、世界观、章节和连续性文件。各本书通过 的 frontmatter 相互指向, 会检查它们共享的正典。
story.mdstory.mdstory series- - 由每本书共享的 kebab-case 系列 ID,例如
seriesthe-ember-cycle - - 可选的零售系列名称,例如
series-title;元数据表会显示该名称,而不是 IDThe Ember Cycle - - 出版顺序(1、2、3……);
book-number表示后来出版的前传,0这样的十进制数表示两本书之间的中篇小说1.5 - - 指向故事时间线上设定于更早时期的书籍路径
follows - - 指向故事时间线上设定于更晚时期的书籍路径
precedes
故事时间线与出版顺序相互独立。一部在第一本书之后创作的前传,其 ,并在 下列出 。
book-number: 2precedes../book-one此 skill 负责书籍层级:相互关联的书籍及其共享的正典。系列内各期(serial/episodic installment)的结构层——连载或分集形式如何组织——由 skill 的 serial/episodic 结构参考文档涵盖。
genre-craft链接使用相对于书籍根目录的路径,并且每个链接都需要对应的反向链接:如果第二本书在 下列出 ,第一本书就必须在 下列出 。应将同系列书籍放在同一父文件夹中,以保持路径简短且便于迁移。
follows../book-oneprecedes../book-twoWhen to Use
使用场景
- Starting a sequel, prequel, interquel, or companion book to an existing project
- Carrying characters, locations, systems, factions, artifacts, or glossary terms into another book
- Revising a book that other books in the series depend on
- Keeping a series bible, or planning and pitching a series of several books (see )
references/series-bible.md - NOT for a single standalone book (use ), for within-book continuity (use
story-init), or for the query letter, pitch, or synopsis of a single book (userevision-continuity). A series pitch stays here: the series overview and the series line in book one's query (seesubmission)references/series-bible.md
- 为现有项目开始创作续集、前传、中间篇或伴随作品
- 将角色、地点、体系、派系、物品或术语表条目延续到另一本书
- 修订系列中其他书籍所依赖的一本书
- 维护系列圣经,或规划、推介由数本书组成的系列(参见 )
references/series-bible.md - 不适用于单本独立作品(使用 )、单本书内部的连续性维护(使用
story-init),也不适用于单本书的 query letter、推介或梗概(使用revision-continuity)。系列推介仍属于此 skill:包括系列概览,以及第一本书 query 中的系列条目(参见submission)references/series-bible.md
Starting a Linked Book
开始创建关联书籍
- Read the existing book first: ,
story.md,characters/_index.md,worldbuilding/_index.md,plot/timeline.md, open files incontinuity/state.mdandcontinuity/questions/, and the final chapters.continuity/promises/ - Ask the user for:
- Title and synopsis
- Relationship: sequel (set after), prequel (set before), or companion (set alongside, with no chronology link)
- How much time passes between the books
- Which characters and places return
- Create the project with the CLI, run from the folder that contains the existing book:
shell
undefined- 首先阅读现有书籍:、
story.md、characters/_index.md、worldbuilding/_index.md、plot/timeline.md、continuity/state.md和continuity/questions/中仍开放的文件,以及最后几章。continuity/promises/ - 向用户询问:
- 标题和梗概
- 关系类型:续集(发生在之后)、前传(发生在之前)或伴随作品(同时发生,不建立时间线关联)
- 两本书之间相隔多长时间
- 哪些角色和地点会再次出现
- 使用 CLI 创建项目,并从包含现有书籍的文件夹中运行:
shell
undefinedSequel: set after book one
续集:发生在第一本书之后
story init '{Title}' --follows '{existing-book-dir}' --synopsis '{synopsis}'
story init '{Title}' --follows '{existing-book-dir}' --synopsis '{synopsis}'
Prequel: set before book one
前传:发生在第一本书之前
story init '{Title}' --precedes '{existing-book-dir}' --synopsis '{synopsis}'
story init '{Title}' --precedes '{existing-book-dir}' --synopsis '{synopsis}'
Companion: set alongside book one, with no chronology link
伴随作品:与第一本书同时发生,不建立时间线关联
story init '{Title}' --series '{series-id}' --synopsis '{synopsis}'
The title and synopsis are the user's own words, and a folder name can hold spaces, so wrap each value in single quotes. Never paste a value into double quotes, where `$(...)`, backticks, and `"` still take effect. A single quote inside a value depends on the shell: write it as `'\''` in a POSIX shell (bash, zsh, sh, Git Bash) and as `''` in PowerShell. Never run the command in cmd.exe, which has no single quotes and runs `&` inside a value; use PowerShell or a POSIX shell.
Run `init` from the folder that contains the existing book, never from inside it: `init` refuses a new book inside another project, and a linked book outside the new book's parent folder. It also refuses a `--series` that differs from the linked book's, and a `--book-number` already used in the series. `init` checks that the linked path is a story project, writes the relative link, adds the backlink (and the new book's `series`, when the existing book has none) to the existing book's `story.md`, and inherits `series`, `genre`, `sub-genre`, `pov`, and `tense`, plus `series-title`, `author` or `authors`, and `language` when the linked book sets them. When any book in the linked series has a `book-number`, it sets `book-number` to one more than the highest whole number used anywhere in the series, so publication numbers never collide. A normal `story init` book has none, so a series with no numbered books leaves the new book unnumbered. Pass `--book-number` (or write the field on both `story.md` files) in that case. Pass `--series`, `--genre`, `--pov`, or `--tense` to override the inherited values.
If the existing book has no `series` yet, pass `--series {series-id}`: `init` also writes that `series` into the existing book's `story.md`. Add matching `book-number` values to both `story.md` files yourself.
A companion has no `follows` or `precedes` link. So `init` inherits nothing from book one, and it writes nothing to book one's `story.md`. Pass `--genre`, `--pov`, and `--tense` to match book one. Use the same `--series` id as book one. Set `series` in book one by hand if it has none. Set `book-number` by hand: pass `--book-number` to the companion's `init`, or write the field in each `story.md`. `story series` does not see an unlinked companion, so compare its canon by hand (see `references/series-bible.md`).
If the CLI is not available, add the fields to both `story.md` files by hand.
4. Add a `## Series Notes` section to the new `story.md` body. Record where the book sits in the chronology, the time gap, and the canon facts it must not contradict. `references/series-bible.md` covers what to put in it.story init '{Title}' --series '{series-id}' --synopsis '{synopsis}'
标题和梗概应使用用户自己的原话。文件夹名称可以包含空格,因此每个值都应使用单引号包裹。绝不要把值粘贴到双引号中,因为 `$(...)`、反引号和双引号仍会生效。值中的单引号如何处理取决于 shell:在 POSIX shell(bash、zsh、sh、Git Bash)中写作 `'\''`,在 PowerShell 中写作 `''`。绝不要在 cmd.exe 中运行该命令,因为它不支持单引号,而且会执行值中的 `&`;请使用 PowerShell 或 POSIX shell。
始终从包含现有书籍的文件夹运行 `init`,绝不要在其内部运行。`init` 会拒绝在另一个项目内创建新书,也会拒绝将关联书放在新书父文件夹之外。它还会拒绝使用与关联书不同的 `--series`,以及使用系列中已经存在的 `--book-number`。`init` 会检查关联路径是否为 story 项目,写入相对链接并添加反向链接;如果现有书没有 `series`,它还会把新书的 `series` 写入现有书的 `story.md`。它还会继承 `series`、`genre`、`sub-genre`、`pov` 和 `tense`,以及关联书已设置的 `series-title`、`author` 或 `authors` 和 `language`。当关联系列中的任何一本书具有 `book-number` 时,它会将 `book-number` 设为整个系列中已使用的最大整数加一,因此出版编号不会冲突。普通的 `story init` 书籍没有该字段,所以没有任何编号书籍的系列会让新书保持未编号。在这种情况下,请传入 `--book-number`,或在两个 `story.md` 文件中写入该字段。传入 `--series`、`--genre`、`--pov` 或 `--tense` 可以覆盖继承的值。
如果现有书尚无 `series`,请传入 `--series {series-id}`:`init` 也会把该 `series` 写入现有书的 `story.md`。请自行在两个 `story.md` 文件中添加相互匹配的 `book-number` 值。
伴随作品没有 `follows` 或 `precedes` 链接。因此,`init` 不会从第一本书继承任何内容,也不会向第一本书的 `story.md` 写入任何内容。请传入 `--genre`、`--pov` 和 `--tense`,使其与第一本书一致。使用与第一本书相同的 `--series` ID。如果第一本书没有 `series`,请手动设置。`book-number` 也需手动设置:将其传给伴随作品的 `init`,或写入每个 `story.md`。`story series` 无法识别未链接的伴随作品,因此需要手动比较两者的正典(参见 `references/series-bible.md`)。
如果 CLI 不可用,请手动向两个 `story.md` 文件添加相应字段。
4. 在新书的 `story.md` 正文中添加 `## Series Notes` 部分。记录本书在故事时间线中的位置、时间间隔,以及不得与其矛盾的正典事实。`references/series-bible.md` 介绍了应记录的内容。Carrying Canon Across Books
在书籍之间迁移正典
Only carry entities the new book actually uses. For each one, copy the file from the other book and then adjust it:
- Keep the filename id identical. matches entities across books by id. A renamed file is a new entity to the checker.
story serieswarns when the id is also defined in a linked book; rename it there too, or keep the old id.story rename - Keep identical. Put new titles or epithets in
name, such asaliasesin a prequel forGeneral Maren. A differentLord Marenproduces a warning, and so does a differentname.pronunciation - Set state for this book's starting point, not the source book's ending.
- Sequel: start from the earlier book's final , relationships, ownership, and knowledge.
status - Prequel: start from the earlier situation, and write the later book's facts as fixed endpoints in a section.
## Series Canon
- Sequel: start from the earlier book's final
- Remove book-local references. , the
died-inof eachfromentry, and every other chapter id point at chapters in the source book. Set the frontmatter to the state the character starts this book in, and drop the source book'sprogressions. For a character who died before this book begins, byprogressionsor by a status progression, keepdied-in, removestatus: deceased, and list them only indied-in:mentionswarns when one appears in a chapter or scene cast. If they come back in this book, add a status progression tostory continuityfrom that chapter;alivethen allows them on the page from there.story series - Prune or carry every link. Relationships, ,
locations, factionnotable-characters, and artifactmembers/ownermust point at entities that exist in this book, with backlinks. Either carry the linked entity too, or remove the reference.location - Do not copy chapters, scenes, arcs, questions, promises, or . Rebuild them for the new book:
continuity/state.md- Unresolved questions or promises the new book continues become new files in its folders.
continuity/ - Events from the other book become rows in
Backstory Events(sequel) orplot/timeline.mdnotes (prequel).Series Canon - starts at
continuity/state.mdwith the carried character and object state. Carried knowledge goes incurrent-chapter: 0withoutknowledge-state, because the character already knew it when the book began.learned-in - An artifact destroyed or lost in an earlier book keeps its entry with
object-state(orstatus: destroyed) and nolost: that marks it gone before this story, sosinceerrors on any scene whosestory continuityuse it while still allowingstate-changes.mentions
- Unresolved questions or promises the new book continues become new files in its
只迁移新书实际使用的实体。对于每个实体,先从另一本书复制文件,然后进行调整:
- 保持文件名中的 id 完全一致。 通过 id 匹配不同书籍中的实体。对检查器而言,重命名后的文件会被视为新实体。如果
story series警告该 id 也定义在关联书中,应同时在那里重命名,或保留旧 id。story rename - 保持 完全一致。 将新的头衔或称谓放入
name,例如在前传中用aliases表示General Maren。不同的Lord Maren会产生警告,不同的name也会产生警告。pronunciation - 根据本书的起点设置状态,而不是来源书的结局。
- 续集:从较早书籍最终的状态、关系、所有权和知识开始。
- 前传:从较早的情况开始,并在 部分将后续书籍的事实写为固定终点。
## Series Canon
- 移除仅与来源书有关的引用。 、每个
died-in条目的progressions以及其他所有章节 id 都指向来源书中的章节。将 frontmatter 设置为角色开始本书时的状态,并删除来源书的from。对于在本书开始前已通过progressions或状态进展死亡的角色,保留died-in,删除status: deceased,并且只在died-in中列出他们:如果mentions发现他们出现在某章或场景出场名单中,就会发出警告。如果他们在本书中回归,请添加一条从该章节起状态转为story continuity的状态进展记录;此后,alive会允许他们实际出场。story series - 修剪或迁移所有链接。 关系、、
locations、派系的notable-characters,以及物品的members/owner必须指向本书中存在的实体,并带有反向链接。应同时迁移关联实体,或删除相应引用。location - 不要复制章节、场景、情节弧、问题、承诺或 。应针对新书重新构建这些内容:
continuity/state.md- 新书继续推进的未解决问题或承诺,在其 文件夹中创建新文件。
continuity/ - 另一本书中的事件,在续集中成为 的 Backstory Events 条目,在前传中成为 Series Canon 注释。
plot/timeline.md - 从
continuity/state.md开始,并记录迁移后的角色和物品状态。迁移的知识放入current-chapter: 0,但不包含knowledge-state,因为角色在本书开始时已经知道这些内容。learned-in - 在较早书籍中已经毁坏或遗失的物品,应保留其 条目,设置
object-state或status: destroyed,并且不设置status: lost。这表示该物品在本故事开始前就已消失,因此当场景的since使用它时,state-changes会报错,但仍允许通过story continuity提及它。mentions
- 新书继续推进的未解决问题或承诺,在其
Fact Ids
Fact ID
Give series-relevant knowledge a stable id in , and use the same id in every book:
factcontinuity/state.mdyaml
knowledge-state:
- character: kael-voss
knows: The gallery tunnel reaches the Whisper Gate
fact: whisper-gate-route
learned-in: chapter-04- Fact ids are kebab-case, and each character lists a given fact only once per book. checks both rules.
story continuity - Add only in the book where the character discovers the fact on the page. In later books, carry the entry without
learned-in. Do not put that rule in an inline comment: a command that rewrites the entry drops the comment.learned-in - Reuse the exact id in every book. The checker matches the character id plus the fact id, never the text.
knows - Give ids to the reveals, secrets, and discoveries a later or earlier book depends on. Everyday knowledge does not need one.
After carrying entities, run in the new book:
shell
story reindex .
story wordcount . --write
story check .
story series .在 中为与系列相关的知识分配稳定的 id,并在每本书中使用同一个 id:
continuity/state.mdfactyaml
knowledge-state:
- character: kael-voss
knows: The gallery tunnel reaches the Whisper Gate
fact: whisper-gate-route
learned-in: chapter-04- Fact id 使用 kebab-case 格式,并且每个角色在每本书中只能列出某个给定 fact 一次。会检查这两项规则。
story continuity - 仅在角色于正文中发现该 fact 的书籍中添加 。在后续书籍中,迁移该条目但不保留
learned-in。不要把这条规则写在行内注释中,因为重写条目的命令会删除注释。learned-in - 在所有书籍中复用完全相同的 id。检查器根据角色 id 与 fact id 进行匹配,而不会匹配 文本。
knows - 应为后续或前序书籍所依赖的真相、秘密和发现分配 id。日常知识不需要 id。
迁移实体后,在新书中运行:
shell
story reindex .
story wordcount . --write
story check .
story series .What story series
Checks
story seriesstory series
检查的内容
story seriesstory series [path]followsprecedesmentionsstory series --helpstory-maintenance../story-maintenance/references/continuity-checks.mdstory links .seriesThe checker cannot judge knowledge without fact ids, or ages, dates, travel time, or tone. Check those by reading both books' timelines and notes.
Series Canonstory series [path]followsprecedesmentionsstory series --helpstory-maintenance../story-maintenance/references/continuity-checks.mdstory links .series如果没有 fact id,检查器无法判断知识状态;它也无法判断年龄、日期、旅行时间或语气。请通过阅读两本书的时间线和 Series Canon 注释来检查这些内容。
Writing Against Canon
根据正典创作
- Sequels: before drafting, reread the earlier book's final chapters, , and every unresolved question or promise. Decide with the user which threads the new book picks up.
continuity/state.md - Threads left for the next book: a promise, question, or clue that pays off in a later book stays open in this one. warns about a planted promise or clue while drafting (the Chekhov gap:
story continuityorpromise-unpaid) and about an open question once twelve drafted chapters follow itsclue-unpaidchapter (introduced). It errors oncequestion-unansweredisstory.md(complete,is still planted). Record each deliberate one in this book'sis still open(the finding'scontinuity/exemptions.mdandcode, such asfileandcode: promise-unpaid, orfile: continuity/promises/the-sealed-letter.mdandcode: question-unanswered, plus afile: continuity/questions/who-kept-the-key.mdnaming the book that pays it off; oncereasonisstory.mdthe code iscompleteorcomplete-with-open-promiseand the filecomplete-with-open-question, so add astory.mdnaming the promise or question file) rather than marking itpattern,paid-off, orresolved, and add the matching file to the later book'sdroppedfolders.continuity/ - Prequels: the later book is canon. Every fixed endpoint must still be reachable by the end of the prequel. Do not mark a character 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
deceasedids that havefact, and keep those facts out of the prequel's knowledge.learned-in - Revising an earlier book after later books exist: run before and after the revision. Update the later books'
story series .and carried entity files when canon changes.Series Notes
- 续集: 起草前,重新阅读较早书籍的最后几章、,以及每个未解决的问题或承诺。与用户决定新书承接哪些情节线。
continuity/state.md - 留给下一本书的情节线: 如果一个承诺、问题或线索将在后续书籍中兑现,它必须在本书中保持开放。起草期间,会警告尚未兑现的伏笔或线索(契诃夫式空缺:
story continuity或promise-unpaid);当一个开放问题的clue-unpaid章节之后又写了十二章时,它也会发出警告(introduced)。当question-unanswered标记为story.md后,它会报错(complete、is still planted)。应将每个有意保留的项目记录在本书的is still open中,包括检查结果的continuity/exemptions.md和code,例如file和code: promise-unpaid,或file: continuity/promises/the-sealed-letter.md和code: question-unanswered,并添加一个指明兑现该内容的书籍的file: continuity/questions/who-kept-the-key.md;当reason为story.md时,complete应为code或complete-with-open-promise,complete-with-open-question应为file,并添加一个指明承诺或问题文件的story.md。不要将其标记为pattern、paid-off或resolved,并应将匹配的文件添加到后续书籍的dropped文件夹中。continuity/ - 前传: 后续书籍是正典。每个固定终点在序章结束前都必须仍然能够到达。不要将一个在后续书籍中仍然存活的角色标记为 。不要赋予角色后续书籍显示其首次学到的知识。起草前,应列出后续书籍中带有
deceased的learned-inid,并将这些事实排除在前传角色的知识之外。fact - 在后续书籍已经存在时修订较早书籍: 修订前后都要运行 。正典发生变化时,更新后续书籍的 Series Notes 和迁移的实体文件。
story series .
Maintenance
维护
After any change to series links or carried entities, run the checks in each affected book:
shell
story reindex .
story wordcount . --write
story check .
story series .If is not installed, use the bundled fallback with the same arguments. Use instead only when the user names a Story Skills repository checkout or you are working in one. Write the script as an absolute path (resolve the fallback relative to this skill folder) and run it from the folder you would run from, so and other relative paths keep their meaning. Use Node, not Bun or a package script: Bun would load that folder's (which can run code) and , and a package script runs from the checkout's root.
storynode ../story-maintenance/scripts/story.jsnode <checkout>/bin/story.jsstory.bunfig.toml.env更改系列链接或迁移实体后,应在每个受影响的书籍中运行以下检查:
shell
story reindex .
story wordcount . --write
story check .
story series .如果未安装 ,请使用内置的回退脚本 ,并传入相同参数。只有当用户指定了 Story Skills 仓库检出目录,或者你正在该目录中工作时,才应改用 。脚本路径应写为绝对路径(相对于此 skill 文件夹解析回退路径),并从原本运行 的文件夹中执行,这样 和其他相对路径才能保持原有含义。请使用 Node,不要使用 Bun 或 package script:Bun 会加载该文件夹中的 (其中可以运行代码)和 ,而 package script 会从检出目录的根目录运行。
storynode ../story-maintenance/scripts/story.jsnode <checkout>/bin/story.jsstory.bunfig.toml.envConventions
约定
- One project folder per book, with books side by side in a shared parent folder
- ids are kebab-case and identical in every book
series - Entity ids and values stay stable across books; variants go in
namealiases - Chronology goes in /
follows, publication order inprecedesbook-number - Every link needs a matching backlink in the other book
- 每本书使用一个项目文件夹,同系列书籍并排放在共享的父文件夹中
- id 使用 kebab-case 格式,并在所有书籍中保持一致
series - 实体 id 和 值在不同书籍间保持稳定;变体放入
namealiases - 故事时间线记录在 /
follows中,出版顺序记录在precedes中book-number - 每个链接都需要另一本书中的匹配反向链接
Reference Files
参考文件
- - Where each part of a series bible lives across the linked books, writing
references/series-bible.md, keeping canon current, planning a multi-book series, and pitching one (query line andSeries Notestemplate)submission/series-pitch.md
- - 系列圣经的各部分如何分布在关联书籍中,如何编写 Series Notes、保持正典同步、规划多书系列,以及如何进行推介(query 条目和
references/series-bible.md模板)submission/series-pitch.md
Shared Conventions
共享约定
Every story skill follows the shared conventions in , resolved relative to this skill folder. Read it before creating, renaming, or linking story files. If that file is missing because this skill was installed without , the essentials are: kebab-case ids and filenames, YAML frontmatter on every story-project file, registry tables that rebuilds (never edit them by hand), bidirectional links between entities, for who is on the page and for who is only referred to, plus for deaths, and no project-local generator or build scripts (run only the installed or bundled Story CLI).
../story-maintenance/references/conventions.mdstory-maintenance_index.mdstory reindexcharactersmentionsstatus: deceaseddied-in: chapter-{NN}每个 story skill 都遵循 中的共享约定,该路径相对于此 skill 文件夹解析。在创建、重命名或关联 story 文件前,应先阅读该文件。如果安装此 skill 时未同时安装 ,导致该文件不存在,则需要了解以下要点:id 和文件名使用 kebab-case 格式;每个 story 项目文件都包含 YAML frontmatter; 注册表表由 重建(绝不要手动编辑);实体之间使用双向链接; 用于实际出场的角色, 用于仅被提及的角色;死亡记录使用 ,并搭配 ;项目中不得包含本地生成器或构建脚本(只能运行已安装或内置的 Story CLI)。
../story-maintenance/references/conventions.mdstory-maintenance_index.mdstory reindexcharactersmentionsstatus: deceaseddied-in: chapter-{NN}