| name | writing-beats |
| description | Writing, exploit —— 把原始素材组装成一段由节拍组成的旅程,在某个节拍倚赖某个术语之前先把它铺垫好。 |
| disable-model-invocation | true |
用户已经(或将要)传入一个装满原始素材的 markdown 文件。这是 exploit(发掘):探索已经做完,那一堆素材已经固定 —— 承诺一条穿过它的路径,并挖掘这堆素材来填满每个节拍。
如果用户没有说文章保存到哪里,就问一次并记住那个路径。
然后运行一段逐节拍的旅程,采用选择你自己的冒险的方式:
- **确立前提。在任何节拍之前,先与用户敲定观众走进来时已经知道的东西 —— 那些从一开始就已铺垫好(grounded)**的概念。其他一切都必须由某个节拍铺垫之后,后续的节拍才能使用它。见 Grounding。
- 从原始素材中取材,写 2–3 个候选的起始节拍(starting beats)。每一个都是进入文章的一个不同入口。每一个都只能倚赖已铺垫好的概念;注明每一个各自铺垫了哪些新概念。在写入文章文件之前把这些节拍给用户看。用户挑一个。预览这一选择解锁了哪些节拍 —— 就像用户能沿着路径往前看一小段。
- 一旦用户挑了一个起始节拍,就只把那个节拍写入文章文件。一个节拍可以是一句话,也可以是若干段 —— 那个节拍自然是什么样就是什么样。到此为止。
- 从磁盘重新读取文章文件。然后提供 2–3 个候选的下一节拍(next beats) —— 从文章现在所处的位置出发,这段旅程可以转向的不同方向。每一个都必须能从当前已铺垫好的集合中触达;注明每一个各自铺垫了什么。
- 循环步骤 3–5,直到文章抵达一个自然的结尾。
Grounding
每个概念(concept)在某个节拍能够倚赖它之前,都必须先被铺垫(grounded):观众要么走进来就知道它,要么在更早的某个节拍里遇到过它。一个伸手去够未铺垫概念的节拍会失去读者 —— 那是这段旅程唯一做不了的动作。单位是概念,而非表述它的词:一个节拍可以倚赖一个读者所缺乏的想法,哪怕视线里根本没有术语。当一个概念有名字时 —— 一个术语(term) —— 铺垫它意味着把这个想法和这个术语一起落定。
一个概念以两种方式之一被铺垫:
- Prerequisite(前提) —— 在第一个节拍之前就已铺垫。观众自带它。在开头就固定下来。
- Introduced(引入) —— 某个节拍确立它,从那以后它对每个后续节拍都已铺垫好。
所以每个节拍做两件事:它**要求(requires)那些已经铺垫好的概念,并铺垫(grounds)**新的概念。保留一份到目前为止已铺垫内容的动态清单,每当一个节拍落定时就更新它。
这正是塑造"选择你自己的冒险"的东西。一个候选节拍只有在它所要求的一切都已铺垫好时才可触达;挑一个铺垫了概念 X 的节拍,会解锁每一个曾在等待 X 的节拍。当你提供下一节拍时,它们必须全都能从当前已铺垫好的集合中触达 —— 并说出每一个各自铺垫什么,好让用户看清它打开了哪些路径。
那个大杠杆是:什么设为前提、对比什么在文中铺垫。前面要求太多,就把没有它的读者拒之门外;文中铺垫太多,早期的节拍就淹没在定义里。在你确立前提时与用户敲定这一点,并且每当一个诱人的节拍原来要求某个还没有任何东西铺垫过的概念时都重新审视 —— 修法要么是在它之前加一个铺垫节拍,要么把该概念提升为一个前提。
什么是节拍
一个节拍是这段旅程中的一个动作。它做一件事 —— 设置一个场景、落定一个观点、抛出一个问题、插入一段旁白、扭转一个角度。然后它停下,把读者留在一个下一个节拍可以转向的地方。
一个节拍的大小取决于它需要什么:
- 如果那个动作全部就是这么多,就用单独一句话("然后接下来三周什么也没发生。")。
- 如果这个动作需要铺垫,就用一小段。
- 如果这个节拍是一个自成一体的小场景、论证或示例,就用多个段落。
如果一个"节拍"需要五个段落和三个小标题,它就不是一个节拍 —— 它是两个节拍粘在了一起。把它拆开。
从素材堆中取材
从原始素材堆中取材来填充每个节拍。你可以转述、拆分、重组或引用。这堆素材是一座采石场。
结束旅程
文章在旅程完成时结束 —— 而非在素材堆用空时。大多数素材堆都会有一些没能被用上的剩余片段。这没关系;这正是准备超出所需的原始素材的意义所在。
写作节奏
- 一次追加一个节拍。绝不提前写。
- 在每次写入之前从磁盘重新读取文章文件。绝对地保留用户的编辑。
- 如果用户对之前的某个节拍做了大幅编辑,就让它改变接下来的内容。
- 如果用户说"重写那个节拍"或"回去把第 3 个节拍换个方式试试",就照做 —— 原地编辑,其余不动。