# Writing Shape

Writing, exploit：把原始素材塑造成文章，一段一段地推进。

- Repository: https://github.com/vinvcn/mattpocock-skills-zh-CN (5461 stars)
- Category: Security
- License: MIT
- Last updated: 2026-10-28
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add vinvcn/mattpocock-skills-zh-CN --skill writing-shape -g -a claude-code -y`
Codex: `npx skills add vinvcn/mattpocock-skills-zh-CN --skill writing-shape -g -a codex -y`
Cursor: `npx skills add vinvcn/mattpocock-skills-zh-CN --skill writing-shape -g -a cursor -y`
Gemini CLI: `npx skills add vinvcn/mattpocock-skills-zh-CN --skill writing-shape -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add vinvcn/mattpocock-skills-zh-CN`

## Description

Writing, exploit：把原始素材塑造成文章，一段一段地推进。

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

<what-to-do>

用户已经传入（或将传入）一份 raw material markdown 文件。把它当作 input pile：它可以是整齐的 fragments 列表、无结构 prose 墙、transcript，任何格式都可以。先完整读完，再做其他事。

然后运行一个 shaping session，产出一份独立的 article document。这是 **exploit**：探索已经完成，pile 已固定, , 承诺一个结构，并挖掘 pile 来填充它。不要编辑 raw material 文件；对这个 skill 来说它是 read-only。

如果用户没有说明文章保存路径，只询问一次并记住路径。

</what-to-do>

<supporting-info>

## The loop

1. **Read the pile.** 完整读取 input file，形成对内容的整体感。
2. **Establish the prerequisites.** 与用户确定读者进场时知道什么, , 那些从一开始就已 **grounded** 的概念。其它一切都必须先被某个 block grounded，之后的 block 才能依赖它。见 [Grounding](#grounding)。
3. **Draft 2-3 candidate openings.** 每个 opening 都应暗示文章的不同 thesis 或 angle。全部展示出来，迫使用户选择或组合 hybrid。选定的 opening 定义整篇文章接下来必须完成什么。
4. **Grow paragraph by paragraph.** Opening 落地后，问 “given this opening, what does the reader need to hear next?” 从 pile 中抽取 material 回答。下一个 block 只能依赖已 grounded 的概念，并在落地时 grounded 新的概念。讨论下一 block 应该是 paragraph、list、table、callout、quote 还是 code block。每个格式选择都应该 deliberate 且 defensible。
5. **Append to the article file as you go.** 不要 batch。每个达成一致的 paragraph 或 block 立即写入，让用户看到文章成形。
6. **Loop step 4 until the article is done.** 用户决定何时完成。

## Grounding

每个 **concept** 都必须先被 **grounded**，某个 block 才能依赖它：读者要么进场时就知道它，要么在更早的 block 中遇到过它。一个伸手去抓未 grounded 概念的 block 会失去读者。单位是 concept，而不是它的措辞, , 即便眼前没有任何术语，一个 block 也可能依赖一个读者并不具备的 idea。当一个概念有名字, , 一个 **term**, , grounded 它意味着让这个 idea 和这个 term 一起落地。

一个概念通过两种方式之一被 grounded：

- **Prerequisite**, , 在 opening 之前就被 grounded。读者自带它。在开头就固定下来。
- **Introduced**, , 某个 block 建立它，从那时起它对文章余下部分都是 grounded 的。

维护一份到目前为止已 grounded 内容的清单。当你问 “what does the reader need to hear next?” 时，下一步所需要的某个未 grounded 概念本身就是答案：先 grounded 它, , 在这里或更早的 block 中, , 否则你就无法做这个动作。这是 [Pulling from the pile](#pulling-from-the-pile) 中 gap-naming 的上一层：那里是 pile 缺少 material；这里是文章缺少 foundation。

关键的杠杆在于你把什么设为 prerequisite、把什么在文章内部 grounded。开头要求太多，就会把读者拒之门外；内部 grounded 太多，opening 就会淹没在定义里。在你确立 prerequisites 时与用户确定这一点。

## Conversational feel

The rest: https://github.com/vinvcn/mattpocock-skills-zh-CN/blob/HEAD/skills/in-progress/writing-shape/SKILL.md
