关于 writing-shape
这项技能通过逐段协作,将 Markdown 原始材料整理成文章。它帮助作者确定读者前置知识、选择开篇并逐步建立概念,同时保持源文件不变。
主要功能
- 01通读原始材料
- 02确定读者的前置知识
- 03拟定并选择文章开篇
- 04逐块构建文章
- 05保持源文件不变
适用场景
- 01将笔记或转录整理成文章
- 02发展文章论点和开篇
- 03按读者理解顺序组织概念
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ leandrocfe/ skills --skill writing-shape安装后在 Claude Code 中输入/writing-shape确认已加载。
附带文件agents/openai.yaml
详细介绍
用户已提供(或即将提供)一份 Markdown 原始素材文件。将其视为输入素材——内容可能是整理好的片段列表、杂乱无章的大段文字,也可能是访谈记录。格式无关紧要。开始任何其他操作前,请从头到尾读完。
然后进行一轮梳理,产出一篇单独的文章文档。这是开发阶段:探索已经结束,素材已固定——确定文章结构,并从素材中提取内容来填充结构。不要编辑原始素材文件——此技能只能读取该文件。
如果用户没有说明文章的保存位置,只询问一次,并记住该路径。
工作循环
- 阅读素材。 完整阅读输入文件,了解其中的内容。
- 确定先决知识。 与用户确认读者在开始阅读前已经了解哪些概念——这些概念从一开始就已扎根。其他所有概念都必须先由某个段落扎根,后续段落才能依赖它。参见概念扎根。
- 起草 2–3 个候选开篇。 每个开篇都应体现不同的文章论点或切入角度。展示所有候选开篇,让用户必须选择其中一个,或组合出一个折中版本。选定的开篇将决定文章后续内容必须完成的任务。
- 逐段扩展。 开篇确定后,询问:“根据这个开篇,读者接下来需要听到什么?”从素材中提取内容来回答。后续段落只能依赖已经扎根的概念,并在成文时为新概念打下基础。就下一段的形式展开讨论——用段落、列表、表格、提示框、引文还是代码块。每种格式选择都应经过审慎考虑并有充分理由。
- 随写随追加到文章文件。 不要攒到最后再写。每当用户认可一段或一个内容块,就立即写入,让用户看到文章逐步成形。
- 重复第 4 步,直到文章完成。 由用户决定何时完成。
概念扎根
每个概念都必须先扎根,后续段落才能依赖它:读者要么在开始阅读前就已了解,要么在前面的段落中已经接触过。若段落涉及尚未扎根的概念,读者就会跟不上。基本单位是概念,而不是概念的名称——即使没有使用术语,段落也可能依赖读者尚不了解的思想。若概念有名称——即一个术语——那么扎根时就必须同时确立概念及其术语。
概念有两种扎根方式:
- 先决知识——在开篇前扎根,由读者带入,文章开始后不再改变。
- 引入——由某个段落确立,此后便在文章剩余部分中视为已扎根。
持续记录已经扎根的内容。当你询问“读者接下来需要听到什么?”时,如果下一步需要依赖尚未扎根的概念,那么扎根这个概念本身就是答案:先在当前段落或更早的段落中为它打下基础,否则就无法推进。这是从素材中提取内容中“指出缺口”在更高层次上的应用:在那里,缺的是素材;这里,缺的是文章的基础。
关键在于决定哪些概念作为先决知识,哪些概念在文章内部扎根。对读者的预备知识要求过高,会把读者拒之门外;在文章内部解释太多,又会让开篇被定义淹没。在确定先决知识时,要与用户商议。
对话方式
这是一场反向的深挖对话。在构思阶段,问题是“你实际观察到了什么?”而在这里,问题是“这篇文章究竟在论证什么?读者又需要按什么顺序听到这些内容?”要提出质疑,不要放过薄弱的过渡。如果一段话没有充分理由保留,就删掉它。
持续使用以下具体提问:
- “这段话为读者带来了什么上一段没有提供的内容?”
- “如果删掉这段,会有什么问题?”
- “这该写成散文,还是应该列成清单?为什么要写成散文?”
- “这句话承担了两项任务——把它拆开,或者只保留一项。”
- “开篇承诺了 X,但我们已经偏向 Y。要么重新串联内容,要么修改开篇。”
把原始素材当作采石场,而不是脚本。提取一个片段,重新加工,使其适合周围的段落,然后放进去。一个片段可以拆分到多个段落中,也可以与另一个片段合并,或改写。素材堆的作用是供人开采;文章的作用是读起来像出自同一种声音。
如果素材堆里缺少文章所需的内容,就明确指出缺口:“这里需要一个示例,但素材堆里没有——现在给我一个,或者我们删掉这一节。”
让格式论证真正发生
选择如何呈现一个区块时,要和用户当面权衡这些利弊,而不是默默决定:
- 正文还是列表。 正文承载论证;列表承载并列项。如果各项并非真正并列,正文更合适;如果是并列项,列表更便于快速浏览。
- 行内还是提示框。 提示、警告和补充说明应放入提示框(
> [!TIP]、> [!NOTE])——但仅当它们放在正文中确实会打断主要论述时。否则就留在正文中。 - 表格还是重复结构。 如果同样的结构以相同字段重复出现 3 次或更多次,就用表格;否则使用带粗体引导语的正文。
- 引用还是改述。 原文措辞本身是重点时就引用;只需要表达观点时就改述。
- 代码块还是行内代码。 多行、可运行或用于说明的内容 → 代码块。单个词项或标识符 → 行内代码。
写作节奏
每确认一个区块,就将它追加到文章文件中。每次写入前都要从磁盘重新读取文件——用户可能在两轮对话之间编辑过。不要盲目覆盖。如果用户要重写某个段落,就在原处编辑该段落;其余部分保持不变。
不在范围内
- 从素材堆中挖掘其中没有的新片段(遇到缺口时按“从素材堆中提取内容”中的方式处理)。
- 编辑原始素材文件。
- 发布、针对特定平台进行格式调整,或添加用户未要求的 frontmatter。