mcpField
P
paper-slides

paper-slides

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

paper-slides について

paper-slidesは、コンパイル済みの研究論文を、口頭発表、スポットライト、ポスター発表、招待講演向けのスライドにするスキルです。論文のストーリーに沿ってアウトラインとBeamer資料を作成し、会場別の配色、発表者ノート、コンパイル、レビューまで扱います。

主な機能

  1. 01論文からスライドアウトラインを作成
  2. 02発表形式に応じた枚数設計
  3. 03学会別のカラースキーム
  4. 04Beamer LaTeXの生成
  5. 05発表者ノートとPDF出力
  6. 06レビューと状態からの再開

活用シーン

  1. 01論文を基に発表資料を準備
  2. 02発表時間に合わせて内容を調整
  3. 03会場向け配色のBeamer資料を作成
  4. 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-talk3-5 分5-8課題 + 手法スライド 1 枚 + 結果 1 枚 + 結論
spotlight5-8 分8-12課題 + 手法 2 枚 + 結果 2 枚 + 結論
oral15-20 分15-22動機、手法の詳細、実験、分析を含む一連のストーリー
invited30-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:入力の検証とセットアップ
  1. 前提条件を確認:

    which pdflatex && which latexmk
    
  2. 論文の存在を確認:

    ls $PAPER_DIR/main.tex || ls $PAPER_DIR/main.pdf
    ls $PAPER_DIR/sections/*.tex
    ls $PAPER_DIR/figures/
    
  3. 既存のスライドをバックアップ:slides/ が存在する場合は、slides-backup-{timestamp}/ にコピーします

  4. 出力ディレクトリを作成:mkdir -p slides/figures

  5. CJK を検出:論文に中国語/日本語/韓国語が含まれる場合、ENGINE を xelatex に設定します

  6. スライド枚数を決定:上の表に従って TALK_TYPE と TALK_MINUTES から決定します

  7. 再開可能か確認: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分以上)の場合を除きます

各スライドに含めるもの:

  1. \frametitle{}
  2. コンテンツ(itemize または図+キャプション)
  3. \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回):

  1. エラーログを解析する
  2. 修正する:パッケージの不足、コマンドの未定義、ファイルが見つからない、ボックスのオーバーフル
  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{} ブロックがあることを確認します。

  1. 話す内容(会話調の完全な文を2~3文)
  2. 時間の目安(例:「ここに1分かける」「短めに、20秒」)
  3. 次のスライドへのつなぎの言葉(例:「では、これを実際にどのように実装するのでしょうか。お見せします……」)

バックアップとして、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 を作成します。

  1. 正しいアスペクト比で PPTX を作成する(16:9 → 13.33" x 7.5"、4:3 → 10" x 7.5")
  2. beamer の各フレームについて:
    • 一致するレイアウトでスライドを作成する
    • タイトルは会場のメインカラーで太字にする
    • 箇条書きには会場のアクセントカラーのマーカーを付ける
    • 図を画像として埋め込む(slides/figures/ から)
    • 発表者ノートを PPTX のノート欄に転記する
  3. タイトルスライドには特別な書式を適用する(中央揃え、タイトルを大きくする)
  4. 「Thank You」スライドのテキストを中央揃えにする
  5. 全体に会場の配色を適用する
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
パラメーターデフォルト説明
venueNeurIPS配色に使用する会議
talk_typespotlight口頭発表/スポットライト/ポスター発表/招待講演
minutes15発表時間
aspect16:9アスペクト比(16:9 / 4:3)
notestrue発表者ノートを生成
enginepdflatexLaTeX エンジン
auto proceedfalseチェックポイントをスキップ

コメント