Communitygithub.com

Peytontalismanic424/paper-share-skills

論文PDFを、MinerU、SUSTech Beamerスライド、中国語ナレーション、横長・縦長動画、メタデータゲート、Bilibiliアップロードまで一貫してオーケストレーションします。単一論文・バッチスライド、動画、Bilibiliフェーズに対応。論文フル→Bilibiliリクエスト、PDF→動画公開、バッチ論文公開でトリガー。

paper-share-skills とは?

このスキルは、学術論文PDFをBilibili公開用の完全なパイプラインに変換するエージェント指向のオーケストレーターです。内部では、MinerUで論文を解析し、SUSTech Beamerテンプレート(16:10)のスライドを生成、各ページに洗練された簡体字中国語のナレーションを付与し、横長・縦長の動画を合成、カバー画像とBilibiliメタデータを検証した上でアップロードします。バッチ処理(papers.json入力)と段階ごとの状態管理(pending→uploadedの8段階)を備え、各ステップで厳格な品質ゲート(フレーム数、音声、メタデータスキーマなど)を通過しないと次のフェーズへ進みません。兄弟スキル(paper-slides-to-video、paper-bilibili-uploader等)と協調動作し、ディスク上の成果物を原子的一貫性をもって更新します。

対応✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/Peytontalismanic424/paper-share-skills/tree/HEAD/paper-to-bilibili

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Paper → Bilibili

これは唯一の完全パイプラインオーケストレーションIDです。以下の推奨パッケージと維持管理対象のRednoteワークフローを結合します。

  • paper-to-beamer: 論文とMinerUコンテンツをコンパイル済み16:10 SUSTech Beamerスライドに変換。
  • paper-video-cover: 参考用のポスター生成(オプション)。通常のビデオカバーは生成されたカバー成果物が使用されます。
  • paper-slides-to-video: 物理ページレンダリング、ナレーション抽出、TTS、横長アセンブリ、カバー、Bilibiliメタデータ。
  • rednote-video-uploader(管理対象): 必須の縦長動画生成。
  • paper-bilibili-uploader: クローズドな検証、ドライラン、アップロード、永続的なレシート。

出力は $PP_ROOT/論文共有/<会議名 年 - 短縮名>/ 以下に md_output/、slides-beamer/、video/ として保存されます。

モードとフェーズ

slides: 論文からコンパイル済みスライドへ

エントリに空でない arxiv_id がある(またはユーザーがarXivリンクを提供した)が、ディスク上にソースが存在しない(ルートPDFがない、paper_src/ に .tex がない)場合、まずTeXソースをダウンロードします。

python \
  "<SKILLS_DIR>/paper-download-arxiv-paper-source/scripts/download_source.py" \
  "<arxiv_id>" --output "<paper_dir>"

ダウンローダーは <paper_dir>/arXiv-<id>.tar.gz + <paper_dir>/paper_src/ を作成します。その後 skill://paper-to-beamer のフェーズ1以降を実行します(フェーズ1の移動手順は、ペーパーディレクトリが既に存在するためスキップされます)。PDF_ONLY 出力の場合は、PDFをペーパーディレクトリのルートにコピーします(pdf_downloaded ゲートにはルートPDFが必要)。

skill://paper-to-beamer の手順に従ってコンテンツを作成します。続行前に必要なゲート:

  1. slides-beamer/main.tex に、論文情報と動機から方法、実験、制限、要点、参考文献、Q&A、および3~8枚の有用な付録スライドに至る、論文固有のナラティブが含まれていること。
  2. ドキュメントがSUSTech 16:10テンプレート(aspectratio=1610)を使用していること。
  3. slides-beamer/main.pdf が空でなく、未定義の制御や深刻なオーバーフローがないこと。

バッチCLIは、このエージェント作成フェーズのディスク上の証拠のみをスキャンして永続化します。スライドを捏造することはありません。

ナレーション作成ゲート

コンパイル済みTeXを video/main_with_narration.tex にコピーし、物理PDFページごとに空でない % NARRATION: エントリを1つ追加します。ナレーションは洗練された簡体字中国語で、英語の技術用語はそのまま含まれます。技術的な議論を展開し、箇条書きを読むことはせず、「本頁」や「如圖所示」のような視覚のみに依存する参照は避け、付録ページもカバーします。

slides_done から narrations_done への遷移は、コンパイル済みスライドと空でない注釈付きTeXの両方が存在する場合のみ発生します。

video: ナレーション付き横長・縦長成果物

python <SKILLS_DIR>/paper-to-bilibili/scripts/batch.py video "<PAPERS_JSON>"

narrations_done 状態の各論文について、オーケストレータは兄弟スキル paper-slides-to-video の full コマンドを呼び出します。子コマンド成功後、再スキャンして video_done をアトミックに永続化します。その後、管理対象の rednote-video-uploader/scripts/portrait_video.py を呼び出し、再スキャンしてカバーとBilibiliメタデータを検証し、upload_ready をアトミックに永続化します。子コマンドの失敗は伝播され、状態は決して進みません。

品質ゲート:正確なフレーム数・テキスト数・MP3数、物理ページごとの空でないナレーションと音声、空でない横長MP4、空でない縦長MP4、空でないカバー、スキーマ検証済みのBilibiliメタデータ。

bilibili: 検証またはアップロード

まず必ずドライランを確認します。

python <SKILLS_DIR>/paper-to-bilibili/scripts/batch.py bilibili "<PAPERS_JSON>" --dry-run

ドライランは推奨アップローダーに委譲し、upload_ready を変更してはなりません。確認後でのみ --dry-run を削除します。デフォルトのアップロードタイムアウトはありません。オペレーターは --upload-timeout 秒数 でオプトインできます。

通常のアップロードは、まずP1横長、次にP2縦長の順序で実行します。メタデータは単一の tag、正の tid、有効な copyright/source フィールド、構造化された説明、空でないカバーを使用します。論文が uploaded になるのは、video/upload_result.json が有効で、一致するBV URLとISO-8601タイムスタンプを含む場合のみです。

状態契約

batch.py は以下の正確な優先順位でディスクを再スキャンします。

  1. 有効な upload_result.json → uploaded
  2. 空でない横長 + 空でない縦長 + カバー + スキーマ検証済み video_meta.json → upload_ready
  3. 空でない横長 → video_done
  4. コンパイル済みスライド + 空でない注釈付きTeX → narrations_done
  5. コンパイル済みスライド → slides_done
  6. MinerU Markdown → mineru_done
  7. ソースPDFまたは抽出されたTeXソース(paper_src/ に .tex を含む) → pdf_downloaded
  8. それ以外 → pending

すべての成功した子コマンドの後、再スキャンと入力JSONのアトミックな置き換えが行われます。状態変化は STATE <paper>: <旧状態> -> <新状態> として出力されます。ドライランは検証と委譲のみを行い、新しい状態を発明しません。失敗した子コマンドは最後に確定した状態を保持し、その終了コードが伝播されます。

バッチ入力

papers.json は、空でない絶対パス dir_path を持つオブジェクトの配列です。dir_name、arxiv_id、pdf_path、説明フィールドが付随することがあります。オーケストレーターは各オブジェクトに _status を記録します。

前提条件

  • Python 3.10+(python がPATHにない場合は py -3 を使用)。
  • 依存関係は pyproject.toml に宣言されています(現在ランタイムにはありません)。依存関係を追加する場合は uv sync --project <SKILLS_DIR>/paper-to-bilibili でプロジェクトをインストールします。
  • <SKILLS_DIR> はインストールされたスキルフォルダを含むディレクトリです(例: ~/.claude/skills、~/.codex/skills、.omp/skills)。兄弟スキル(paper-slides-to-video、paper-bilibili-uploader、paper-download-arxiv-paper-source)はこのスキルの隣にインストールされている必要があります。これにより兄弟解決がプロジェクトローカルで決定論的になります。
  • PAPER_PYTHON(オプション): 兄弟CLIを起動するためのインタプリタ。デフォルトは batch.py を実行するインタプリタです。

関連スキル

  • skill://paper-bilibili-uploader
  • skill://paper-download-arxiv-paper-source
  • skill://paper-slides-to-video
  • skill://paper-to-beamer
  • skill://paper-video-cover
  • skill://rednote-video-uploader

Individual skills in this repo

This repo contains 7 individual skills — each has its own dedicated page.

Peytontalismanic424/paper-share-skills

Validate and upload narrated paper videos to Bilibili with biliup. Handles required landscape-first/portrait-second submissions, series uploads, CST scheduling, diagnostics, dry-run validation, and durable upload receipts. Trigger on: "upload to bilibili", "bilibili upload", "发布到B站", "上传到B站".

Peytontalismanic424/paper-share-skills

Download the TeX source (e-print tar.gz) of an arXiv paper from an arXiv URL or bare ID, and unpack it into paper_src/. Use FIRST whenever a pipeline input is an arXiv link and the TeX source is preferred over the PDF (paper-to-beamer, paper-to-bilibili, paper-venue-discovery). Invoke with an arXiv URL (abs/pdf/e-print, arxiv.org or export.arxiv.org) or a bare ID like 2509.07996v4.

Peytontalismanic424/paper-share-skills

Convert Beamer PDF slides into a fail-closed narrated MP4 with page-aligned narration, TTS audio, cover, and upload metadata. Trigger on narrated slides, slide video, or paper video requests.

Peytontalismanic424/paper-share-skills

Automated pipeline: paper (PDF or TeX source) → SUSTech Beamer slides (11-section 论文分享 structure) → compiled PDF. When TeX source is available, skip MinerU and extract content directly from LaTeX. Use when the user asks to create Beamer slides from an academic paper, or says "论文分享", "paper to slides", "make beamer from paper". Invoke with an absolute or relative path to a PDF, .tar.gz TeX archive, .tex file, or an arXiv URL/ID (source TeX is downloaded first via skill://paper-download-arxiv-paper-source).

Peytontalismanic424/paper-share-skills

Generate a deterministic 16:10 video-cover poster from a paper directory. Extracts paper metadata and figures and atomically produces poster.tex, poster.pdf, and poster.png. Use for paper-video covers, not conference posters.

Peytontalismanic424/paper-share-skills

Convert a PDF (especially academic papers) to clean Markdown using MinerU — preserves reading order, LaTeX equations, tables, and figures, and runs on the GPU. Use when the user asks to convert/extract a PDF to markdown/text. Invoke directly — no need for the user to type the skill name.

Peytontalismanic424/paper-share-skills

Fix for undefined \setsource/\setdomains/\setpresenter/\setvenue commands when compiling SUSTech Beamer slides from the standard template. Copy the extended beamerthemesustech.sty from the sustech-slides-template repository.

関連スキル