<what-to-do>
用户已经(或将要)传入一个 Markdown 原始素材文件。把它视为输入堆:从整齐的分片列表,到一大片无结构散文,到转录稿,任何形式都可以。格式无关紧要。在做任何其他事情之前,先从头到尾读一遍。
然后运行一个塑形会话,产出一篇独立的文章文档。这是 exploit:探索已经完成,素材堆已经固定:确定一种结构,并从素材堆中开采内容来填充它。不要编辑原始素材文件:对本技能而言它是只读的。
如果用户没有说明文章保存到何处,请询问一次并记住路径。
</what-to-do>
<supporting-info>
循环
- 阅读素材堆。 完整读取输入文件。形成对其内容的整体感知。
- 确定前提。 与用户确认读者一开始已经知道什么:哪些概念从一开始就是 已落地 的。其他一切概念都必须先由某个区块落地,后面的区块才能依赖它。参见 [落地](#grounding)。
- 起草 2–3 个候选开头。 每个开头都应暗示文章的不同论点或角度。把它们全部展示出来。迫使用户选择一个,或组合成混合版本。选定的开头会决定文章其余部分必须做什么。
- 逐段生长。 开头确定后,问:“基于这个开头,读者接下来需要听到什么?” 从素材堆中提取材料来回答。下一个区块只能依赖已落地概念,并在落地时引入新概念。就下一个区块采取的形式进行论证:段落、列表、表格、提示框、引文、代码块。每个格式选择都应当是深思熟虑且可辩护的。
- 边进行边追加到文章文件。 不要批量处理。立即写入每个已达成一致的段落或区块,让用户看到文章逐渐成形。
- 循环步骤 4,直到文章完成。 由用户决定何时完成。
落地
每个 概念 都必须 落地,区块才能依赖它:读者要么一开始就知道它,要么在更早的区块中遇到过它。伸手使用未落地概念的区块会失去读者。单位是概念,而不是它的词语:即使没有明显术语,区块也可能依赖读者缺乏的想法。如果一个概念有名称(一个 术语),落地它意味着同时把想法和术语安顿下来。
概念通过两种方式之一落地:
- 前提:在开头之前落地。读者自带它。在开始时固定。
- 引入:由某个区块建立它,此后在文章剩余部分中它都已落地。
维护一份已落地内容的持续清单。当你问“读者接下来需要听到什么?”时,下一步所需但未落地的概念本身就是答案:先落地它(在这里或更早的区块中),否则你无法完成这一步。这是 [从素材堆中开采](#pulling-from-the-pile) 的缺口命名,只是高一层:那里是素材堆缺少材料;这里是文章缺少基础。
关键杠杆在于:你把什么设为前提,又把什么在文章内部落地。要求太多前置内容会把读者挡在外面;在内部落地太多,开头会淹没在定义里。在确定前提时与用户商定这一点。
对话感
这是一个反转的拷问会话。在构思阶段,问题是“你实际注意到了什么?” 在这里,问题是“这篇文章实际在论证什么,读者需要按什么顺序听到它?” 要反驳。不要放过硬弱的过渡。如果某个段落没有赢得它的位置,就删掉。
继续使用的具体动作:
- “这一段为读者做了什么,而上一段没做到?”
- “如果我删掉这个,什么会坏掉?”
- “这是散文,还是应该用列表?为什么用散文?”
- “这个句子承担了两个任务:拆开它,或只保留一个。”
- “开头承诺了 X。我们已经漂移到 Y。要么重新接线,要么改变开头。”
从素材堆中开采
把原始素材视为采石场,而不是剧本。拉出一个片段,改写它以适应周围段落,并放到合适位置。一个片段可以被拆到多个段落中,与另一个片段合并,或转述。素材堆的职责是被开采;文章的职责是读起来像一个声音。
如果素材堆缺少文章需要的东西,明确说出缺口:“这里我们需要一个例子,但素材堆里没有。现在给我一个,否则我们就删掉这一节。”
实际应进行的格式争论
选择如何渲染一个区块时,要大声与用户权衡这些取舍,而不是沉默地决定:
- 散文 vs. 列表。 散文承载论证;列表承载并列项。如果各项并不真正并列,散文更好。如果确实并列,列表更适合快速浏览。
- 行内 vs. 提示框。 提示、警告和旁注放入提示框(
> [!TIP]、> [!NOTE]),但只有当它们行内放置会真正打断主论证时才可以。否则让它们留在行内。 - 表格 vs. 重复结构。 如果同一形状以相同字段重复 3+ 次,用表格。否则用带粗体引导语的散文。
- 引文 vs. 转述。 当原文措辞本身是要点时,引用。当只有想法重要时,转述。
- 代码块 vs. 行内代码。 多行、可运行或说明性内容 → 代码块。单个 token 或标识符 → 行内代码。
写作节奏
每当某个区块达成一致,就追加到文章文件。每次写入前都从磁盘重新读取文件:用户可能在轮次之间进行了编辑。绝不要盲目覆盖。如果用户希望重写某个段落,就地编辑那个特定段落;其余部分保持不变。
超出范围
- 开采不在素材堆中的新片段(按“从素材堆中开采”中的方式处理缺口)。
- 编辑原始素材文件。
- 发布、为特定平台格式化,或添加用户未要求的 frontmatter。
</supporting-info>