mcpField
W
write-talk-script

write-talk-script

github.com/shaishavmaisuriaドキュメント5797 回インストール4 日前に更新
リポジトリ

write-talk-script について

write-talk-scriptは、スライド、論文、発表時間に基づいて、学術発表のスライドごとの台本を作成するスキルです。各スライドの語数と時間を管理し、リハーサル用のカット案も用意します。

主な機能

  1. 01スライドごとの語数予算の設定
  2. 02話速に基づく累積時間の計算
  3. 03台本とスライド間のつなぎ文作成
  4. 04超過スライドの特定と時間確認
  5. 05カット箇所と削減時間の提示

活用シーン

  1. 01学会発表の時間に合わせた台本作成
  2. 02スライドからリハーサル用ノートへの変換
  3. 03ライトニングトークの内容整理

インストール

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

$npx skills add https://github.com/shaishavmaisuria/research-paper-lifecycle-skills --skill write-talk-script

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
script-craft.md
timing-and-cuts.md
scripts/
script_timer.py
word_budget.py

詳細

トーク原稿の作成

正確な持ち時間に収まる発表原稿を作成します。各スライドに、登壇者の実際の話速に合わせた語数の目安、累積時間の目印、文章化したスライド間のつなぎ、そしてステージで時間が押した場合に備えた、事前に決めておく削除箇所のリストを用意します。スライドは聴衆がどこを見るべきかを示し、この原稿は登壇者が実際に話す内容です。採択後に使うもので、make-slides の補完にあたります。

使用する場面

  • 「SIGSPATIAL の12分間の発表原稿を書いて」/「質疑応答の3分を含む15分枠です。何を話せばいいですか?」
  • 「スライド資料を、リハーサルに使える発表者ノートにして」
  • 「発表が長引いています。どこを削ればいいですか?」
  • 「5分間のライトニングトーク/スポットライト発表があります」
  • make-slides の後、初回の時間を計るリハーサルの前。

入力

  1. 正確な持ち時間:合計時間と、質疑応答が持ち時間に含まれるか、別枠かを指定してください。事実の確認には、記憶や会場のプロフィールではなく、登壇者向けの案内と採択通知メールを使ってください。
  2. スライド資料、またはアウトライン(スライドタイトルを順番に並べたもの)。まだスライド資料がない場合は、先に make-slides を実行してください。
  3. 論文(カメラレディ版が望ましい)—発表で述べるあらゆる数値や主張の、唯一の正当な情報源です。
  4. 任意:会場の情報と、話者の実測した1分あたりの語数を記載した venues/conferences/<venue>-<year>.yml。

プロセス

  1. 持ち時間の条件を確認します。 合計時間、質疑応答を含むかどうか、発表言語、座長がタイムカードを使うかどうかを確認します。会場のプロフィールがある場合は参考情報としてのみ使い、最新の cfp_url /会場ウェブサイトで再確認します。プロフィールには発表時間が記載されておらず、発表時間は年ごとに変わるためです。一般的な形式(必ず確認し、決めつけないこと): フルペーパーは質疑応答込みで12~20分、CHIでは歴史的に発表約10分+質疑応答5分、ライトニングトーク/スポットライトは1~7分です。詳しくは references/timing-and-cuts.md を参照してください。

  2. 話すペースを調整します。 デフォルトは、意識的にゆっくり話すカンファレンス向けのペースとして、1分あたり130語です。発表者が1分間の音読でペースを測定できる場合は(timing-and-cuts.md §2)、測定値を使います。英語が母語でない発表者や、技術的な内容が密な場合は、1分あたり110~120語を提案します。150語を超えてはいけません。

  3. アウトラインファイルを作成します。 スライドごとに1行ずつ、デッキの順番で記述します(- の箇条書きまたは ## の見出し)。時間を固定するスライドには、末尾に | <minutes> を付けます(例:- Key idea | 2)。タイトルスライドと要点スライドは、通常0.5分に固定します。

  4. 語数の予算を計算します。 次を実行します。

    python3 scripts/word_budget.py --minutes 15 --qa 3 --outline outline.md \
        [--wpm 120] [--venue-profile venues/conferences/<venue>.yml]
    

    また、手順6で使う機械可読形式も保存します。 python3 scripts/word_budget.py ... --json > budget.json。 スクリプトは安全マージン(デフォルト0.5分)を確保するため、発表が終了の合図より早く終わるようにします。アウトラインがまだない場合は、--slides N で時間を均等に割り振ります。

  5. スライドごとに台本を作成します。 各スライドの語数予算内に収め、話し言葉で書きます。短い文、短縮形、道しるべとなる表現を使い、数字は読み上げるとおりに表記します。 ファイル形式(スライドごとに ## 見出しを1つ、[角括弧] で囲んだ舞台指示と時間表示、各スライドの最後に文章で書いたつなぎの文)、導入と締めくくりのパターン、図の説明については references/script-craft.md に従います。事実に関する主張はすべて論文に基づいている必要があります。論文中の数値を引用し、読み上げやすい表現にします。

  6. 台本の所要時間を計ります。 次を実行します。

    python3 scripts/script_timer.py talk-script.md --budget budget.json
    

    (または、予算ファイルを使わずに --minutes 15 --qa 3 を指定します)。OVER となったスライドは、話す速度を上げるのではなく、語数を削って調整します。判定が WITHIN BUDGET になるまで再実行します。終了コード:予算内は0、超過は1、入力不正は2。

  7. 削る箇所の一覧を作ります。 発表全体の10~15%に相当する、削除可能な箇所を2~3か所指定し、それぞれに … を付けます(各マーカーは独立した行に置き、入れ子やスライド境界をまたぐ指定はしません)。最初に削る箇所と、絶対に削ってはいけない箇所については、timing-and-cuts.md §6 を参照してください。script_timer.py を再実行すると、各削除箇所で短縮できる秒数と、すべて削除した場合に時間超過を解消できるかどうかが表示されます。

  8. リハーサル用パッケージを仕上げます。 予算の時間表示を各スライドセクションの冒頭に挿入し(例:[4:30])、質疑応答への引き継ぎ文を追加し、リハーサル手順と、本番中に時間が延びた場合の対応手順を付け加えます(timing-and-cuts.md §8–9)。タイマーを使った通しの音読リハーサルを少なくとも1回行ってから、時間内に収まることを伝えます。

出力

  • talk-script.md — スライドごとに ## セクションを1つ作成します。各セクションに時間表示、語数、舞台指示付きの話し言葉の台本、つなぎの文、削除箇所を記載します。最後に質疑応答への引き継ぎ文とリハーサル用チェックリストを付けます。
  • budget.json — スライドごとの予算。以降の時間再計算でも再利用できます。
  • script_timer.py の時間レポート — 削除箇所の一覧と各箇所で短縮できる秒数を示し、発表が時間内に収まることを確認します。

分野に合わせた調整

デフォルト設定は、CS分野のカンファレンス発表(12~20分、スライドを使った英語の発表)を想定しています。他分野では、アウトライン内のセクション配分(例:方法の説明に重点を置いた医学系の発表)、ペース(--wpm)、timing-and-cuts.md に記載されている会場の慣習を調整してください。スクリプト自体は分野を問わず使用できます。

ガードレール

  • スクリプトに記載する結果、数値、引用、出典を決して捏造しないでください。発言するすべての主張は、ユーザーの論文に基づいている必要があります。新しい参考文献は、まず verify-citations で確認してください。
  • 所要時間はあくまで見積もりであり、保証ではありません。実際に時間を計ってリハーサルすることなく、発表が「収まる」とユーザーに伝えてはいけません。語数と発話速度に基づく計算では、緊張やレーザーポインターを使った脱線、クリッカーの故障は考慮されません(そのために予備時間とカットリストがあります)。
  • 会場のプロファイルが、持ち時間についての発表者の指示や採択メールより優先されることはありません。スクリプトを作成する前に、最新の cfp_url を確認してください。
  • 話者の語り口と厳密な技術的主張を保ってください。口頭発表向けの表現に書き換えるのは、耳で聞きやすくするためであり、科学的内容を簡略化したり、論文の段落をそのまま読み上げたりするためではありません。
  • スクリプトやスライドを発表者用ポータルにアップロードしたり、ユーザーに代わって何かを提出したりしてはいけません。

コメント