mcpField
W
writing-beats

writing-beats

github.com/utarnクリエイティブ・メディア4959 回インストール8 週間前に更新
リポジトリ

writing-beats について

writing-beatsは、Markdown素材からユーザーと選ぶビートを順に組み立て、記事にするライティングスキルです。読者が理解済みの概念を追跡し、続けられる展開を提示して、選ばれたビートだけを一度に執筆します。

主な機能

  1. 01理解済みの概念を追跡
  2. 02複数の導入ビートを提示
  3. 03続けられる次のビートを提示
  4. 04一度に一つのビートを執筆
  5. 05前のビートへの編集を保持

活用シーン

  1. 01Markdownの素材から記事を構成
  2. 02読者の前提知識に合わせて導入を選択
  3. 03ユーザーが選ぶ展開で記事を執筆
  4. 04後続部分を上書きせず前のビートを修正

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/utarn/engineer-skills --skill writing-beats

インストール後、Claude Code で/writing-beatsを入力して読み込まれたか確認します。

同梱ファイルagents/openai.yaml

詳細

ユーザーは生の素材をまとめたMarkdownファイルを渡した(またはこれから渡します)。これはexploitです。素材の探索は終わっており、山は固定されています。ここから進む道筋を決め、素材を掘り起こして各ビートを埋めていきます。

記事の保存先をユーザーが指定していない場合は、一度だけ尋ね、指定されたパスを覚えておきます。

その後、ビートごとに進む、選択式アドベンチャーのような流れを作ります。

  1. 前提知識を確定します。 ビートに入る前に、読者がどんな知識を持って読み始めるか、つまり最初からgroundedな概念をユーザーと確認します。それ以外の概念は、後のビートで使う前に、先行するビートでgroundedにする必要があります。Groundingを参照してください。
  2. 生の素材から、開始ビートの候補を2~3個作成します。それぞれ記事への異なる入り口とします。各候補では、groundedな概念だけを使い、新たにどの概念をgroundedにするかを示します。記事ファイルに書き込む前に、候補をユーザーに提示します。ユーザーが1つ選びます。その選択によって進めるビートを、道筋を少し先まで見ているかのようにプレビューします。
  3. ユーザーが開始ビートを選んだら、そのビートだけを記事ファイルに書き込みます。ビートの長さは、そのビートに自然な形にします。1文でも、複数の段落でもかまいません。そこで止めます。
  4. 記事ファイルをディスクから読み直します。そのうえで、現在の記事から進める次のビート候補を2~3個提示します。それぞれ異なる方向に展開できるものとし、現在groundedな概念から到達可能である必要があります。各候補で新たにgroundedにする概念も示します。
  5. 記事が自然な終わりに達するまで、手順3~5を繰り返します。

Grounding

あらゆる概念は、ビートで使う前にgroundedにする必要があります。読者が最初から知っているか、前のビートで触れていなければなりません。groundedでない概念に頼るビートは、読者を置き去りにします。これだけは、この旅で避けなければならないことです。単位は言葉ではなく概念です。専門用語がなくても、読者が知らない考え方をビートが前提にしていることがあります。概念に名前、つまり用語がある場合、groundingでは概念と用語を一緒に定着させます。

概念をgroundedにする方法は2つあります。

  • 前提知識 — 最初のビートより前にgroundedにします。読者が持ち込む知識であり、開始時に確定します。
  • 導入 — ビートで概念を定着させ、その後はすべてのビートでgroundedな概念として扱います。

つまり、各ビートには2つの役割があります。すでにgroundedな概念を必要とし、新しい概念をgroundedにします。ここまでにgroundedになった概念を継続して記録し、ビートが着地するたびに更新します。

選択式アドベンチャーの形は、これによって決まります。候補となるビートは、必要な概念がすべてすでにgroundedである場合にのみ到達可能です。概念Xをgroundedにするビートを選ぶと、Xを待っていたすべてのビートが選択肢に加わります。次のビートを提示するときは、すべて現在のgroundedな概念から到達可能なものにし、それぞれが何をgroundedにするかを示して、ユーザーがどの道筋に進めるか分かるようにします。

重要なのは、何を前提知識とし、何を記事の中でgroundedにするかです。最初から多くを求めすぎると、必要な知識のない読者を締め出してしまいます。記事の中で多くをgroundedにしすぎると、冒頭のビートが定義ばかりで埋まってしまいます。前提知識を確定するときに、ユーザーと相談して決めてください。また、魅力的なビートに、まだgroundedにされていない概念が必要だと分かった場合にも、改めて検討します。その概念をgroundedにするビートを先に置くか、その概念を前提知識に加えるかのどちらかです。

ビートとは

ビートとは、旅の中の1つの展開です。場面を設定する、要点を提示する、問いを投げかける、余談を添える、視点をひねるなど、1つのことをします。そしてそこで止まり、次のビートが展開できる地点に読者を残します。

ビートの長さは、必要な内容に応じて決まります。

  • その展開に1文あれば十分な場合は、1文だけです(「そして、その後3週間、何も起こりませんでした。」)。
  • 展開に導入が必要な場合は、短い段落にします。
  • 自己完結した情景、議論、例を描くビートなら、複数の段落にします。

「ビート」に5段落と3つの小見出しが必要なら、それはビートではありません。2つのビートをつなぎ合わせたものです。分割してください。

## 素材の山から取り出す

素材の山から材料を取り出し、それぞれのビートを埋めます。言い換えたり、分割したり、組み合わせたり、引用したりできます。素材の山は採石場です。

旅の終わり

記事は旅が終わったときに完成します。素材の山が空になったときではありません。ほとんどの素材の山には、記事に使われない断片が残ります。それで問題ありません。必要以上の素材を用意するのは、そのためです。

執筆のリズム

  • 一度にひとつのビートを追加します。先の分まで書いてはいけません。
  • 書き込む前に、毎回ディスクから記事ファイルを読み直します。ユーザーの編集内容は必ずそのまま保持します。
  • ユーザーが以前のビートを大幅に編集した場合は、その内容を後続の執筆に反映します。
  • ユーザーが「そのビートを書き直して」や「戻って別のビート3を試して」と言った場合は、そのとおりにします。該当箇所を直接編集し、ほかの部分はそのままにします。

コメント