writing-beats

作者: mattpocock

将文章塑造成节拍式的旅程,采用“选择你的冒险”风格。用户从原始素材中选取一个起始节拍,你仅撰写该节拍,然后提供下一步转向的选项,逐拍推进,直至文章自然收尾。适用于用户拥有原始素材,并希望将其组织成叙事而非论证时使用。

npx skills add https://github.com/mattpocock/skills --skill writing-beats

The user has passed (or will pass) a markdown file of raw material. This is exploit: the exploring is done, the pile is fixed. Commit to a path through it and mine the pile to fill each beat.

If the user did not say where to save the article, ask once and remember the path.

Then run a beat-by-beat journey, choose-your-own-adventure style:

  1. Establish the prerequisites. Before any beats, settle with the user what the audience already knows walking in: the concepts that are grounded from the start. Everything else must be grounded by a beat before a later beat can use it. See Grounding.
  2. Write 2–3 candidate starting beats, drawn from the raw material. Each is a different entry point into the article. Each may only lean on grounded concepts; note what new concepts each one grounds. Show the user the beats before writing to the article file. The user picks one. Preview what beats that pick unlocks, as if the user is seeing a little way down the path.
  3. Once the user picks a starting beat, write only that beat to the article file. A beat may be one sentence or several paragraphs, whatever that beat naturally is. Stop there.
  4. Re-read the article file from disk. Then offer 2–3 candidate next beats: different directions the journey could pivot to from where the article now stands. Each must be reachable from the current grounded set; note what each one grounds.
  5. Loop steps 3–5 until the article reaches a natural end.

Grounding

Every concept has to be grounded before a beat can lean on it: the audience either walked in knowing it or met it in an earlier beat. A beat that reaches for an ungrounded concept loses the reader; that is the one move the journey can't make. The unit is the concept, not the word for it: a beat can lean on an idea the reader lacks even with no jargon in sight. Where a concept has a name (a term), grounding it means landing the idea and the term together.

A concept gets grounded one of two ways:

  • Prerequisite: grounded before the first beat. The audience brings it. Fixed at the start.
  • Introduced: a beat establishes it, and from then on it's grounded for every later beat.

So each beat does two jobs: it requires concepts that are already grounded, and it grounds new ones. Keep a running list of what's grounded so far, and update it each time a beat lands.

This is what shapes the choose-your-own-adventure. A candidate beat is only reachable if everything it requires is already grounded; picking a beat that grounds concept X unlocks every beat that was waiting on X. When you offer next beats, they must all be reachable from the current grounded set, and say what each one grounds, so the user can see which paths it opens.

The big lever is what you make a prerequisite versus what you ground inside the piece. Demand too much up front and you shut out readers who don't have it; ground too much inside and the early beats drown in definitions. Settle this with the user when you establish prerequisites, and revisit it whenever a tempting beat turns out to require a concept nothing has grounded yet: the fix is either a grounding beat before it, or promoting the concept to a prerequisite.

What is a beat

A beat is one move in the journey. It does one thing: sets a scene, lands a point, asks a question, drops an aside, twists the angle. Then it stops, leaving the reader at a place where the next beat can pivot.

A beat is sized by what it needs:

  • A single sentence if that's all the move is ("And then nothing happened for three weeks.").
  • A short paragraph if the move needs setup.
  • Multiple paragraphs if the beat is a self-contained vignette, argument, or example.

If a "beat" needs five paragraphs and three subheadings, it's not a beat; it's two beats glued together. Split it.

Pulling from the pile

Pull material from the raw pile to populate each beat. You can paraphrase, split, recombine, or quote. The pile is a quarry.

Ending the journey

The article ends when the journey is complete, not when the pile is empty. Most piles will have leftover fragments that don't make it in. That is fine; that is the point of having more raw material than you need.

Writing rhythm

  • Append one beat at a time. Never write ahead.
  • Re-read the article file from disk before every write. Preserve user edits absolutely.
  • If the user edits a previous beat substantially, let it change what comes next.
  • If the user says "rewrite that beat" or "go back and try a different beat 3", do it: edit in place, leave the rest alone.

来自 mattpocock 的更多技能

writing-for-agents
mattpocock
为智能体编写文档。在创建或编辑技能,或修改AGENTS.md或CLAUDE.md时使用。
wait-what
mattpocock
等等。上一条消息没传达到——重新表述一遍。
communication
to-questionnaire
mattpocock
把你无法完全回答的决策,转化为一份供他人填写的问卷。
grill-me
mattpocock
对用户的计划或设计进行持续追问,直到达成共识,解决决策树的每个分支。当用户想要对计划进行压力测试、接受设计拷问,或提到“grill me”时使用。
researchcommunicationproject-management
tdd
mattpocock
采用红绿重构循环的测试驱动开发。当用户希望使用TDD构建功能或修复缺陷、提及“红绿重构”、需要集成测试或要求测试优先开发时使用。
developmenttesting
handoff
mattpocock
将当前对话压缩为交接文档,供其他代理接手处理。
communicationproject-managementdocument
prototype
mattpocock
在投入正式开发前,先构建一个可丢弃的原型来完善设计。在两条分支间切换——一条是可运行的终端应用,用于验证状态/业务逻辑问题;另一条是多个截然不同的UI变体,可通过单一路由切换。适用于用户希望进行原型设计、验证数据模型或状态机、制作UI草稿、探索设计方案,或提出“把这个做成原型”、“让我试试”、“尝试几种设计”等需求时使用。
developmentdesigncreative
triage
mattpocock
通过由分类角色驱动的状态机对问题进行分类。当用户想要创建问题、分类问题、审查传入的缺陷或功能请求、为AFK代理准备问题或管理工作流程时使用。
developmentproject-managementcommunication