news 2026/9/12 16:04:39

从素材堆到成稿:skills13 仓库 writing-shape 技能的逐段塑形写作方法论

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从素材堆到成稿:skills13 仓库 writing-shape 技能的逐段塑形写作方法论

从素材堆到成稿:skills13 仓库 writing-shape 技能的逐段塑形写作方法论

【免费下载链接】skillsSkills for Real Engineers. Straight from my .agents directory.项目地址: https://gitcode.com/GitHub_Trending/skills13/skills

本文解析 skills13/skills 仓库in-progress桶中writing-shape技能的核心思想:如何把一份"原始素材堆"(零散片段、非结构化的成段文字甚至逐字稿)加工成一篇结构自洽的文章,而且是一段一段地塑形、每一步都与人争论格式选择。读完你将掌握一套"explore(探索)已完成、进入 exploit(开采)阶段"的成稿流程:概念必须先落地(grounding)、开头候选必须给多个、每写一段都要回答"读者下一步需要听到什么"。这套方法适用于任何想用 Agent 辅助产出高质量长文写作的工作流,其姊妹技能 writing-fragments(采集素材)与 writing-beats(逐节推进)分别覆盖了它前后的写作阶段。

一、技能定位:explore 结束之后的 exploit

writing-shape在技能自身的description中把自己定义为一句话:"Writing, exploit: shape raw material into an article, paragraph by paragraph."(写作、开采:把原始素材塑形成一篇文章,一段一段来)。它的启动方式很特别:frontmatter 里带有disable-model-invocation: true,对应的 agents/openai.yaml 中还有policy.allow_implicit_invocation: false。按照仓库 AGENTS.md 与 SKILL-MECHANICS.md 的约定,这意味着它是一个**纯用户手动调用(user-invoked)**的技能:模型不能自动触发,只能由人类输入技能名来唤起,代价是不占用任何常驻 context 预算,收益是它只在需要时被加载。

writing-shape的输入约定很宽松:用户"已经传入(或将传入)一个 markdown 原始素材文件",无论内容是一份整齐的片段清单、一堵无结构的散文墙,还是一份对话逐字稿,格式不重要,技能要求在任何其他动作之前先把整个文件从头到尾读完。

关键的分工在文档开头就划清:这是exploit(开采/榨取)。"探索已经做完,素材堆已经固定:承诺一个结构,然后开采这个堆去填充它。"与之相对的是 writing-fragments 的定位:那是一个纯explore(探索)技能,负责在"还没决定结构"的阶段通过拷问式访谈榨出零散片段(fragments),并强调"承诺结构是另一个技能的工作"。也就是说,writing-fragments负责产出素材(raw material),writing-shape负责把素材变成文章,二者构成写作流水线的上下游。

[!NOTE] 本技能对素材文件是只读的:文档明确写道 "Do not edit the raw material file: it is read-only to this skill."(不要编辑原始素材文件,它对本技能是只读的)。如果用户没有指定文章保存路径,技能只问一次并记住该路径。

二、核心循环(The loop):六步逐段生长

技能的骨架是一个六步循环,强调不批量、逐块落地

  1. 读素材堆(Read the pile):完整读入输入文件,对里面有什么形成整体感知。
  2. 确立前置条件(Establish the prerequisites):与用户敲定"读者进门时已经知道什么",即一开始就grounded(已落地)的概念集合。其余一切概念都必须由某个 block(块)先落地,后续 block 才能依赖它。
  3. 起草 2~3 个候选开头(Draft 2–3 candidate openings):每个开头都应暗示文章的不同论点或切入角度,全部展示给用户,强制用户挑选或合成一个混合版。被选中的开头定义了整篇文章剩余部分必须完成的事。
  4. 逐段生长(Grow paragraph by paragraph):开头落地后,问"给定这个开头,读者接下来需要听到什么?"从素材堆中取料回答。下一个 block 只能依赖已落地的概念,并在落地时引入新的概念。同时争论下一个 block 采用什么形式:段落、列表、表格、callout、引用还是代码块,每一种格式选择都必须是刻意的、可辩护的。
  5. 边写边追加(Append to the article file as you go):不要批量。每个达成一致的段落或 block 立即写入,让用户能看到文章逐步成形。
  6. 循环第 4 步直到文章完成:由用户决定何时算完成。

这六步的闭环体现了"以用户为决策者"的设计:候选开头要用户选、每段形式要用户认可、收尾时机要用户定,Agent 只负责提问、取料、起草与争论。

三、Grounding:概念落地机制,文章的可读性地基

Grounding是本文档中最核心的理论概念,它的表述非常严谨:

每个概念在某个 block 依赖它之前必须被落地(grounded):读者要么进门时就知道它,要么在更早的 block 里见过它。一个 block 伸手去够一个未落地的概念,就会失去读者。

注意其单位是"概念"而不是"词":一个 block 可能依赖读者缺失的某个想法,即使通篇没有任何术语。当概念有名字(即术语)时,落地意味着把"想法"和"术语"一起交付。

概念只有两种落地方式:

  • Prerequisite(前置条件):在开头之前就已落地,读者自带,一开始就固定。
  • Introduced(引入):某个 block 建立它,从那时起它对文章剩余部分保持落地。

技能要求持续维护一份"已落地清单"。当问"读者下一步需要听到什么"时,如果下一个动作需要某个未落地的概念,那么这个未落地概念本身就是答案:要么先落地它(在这里或在更早的 block),否则这个动作做不了。文档把这种机制称为 "gap-naming(给缺口命名)",并指出它是 Pulling from the pile(从素材堆取料)的上一层抽象:在取料那一层,缺口是"素材堆缺材料";在这里,缺口是"文章缺一块地基"。

杠杆点在于:你决定把什么设为 prerequisite、把什么留在文章内部落地。前置要求太多会把读者挡在门外;内部落地太多会让开头淹没在定义里。这个权衡要与用户在确立前置条件时一并敲定。

四、对话感(Conversational feel):被倒置的 grilling 会话

writing-shape把自身定位为"一次被倒置的 grilling 会话"("This is a grilling session inverted")。仓库中 grilling 技能是一种"设计树 + 轮次 + 前沿(frontier)"的拷问式访谈:每轮问完整个前沿的所有问题、给出推荐答案、等用户回答后再重算前沿。writing-shape借用了这种"坚持追问、拒绝敷衍"的态度,但问题从"你实际注意到的是什么"(ideation 阶段)换成:

"这篇文章实际上在论证什么,读者需要按什么顺序听到它?"

其要求非常强硬:Push back(反驳)。拒绝让薄弱过渡蒙混过关。如果一个段落不配占位,就删掉它。文档给出了一套可持续使用的具体追问话术,这些句子本身就是可复用的写作检查清单:

  • "这个段落为读者做了上一段没做的事?"
  • "如果我砍掉它,什么会坏掉?"
  • "这是散文,还是应该做成列表?为什么用散文?"
  • "这个句子在干两件事:拆开它,或者只留一件。"
  • "开头承诺了 X,我们飘到 Y 了。要么重新穿回这条线,要么改开头。"

最后一条尤其重要:它把文章视作"承诺-兑现"结构,任何偏离开头论点的段落都必须被纠正或让开头被改写。

五、从素材堆取料(Pulling from the pile):采石场而非剧本

文档用一个清晰的隐喻框定素材与文章的关系:"把原始素材当作采石场(quarry),而不是剧本(script)"

  • 取一段素材,重写它以适应周边段落,再放进去;
  • 一个片段可以拆散到多个段落、与其他片段合并、或者被转述;
  • 素材堆的职责是被开采;文章的职责是读起来像一个声音(read as one voice)。

如果素材堆缺少文章需要的东西,不能去外面挖新片段(这属于 out of scope),而要显式地点名这个缺口:"这里需要一个例子但素材堆里没有。现在给我一个,否则我们就砍掉这一节。"这种"点名缺口"机制保证了成稿过程要么被素材支撑,要么明确降级,绝不靠编造填充。

六、要真正去吵的格式权衡(Format arguments to actually have)

文档明确要求:当决定如何渲染一个 block 时,要当着用户的面权衡这些取舍,而不是默默决定。五组权衡构成了一套"形式选择决策表":

权衡维度决策规则
散文 vs. 列表散文承载论证(argument);列表承载平行条目(parallel items)。条目不真正平行就用散文,真正平行则列表扫读更快。
行内 vs. callout提示、警告、旁注放进 callout(> [!TIP]> [!NOTE]),但仅当它们真会打断行内主论证时;否则留在行内。
表格 vs. 重复结构同一形状以同字段重复 3 次以上 → 表格;否则用带加粗引子的散文。
引用 vs. 转述原文措辞本身就是要点 → 引用;只有想法重要 → 转述。
代码块 vs. 行内代码多行、可运行或说明性内容 → 代码块;单个 token 或标识符 → 行内。

这张表在 writing-shape/SKILL.md 中是作为"格式争论的实战工具"存在的,而它背后的理念与仓库 writing-for-agents 文档中"leading word(主导词)"、"信息层级(information hierarchy)"等写作杠杆一脉相承:写作不是排版,而是每一次渲染选择都在影响读者的注意力与理解成本。

七、写作节奏(Writing rhythm):永远先重读磁盘上的文件

关于落盘,技能的规定非常严格,直接呼应了writing-fragments中的同款纪律:

  • 每敲定一个 block 就追加到文章文件;
  • 每次写入前都从磁盘重读文件:用户可能在上轮之后编辑过,绝不能盲目覆盖(Never overwrite blindly);
  • 如果用户要求重写某个段落,就地编辑那一段,其余部分保持不动。

这意味着技能默认了"人类随时会干预"的真实协作场景:文章文件是共享画布,Agent 的每次写入都应以磁盘当前状态为基准。

八、明确的范围边界(Out of scope)

文档以三条否定清单收尾,防止技能越界:

  • 不挖素材堆之外的新片段(缺口按"Pulling from the pile"一节的方式处理,即点名并让用户提供或删除该节);
  • 不编辑原始素材文件
  • 不做发布、不为特定平台排版、不添加用户没要求的前置元数据(frontmatter)

这三条边界与技能"纯用户调用、专注塑形"的定位完全一致:它只负责从固定素材到文章文件这一段。

九、仓库上下文:它在写作技能家族中的位置

writing-shape放回仓库全景中,能更清楚地看到它的设计意图:

  • 上游 writing-fragments:explore 阶段,访谈产出异构片段并追加进一个素材文件,不承诺任何结构,并特别强调leading word(主导词)是最有价值的片段——"给一个反复出现的想法造一个词,会在整个 exploit 阶段持续回报结构、过渡与标题"。
  • 姊妹技能 writing-beats:同为 exploit 阶段,但它用"逐拍(beat)旅程 + 选择你自己的冒险"的方式组织文章,同样有完整的 Grounding 章节(概念必须先落地,一拍只能依赖已落地概念,候选下一拍必须从当前已落地集合可达)。两者对比:writing-beats以"拍"为推进单位、每次给 2~3 个候选下一拍;writing-shape以"block"为单位、每次都争论格式形式。
  • 上游方法论 grilling:提供了"设计树、轮次、前沿、给推荐答案"的追问框架,writing-shape的对话感即其倒置应用。
  • 元写作理论 writing-for-agents:整个仓库文档写作的共同底层,grounding概念与其中"每一步都以完成判据收尾""单一事实来源""前置词"等原则互相印证。

从 in-progress/README.md 可以看到,in-progress桶是公开的 beta 技能:"公开存在是有意的,欢迎试用并反馈问题;它们被排除在插件和顶层 README 之外,不提供文档页,随时可能变更或消失。"如果你希望试用,由于它不在插件内置集合中,需手动安装:

npx skills@latest add mattpocock/skills --skill=writing-shape

十、小结:一段一段地,让文章自己长出形状

writing-shape提供了一套可操作、可辩护、强协作的成稿流程:六步循环保证文章逐段生长;Grounding 机制保证每一步读者都跟得上;对话感保证每一段都"挣到"了自己的位置;采石场取料保证素材被物尽其用而不被神化;五组格式权衡保证每个渲染决策都经过思考。它既是一份 Agent 技能说明书,也是一份可以独立使用的技术写作方法论清单——即使不借助任何 Agent,用"先定前置概念 → 多候选开头 → 逐段论证形式 → 每段必须挣到位置"这套纪律去写长文,也能显著提升文章的结构完整度与读者体验。

【免费下载链接】skillsSkills for Real Engineers. Straight from my .agents directory.项目地址: https://gitcode.com/GitHub_Trending/skills13/skills

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/12 16:00:27

立体仓库自动化控制系统开发与三菱PLC组态王应用

1. 立体仓库自动化控制系统的核心组成这个3行3列9仓位立体仓库控制系统,本质上是一个典型的工业自动化项目,核心在于通过组态王软件实现仓库的虚拟仿真,并与三菱PLC建立OPC通讯。我在自动化行业做了十几年,这种立体仓库的控制系统…

作者头像 李华
网站建设 2026/9/12 16:00:12

AI内容检测与优化工具的核心技术与应用

1. 项目概述:AI内容检测与优化工具的市场需求在学术写作和内容创作领域,AI辅助工具已成为提高效率的利器,但随之而来的"AI率过高"问题正困扰着大量用户。所谓"AI率",指的是文本内容被检测系统判定为AI生成的概…

作者头像 李华
网站建设 2026/9/12 15:58:40

连锁品牌线上化:三十家门店一个中台

连锁品牌线上化:三十家门店一个中台 一个连锁品牌的线上化会议纪要: 「我们三十家线下门店要上天猫店,总部开了三次会都没定下来:每家店的商品、价格、促销都不一样,单独运营要三十个团队,统一运营又怕失去…

作者头像 李华