discovery-drafting

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Discovery Drafting

探索式起草(Discovery Drafting)

Overview

概述

Draft by discovery ("pantsing"): start from a one-paragraph story kernel rather than a beat sheet, write forward, then reconcile each chapter back into the story bible through a structured loop (extract entities → reverse outline → diff against the bible → reconcile). This is the complement to chapter-writing's outline-first workflow. The bible is maintained after the prose, not before — which the repo's import-style entity extraction and continuity checks already support.
通过探索式写作(“pantsing”)起草:从一段话的故事内核(story kernel)出发,而不是从节拍表(beat sheet)出发;向前写作,然后通过结构化循环将每一章回溯校准到故事设定文档(story bible,以下简称 bible)中(提取实体 → 反向大纲 → 与 bible 进行差异比对 → 校准)。这是 chapter-writing 先大纲工作流的补充。bible 在正文完成后维护,而不是开始前——仓库现有的导入式实体提取和连续性检查已经支持这种流程。

Prerequisites

前置条件

A story project must already exist (created via the story-init skill), with at least a
story.md
and one character. No plot structure is required to start — arcs get built during reconciliation.
必须已经存在一个故事项目(通过 story-init skill 创建),其中至少包含
story.md
和一个角色。开始写作不需要情节结构——故事弧线会在校准过程中逐步建立。

When to Use

使用场景

  • The user wants to draft without outlining first, or identifies as a discovery writer
  • Starting a project from a situation/character rather than a plot
  • NOT for mysteries or other clue-dependent genres where setup must precede payoff (use chapter-writing; see
    genre-craft
    )
  • NOT for revising existing chapters, including a reverse outline of an existing linear draft or cutting a subplot as a revision pass (use
    revision-continuity
    ). The reverse outline inside the reconcile loop, and cutting dead ends in a batch review, stay here
  • The user can switch modes per project or per chapter; record the mode so audits know which discipline applies
  • 用户希望不先列大纲就起草,或自认是探索式作者
  • 从情境或角色而非情节开始一个项目
  • 不适用于悬疑或其他依赖线索的体裁,这类体裁必须先铺垫、后揭示(使用 chapter-writing;参见
    genre-craft
    )
  • 不适用于修订现有章节,包括为现有线性草稿制作反向大纲,或将裁剪支线作为一次修订处理(使用 revision-continuity)。校准循环内部使用的反向大纲,以及批量审查时裁剪废弃支线,仍属于此 skill
  • 用户可以按项目或按章节切换模式;应记录模式,让审查工具知道应采用哪种写作规范

Workflow

工作流

  1. Write the story kernel. Consult
    references/story-kernel.md
    and draft the one-paragraph kernel with the user (character in a situation, a want, an obstacle, a tone signal). Store it in
    story.md
    under
    ## Story Kernel
    and set
    draft-mode: discovered
    in frontmatter.
  2. Draft forward. Create the chapter with
    story add chapter 'Title' --number N --mode discovered
    so
    story next
    flags it until it is reconciled (in a
    draft-mode: discovered
    project a drafted chapter with no
    mode
    is flagged too). Write the chapter from the kernel using the session shape in
    references/drafting-cadence.md
    (re-read → write → close with a next-session note). Write forward only; park bible questions as
    [TODO: check bible]
    inline rather than stopping. Follow the prose craft in
    chapter-writing/references/writing-guidelines.md
    and the scene-grain tools in the
    scene-craft
    skill as usual, and write in the voice and house style recorded in
    style-sheet.md
    — discovery changes planning order, not prose standards. Write in the
    language
    set in
    story.md
    (a missing field means
    en
    ); the craft references' word-level advice is English, so in another language keep its aims and follow the style sheet's conventions.
  3. Run the reconcile loop. After each chapter, follow
    references/reconcile-loop.md
    exactly:
    • Extract new entity/promise candidates (import-style, user-approved), keeping names as the prose spells them. Ids stay ASCII kebab-case: Cyrillic and Greek names get one automatically (
      Пётр
      gives
      petr
      ), and a name in a script with no transliteration table (
      李明
      ) needs
      story add character '李明' --id li-ming
      , with the id agreed with the user
    • Reverse-outline the chapter into the chapter file and
      scenes/
      records
    • Diff against the bible (new / contradiction / enrichment / dangling)
    • Reconcile: update the bible or revise the chapter — never neither
    • Add post-hoc chapter notes above
      ## Chapter Text
      (below it they count and ship as prose); set chapter frontmatter
      mode: discovered
  4. Batch review every 3–5 chapters. Re-read post-hoc notes, sweep the promise/question ledgers for dangling setups, and cut dead ends per
    references/dead-ends.md
    (abandoned ledger entries keep a recorded reason; cut characters get
    status: cut
    , not deletion).
  5. Hold the cadence. Keep the agreed target (see
    references/drafting-cadence.md
    ) and log each session with
    story progress . --log
    ; at midpoint and draft completion, hand the batch to
    revision-continuity
    for developmental checks before continuing.
  6. Close the loop on mode. When the draft is complete, every
    mode: discovered
    chapter must have post-hoc notes and a completed diff —
    story next
    lists any without post-hoc notes under
    Reconcile discovered chapters
    ; finish those, then hand the manuscript to
    revision-continuity
    for revision passes.
  1. 撰写故事内核。 查阅
    references/story-kernel.md
    ,与用户共同起草一段话的故事内核(角色、所处情境、愿望、障碍、语气信号)。将其存储在
    story.md
    的
    ## Story Kernel
    下,并在 frontmatter 中设置
    draft-mode: discovered
    。
  2. 向前起草。 使用
    story add chapter 'Title' --number N --mode discovered
    创建章节,让
    story next
    在该章完成校准前将其标记出来(在
    draft-mode: discovered
    项目中,已起草但没有
    mode
    的章节也会被标记)。按照
    references/drafting-cadence.md
    中的会话流程,从故事内核开始撰写章节(重读 → 写作 → 以下次会话备注收尾)。只向前写;将 bible 中待确认的问题以内联
    [TODO: check bible]
    暂存,而不是停下来。按照
    chapter-writing/references/writing-guidelines.md
    中的正文写作规范和
    scene-craft
    skill 中的场景颗粒度工具进行写作,并采用
    style-sheet.md
    中记录的语气和既定风格——探索式写作只改变规划顺序,不改变正文标准。使用
    story.md
    中
    language
    指定的语言(缺少该字段意味着
    en
    );craft references 中的词级建议是英文,因此使用其他语言时,应保留其目标并遵循 style sheet 的惯例。
  3. 运行校准循环。 每章完成后,严格按照
    references/reconcile-loop.md
    执行:
    • 提取新的实体和叙事承诺候选项(采用导入方式并获得用户批准),名称保持正文中的拼写。Id 始终采用 ASCII kebab-case:西里尔字母和希腊字母名称会自动获得一个 id(
      Пётр
      →
      petr
      );对于没有转写表的文字(例如
      李明
      ),需要运行
      story add character '李明' --id li-ming
      ,其中 id 需与用户商定
    • 在章节文件和
      scenes/
      记录中写入本章的反向大纲
    • 与 bible 进行差异比对(新增 / 矛盾 / 补充 / 悬空)
    • 校准:更新 bible 或修改章节——绝不能两者都不做
    • 在
      ## Chapter Text
      上方添加事后章节备注(若放在其下方,会被计入并作为正文一同发布);将章节 frontmatter 设置为
      mode: discovered
  4. 每 3–5 章进行一次批量审查。 重读事后备注,扫描承诺和问题账本,找出悬空铺垫,并按照
    references/dead-ends.md
    裁剪废弃支线(废弃的账本条目应保留已记录的原因;被裁剪角色应设置为
    status: cut
    ,而不是删除)。
  5. 保持写作节奏。 维持商定的目标(参见
    references/drafting-cadence.md
    ),并使用
    story progress . --log
    记录每次会话;在中点和草稿完成时,将这一批次交给 revision-continuity 进行情节发展检查,然后继续。
  6. 完成模式闭环。 草稿完成后,每个
    mode: discovered
    章节都必须包含事后备注和已完成的差异比对——
    story next
    会在
    Reconcile discovered chapters
    下列出所有缺少事后备注的章节;完成这些章节后,将稿件交给 revision-continuity 进行修订。

Conventions

规范

  • story.md
    frontmatter
    draft-mode: discovered
    marks a discovery project; per-chapter
    mode: discovered
    /
    mode: outlined
    tracks mixed projects.
  • Chapters carry a
    ## Chapter Notes (post-hoc)
    section, above
    ## Chapter Text
    , recording what was discovered, what was cut, and open questions — the project's memory of why the bible looks the way it does.
  • Entity candidates extracted from prose are presented for user approval before bible files are created (same discipline as
    story import
    ).
  • Cut threads are logged, not erased: abandoned promises/questions keep
    status: abandoned
    with a reason; cut characters keep their file with
    status: cut
    .
  • Bidirectional links and kebab-case ids follow the shared story conventions exactly — discovery changes when the bible is written, not how.
  • story.md
    frontmatter 中的
    draft-mode: discovered
    用于标记探索式项目;每章的
    mode: discovered
    /
    mode: outlined
    用于跟踪混合模式项目。
  • 章节包含一个
    ## Chapter Notes (post-hoc)
    部分,位于
    ## Chapter Text
    上方,用于记录发现了什么、裁剪了什么以及有哪些未决问题——这是项目Remembering bible 当前形态原因的记忆。
  • 从正文中提取的实体候选项会在创建 bible 文件之前呈现给用户批准(与
    story import
    采用相同的审批规范)。
  • 被裁剪的线索只记录,不抹除:废弃的承诺或问题应保留
    status: abandoned
    并注明原因;被裁剪角色应保留文件并设置为
    status: cut
    。
  • 双向链接和 kebab-case id 必须完全遵循共享故事规范——探索式写作改变 bible 的写入时机,而不是改变规范本身。

CLI Maintenance

CLI 维护

Use the Story CLI when it is available. If
story
is not installed, use the bundled fallback
node ../story-maintenance/scripts/story.js
with the same arguments. Use
node <checkout>/bin/story.js
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
story
from, so
.
and other relative paths keep their meaning. Use Node, not Bun or a package script: Bun would load that folder's
bunfig.toml
(which can run code) and
.env
, and a package script runs from the checkout's root. If no CLI is available, perform the registry, backlink, and word-count checks manually.
After each reconcile loop:
shell
story reindex .
story wordcount . --write
story check .
如果 Story CLI 可用,就使用它。如果未安装
story
,使用捆绑的 fallback
node ../story-maintenance/scripts/story.js
并传入相同参数。只有当用户指定了 Story Skills repository checkout,或你正在该 checkout 中工作时,才使用
node <checkout>/bin/story.js
。应以绝对路径调用脚本(相对于此 skill 文件夹解析 fallback),并从原本会运行
story
的文件夹执行,这样
.
和其他相对路径的含义才能保持不变。使用 Node,不要使用 Bun 或 package script:Bun 会加载该文件夹的
bunfig.toml
(其中可以运行代码)和
.env
,而 package script 会从 checkout 的根目录运行。如果 CLI 不可用,则手动执行注册表、反向链接和字数统计检查。
每次校准循环后:
shell
story reindex .
story wordcount . --write
story check .

Reference Files

参考文件

  • references/story-kernel.md
    - The one-paragraph kernel: character in a situation, want, obstacle, tone signal
  • references/reconcile-loop.md
    - The core loop: extract entities/promises → reverse-outline → diff against the bible → reconcile;
    mode: discovered
    flag
  • references/dead-ends.md
    - Recognizing and cutting dead ends: cut/fold/prune, abandoned ledger entries, the darling log
  • references/drafting-cadence.md
    - Daily targets, batch reviews, session shape, recovering a broken cadence
  • references/story-kernel.md
    - 一段话的故事内核:角色、所处情境、愿望、障碍、语气信号
  • references/reconcile-loop.md
    - 核心循环:提取实体/承诺 → 反向大纲 → 与 bible 进行差异比对 → 校准;
    mode: discovered
    标记
  • references/dead-ends.md
    - 识别并裁剪废弃支线:裁剪/折叠/修剪、废弃的账本条目、darling log
  • references/drafting-cadence.md
    - 每日目标、批量审查、会话流程、恢复中断的写作节奏

Shared Conventions

共享规范

Every story skill follows the shared conventions in
../story-maintenance/references/conventions.md
, 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
story-maintenance
, the essentials are: kebab-case ids and filenames, YAML frontmatter on every story-project file,
_index.md
registry tables that
story reindex
rebuilds (never edit them by hand), bidirectional links between entities,
characters
for who is on the page and
mentions
for who is only referred to,
status: deceased
plus
died-in: chapter-{NN}
for deaths, and no project-local generator or build scripts (run only the installed or bundled Story CLI).
所有 story skill 都遵循
../story-maintenance/references/conventions.md
中定义的共享规范,该路径相对于此 skill 文件夹解析。在创建、重命名或链接故事文件之前应先阅读该文件。如果安装此 skill 时未包含 story-maintenance,导致该文件缺失,则需要遵守以下核心要求:id 和文件名采用 kebab-case;每个故事项目文件都包含 YAML frontmatter;
_index.md
注册表表格由
story reindex
重建(绝不手动编辑);实体之间使用双向链接;
characters
用于表示出场角色,
mentions
用于表示仅被提及的角色;角色死亡时使用
status: deceased
,并配合
died-in: chapter-{NN}
;项目内不得放置本地生成器或构建脚本,只能运行已安装或捆绑的 Story CLI。