writing-shape
SkillDev toolsWriting, exploit, shape raw material, section by section, into an article.
Available today. Use it from your connected AI after setup.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the writing-shape skill
What this skill tells your AI
The instructions your AI receives, as published by wenwuzhidao/mattpocock-skills-zh in skills/in-progress/writing-shape/SKILL.md and read by ahel’s review.
用户已经(或将要)传入一个装满原始素材的 markdown 文件。把它当作输入素材堆 —— 从一份整洁的片段清单,到一大堆未加结构的散文,再到一份逐字记录,都可以。格式无所谓。在做任何别的事之前先从头到尾读完它。
然后运行一段产出一份独立文章文档的塑造会话。这是 exploit(发掘):探索已经做完,那一堆素材已经固定 —— 承诺一个结构,并挖掘这堆素材来填满它。不要编辑原始素材文件 —— 对本技能而言它是只读的。
如果用户没有说文章保存到哪里,就问一次并记住那个路径。
循环
- **读素材堆。**完整读一遍输入文件。对里面有什么形成一个感觉。
- **确立前提。与用户敲定读者走进来时知道的东西 —— 那些从一开始就已铺垫好(grounded)**的概念。其他一切都必须由某个区块铺垫之后,后续的区块才能倚赖它。见 Grounding。
- **起草 2–3 个候选开头。**每个开头都应暗示文章的一个不同论点或角度。把它们全都给用户看。逼用户挑一个或拼一个混合出来。所选的开头定义了文章其余部分必须做的事。
- **逐段生长。**在开头落定之后,问"鉴于这个开头,读者接下来需要听到什么?"从素材堆中取材来回答。下一个区块只能倚赖已铺垫好的概念,并在落定时铺垫新的概念。就下一个区块采取什么形式进行论辩 —— 一个段落、一份列表、一张表、一个标注、一段引语、一个代码块。每一个格式选择都应是刻意的、站得住脚的。
- **随做随追加到文章文件。**不要批处理。每敲定一个段落或区块就立即写下来,好让用户看到文章逐渐成形。
- **循环步骤 4,直到文章完成。**由用户决定何时完成。
Grounding
每个概念(concept)在某个区块能够倚赖它之前,都必须先被铺垫(grounded):读者要么走进来就知道它,要么在更早的某个区块里遇到过它。一个伸手去够未铺垫概念的区块会失去读者。单位是概念,而非表述它的词 —— 一个区块可以倚赖一个读者所缺乏的想法,哪怕视线里根本没有术语。当一个概念有名字时 —— 一个术语(term) —— 铺垫它意味着把这个想法和这个术语一起落定。
一个概念以两种方式之一被铺垫:
- Prerequisite(前提) —— 在开头之前就已铺垫。读者自带它。在开头就固定下来。
- Introduced(引入) —— 某个区块确立它,从那以后它对文章的其余部分都已铺垫好。
保留一份已铺垫内容的动态清单。当你问"读者接下来需要听到什么?"时,下一步动作所需的一个未铺垫概念本身就是答案:先铺垫它 —— 在这里或在更早的某个区块里 —— 否则你就做不了这一步。这是 从素材堆中取材 那种指认缺口的做法在高一层的体现:那里是素材堆缺素材;这里是文章缺一块地基。
杠杆是:什么设为前提、对比什么在文章内铺垫。前面要求太多,就把读者拒之门外;文中铺垫太多,开头就淹没在定义里。在你确立前提时与用户敲定它。
对话式的感觉
这是一次反转过来的拷问式会话。在构思阶段,问题是"你实际注意到了什么?"这里问的是"这篇文章实际在论证什么,以及读者需要以什么顺序听到它?"要反驳。拒绝让软弱的过渡蒙混过关。如果一个段落配不上它的位置,就砍掉它。
要一直沿用的具体动作:
- "这个段落为读者做了什么是上一个段落没做的?"
- "如果我砍掉这个,什么会崩?"
- "这该是散文,还是该做成列表?为什么是散文?"
- "这一句在做两件事 —— 把它拆开或挑一件。"
- "开头承诺了 X。我们已经漂到了 Y。要么把它重新串回去,要么改开头。"
从素材堆中取材
把原始素材当作一座采石场,而非一份脚本。取出一个片段,把它改造得契合周围的段落,然后放置它。一个片段可以被拆分到多个段落、与另一个合并,或被转述。素材堆的活儿是被挖掘;文章的活儿是读起来像一个声音。
如果素材堆缺少文章所需的东西,就明确指认那个缺口:"这里我们需要一个例子而素材堆里没有 —— 现在给我一个,否则我们就砍掉这一节。"
真正该有的格式论辩
在选择如何呈现一个区块时,把这些权衡与用户大声地掂量,而非默默地:
- **散文 vs 列表。**散文承载论证;列表承载并列的项。如果各项并非真正并列,散文更好。如果它们是并列的,列表扫读更快。
- **内联 vs 标注。**提示、警告和旁白放进标注(
> [!TIP]、> [!NOTE])—— 但仅当它们内联会真正扰乱主论证时。否则就留在内联。 - **表格 vs 重复结构。**如果同一个形态带着相同的字段重复了 3 次以上,用一张表。否则用带加粗引导的散文。
- **引用 vs 转述。**当原始措辞本身就是重点时引用。当只有想法重要时转述。
- **代码块 vs 内联代码。**多行、可运行或用作示例的 → 代码块。单个 token 或标识符 → 内联。
写作节奏
每敲定一个区块就追加到文章文件。在每次写入之前从磁盘重新读取文件 —— 用户可能在两轮之间做了编辑。绝不盲目覆盖。如果用户想重写某个段落,就原地编辑那个特定段落;其余不动。
超出范围
- 挖掘素材堆里没有的新片段(按"从素材堆中取材"处理缺口)。
- 编辑原始素材文件。
- 发布、为某个特定平台做格式化,或添加用户没要求的 frontmatter。
Signals
- GitHub stars
- 23
- Forks
- 4
- Last commit
- Aug 2026
Advanced
- Item type
- skill
- Key
writing-shape-wenwuzhidao- Source
- github.com/wenwuzhidao/mattpocock-skills-zh