paper-slides について
paper-slidesは、コンパイル済みの研究論文を、口頭発表、スポットライト、ポスター発表、招待講演向けのスライドにするスキルです。論文のストーリーに沿ってアウトラインとBeamer資料を作成し、会場別の配色、発表者ノート、コンパイル、レビューまで扱います。
主な機能
- 01論文からスライドアウトラインを作成
- 02発表形式に応じた枚数設計
- 03学会別のカラースキーム
- 04Beamer LaTeXの生成
- 05発表者ノートとPDF出力
- 06レビューと状態からの再開
活用シーン
- 01論文を基に発表資料を準備
- 02発表時間に合わせて内容を調整
- 03会場向け配色のBeamer資料を作成
- 04中断したスライド作成を再開
MCP 対応
生成した発表資料をCodex MCPでレビューする工程があります。レビュー経路では、設定済みの別のレビュアーも選択できます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ wanshuiyin/ auto-claude-code-research-in-sleep --skill paper-slidesインストール後、Claude Code で/paper-slidesを入力して読み込まれたか確認します。
詳細
論文スライド:論文からカンファレンストークへ
各レビュアー枠の前に、選択可能なレビュアーに従ってください: 呼び出しを解決 →
.aris/reviewer.json→ Claude Code のデフォルト(Codex MCP)reviewer_route.pyを正規のヘルパーリゾルバー経由で使用し、この 枠のティア、新鮮なコンテキスト、ソース/画像入力、決定論的ゲートを維持します。 以下の Codex の例/固定設定はbackend=codexの場合にのみ適用されます。それ以外のルートでは、 それぞれの初回呼び出し/応答の契約を使用します。ルートと実際に返された ID を保存してください。 選択したバックエンドを利用できない場合はREVIEW_UNAVAILABLEとします。実際の ファミリー/完了状況/スコープに基づいて受け入れを分類します。 呼び出し元のレビュアー/モデル/推論レベルのオーバーライドを、 レビュアーを含む子プロセスに渡します。生成ワーカーに変更はありません。
次の内容からカンファレンス発表スライドを生成します:$ARGUMENTS
コンテキスト
このスキルはワークフロー 3(/paper-writing)の後に実行します。完成した論文から、カンファレンスの口頭発表、スポットライト発表、ポスターのライトニングトーク用のスライドデッキを生成します。
ポスター(1 ページでビジュアルを重視)とは異なり、スライドは時間軸に沿ったストーリーを伝えます。各スライドは前のスライドを受けて展開し、研究のナラティブを段階的に明らかにします。優れたトークでは、何をしたかを示す前に、聴衆になぜ重要なのかを理解してもらいます。
定数
- VENUE =
NeurIPS— 対象の会場です。配色を決定します。対応:NeurIPS、ICML、ICLR、AAAI、ACL、EMNLP、CVPR、ECCV、GENERIC。引数で上書きできます。 - TALK_TYPE =
spotlight— トーク形式です。選択肢:oral(15~20 分)、spotlight(5~8 分)、poster-talk(3~5 分)、invited(30~45 分)。スライド枚数と内容の深さを決定します。 - TALK_MINUTES = 15 — トーク時間(分)です。スライド枚数を自動調整します(口頭発表では約 1 分につき 1 枚、スポットライトでは約 1 分につき 1.5 枚)。必要に応じて明示的に上書きしてください。
- ASPECT_RATIO =
16:9— スライドのアスペクト比です。選択肢:16:9(デフォルト。最新のプロジェクター向け)、4:3(旧規格)。 - SPEAKER_NOTES = true — beamer に
\note{}ブロックを生成し、対応する PPTX のノートも生成します。ノートなしのシンプルなスライドにする場合はfalseに設定します。 - PAPER_DIR =
paper/— 完成した論文を格納するディレクトリです。 - OUTPUT_DIR =
slides/— すべてのスライドファイルの出力先ディレクトリです。 - REVIEWER_MODEL =
gpt-6-astra— Codex MCP 経由のスライドレビューに使用するモデルです。 - AUTO_PROCEED = false — 各チェックポイントで、必ずユーザーの明示的な確認を待ちます。
- COMPILER =
latexmk— LaTeX ビルドツールです。 - ENGINE =
pdflatex— LaTeX エンジンです。CJK テキストにはxelatexを使用します。
💡 上書きの例:
/paper-slides "paper/" — talk_type: oral, venue: ICML, minutes: 20, aspect: 4:3
オプション:スタイル参照(— style-ref: <source>、オプトイン)
参照論文に合わせて、トークの構成上のリズム(ストーリーの展開、定理の密度、参照元論文から引き継ぐ図の密度)を調整できます。デフォルトでは無効です。ユーザーが — style-ref を指定しない場合、従来どおり何も変更しません。
$ARGUMENTS に — style-ref: <source> が含まれる場合に限り、最初にヘルパーを実行します:
# Resolve $STYLE_HELPER via the canonical strict-safe chain (see
# shared-references/integration-contract.md §2). Policy A — gate:
# unresolved helper means --style-ref cannot be satisfied, so abort.
cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" || exit 1
if [ -z "${ARIS_REPO:-}" ] && [ -f .aris/installed-skills.txt ]; then
ARIS_REPO=$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills.txt 2>/dev/null) || true
fi
if [ -z "${ARIS_REPO:-}" ] && [ -f "$HOME/.aris/repo" ]; then
ARIS_REPO=$(cat "$HOME/.aris/repo" 2>/dev/null) || true
fi
STYLE_HELPER=".aris/tools/extract_paper_style.py"
[ -f "$STYLE_HELPER" ] || STYLE_HELPER="tools/extract_paper_style.py"
[ -f "$STYLE_HELPER" ] || { [ -n "${ARIS_REPO:-}" ] && STYLE_HELPER="$ARIS_REPO/tools/extract_paper_style.py"; }
[ -f "$STYLE_HELPER" ] || {
echo "ERROR: extract_paper_style.py not resolved at .aris/tools/, tools/, \$ARIS_REPO/tools/, or via ~/.aris/repo." >&2
echo " Fix: rerun bash tools/install_aris.sh or smart_update.sh (refreshes ~/.aris/repo), export ARIS_REPO, or copy the helper to tools/." >&2
echo " --style-ref cannot be satisfied; aborting." >&2
exit 1
}
STYLE_STATUS=0
CACHE=$(python3 "$STYLE_HELPER" --source "<source>") || STYLE_STATUS=$?
case "$STYLE_STATUS" in
0) ;; # use $CACHE/style_profile.md as structural guidance
2) echo "warning: style-ref skipped (missing optional dep)" >&2 ;;
3) echo "error: --style-ref source failed; aborting slides" >&2 ; exit 1 ;;
*) echo "error: helper failed unexpectedly; aborting slides" >&2 ; exit 1 ;;
esac
対応するソース:ローカルの TeX ディレクトリ/ファイル、ローカル PDF、arXiv ID、http(s) URL。Overleaf の URL/ID は受け付けません。まず /overleaf-sync setup <id> でクローンし、ローカルのクローンパスを指定してください。
厳格なルール(契約の全容は tools/extract_paper_style.py の docstring を参照):
style_profile.mdを使用し、セクション配分の傾向と定理環境の密度を合わせます。ただし、上記のトーク形式に応じたスライド枚数が優先されます。- キャッシュから参照可能な内容に含まれるスピーカーノートの文章、スライドタイトル、例を決してコピーしないでください。トークの内容は参照論文ではなく、ユーザーの論文に基づきます。
— style-ref(またはキャッシュの内容)を GPT-6-Astra レビュアーサブエージェントに決して渡さないでください。レビュアーはトークの明瞭さを、それ自体の品質に基づいて判断する必要があります。
トークの種類 → スライド枚数
| トークの種類 | 所要時間 | スライド | 内容の深さ |
|---|---|---|---|
poster-talk | 3-5 分 | 5-8 | 課題 + 手法スライド 1 枚 + 結果 1 枚 + 結論 |
spotlight | 5-8 分 | 8-12 | 課題 + 手法 2 枚 + 結果 2 枚 + 結論 |
oral | 15-20 分 | 15-22 | 動機、手法の詳細、実験、分析を含む一連のストーリー |
invited | 30-45 分 | 25-40 | 包括的な内容:背景、関連研究、手法の詳細、豊富な結果、考察 |
会場の配色
/paper-poster-html と同じです:
| 会場 | プライマリ | アクセント | 背景 | テキスト |
|---|---|---|---|---|
| NeurIPS | #8B5CF6 | #2563EB | #FFFFFF | #1E1E1E |
| ICML | #DC2626 | #1D4ED8 | #FFFFFF | #1E1E1E |
| ICLR | #059669 | #0284C7 | #FFFFFF | #1E1E1E |
| CVPR | #2563EB | #7C3AED | #FFFFFF | #1E1E1E |
| GENERIC | #334155 | #2563EB | #FFFFFF | #1E1E1E |
状態の永続化(簡易リカバリー)
各フェーズの後に、状態を slides/SLIDES_STATE.json に保存します:
{
"phase": 3,
"venue": "NeurIPS",
"talk_type": "spotlight",
"slide_count": 10,
"codex_thread_id": "019cfcf4-...",
"status": "in_progress",
"timestamp": "2026-03-18T15:00:00"
}
起動時:SLIDES_STATE.json が存在し、"status": "in_progress" で、かつ 24 時間以内の場合は再開します。それ以外の場合は新規に開始します。
ワークフロー
フェーズ 0:入力の検証とセットアップ
-
前提条件を確認:
which pdflatex && which latexmk -
論文の存在を確認:
ls $PAPER_DIR/main.tex || ls $PAPER_DIR/main.pdf ls $PAPER_DIR/sections/*.tex ls $PAPER_DIR/figures/ -
既存のスライドをバックアップ:
slides/が存在する場合は、slides-backup-{timestamp}/にコピーします -
出力ディレクトリを作成:
mkdir -p slides/figures -
CJK を検出:論文に中国語/日本語/韓国語が含まれる場合、ENGINE を
xelatexに設定します -
スライド枚数を決定:上の表に従って TALK_TYPE と TALK_MINUTES から決定します
-
再開可能か確認:
slides/SLIDES_STATE.jsonが存在する場合は読み取ります
状態:phase: 0 を指定して SLIDES_STATE.json に書き込みます。
フェーズ 1:コンテンツの抽出とスライド構成案
paper/sections/*.tex を読み込み、スライドごとの構成案を作成します。
トークの種類ごとのスライドテンプレート:
Oral(15-22 枚)
| スライド | 目的 | コンテンツの出典 | 図? |
|---|---|---|---|
| 1 | タイトル | 論文のメタデータ | いいえ |
| 2 | 概要 | セクション見出し | いいえ |
| 3-4 | 動機と課題 | 序論 | 任意 |
| 5 | 主要な洞察 | 序論(貢献) | いいえ |
| 6-9 | 手法 | 手法のセクション | はい(メイン図) |
| 10-14 | 結果 | 実験 | はい(各スライド) |
| 15-16 | 分析/アブレーション | 実験 | はい |
| 17 | 限界 | 結論 | いいえ |
| 18 | 結論/要点 | 結論 | いいえ |
| 19 | 謝辞 + QR | — | QR コード |
Spotlight(8-12 枚)
| スライド | 目的 | コンテンツの出典 | 図? |
|---|---|---|---|
| 1 | タイトル | 論文のメタデータ | いいえ |
| 2-3 | 課題 + 重要性 | 序論 | 任意 |
| 4 | 主要な洞察 | 貢献 | いいえ |
| 5-6 | 手法 | 手法(要約版) | はい(メイン図) |
| 7-9 | 結果 | 主な結果のみ | はい |
| 10 | 要点 | 結論 | いいえ |
| 11 | 謝辞 + QR | — | QR コード |
Poster-talk(5-8 枚)
| スライド | 目的 | コンテンツの出典 | 図? |
|---|---|---|---|
| 1 | タイトル | 論文のメタデータ | いいえ |
| 2 | 課題 | 序論(1 枚) | いいえ |
| 3 | 手法 | 手法(1 枚) | はい |
| 4-5 | 結果 | 主な結果のみ | はい |
| 6 | 要点 + QR | 結論 | QR |
各スライドについて、以下を指定します:
- タイトル(最大 8 語)
- 箇条書き 3-5 項目(各項目は最大 8 語)
- 図の参照(該当する場合。paper/figures/ から指定)
- 発表者ノート(話す内容を 2-3 文で記述)
- 時間配分(秒単位)
出力:slides/SLIDE_OUTLINE.md
🚦 チェックポイント:
📊 Slide outline ready:
- Talk type: [TALK_TYPE] ([TALK_MINUTES] min)
- Slide count: [N] slides
- Figures used: [N] from paper/figures/
- Time budget: [breakdown]
Slide-by-slide outline:
1. [Title slide]
2. [Motivation — 1.5 min]
3. [Problem statement — 1 min]
...
Proceed to drafting? Or adjust the outline?
⛔ ここで停止し、ユーザーの応答を待ちます。 これは最も重要なチェックポイントです。構成案によって、トーク全体の流れが決まります。
選択肢:
- "go" → フェーズ 2 に進む
- 調整(例:「スライド 3-4 を統合する」「デモスライドを追加する」「アブレーションを削る」)→ 修正する
- "stop" →
slides/SLIDE_OUTLINE.mdに保存する
状態:phase: 1 を指定して SLIDES_STATE.json に書き込みます。
Phase 2: スライドごとのコンテンツ作成
アウトラインの各スライドについて、実際のコンテンツを作成します。
プレゼンテーションのルール(厳守):
| ルール | 理由 |
|---|---|
| スライド1枚につきメッセージは1つ | スライドにアイデアが2つある場合は、分割します |
| 1枚あたり最大6行 | 6行を超えると、文字が多すぎます |
| 1行あたり最大8語 | テキストが長いと、聴衆は話を聞かずに読むことになります |
| 文ではなく、文の断片を使う | 「F1が3.2%向上」。「私たちの手法はF1スコアを3.2パーセントポイント向上させます」ではありません |
| 図を使うスライド:図が面積の60%以上を占める | 図そのものがコンテンツです。箇条書きは注釈です |
| 重要な数値は太字にする | 「精度 94.3% を達成」 |
| 段階的に情報を開示する | 複雑なスライドでは \pause または \onslide を使用します |
| 関連研究のスライドは設けない | 招待講演(30分以上)の場合を除きます |
各スライドに含めるもの:
\frametitle{}- コンテンツ(itemize または図+キャプション)
\note{}(SPEAKER_NOTES=true の場合は発表者用テキスト)
Phase 3: スライドの LaTeX を生成
beamer を使用して slides/main.tex を作成します。
テンプレートの構成:
\documentclass[aspectratio=169]{beamer}
% Venue theme
\usepackage{xcolor}
\definecolor{primary}{HTML}{VENUE_PRIMARY}
\definecolor{accent}{HTML}{VENUE_ACCENT}
% Clean theme
\usetheme{default}
\usecolortheme{default}
\setbeamercolor{frametitle}{fg=primary}
\setbeamercolor{title}{fg=primary}
\setbeamercolor{structure}{fg=accent}
\setbeamercolor{itemize item}{fg=primary}
\setbeamercolor{itemize subitem}{fg=accent}
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{footline}{
\hfill\insertframenumber/\inserttotalframenumber\hspace{2mm}\vspace{2mm}
}
% Packages
\usepackage{graphicx,amsmath,booktabs}
\graphicspath{{figures/}}
% Speaker notes (if enabled)
% \setbeameroption{show notes on second screen=right}
% Metadata
\title{PAPER TITLE}
\author{Author 1 \and Author 2}
\institute{Affiliation}
\date{VENUE YEAR}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
% Content slides follow...
\begin{frame}{Motivation}
\begin{itemize}
\item Bullet point 1
\item Bullet point 2
\item \textbf{Key insight in bold}
\end{itemize}
\note{Speaker note: explain the motivation...}
\end{frame}
% Figure slide example
\begin{frame}{Method Overview}
\centering
\includegraphics[width=0.85\textwidth]{method_overview.pdf}
\vspace{0.5em}
\begin{itemize}
\item Key annotation about the figure
\end{itemize}
\note{Walk through the figure left to right...}
\end{frame}
% ... more slides ...
\begin{frame}{Thank You}
\centering
{\Large Questions?}\\[2em]
Paper: [URL or QR placeholder]\\
Code: [URL or QR placeholder]
\end{frame}
\end{document}
図へのシンボリックリンクを作成:
ln -sf ../paper/figures/*.pdf slides/figures/ 2>/dev/null
ln -sf ../paper/figures/*.png slides/figures/ 2>/dev/null
主な書式ルール:
- タイトルのフォント:28pt 以上、会場のメインカラー
- 本文のフォント:20pt 以上
- 脚注:14pt 以上
- ナビゲーション記号は使用しない
- フレーム番号は右下に配置
- すっきりとした白い背景(グラデーションや装飾要素は使用しない)
Phase 4: スライドをコンパイル
cd slides && latexmk -$ENGINE -interaction=nonstopmode main.tex
エラー対応ループ(最大3回):
- エラーログを解析する
- 修正する:パッケージの不足、コマンドの未定義、ファイルが見つからない、ボックスのオーバーフル
- 再コンパイルする
検証:
# Check slide count matches outline
pdfinfo slides/main.pdf | grep Pages
ページ数がアウトラインと大きく異なる(スライド数の差が2枚を超える)場合は、原因を調査します。
状態:phase: 4 を含む SLIDES_STATE.json を書き込みます。
Phase 5: Codex MCP によるレビュー
スライドのアウトラインと選択した LaTeX フレームを GPT-6-Astra xhigh に送信します。
まずこのレビュアー枠を解決してください。以下は
backend=codexの例です。
mcp__codex__codex:
model: gpt-6-astra
config: {"model_reasoning_effort": "xhigh"}
prompt: |
Review this [TALK_TYPE] presentation ([TALK_MINUTES] min) for [VENUE].
Evaluate using these criteria (score 1-5 each):
1. **Story arc** — Does the talk build a compelling narrative? (Problem → insight → method → evidence → takeaway)
2. **Slide density** — Any slides with too much text? (Max 6 lines, 8 words/line)
3. **Time budget** — Is [N] slides realistic for [TALK_MINUTES] minutes?
4. **Figure visibility** — Will figures be readable on a projector?
5. **Opening hook** — Do slides 2-3 grab attention? (Not "In this paper, we...")
6. **Takeaway** — Is the final message clear and memorable?
7. **Progressive build** — Are complex ideas revealed gradually?
Slide outline:
[PASTE SLIDE_OUTLINE.md]
Selected frames (LaTeX):
[PASTE KEY FRAMES]
Provide:
- Score for each criterion
- Top 3 actionable fixes
- Overall: Ready to present? (Yes / Needs revision / Major issues)
修正を適用します。LaTeX を変更した場合は再コンパイルします。
選択したレビュアーを利用できない場合は、
SLIDES_STATE.jsonにREVIEW_UNAVAILABLEを記録してください。既存の下書きのみで Phase 6 に進む手順は維持し、レビュー済みと表示したり、プロバイダーを変更したりしないでください。
レビューを slides/SLIDES_REVIEW.md に保存します。
状態:phase: 5 を含む SLIDES_STATE.json を書き込みます。
Phase 6: 発表者ノート
各スライドに、次の内容を含む \note{} ブロックがあることを確認します。
- 話す内容(会話調の完全な文を2~3文)
- 時間の目安(例:「ここに1分かける」「短めに、20秒」)
- 次のスライドへのつなぎの言葉(例:「では、これを実際にどのように実装するのでしょうか。お見せします……」)
バックアップとして、slides/speaker_notes.md も単独のファイルとして生成します。
# Speaker Notes
## Slide 1: Title
[No speaking — wait for introduction]
## Slide 2: Motivation
"Thank you. So let me start with the problem we're trying to solve..."
[Time: 1.5 min]
## Slide 3: Problem Statement
"Specifically, the challenge is..."
→ Transition: "To address this, our key insight is..."
[Time: 1 min]
...
状態:phase: 6 を含む SLIDES_STATE.json を書き込みます。
Phase 7: PowerPoint へのエクスポート
python-pptx を使用して、編集可能な PPTX を生成します。
python3 -c "import pptx" 2>/dev/null || pip install python-pptx
以下の内容を含む slides/generate_pptx.py を作成します。
- 正しいアスペクト比で PPTX を作成する(16:9 → 13.33" x 7.5"、4:3 → 10" x 7.5")
- beamer の各フレームについて:
- 一致するレイアウトでスライドを作成する
- タイトルは会場のメインカラーで太字にする
- 箇条書きには会場のアクセントカラーのマーカーを付ける
- 図を画像として埋め込む(slides/figures/ から)
- 発表者ノートを PPTX のノート欄に転記する
- タイトルスライドには特別な書式を適用する(中央揃え、タイトルを大きくする)
- 「Thank You」スライドのテキストを中央揃えにする
- 全体に会場の配色を適用する
cd slides && python3 generate_pptx.py
# Output: slides/presentation.pptx
⚠️
python-pptxがインストールされていない場合は、次の注記を付けてスキップしてください。「PowerPoint へのエクスポートを有効にするには、pip install python-pptxをインストールしてください。」
状態:phase: 7 を含む SLIDES_STATE.json を書き込みます。
Phase 8: 講演全体の台本
講演の完全な逐語台本として、slides/TALK_SCRIPT.md を生成します。
これは簡潔なリマインダーである発表者ノートとは異なります。講演台本は、声に出して読んだり、練習に使ったりできる完全な原稿です。
# Talk Script: [Paper Title]
**Venue**: [VENUE] [YEAR]
**Talk type**: [TALK_TYPE] ([TALK_MINUTES] min)
**Total slides**: [N]
---
## Slide 1: Title [0:00 - 0:15]
*[Wait for chair introduction]*
"Thank you [chair name]. I'm [author] from [affiliation], and today I'll be talking about [short title]."
---
## Slide 2: Motivation [0:15 - 1:30]
"Let me start with the problem. [Describe the real-world motivation in accessible terms]. This matters because [impact statement].
The current state of the art approaches this with [brief existing approach]. But there's a fundamental limitation: [gap statement]."
→ *Transition*: "So what's our key insight?"
---
## Slide 3: Key Insight [1:30 - 2:30]
"Our key observation is that [core insight in one sentence].
This leads us to propose [method name], which [one-sentence description]."
→ *Transition*: "Let me walk you through how this works."
---
## Slide 4-N: [Continue for each slide...]
...
---
## Slide [N]: Thank You [TALK_MINUTES:00]
"To summarize: we've shown that [main result]. The key takeaway is [memorable final message].
The paper and code are available at the QR code on screen. I'm happy to take questions."
---
## Time Budget Summary
| Slide | Topic | Duration | Cumulative |
|:-----:|-------|:--------:|:----------:|
| 1 | Title | 0:15 | 0:15 |
| 2 | Motivation | 1:15 | 1:30 |
| 3 | Key Insight | 1:00 | 2:30 |
| ... | ... | ... | ... |
| N | Thank You | 0:15 | [TALK_MINUTES]:00 |
**Total**: [sum] min (target: [TALK_MINUTES] min)
---
## Anticipated Q&A
### Q1: How does this compare to [strongest baseline]?
**A**: "[Specific comparison with numbers]. Our advantage is particularly clear in [specific scenario], where we see [X%] improvement."
### Q2: What are the main limitations?
**A**: "[Honest answer]. We see this as [future work direction]."
### Q3: How computationally expensive is this?
**A**: "[Training/inference cost]. Compared to [baseline], our method requires [comparison]."
### Q4: Does this generalize to [related domain]?
**A**: "[Answer based on paper's discussion section]."
### Q5: What's the most surprising finding?
**A**: "[Interesting insight from the experiments]."
### Q6: How sensitive is the method to [hyperparameter/design choice]?
**A**: "[Reference ablation study if available]."
### Q7: What's the next step for this research?
**A**: "[Future work from conclusion]."
### Q8: [Domain-specific question]
**A**: "[Answer]."
最終出力の概要
📊 Slide generation complete:
- Talk type: [TALK_TYPE] ([TALK_MINUTES] min) for [VENUE]
- Files:
slides/
├── main.tex # Beamer LaTeX source
├── main.pdf # Compiled slides (primary output)
├── presentation.pptx # Editable PowerPoint
├── SLIDE_OUTLINE.md # Slide-by-slide outline
├── SLIDES_REVIEW.md # GPT-6-Astra review feedback
├── speaker_notes.md # Per-slide speaker notes
├── TALK_SCRIPT.md # Full word-for-word talk script + Q&A
├── SLIDES_STATE.json # State persistence
├── generate_pptx.py # PPTX generation script
└── figures/ # Symlinked from paper/figures/
Next steps:
1. Practice with TALK_SCRIPT.md (read aloud, time yourself)
2. Edit presentation.pptx for visual tweaks (animations, custom graphics)
3. Review Anticipated Q&A section before the talk
4. Do a dry run with a colleague
状態:phase: 8, status: "completed" を含む SLIDES_STATE.json を書き込みます。
推奨する次のステップ:/slides-polish
このスキルで最初の Beamer + PPTX を作成した後に生じやすいずれは、コンテンツではなく、タイポグラフィの比率とスライドごとのレイアウトです。/slides-polish を生成後の集中仕上げフェーズとして実行してください。参照ビジュアル(例:以前の学術発表)に照らしてページごとに Codex でレビューし、PPTX のフォントサイズをプロジェクターで読みやすいサイズに調整し、テキストフレームのはみ出しを修正し、修正パターンのカタログ(イタリック体のスタイル漏れ、em ダッシュの間隔、画像のアスペクト比、中国語フォントのヒント、匿名化用プレースホルダー)を適用します。
/slides-polish はコンテンツを読み取り専用で扱い(主張/数値/引用の編集は行いません)、発表者ノートをそのまま保持します。実行方法:
/slides-polish slides/ — reference: <ref-pdf> [— style: generic | why-rf | <venue>]
短いスライドデッキ(5 枚未満)の場合や、全面的な再設計が必要な場合は実行せず、代わりに /paper-slides を再実行してください。
主なルール
- 大きなファイルの処理:Write ツールがファイルサイズを理由に失敗した場合は、直ちに Bash(
cat << 'EOF' > file)を使って、分割して書き込む形で再試行してください。ユーザーの許可を求めず、黙って実行してください。 - スライドごとにメッセージは1つ。 1枚のスライドにアイデアが2つある場合は、2枚に分けてください。
- データを捏造しないでください。 数値はすべて
paper/sections/*.texに記載されたものを使用してください。 - 箇条書きのみ — スライド上で完全な文は使わないでください。文の断片は使用できます。
- 図表スライド:図表がスライド面積の60%以上を占めること。 図表がコンテンツそのものです。
- 段階的開示:複雑な手法のスライドでは
\pauseまたは\onslideを使用してください。 - AI らしさを抑える仕上げ:スライドのテキストと発表スクリプトから、避けるべき表現をすべて取り除いてください。
- 引用をでっち上げないでください。 論文で引用されている文献のみを参照してください。
- 冒頭のつかみが重要です:「In this paper, we...」で始めず、問題提起や挑発的な問いから始めてください。
- 最小フォントサイズ:タイトルは28pt以上、本文は20pt以上、脚注は14pt以上。
- Feishu の通知は任意です。
~/.claude/feishu.jsonが存在する場合は通知を送信してください。存在しない場合はスキップしてください。
パラメーターの引き継ぎ
/paper-slides "paper/" — talk_type: oral, venue: ICML, minutes: 20, aspect: 4:3, notes: false
| パラメーター | デフォルト | 説明 |
|---|---|---|
venue | NeurIPS | 配色に使用する会議 |
talk_type | spotlight | 口頭発表/スポットライト/ポスター発表/招待講演 |
minutes | 15 | 発表時間 |
aspect | 16:9 | アスペクト比(16:9 / 4:3) |
notes | true | 発表者ノートを生成 |
engine | pdflatex | LaTeX エンジン |
auto proceed | false | チェックポイントをスキップ |