mcpField
M
make-slides

make-slides

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

make-slides について

make-slidesは、採択済みまたは完成間近の論文を、BeamerまたはMarpの学会発表スライドにするスキルです。持ち時間に合わせた構成、論文図の再利用、内容と進行の検査を支援します。

主な機能

  1. 01持ち時間に応じた枚数設計
  2. 02論文図の抽出と順位付け
  3. 03問題起点のストーリーボード作成
  4. 04BeamerまたはMarpでの作成
  5. 05進行とスライド内容の検査

活用シーン

  1. 01採択論文の発表スライド作成
  2. 02持ち時間に合わせた長いスライドの短縮
  3. 03論文を発表用の流れに再構成

インストール

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

$npx skills add https://github.com/shaishavmaisuria/research-paper-lifecycle-skills --skill make-slides

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

同梱ファイル

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

references/
deck-formats.md
narrative-storyboard.md
venue-timing.md
scripts/
deck_lint.py
extract_figures.py
slide_budget.py

詳細

スライドを作成する

採択済み(またはほぼ完成した)論文を、問題を起点としたストーリー、1 枚につき 1 つの主張、論文独自の図、そして実際の持ち時間に収まる枚数を軸に、学会発表用スライドに仕上げます。形式は Beamer の .tex または Marp の Markdown です。スライドデッキが成果物です。時間配分に沿った逐語的な発表原稿と質疑応答の練習は、別のスキル(write-talk-script、rehearse-qa)で行います。

使用するタイミング

  • 論文が採択され、発表枠が決まったとき:スライドデッキを作成します。
  • ユーザーから発表時間(「発表 12 分、質疑応答 3 分」「5 分のライトニングトーク」など)が示され、その時間に収まるデッキが必要なとき。
  • 既存のデッキが長すぎる、文字が多すぎる、または論文の構成そのままで、発表向けに削る必要があるとき。

関連スキル:write-talk-script(デッキ用の時間配分に沿った発表原稿)、rehearse-qa(厳しい/好奇心旺盛な質問への応答練習)、make-poster(ポスターと 2 分/5 分の紹介)、study-exemplars(開催イベントで評価の高い論文が貢献をどう位置づけているかを調査)、verify-citations(スライドに掲載する参考文献の確認)。

入力

  • 論文のメイン .tex ファイル(推奨。ソースから図を抽出します)、または PDF と図のファイル。
  • 開催イベントの発表者向け案内または採択通知メールに記載された発表時間と質疑応答の配分。これはこのスキルで調べられない唯一の情報です。開催イベントのプロフィールには発表枠の時間が記載されていないためです(年やトラックによって変わります)。ユーザーが把握していない場合は、作業を止めて確認してください。詳しくは references/venue-timing.md を参照してください。
  • 任意:開催イベントの情報(名称、トラック、公開 URL)を含む venues/conferences/<id>.yml。プロフィールの情報をユーザーが参照できる形で使う前に、cfp_url または開催イベントのサイトで再確認してください。
  • 出力形式の選択:Beamer(LaTeX ツールチェーンを使い、ベクター図をそのまま再利用)または Marp(Markdown を使い、すばやく反復できます。図は PNG/SVG である必要があります)。選択の手引きは references/deck-formats.md を参照してください。

手順

1. 発表枠を確認してから、スライド枚数を割り当てる

ユーザーに発表時間と質疑応答の時間を確認します(必ず質問してください。記憶や開催イベントのプロフィールから発表時間を断定してはいけません。一般的な時間配分と確認用チェックリストは references/venue-timing.md を参照してください)。次に、リポジトリのルートから以下を実行します。

python3 skills/make-slides/scripts/slide_budget.py --minutes <slot> --qa <qa> \
    [--format auto|full|lightning] [--venue-profile venues/conferences/<id>.yml] [--json]

発表内容のスライドの目安(発表 1 分あたり約 1 枚、上限は 1.25 倍)と、問題を起点とするセクションごとの時間・スライド配分が、通常の発表形式(12〜20 分)またはライトニングトーク形式(7 分以下)で出力されます。この配分をストーリーボードの骨格として扱ってください。

2. 論文の図を一覧化して抽出する
python3 skills/make-slides/scripts/extract_figures.py path/to/main.tex \
    --copy-to talk/assets [--json]

\input/\include をたどり、\graphicspath を解決したうえで、本文中での参照回数に基づきすべての図を順位付けします。最も頻繁に参照される図を中心に、発表を構成することが多いためです。また、表環境の数も数えます。表がそのままスライドに残ることはほとんどありません。各表をグラフか、強調する数値 1 つに作り直してください。グラフィックファイルを持たない TikZ のみの図は、再コンパイルするか、論文 PDF からスクリーンショットを取得する必要があります。

Marp を使う場合は、抽出した PDF をここで PNG/SVG に変換してください(コマンドは references/deck-formats.md を参照)。Marp は PDF 画像を表示できません。

3. ストーリーボード:まず問題を提示し、1 枚につき主張は 1 つ

references/narrative-storyboard.md を使い、論文の内容を予算の各項目に対応づけます。 必ず守ること:

  • 問題を最初に提示:アウトラインや論文の節の順序ではなく、なぜその問題が重要なのかから始めます。この発表は論文の宣伝であり、論文を圧縮したものではありません。
  • 1 枚につき主張は 1 つ:各スライドのタイトルは完全な主張文にします。聴衆がほかを読まなくても覚えてほしい一文です(「LRU はバースト時に再アクセスされるタイルを追い出す」であり、「背景」ではありません)。根拠(図、1 つの数値)でタイトルを裏付けます。箇条書きは最後の手段です。
  • スライド上の数値や主張は、論文またはユーザーに由来するものに限ります。決して捏造したり、切り上げたり、外挿したりしてはいけません。スライドに掲載する引用文献は、まず verify-citations を通します。
  • 証明、二次的なアブレーション、関連研究の詳しい説明は、最終スライドの後の補足スライドに移します。これらは予算を消費しません。

ストーリーボードはリスト形式(スライドのタイトルとなる主張、補助するビジュアル、発表時間の目安)で作成し、スライドの草案を作る前にユーザーの確認を得ます。

4. スライドを草案化する

承認済みのストーリーボードに基づき、references/deck-formats.md のひな形を使ってスライドを作成します。

  • Beamer:aspectratio=169 を指定し、フレームタイトルを主張にします。論文の PDF を \includegraphics で再利用し、 \note{} に発表者ノートの仮置きを入れ、\appendix の後に補足フレームを配置します。
  • Marp:フロントマターに marp: true を指定し、#/## のタイトルを主張にします。画像は PNG/SVG のみ使用し、`` コメントに発表者ノートの仮置きを入れます。補足スライドのタイトルは Backup: ... とします。

ユーザーが別の場所を希望しない限り、論文と同じ場所の talk/ 以下にスライドとアセットを作成します。既存のスライドを、確認せずに上書きしてはいけません。

5. リントし、修正して、再度リントする
python3 skills/make-slides/scripts/deck_lint.py talk/slides.md|slides.tex \
    --minutes <SPEAKING minutes = slot - Q&A> [--strict] [--json]

決定論的なチェック項目:発表枠に対するペース、内容過多のスライド(100 語超はスライドではなく文書です)、箇条書きの過多、主張になっていない一般的なタイトル、画像ファイルの欠落、Marp でレンダリングできない PDF 画像、小さすぎる Beamer のフォント。すべての RISK を修正し、RISK がなくなるまで再実行します。ペースはスライドを削るか統合して調整し、速く話す計画で解決してはいけません。

6. ビルドを確認して引き渡す

ツールチェーンが利用できる場合は、スライドをコンパイルします(Beamer では latexmk -pdf、Marp では Marp CLI。コマンドは references/deck-formats.md を参照してください)。利用できない場合は、コンパイルしていないことを明記します。スライド、図の一覧、リントレポートを提出し、ナレーションの所要時間を調整するための write-talk-script と、本番前に確認するための rehearse-qa をユーザーに案内します。会場の発表者向け指示を確認し、発表枠の長さ、会場のアスペクト比、事前録画の要件を再確認するよう伝えます。

出力

  • talk/slides.md(Marp)または talk/slides.tex(Beamer):指定された発表時間に対して deck_lint.py で RISK がなく、発表者ノートの仮置きと補足スライドを含むもの。
  • talk/assets/:スライドで使用する論文の図。extract_figures.py で抽出し、Marp 用に変換したもの。
  • 削除した内容とその理由を記録する資料としての、スライド予算と図の一覧。

ガードレール

  • スライド用の結果、数値、比較を決して捏造しません。図や数値はすべて論文またはユーザーに由来するものとします。結果が未確定の場合は、明示的な [RESULT] プレースホルダーを使用し、引き渡し時にその旨を伝えます。
  • スライド上の引用を捏造してはいけません。引用するものはすべて verify-citations を通します。
  • 会場の発表者向け指示と採択通知メールを信頼できる情報源とし、記憶や会場情報から発表枠の長さ、会場形式、録画ルールを断定してはいけません。未確認の情報には UNVERIFIED と明記します。
  • 別の論文のスライドや文章をテンプレートとして、一括で持ち込んだり貼り付けたりしてはいけません。実例の調査は study-exemplars を通じて一時的に行います。
  • ユーザーに代わって、スライドをアップロードまたは提出してはいけません。

コメント