mcpField
P
paper-talk

paper-talk

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

paper-talk について

paper-talk は、完成した研究論文を学会発表資料に変換するエンドツーエンドのワークフロースキルです。アウトライン、Beamer ソース、編集可能な PPTX、発表者ノート、台本を作成し、保証レベルに応じて主張・引用・匿名性を監査します。

主な機能

  1. 01主張を先に示すスライド構成案の作成
  2. 02Beamer ソースと編集可能な PPTX の生成
  3. 03発表者ノートと台本の作成
  4. 04内容を保持したスライドのブラッシュアップ
  5. 05段階的な主張、引用、匿名性チェック

活用シーン

  1. 01完成した論文から学会発表を準備
  2. 02研究室セミナーやワークショップ用資料の作成
  3. 03発表資料の主張と引用のチェック

MCP 対応

Codex MCP の利用可否を確認し、Codex によるレビューを行うサブスキルを呼び出します。スライドのページ別ブラッシュアップでは、新規スレッドを使用します。

インストール

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

$npx skills add https://github.com/wanshuiyin/auto-claude-code-research-in-sleep --skill paper-talk

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

詳細

翻訳後に原文が更新されています。最新の内容は原文をご確認ください。

Paper Talk:論文から学会発表までのエンドツーエンドパイプライン

ワークフロー:完成した論文から、学会発表にすぐ使える成果物を作成します — スライドのアウトライン、Beamer ソース、編集可能な PPTX、発表者ノート、発表原稿全文、洗練されたビジュアル、品質保証チェックが含まれます。

パイプラインの対象:$ARGUMENTS

品質保証の段階

このスキルでは明示的な — assurance: 引数を指定します。デフォルトは polished です。

レベル実行するフェーズ用途
draft0 → 1 → 2 → 5 → 6内部練習用の発表、初稿のスライドを手早く作成
polished(デフォルト)0 → 1 → 2 → 3 → 5 → 6研究室セミナー、ワークショップ、通常の学会発表
conference-ready(または submission)0 → 1 → 2 → 3 → 4 → 5 → 6スライドの主張が精査される主要会議の口頭発表/スポットライト発表、または匿名投稿

フェーズ 4(品質保証チェック)は、— assurance: conference-ready を指定した場合にのみ実行されます。 下位レベルでは主張/引用/匿名性の監査を省略します。論文執筆の段階ですでに内容の監査が済んでいる場合は、これが適切です。

厳守すべき不変条件

以下は、すべてのフェーズで必ず守る必要があります。

  1. 元の論文は読み取り専用です。 このワークフローは論文ディレクトリを使用しますが、paper/main.tex やその他の論文成果物は変更しません。
  2. 元のスライド資料を保持します。 /paper-slides はベースラインのスライド資料を生成し、/slides-polish はバージョン番号付きの _polished コピーを書き出します。元の Beamer と PPTX は上書きされません。
  3. 発表者ノートのバイト列は不変です。 洗練の過程で slide.notes_slide の内容を変更してはいけません。フェーズ 4 で検証します。
  4. パイプライン全体を通じて、新しい内容を追加しません。 スライドのテキスト、発表者ノート、発表原稿、質疑応答への回答、主張、数値、引用、URL、著者名、所属、匿名性に関するプレースホルダー、実験結果はすべて、論文に根拠がある(PAPER_DIR/ の成果物から抽出された)か、ユーザーが明示的に提供したものでなければなりません。アウトライン作成、ビルド、洗練、監査、エクスポートの過程で内容を捏造することはありません。フェーズ 4 の匿名性スキャンと主張の監査で、これをエンドツーエンドで検証します。
  5. スライドの順序は変更しません。 追加/削除/並べ替えには、ユーザーによる明示的なフラグ指定が必要です。
  6. モデル間の独立性を維持します。 /slides-polish 内のページごとの Codex 呼び出しには、新しいスレッドを使用します(codex-reply は使用しません)。../shared-references/reviewer-independence.md を参照してください。
  7. 匿名性はフェイルクローズ方式で扱います。 いずれかの監査(または Codex による修正案)がプレースホルダーを実際のタイトル/件数/URL に置き換える場合、ワークフローは停止し、その修正案を人による確認に回します。../shared-references/experiment-integrity.md を参照してください。
  8. スタイルの参考資料は指針であり、テキストの出典ではありません。 — reference: で指定する PDF や — style: プリセットは、視覚的な重みや構成のリズムを参考にするためのものであり、参考資料から文章、例、スライドタイトル、発表者ノートのテキストをコピーしてはいけません。
  9. 必要な監査に合格しない限り、最終レポートを conference-ready にしてはいけません。 フェーズ 6 で監査結果を検証し、不合格の場合は判定を引き下げます。
  10. サブスキルが呼び出すすべての Codex 呼び出しでは、effort のレベルにかかわらず reasoning_effort: xhigh を不変条件とします。

定数

  • PAPER_DIR = paper/ — 元の論文ディレクトリ。位置引数で上書きできます。
  • OUTPUT_DIR = slides/ — スライド資料の出力先。
  • STATE_DIR = .aris/paper-talk/ — ワークフローの状態、監査ログ、最終レポートの保存先。
  • TALK_TYPE = spotlight — デフォルトの発表形式。/paper-slides に引き継がれます。
  • TALK_MINUTES = 15 — デフォルトの発表時間。/paper-slides に引き継がれます。
  • VENUE = NeurIPS — デフォルトの会議名(— style が指定されていない場合に /paper-slides の配色で使用)。
  • ASPECT_RATIO = 16:9 — /paper-slides に引き継がれます。
  • STYLE_PRESET — 指定がない場合は generic。/slides-polish では why-rf と会議名のプリセットを利用できます。
  • REFERENCE_VISUAL — assurance ≥ polished の場合に必須です。この発表の Beamer コンパイル結果を自己参照資料として使用できます。デフォルトを超えるビジュアルの一致を求める場合は、外部の学術発表 PDF が推奨されます。
  • AUTO_PROCEED = false — 主要な各フェーズの後に、ユーザーの承認を待ちます。明示的に依頼された場合に限り true に設定します。

入力

$ARGUMENTS とプロジェクトディレクトリから検出します。

  1. PAPER_DIR/ — コンパイル済みの論文(main.tex + main.pdf)。論文はすでに十分な状態である必要があります。このワークフローでは論文を執筆しません。
  2. PAPER_DIR/sections/*.tex — コンテンツ抽出用のセクションソース。
  3. PAPER_DIR/figures/ — スライドで再利用できる図。
  4. (任意)slides/SLIDE_OUTLINE.md — 既存のアウトライン(再開モード)。Phase 1 の生成をスキップします。
  5. (任意)— reference: <pdf> — /slides-polish 用の視覚的な基準。指定がなく、保証レベルでポリッシュが必要な場合は、ワークフローで Beamer の自己コンパイル結果を基準として使用します。
  6. (任意)— talk_type、— minutes、— style、— effort — Constants を参照してください。

出力レイアウト

ファイル名は /paper-slides の出力契約と一致します。このワークフローは名前を変更せずに利用するコンシューマーです。

slides/
├── SLIDE_OUTLINE.md                # Phase-1 outline (claim-first per slide)
├── main.tex                        # Beamer source (from /paper-slides)
├── main.pdf                        # compiled Beamer
├── presentation.pptx               # editable PPTX (from /paper-slides; emit name fixed by /paper-slides)
├── presentation_pre_polish.pptx    # snapshot before /slides-polish
├── presentation_polished.pptx      # /slides-polish output (when assurance ≥ polished)
├── presentation_polished.pdf       # rendered (LibreOffice or user-export)
├── speaker_notes.md                # per-slide notes (from /paper-slides)
├── TALK_SCRIPT.md                  # full word-for-word talk script + Q&A (from /paper-slides)
└── assets/                         # per-slide PNG previews

.aris/paper-talk/
├── PIPELINE_STATE.json             # phase pointer, status, timestamps
├── FINAL_REPORT.md                 # human-readable summary at end
├── audit-input/                    # Phase-4 staging copies of slide text + notes + script (so /paper-claim-audit and /citation-audit can run on slide content as a synthetic "paper")
│   ├── main.tex                    # \input{sections/slide_text.tex} \input{sections/notes.tex} \input{sections/script.tex}
│   ├── sections/
│   │   ├── slide_text.tex          # all visible slide bullets/titles/callouts as \section{Slide K}
│   │   ├── notes.tex               # speaker_notes.md → LaTeX, one \section per slide
│   │   └── script.tex              # TALK_SCRIPT.md → LaTeX, one \section per slide
│   ├── references.bib → ../../../paper/references.bib   # symlink to source paper bib for /citation-audit
│   ├── results/ → ../../../paper/results/                # symlink — claim audit needs real evidence
│   └── figures/ → ../../../paper/figures/                # symlink — citation audit may reference figure captions
└── audits/
    ├── slide_claim_audit.json      # 6-state verdict per claim (PASS/WARN/FAIL/NOT_APPLICABLE/BLOCKED/ERROR)
    ├── citation_audit.json         # citation existence / metadata
    ├── anonymity_scan.json         # placeholder discipline check
    └── export_integrity.json       # page-count / aspect / blank-slide / notes-preserved

監査用 JSON ファイルは、共通の 6 状態スキーマに従います。../shared-references/assurance-contract.md を参照してください。

ワークフロー

Phase 0: セットアップ
  1. 論文ディレクトリを検証します。ls $PAPER_DIR/main.tex $PAPER_DIR/main.pdf を実行します。ファイルがない場合 → 処理を停止し、コンパイル済みの論文を指定するようユーザーに求めます。
  2. 前提条件を確認します。
    • LaTeX:which xelatex pdflatex latexmk
    • PPTX のレンダリング:which soffice(LibreOffice ヘッドレス)— Phase 4 のエクスポート整合性チェックに必要です。利用できない場合は、PDF を手動でエクスポートするようユーザーに求めます。
    • PDF ツール:which pdfinfo pdftoppm(poppler)— /slides-polish の PNG レンダリングに必要です。
    • Codex MCP の利用可否。
    • python-pptx(python3 -c 'import pptx')。
  3. $ARGUMENTS から上書き値を解決します:talk_type、minutes、assurance、reference、style、effort。
  4. 状態を初期化します:.aris/paper-talk/PIPELINE_STATE.json に phase: 0、タイムスタンプ、解決したすべての上書き値を書き込みます。
  5. 再開モード:slides/SLIDE_OUTLINE.md が存在し、PIPELINE_STATE.json に最近の進行中の作業が示されている場合、ユーザーに確認します。最後の Phase から再開するか、新しく開始するかを尋ねます。
Phase 1: スライドアウトライン(チェックポイント)

目的:デッキの作成に着手する前に、ユーザーが承認する slides/SLIDE_OUTLINE.md を作成するか、既存のものを受け入れます。

slides/SLIDE_OUTLINE.md がすでに存在する場合は、その概要(スライド数、時間配分、スライドごとの主張の対応表)をユーザーに提示し、次のように尋ねます。

"既存のアウトラインを使用しますか(Y/n)?変更しますか?再生成しますか?"

存在しない場合は、/paper-slides の Phase 1 のみ(コンテンツ抽出 + スライドアウトライン生成)を委任します。/paper-slides がアウトラインを独自の状態に書き込み、その内容を slides/SLIDE_OUTLINE.md として採用します。

アウトラインには、スライドごとに次の内容を含める必要があります。

  • 主張を先に示すタイトル(トピックではなく、スライドの要点を示す)。
  • スライドごとに 1 つの主なアイデア。
  • 箇条書きの内容(段落ではなく、文の断片)。
  • 図・数式・コールアウトに関する注記。
  • 時間配分(秒)。
  • 次のスライドへの移行のきっかけ。
  • 発表者ノートのたたき台(1~3 文。Phase 2 で拡充)。

チェックポイント:アウトラインを提示します。デフォルトの動作では、ユーザーの承認まで一時停止します。ユーザーが無人実行を明示的に行っている場合に限り、AUTO_PROCEED = true を設定します。

Phase 2: ベースラインデッキの作成

承認済みのアウトラインから Beamer ソース + PPTX を生成するため、/paper-slides を呼び出します。

/paper-slides "<paper-dir>" — talk_type: <T> — minutes: <N> — venue: <V> — aspect: 16:9 — notes: true

ユーザーが最初に — style-ref: を渡していた場合は、それを引き継ぎます(ライター側)。Phase 3 のポリッシュでは、レビュー側にこれを渡してはなりません(不変条件 8 を参照)。

/paper-slides が生成する成果物(出力名は /paper-slides で固定):

  • slides/main.tex + slides/main.pdf(Beamer)
  • slides/presentation.pptx(編集可能な PPTX)
  • slides/speaker_notes.md
  • slides/TALK_SCRIPT.md

処理の戻り後、4 つの成果物が存在することを確認します。いずれかが欠けている場合は、診断情報を示して処理を停止します。出力名を変更してはなりません。後続の Phase はこれらの正確なパスに依存しています。

フェーズ 3:ビジュアルの仕上げ(assurance ≥ polished の場合)

assurance == draft の場合はスキップします。

生成したばかりの PPTX に対して、参照資料を指定して /slides-polish を実行します。ユーザーが — reference: を指定した場合は、それを使用します。指定がない場合は、Beamer のコンパイル結果(slides/main.pdf)をビジュアル参照として使用します。同じ講演向けの Beamer はデザイン意図を示すため、外部参照がない場合の適切な基準になります。

/slides-polish "slides/presentation.pptx" — reference: slides/main.pdf — style: <preset> — effort: <effort>

実行後、slides/presentation_polished.pptx が存在することを確認します。レンダリングツールを利用できる場合は、slides/presentation_polished.pdf も確認します。

仕上げフェーズでは、コンテンツを読み取り専用とします(「厳守事項」を参照)。/slides-polish が Codex の修正案によってコンテンツが変更されるとして BLOCKED 判定を出した場合は、そのブロックをユーザーに伝え、上書きせずに停止してください。

フェーズ 4:保証チェック(assurance == conference-ready の場合)

assurance ∈ {draft, polished} の場合はスキップします。

/paper-claim-audit と /citation-audit は、論文形式の入力(paper/main.tex + paper/sections/*.tex + paper/results/)を想定し、paper/ 内に JSON を出力します。スライドは構成が異なるため、このフェーズではまずスライドの成果物を合成論文ディレクトリにステージングし、その合成入力に対して監査を実行します。判定結果は、共通の 6 状態スキーマ(PASS、WARN、FAIL、NOT_APPLICABLE、BLOCKED、ERROR)を使用して .aris/paper-talk/audits/ に書き込まれます。詳しくは ../shared-references/assurance-contract.md を参照してください。

4.0 ステージングアダプター

ステージングした「論文」は、/paper-claim-audit と /citation-audit が想定するレイアウトを再現します。ルートに main.tex を置き、そこから sections/*.tex を \input{} で読み込み、さらに .bib ファイルと results/ + figures/ のシンボリックリンクを配置します。

.aris/paper-talk/audit-input/
├── main.tex
│   # contains: \input{sections/slide_text.tex}
│   #           \input{sections/notes.tex}
│   #           \input{sections/script.tex}
│   #           \bibliography{references}
├── sections/
│   ├── slide_text.tex      # one \section{Slide K — <title>} per slide; visible bullets, titles, callout text, in-slide \cite{...}
│   ├── notes.tex           # speaker_notes.md converted to LaTeX, one \section per slide
│   └── script.tex          # TALK_SCRIPT.md converted to LaTeX, one \section per slide
├── references.bib → ../../../paper/references.bib  # symlink to source paper bib (or copy if symlink not allowed)
├── results/ → ../../../paper/results/              # symlink — claim audit needs real evidence
└── figures/ → ../../../paper/figures/              # symlink — citation audit may reference figure captions

元の論文で異なる bib ファイル名(例:paper.bib)を使用している場合は、実際のファイルを反映してください。複数の bib ファイルを使用している場合は、すべてリンクしてください。

ステージングした「論文」はフェーズ 4 の実行中のみ存在し、ユーザーが — keep-audit-input を指定していない限り、フェーズ 6 で削除されます。

4.1 スライドの主張監査

ステージングした入力に対して /paper-claim-audit を実行します。対象範囲はスライドのテキスト + 発表者ノート + 講演スクリプト全文です。講演では、表示される箇条書きにはない、根拠のない主張が口頭部分に紛れ込むことがよくあるためです。

/paper-claim-audit ".aris/paper-talk/audit-input"

監査では、共通の 6 状態スキーマを使用した audit-input/PAPER_CLAIM_AUDIT.json が出力されます。これを .aris/paper-talk/audits/slide_claim_audit.json に移動し、パスの接頭辞をステージング前の状態に戻して、判定結果が合成論文のセクションではなくスライド K を参照するようにします。

いずれかの主張に対する判定が FAIL または BLOCKED の場合、フェーズ 6 の最終判定を conference-ready から polished に引き下げます。

4.2 引用監査

ステージングした入力に対して /citation-audit を実行します。スライド + ノート + スクリプト内の \cite{...} を DBLP / CrossRef で検証し、捏造された文献情報があれば指摘します。

/citation-audit ".aris/paper-talk/audit-input"

出力先 → .aris/paper-talk/audits/citation_audit.json(6 状態)。

4.3 匿名性スキャン

匿名投稿向けの会場で発表する場合、またはユーザーが — anonymous を指定した場合は、スライド + ノート + スクリプトをスキャンし、以下を確認します。

  • プレースホルダー([anonymized]、Withheld for anonymous review など)にすべき箇所に、実際の論文タイトルがないか。
  • 講演者自身の著者ブロック以外に、実際の著者名がないか。
  • 実際の投稿件数がないか。
  • 匿名性を損なう実際の URL がないか。

出力先 → .aris/paper-talk/audits/anonymity_scan.json(6 状態)。FAIL(実際の内容の漏洩)がある場合は、conference-ready 判定を阻止します。

フェーズ 5:最終エクスポートと整合性

最終 PPTX パスを解決します。

FINAL_PPTX = slides/presentation_polished.pptx  if Phase 3 ran
           = slides/presentation.pptx           if assurance == draft (Phase 3 skipped)

次に、以下を実行します。

  1. Beamer をクリーンに再コンパイルします:cd slides && latexmk -pdf -xelatex main.tex(CJK 以外の場合は pdflatex)。main.pdf のページ数がアウトラインのスライド数と一致することを確認します。
  2. FINAL_PPTX を PDF にレンダリングします:soffice --headless --convert-to pdf <FINAL_PPTX> -outdir slides/。利用できない場合は、ユーザーに確認を求めます。
  3. エクスポートの整合性チェック → .aris/paper-talk/audits/export_integrity.json(6-state):
    • PPTX-PDF のページ数 == Beamer-PDF のページ数。
    • アスペクト比 == 宣言された比率(デフォルトは 16:9)。
    • 完全に空白のスライドがないこと。
    • ベースラインでスピーカーノートがあったすべてのスライドで、スピーカーノートが保持されていること。フェーズ 3 を実行した場合は、presentation_pre_polish.pptx のノートと sha256 を照合します。フェーズ 3 をスキップした場合は、presentation.pptx 自身のノートと照合します(変更なし)。
    • 埋め込みフォントがプロジェクターでの使用に適していること(例:中国語には Calibri/Helvetica Neue/PingFang SC)。

整合性チェックに失敗した場合は、フェーズ 6 の判定を引き下げ、詳細をユーザーに提示します。

フェーズ 6:最終レポート

.aris/paper-talk/FINAL_REPORT.md に以下を記述します。

  • 判定:draft | polished | conference-ready(監査に失敗した場合は引き下げ)。
  • 成果物のパス:Beamer のソース/PDF、ベースライン PPTX、ポリッシュ済み PPTX、ポリッシュ済み PDF、ノート、スクリプト。
  • スライド数、時間の目標と予算。
  • 監査の概要(監査実行ごとに 1 行 + PASS/WARN/FAIL)。
  • 未解決の警告:ユーザーが手動で確認すべき、未解決の Codex ポリッシュメモ。
  • 次のステップ:例:「スライド N に実際の QR 画像を配置する」、「HF Daily Papers のスクリーンショットを確認する」、「25 分の予算を満たすかリハーサルで確認する」。

最終判定を conference-ready とするには、以下が必要です。

  • フェーズ 0~5 がすべて中断なく完了していること。
  • フェーズ 4 の監査 JSON がすべて PASS を返していること(監査のコンテンツ検出器に該当しない場合は NOT_APPLICABLE。例:スライドに引用がない場合)。 WARN、FAIL、BLOCKED、ERROR があれば、判定を引き下げます。
  • フェーズ 5 のエクスポート整合性チェックが PASS を返していること。
  • 匿名投稿が宣言されている場合、匿名性スキャンに FAIL がないこと。

それ以外の場合、レポートには合格した最高レベル(polished または draft)を記載し、conference-ready としなかった理由を、該当する監査 JSON と失敗した判定行を挙げて列挙します。

労力レベル

../shared-references/effort-contract.md を参照してください。

effort動作
liteサブスキルに引き継がれます。/slides-polish は lite(ブロッカーのみ)で実行されます。フェーズ 4 は引き続き、要求された保証レベルで実行されます — effort は監査のゲート条件ではなく、深さを制御します(../shared-references/assurance-contract.md を参照)。
balanced (デフォルト)標準パイプラインです。/slides-polish は balanced で実行されます。
max/slides-polish は max(すべてのスライドをページごとにレビュー)で実行されます。フェーズ 4 の監査では、すべての成果物を全体にわたって読み込みます。
beast/slides-polish は beast(2 回目のポリッシュ)で実行されます。フェーズ 4 の監査には拡張保証チェックが含まれ、最終レポートにはエグゼクティブサマリーが追加されます。

reasoning_effort: xhigh は不変です。

assurance と effort は独立した軸です。ユーザーは effort: lite, assurance: conference-ready を正当に組み合わせて、「パイプラインは高速に実行するが、最終確定前にすべての監査で判定を出す」という指定ができます。

パラメーターの引き継ぎ

/paper-talk "paper/" — talk_type: oral — minutes: 25 — assurance: conference-ready \
            — reference: ./refs/why_rf_2025.pdf — style: why-rf — effort: max

以下に引き継がれます。

  • /paper-slides(フェーズ 2):paper-dir、talk_type、minutes、venue、aspect、notes、執筆側で指定する場合は style-ref。
  • /slides-polish(フェーズ 3):ポリッシュ済み pptx の出力先、reference、style、effort。
  • /paper-claim-audit(フェーズ 4.1):スライドデッキの成果物に限定(論文は対象外)。
  • /citation-audit(フェーズ 4.2):スライドデッキ内の引用に限定。
  • 匿名性スキャン(フェーズ 4.3):インラインツール、外部スキルは使用しません。

使用しない場合

  • 論文がまだ完成していない、または主張が固まっていない場合は、まず /paper-writing を実行します。
  • ユーザーが求めているのが講演ではなくポスターの場合は、/paper-poster-html を使用します。
  • ユーザーがすでに完成したスライド資料を持っており、見た目を整えるだけでよい場合は、/slides-polish を直接使用します。/paper-talk では不要な再構築が発生します。
  • 講演の内容が論文と無関係な場合(一般講義、デモなど)。このオーケストレーションは論文に基づく講演を前提としています。アドホックなスライド資料には、手動でアウトラインを作成して /paper-slides を直接使用します。

関連するスキル

  • /paper-slides、/slides-polish、/paper-claim-audit、/citation-audit を組み合わせます。
  • デフォルトでは /kill-argument を呼び出しません。これは知的なストレステストの上流工程であり、スライド資料の品質保証ではありません。スライド作成前に講演のストーリーをストレステストしたいユーザーは、まず /kill-argument paper/ を実行できます。
  • /paper-writing(論文)および /paper-poster-html(ポスター)と対をなすワークフローです。

実証的な起源

このワークフローは、中国語で行われた学術会議の講演(2026年5月)で、30回以上にわたって反復されたブラッシュアップ作業を一般化したものです。そこから得られた知見は、講演の準備も論文の準備と同じく、計画、作成、ブラッシュアップ、監査、エクスポート、報告という流れであり、同じ品質保証の段階を活用できるということでした。ページごとに Codex でブラッシュアップする工程(フェーズ3)は、最もコストがかかる一方で最も価値の高いステップです。デフォルトで有効になっている polished の背後に隠されているため、ユーザーは意識せずにその恩恵を受けられます。

コメント