Paper Translate Skill
概要
論文PDFを1ページずつ処理し、以下を生成するスキル:
- •各ページの画像(PNG)
- •各ページから抽出したテキスト
- •各ページの和訳(ClaudeCLI使用)- デフォルトは関西弁でわかりやすく翻訳
- •【自動生成】章ごとの項目要約(summary/) - フォーマット厳守
- •【自動生成】新規性・有効性・信頼性の分析(summary2/) - フォーマット厳守
使用タイミング
ユーザーが以下のような指示をした時に使用:
- •「この論文を翻訳して」
- •「PDFを日本語にして」
- •「ページごとに和訳して」
- •「論文を翻訳してメモに保存」
- •「標準語で翻訳して」(
--style standardを使用)
環境設定
プロジェクトディレクトリの設定
このスキルは以下の優先順位でプロジェクトディレクトリを決定します:
- •環境変数
PAPER_DIRが設定されている場合 → その値を使用 - •未設定の場合 → カレントディレクトリを使用
方法1: プロジェクトディレクトリで実行(推奨)
bash
cd /path/to/your/paper-project
source ~/.claude/lib/load_env.sh
run_python ~/.claude/skills/paper-translate/paper_translate.py {pdf_id}
方法2: 環境変数で指定
~/.claude/env.yaml に追加:
yaml
paper_dir: /path/to/your/paper-project
必要なディレクトリ構造
code
$PAPER_DIR/ ├── pdfs/ # 入力PDF ├── memo/ # 翻訳メモ出力 ├── attach/ # 画像出力 ├── summary/ # 章ごと要約出力 └── summary2/ # 新規性分析出力
実行方法
自動処理(ID指定なし) - 推奨
bash
cd /path/to/your/paper-project source ~/.claude/lib/load_env.sh run_python ~/.claude/skills/paper-translate/paper_translate.py
ID指定なしで実行すると:
- •memo未生成のPDFを自動検出
- •全て順番に処理
- •各処理完了時にSlack通知(「1/5件目完了」など)
- •全完了時にも最終通知
特定IDを処理
bash
cd /path/to/your/paper-project
source ~/.claude/lib/load_env.sh
run_python ~/.claude/skills/paper-translate/paper_translate.py {pdf_id}
オプション付き実行
bash
# ページ範囲指定
run_python ~/.claude/skills/paper-translate/paper_translate.py {pdf_id} --start 1 --end 5
# 複数PDFを処理
run_python ~/.claude/skills/paper-translate/paper_translate.py pdf_id1 pdf_id2 pdf_id3
# 画像のみ生成(翻訳なし)
run_python ~/.claude/skills/paper-translate/paper_translate.py {pdf_id} --no-translate
# ドライラン(プレビュー)
run_python ~/.claude/skills/paper-translate/paper_translate.py {pdf_id} --dry-run
# 標準語で翻訳(デフォルトは関西弁)
run_python ~/.claude/skills/paper-translate/paper_translate.py {pdf_id} --style standard
引数
| 引数 | 説明 | 必須 |
|---|---|---|
pdf_id | 対象PDFのID(複数指定可) | ○ |
--start N | 開始ページ(デフォルト: 1) | - |
--end M | 終了ページ(デフォルト: 最終ページ) | - |
--no-translate | 翻訳をスキップ(画像とテキスト抽出のみ) | - |
--dry-run | 実際の処理を行わず内容を表示 | - |
--style | 翻訳スタイル: kansai(関西弁)/ standard(標準語)。デフォルト: kansai | - |
翻訳スタイル
| スタイル | 説明 | 例 |
|---|---|---|
kansai(デフォルト) | 調子のよい関西人が素人向けにわかりやすく解説 | 「これ、めっちゃ画期的やねん!」 |
standard | 従来の標準語翻訳 | 「これは画期的な手法です。」 |
- •デフォルトは
kansai(関西弁モード) - •ユーザーから「標準語で」とリクエストがあった場合は
--style standardを使用
出力
ファイル出力
| 種類 | パス |
|---|---|
| 元画像 | $PAPER_DIR/attach/{pdf_id}_p{NNN}.png |
| サムネイル | $PAPER_DIR/attach/s_{pdf_id}_p{NNN}.png |
| メモ(翻訳) | $PAPER_DIR/memo/{pdf_id}.txt |
| 章ごと要約 | $PAPER_DIR/summary/{pdf_id}.txt |
| 新規性分析 | $PAPER_DIR/summary2/{pdf_id}.txt |
出力形式(メモファイル)
markdown
# 論文タイトル(1行目:既存を保持)
## タグ(2行目:既存を保持)
---
## Page 1
[](/attach/{pdf_id}_p001.png)
### 和訳
要旨:本論文は〜への新しいアプローチを提示する...
---
## Page 2
[](/attach/{pdf_id}_p002.png)
### 和訳
1. はじめに...
---
(以下、ページ数分繰り返し)
※ Original Textセクションは現在コメントアウト中(コードで復活可能)
出力形式(章ごと要約: summary/)
markdown
# 1 Introduction - この論文は、データを収集・分析した... - データ分析は反復的プロセスで... # 1.1 Stumbling onto data - ソフトウェアプロジェクトの詳細データを入手するのは非常に難しい - Nichols らの報告書に大規模なプロジェクトデータの公開が... # 2 Methods - 手法の説明...
出力形式(新規性分析: summary2/)
markdown
# 新規性 - この論文の新しい貢献点... - 既存研究にない視点... # 言及されている全ての関連研究との相違点 - 先行研究Aと比べて... - 先行研究Bとの違いは... # 有効性 - 提案手法の有効性... - 実験結果から... # 信頼性 - データの規模... - 再現性について...
処理時間の目安
- •1ページあたり: 約30-60秒(ClaudeCLI翻訳含む)
- •10ページの論文: 約5-10分
- •章ごと要約: 約1-2分(短文はClaudeCLI直接、長文はClaude Code委譲)
- •新規性分析: 約1-2分(短文はClaudeCLI直接、長文はClaude Code委譲)
- •進捗は
[1/20] Page 1 処理中...形式でリアルタイム表示
長文処理の仕組み(v2.0)
テキスト長に応じて処理方式を自動切り替え:
| テキスト長 | 処理方式 | 説明 |
|---|---|---|
| 8万文字以下 | ClaudeCLI直接 | 全文を一度に処理(高速) |
| 8万文字超 | Claude Code委譲 | Claude Codeのエージェント能力で自律的に処理 |
Claude Code委譲時の動作
- •一時ファイルに論文全文を保存
- •Claude Codeを非対話モード(
claude -p)で起動 - •Claude CodeがReadツールでファイルを読み込み
- •分析結果を標準出力(stdout)に出力
- •Python側でstdoutを受け取り、ファイルに書き込み
- •一時ファイルは処理後に自動削除(コンテキストマネージャで確実にクリーンアップ)
注意: claude -p は非対話モードのため、Writeツールの許可を求めるUIがありません。
そのため、ファイル書き込みはClaude Codeではなく、Python側で行います。
注意事項
- •処理時間が長いため、バックグラウンド実行を推奨
- •翻訳失敗時は
[翻訳エラー]と表示して次ページへ継続 - •既存のメモ(1-2行目のタイトル・タグ)は保持される
スラッシュコマンド
/paper-translate {pdf_id1} {pdf_id2} ... でも実行可能。
引数なしで実行するとpdf_idの入力を求められる。
バージョン履歴
- •2025-01-27 v2.2: ID指定なし実行時の自動処理機能を追加。memo未生成のPDFを自動検出し順次処理。各処理完了時にSlack通知(進捗表示)。Claude Code委譲時のWriteツール権限エラーを修正(stdout経由でPython側書き込みに変更)。
- •2025-12-11 v2.1: 翻訳スタイル機能を追加。関西弁モード(kansai)をデフォルトとし、素人でもわかりやすい解説スタイルで翻訳。標準語モード(standard)も選択可能。
--styleオプションで切り替え。 - •2025-12-10 v2.0: 長文処理をClaude Code委譲方式に変更。チャンク分割・統合ロジックを廃止し、Claude Codeの自律的なタスク分割能力を活用。一時ファイル管理をコンテキストマネージャで確実にクリーンアップ。summary/とsummary2/のフォーマットを厳格化(バリデーション・自動修正機能追加)。
- •2024-12-09 v1.2: フルパスを環境変数方式に変更(GitHub公開対応)
- •2024-12-09 v1.1: 章ごと要約(summary/)と新規性分析(summary2/)の自動生成機能を追加。長文の分割処理に対応。
- •2024-12-08 v1.0: 初版作成