Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/vinvcn-writing-shape
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: writing, writing-editing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/writing-shape
What's inside
- Skill name
writing-shape- Description
- Writing, exploit:把原始素材塑造成文章,一段一段地推进。
- License
- MIT
- Instructions
- 75 lines in SKILL.md · view on GitHub
Files (2)
- SKILL.md
- openai.yaml · agents/
SKILL.md (first lines)
<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 这是倒过来的 grilling session。Ideation 问的是 “what are you actually noticing?” 这里问的是 “what is this article actually arguing, and in what order does the reader need to hear it?” 要 push back。不要放过 weak transitions。如果一个段落没有赢得自己的位置,就删掉。 持续使用这些具体 moves: - "What does this paragraph do for the reader that the previous one didn't?" - "If I cut this, what breaks?" - "Is this prose, or should it be a list? Why prose?" - "This sentence is doing two jobs — split it or pick one." - "The opening promised X. We've drifted to Y. Either re-thread it or change the opening." ## Pulling from the pile 把 raw material 当作 quarry,而不是 script。抽取 fragment,改写以适配周围段落,然后放进去。一个 fragment 可以被拆到多个段落、与另一个合并,或被 paraphrase。Pile 的工作是被挖掘;文章的工作是读起来像一个声音。 如果 pile 缺少文章需要的东西,明确指出 gap:"We need an example here and the pile doesn't have one — give me one now or we cut this section." ## Format arguments to actually have 选择如何呈现一个 block 时,把这些 tradeoffs 和用户大声讨论,而不是默默决定: - **Prose vs. list.** Prose 承载 argument;lists 承载 parallel items。如果 items 不是真正 parallel,prose 更好。如果是,list 更容易扫描。 - **Inline vs. callout.** Tips、warnings 和 asides 放在 callouts(`> [!TIP]`、`> [!NOTE]`)里,但只有当它们 inline 会真正打断 main argument 时才这样做。否则保持 inline。 - **Table vs. repeated structure.** 如果同一形状以相同 fields 重复 3 次以上,用 table。否则用 prose 加 bold leads。 - **Quote vs. paraphrase.** 当原始措辞本身就是重点时 quote。只有 idea 重要时 paraphrase。 - **Code block vs. inline code.** Multi-line、runnable 或 illustrative → block。Single token 或 identifier → inline。 ## Writing rhythm 每个 block 达成一致后就追加到 article file。每次写入前都从磁盘重新读取文件;用户可能在回合之间编辑。永远不要盲目 overwrite。如果用户想重写某个段落,就地编辑那个特定段落;其余部分保持不动。 ## Out of scope - 挖掘 pile 中不存在的新 fragments(按 "Pulling from the pile" 的方式处理 gaps)。 - 编辑 raw material 文件。 - 发布、为特定平台格式化,或添加用户没要求的 frontmatter。 </supporting-info>
From vinvcn/mattpocock-skills-zh-CN, MIT.
More from vinvcn/mattpocock-skills-zh-CN
- 0.848score
git-guardrails-claude-code
vinvcn
设置 Claude Code hooks,在危险 git commands(push、reset --hard、clean、branch -D 等)执行前阻止它们。适用于用户想防止破坏性 git 操作、添加 git safety hooks,或在 Claude Code 中阻止 git push/reset 时。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.844score
diagnosing-bugs
vinvcn
面向棘手缺陷和性能回退的诊断循环。适用于用户说 “diagnose” / “debug this”,或报告某些东西 broken、throwing、failing、slow 时。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
setup-ts-deep-modules
vinvcn
在 TypeScript repo 中接入 dependency-cruiser,让每个 package 成为 deep module:implementation 隐藏在 subfolders 中,只能通过 entry-point files 访问。User-invoked。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
to-tickets
vinvcn
把 plan、spec 或当前对话拆成一组 tracer-bullet tickets,每个 ticket 声明 blocking edges,并发布到已配置的 tracker;本地用每 ticket 一个文件中的文本 edge,真实 tracker 用 native blocking links。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
wizard
vinvcn
生成一个交互式 bash wizard,逐步引导人完成只有他们能执行的手动流程。用于 provisioning 基础设施、设置 credentials 或 CI secrets、走查不熟悉的第三方 dashboard,或运行一次性 migration 或 cutover。对于 agent…
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
code-review
vinvcn
从固定点(commit、branch、tag 或 merge-base)开始,按 Standards(代码是否符合本仓库记录的编码标准?)和 Spec(代码是否符合来源 issue/spec 的要求?)两个轴线审查变更。两个审查会在并行子代理中运行,并并排报告。适用于用户想审查…
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
setup-pre-commit
vinvcn
在当前仓库设置 Husky pre-commit hooks,集成 lint-staged (Prettier)、类型检查和测试。适用于用户想添加 pre-commit hooks、设置 Husky、配置 lint-staged,或在提交时运行格式化、类型检查和测试时。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
translate-skill
vinvcn
将 mattpocock/skills 的内容翻译、刷新或复核到简体中文本地化仓库 vinvcn/mattpocock-skills-zh-CN 时使用这个项目级 skill。适用于 skill files、README content、CLAUDE.md、GLOSSARY.md、docs,以及其他需要保留行为关键…
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.838score
writing-beats
vinvcn
Writing, exploit——把原始素材组装成一段节拍旅程,在某个 beat 依赖一个术语之前先把它 grounded。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.838score
grilling
vinvcn
围绕计划、decision 或 idea 持续追问用户。适用于用户想对自己的思路做压力测试,或使用任何 “grill” 触发措辞时。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.838score
migrate-to-shoehorn
vinvcn
将测试文件从 `as` 类型断言迁移到 @total-typescript/shoehorn。适用于用户提到 shoehorn、想替换测试中的 `as`,或需要局部测试数据时。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.838score
scaffold-exercises
vinvcn
创建包含章节、题目、答案和讲解的练习目录结构,并确保通过 linting。适用于用户想 scaffold exercises、创建 exercise stubs,或设置新的课程章节时。
SkillAFreshness: A★ 5.2KClaude Code +9
Signals
- Stars
- 5,245
- Forks
- 416
- Open issues
- 0
- Last commit (this folder)
- Sep 21, 2026 (1 month ago)
- Last release
- Oct 8, 2026 (20 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from vinvcn
- 0.848score
git-guardrails-claude-code
vinvcn
设置 Claude Code hooks,在危险 git commands(push、reset --hard、clean、branch -D 等)执行前阻止它们。适用于用户想防止破坏性 git 操作、添加 git safety hooks,或在 Claude Code 中阻止 git push/reset 时。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.844score
diagnosing-bugs
vinvcn
面向棘手缺陷和性能回退的诊断循环。适用于用户说 “diagnose” / “debug this”,或报告某些东西 broken、throwing、failing、slow 时。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
code-review
vinvcn
从固定点(commit、branch、tag 或 merge-base)开始,按 Standards(代码是否符合本仓库记录的编码标准?)和 Spec(代码是否符合来源 issue/spec 的要求?)两个轴线审查变更。两个审查会在并行子代理中运行,并并排报告。适用于用户想审查…
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
setup-pre-commit
vinvcn
在当前仓库设置 Husky pre-commit hooks,集成 lint-staged (Prettier)、类型检查和测试。适用于用户想添加 pre-commit hooks、设置 Husky、配置 lint-staged,或在提交时运行格式化、类型检查和测试时。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
setup-ts-deep-modules
vinvcn
在 TypeScript repo 中接入 dependency-cruiser,让每个 package 成为 deep module:implementation 隐藏在 subfolders 中,只能通过 entry-point files 访问。User-invoked。
SkillAFreshness: A★ 5.2KClaude Code +9 - 0.842score
wizard
vinvcn
生成一个交互式 bash wizard,逐步引导人完成只有他们能执行的手动流程。用于 provisioning 基础设施、设置 credentials 或 CI secrets、走查不熟悉的第三方 dashboard,或运行一次性 migration 或 cutover。对于 agent…
SkillAFreshness: A★ 5.2KClaude Code +9
Cite this page
writing-shape skill. Agent Mart. https://agentmart.dev/skills/vinvcn-writing-shape (last updated 2026-10-24)