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 的更多技能

improve-codebase-architecture
mattpocock
在程式碼庫中尋找深化機會,依據 CONTEXT.md 中的領域語言與 docs/adr/ 中的決策。適用於使用者想要改善架構、尋找重構機會、整合緊密耦合的模組,或讓程式碼庫更易於測試及便於 AI 導航時使用。
developmentcode-reviewapi
tdd
mattpocock
以紅-綠-重構循環進行測試驅動開發。當使用者想透過TDD建立功能或修復錯誤、提及「紅-綠-重構」、需要整合測試,或要求測試優先開發時使用。
developmenttesting
handoff
mattpocock
將當前對話壓縮成一份交接文件,供其他代理接手處理。
communicationproject-managementdocument
prototype
mattpocock
建立一個可拋棄的原型,在確定設計前先完善構想。在兩個分支之間切換——一個可執行的終端應用程式,用於測試狀態或商業邏輯問題;或從同一路由切換多種截然不同的UI變體。當使用者想要製作原型、驗證資料模型或狀態機、模擬UI、探索設計選項,或說出「把這個做成原型」、「讓我玩玩看」、「試試幾種設計」時使用。
developmentdesigncreative
triage
mattpocock
透過由分類角色驅動的狀態機來分類問題。當使用者想要建立問題、分類問題、審查傳入的錯誤或功能請求、為AFK代理準備問題,或管理工作流程時使用。
developmentproject-managementcommunication
obsidian-vault
mattpocock
在Obsidian筆記庫中搜尋、建立及管理筆記,支援維基連結與索引筆記。適用於使用者想在Obsidian中尋找、建立或整理筆記時。
productivitydocument
edit-article
mattpocock
編輯並改善文章,透過重組章節、提升清晰度與精煉文句。適用於使用者希望編輯、修訂或改善文章草稿時。
documentcreative
writing-great-skills
mattpocock
撰寫與編輯技能的良好參考——讓技能可預測的詞彙與原則。
documentdevelopment