writing-shape 是一个协作式写作技能,目标是把一份原始素材塑造成一篇独立成文的文章。它把用户传入(或将要传入)的 Markdown 文件当作“素材堆”(input pile):内容可以是整齐的片段列表、大段无结构散文,也可以是转录稿,格式不限。技能会先从头到尾读完这份素材,再开始塑形。
用途与定位
这是一个“开采”阶段而非“探索”阶段:探索已经结束,素材堆已经固定,接下来要确定结构并从素材堆中取材填充。技能不会编辑原始素材文件,该文件对它而言是只读的。如果用户没有说明文章保存位置,技能会询问一次并记住路径。
主要能力
- 通读素材:完整读取输入文件,形成对内容的整体感知。
- 确立前置条件:与用户商定读者在进入文章时已经掌握哪些概念(前置概念),其余概念必须在后续段落中被铺垫。
- 起草 2–3 个候选开头:每个开头暗示不同的论点或角度,全部展示给用户,迫使用户选择或组合出一个混合版本;选定的开头决定全文后续要完成的任务。
- 逐段生长:开头确定后,追问“基于这个开头,读者接下来需要听到什么?”,从素材堆中取材料作答;下一段只能依赖已铺垫的概念,并在落地时铺垫新概念。
- 格式论证:讨论下一块内容应采用何种形式——段落、列表、表格、提示框、引用、代码块,每个格式选择都应有理由。
- 边写边追加:每达成一段或一块内容就立即写入文章文件,不批量积压,让用户看到文章逐步成形。
- 循环推进:重复上述步骤直到文章完成,由用户决定何时结束。
概念铺垫(Grounding)
每个概念在被某段依赖之前必须先被铺垫:读者要么一开始就掌握它(前置),要么在更早的段落中遇到过它(引入)。依赖未铺垫概念的段落会让读者迷失。单位是概念而非词语:即使没有术语,段落也可能依赖读者不具备的想法。若概念有名称(术语),铺垫意味着把想法和术语一起落地。技能会维护一份“已铺垫概念”的清单;当下一步需要某个未铺垫概念时,先铺垫它,否则无法推进。前置与文内铺垫之间的取舍需要与用户商定:前置要求太多会拒读者于门外,文内铺垫太多会让开头淹没在定义里。
对话式打磨
这是一个反向的“拷问”过程:构思阶段问的是“你究竟注意到了什么?”,这里问的是“这篇文章究竟在论证什么,读者需要按什么顺序听到它?”。技能会主动反驳,不让薄弱的过渡蒙混过关,若某段没有存在价值就删掉。常用追问包括:“这段为读者做了上一段没做的事是什么?”“如果删掉它,什么会坏掉?”“这是散文,还是应该是列表?为什么用散文?”“这句话在干两件事:拆开或只留一件。”“开头承诺了 X,我们漂到了 Y。要么重新串起来,要么改开头。”
从素材堆取材
把原始素材当作采石场而非剧本:取出片段,改写以适配周围段落,再放置。一个片段可以被拆到多段、与另一片段合并,或被转述。素材堆的任务是被开采,文章的任务是读起来像一个声音。如果素材堆缺少文章需要的东西,技能会明确指出缺口,例如“这里需要一个例子,素材堆里没有。现在给我一个,否则砍掉这一节。”
格式取舍
当格式选择会实质影响含义或审阅时,技能会与用户当面权衡:散文承载论证,列表承载并列项,若各项并非真正并列则散文更好,若并列则列表更易扫读;提示、警告和旁注放入提示框(> [!TIP]、> [!NOTE]),但仅当它们内联会真正打断主论证时;同一形状重复 3 次以上且字段相同时用表格,否则用带粗体引导的散文;原文措辞本身是重点时用引用,只有想法重要时用转述;多行、可运行或示例性内容用代码块,单个标记或标识符用行内代码。
写作节奏
每达成一块内容就追加到文章文件。每次写入前从磁盘重新读取文件,因为用户可能在轮次之间做过编辑,绝不盲目覆盖。若用户想重写某段,就原地编辑该段,其余保持不动。
适用场景
适合已有素材(笔记、片段、转录稿、无结构草稿)并希望将其组织成一篇连贯文章的场景,尤其适合需要与作者反复讨论结构、顺序和格式的协作写作。
限制与范围外事项
不负责从素材堆之外挖掘新片段(缺口按上述方式处理);不编辑原始素材文件;不负责发布、针对特定平台格式化,或添加用户未要求的前言(frontmatter)。