# Paper Translate

> 論文PDFをページ単位で画像化・テキスト抽出・和訳し、メモに出力するスキル。さらに章ごとの要約と新規性分析も自動生成。ユーザーが「論文を翻訳して」「PDFをページごとに翻訳」「この論文を日本語にして」などと指示した時に使用。ClaudeCLIを使って各ページのテキストを和訳する。

- Skill: `majiayu000/paper-translate` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/paper-translate`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/paper-translate/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/paper-translate

---


# Paper Translate Skill

## 概要

論文PDFを1ページずつ処理し、以下を生成するスキル：
- 各ページの画像（PNG）
- 各ページから抽出したテキスト
- 各ページの和訳（ClaudeCLI使用）- **デフォルトは関西弁でわかりやすく翻訳**
- **【自動生成】章ごとの項目要約（summary/）** - フォーマット厳守
- **【自動生成】新規性・有効性・信頼性の分析（summary2/）** - フォーマット厳守

## 使用タイミング

ユーザーが以下のような指示をした時に使用：

- 「この論文を翻訳して」
- 「PDFを日本語にして」
- 「ページごとに和訳して」
- 「論文を翻訳してメモに保存」
- 「標準語で翻訳して」（`--style standard` を使用）

## 環境設定

### プロジェクトディレクトリの設定

このスキルは以下の優先順位でプロジェクトディレクトリを決定します：

1. 環境変数 `PAPER_DIR` が設定されている場合 → その値を使用
2. 未設定の場合 → カレントディレクトリを使用

**方法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
```

### 必要なディレクトリ構造

```
$PAPER_DIR/
├── pdfs/          # 入力PDF
├── memo/          # 翻訳メモ出力
├── attach/        # 画像出力
├── summary/       # 章ごと要約出力
└── summary2/      # 新規性分析出力
```

## 実行方法

### 基本実行

```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

[![Page 1](/attach/s_{pdf_id}_p001.png)](/attach/{pdf_id}_p001.png)

### 和訳
要旨：本論文は〜への新しいアプローチを提示する...

---

## Page 2

[![Page 2](/attach/s_{pdf_id}_p002.png)](/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委譲時の動作

1. 一時ファイルに論文全文を保存
2. Claude Codeを非対話モード（`claude -p`）で起動
3. Claude CodeがReadツールでファイルを読み込み
4. 必要に応じてTaskツールで分割処理
5. Writeツールで結果を出力ファイルに保存
6. 一時ファイルは処理後に自動削除（コンテキストマネージャで確実にクリーンアップ）

## 注意事項

- 処理時間が長いため、バックグラウンド実行を推奨
- 翻訳失敗時は `[翻訳エラー]` と表示して次ページへ継続
- 既存のメモ（1-2行目のタイトル・タグ）は保持される

## スラッシュコマンド

`/paper-translate {pdf_id1} {pdf_id2} ...` でも実行可能。
引数なしで実行するとpdf_idの入力を求められる。

## バージョン履歴

- 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: 初版作成

