arxiv-paper-writer について
arxiv-paper-writerは、ML/AIレビュー論文の作成と既存LaTeXプロジェクトの引用チェックを支援するワークフローです。IEEEtranテンプレートに沿って、調査から執筆、検証、品質確認までを段階的に進めます。
主な機能
- 01段階的なレビュー論文ワークフロー
- 02調査スナップショットとアウトライン
- 03課題単位の執筆管理
- 04引用の検証と修正
- 05IEEEtranでのコンパイルと品質確認
活用シーン
- 01ML/AIのarXivレビュー論文の企画
- 02課題を追跡しながらレビューを執筆
- 03既存LaTeXプロジェクトの引用確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ appautomaton/ latex-arxiv-skill --skill arxiv-paper-writerインストール後、Claude Code で/arxiv-paper-writerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/literature-notes-template.mdpaper-issues-template.csvpaper-plan-template.mdassets/template/IEEEtran.clsmain.template.texreferences.template.bibreferences/bibtex-guide.mdcitation-workflow.mdquality-report.mdresearch-workflow.mdtemplate-usage.mdvisual-templates.mdwriting-style.mdscripts/arxiv_registry.pybootstrap_ieee_review_paper.pycompile_paper.pycreate_paper_plan.pypaper_utils.pyvalidate_paper_issues.py詳細
ML/AI 論文レビューのワークフロー(IEEEtran テンプレート)
使用する場合
- arXiv 向けの ML/AI レビュー論文(本文は約 6~10 ページ、参考文献を除く)
- 引用を検証する LaTeX + BibTeX ワークフロー
- 既存の LaTeX プロジェクトでの引用の検証・修正
使用しない場合
- 新規の実験研究論文(これはレビュー用のワークフローです)
- 学術文書以外
入力
- トピックの説明(必須)
- 制約:投稿先、ページ数上限、著者/所属(任意)
- 引用検証を行う既存プロジェクトのパス(任意)
出力
main.tex(LaTeX ソース)ref.bib(検証済みの BibTeX エントリ)IEEEtran.clsplan/<timestamp>-<slug>.md、issues/<timestamp>-<slug>.csv- 図/表、
main.pdf notes/research-snapshot.md(Gate 0 のリサーチスナップショット)notes/literature-notes.md(引用ごとのメモ、任意)notes/arxiv-registry.sqlite3(arXiv のメタデータ/BibTeX キャッシュ)
規約:このスキルのフォルダー(scripts/ がある場所)から python3 scripts/... を実行します。<paper_dir> は論文/プロジェクトのルート(main.tex、ref.bib、plan/、issues/、notes/ を含む)です。plan/... などのパスは <paper_dir> の下にあります。論文は --out <workspace_dir>(作業ディレクトリ。このスキルのフォルダー内ではありません)で指定した場所に作成します。両方のブートストラップ段階で、同じ --out(使用する場合は --name も)を指定してください。arXiv の論文検索/メタデータ取得/BibTeX には scripts/arxiv_registry.py を使用します(場当たり的な curl/wget は使用しません)。
ゲート付きワークフロー
ヒント:使用前に
python3 scripts/<script>.py --helpを実行してください。 手順で指定された場合に限り、参照ファイルを開いてください。
必須ルール
- 計画が承認され、issues CSV が作成されるまでは、
main.texに本文を書かないでください。 - 最初に提出するもの:リサーチスナップショット + アウトライン + 確認事項 + 計画案。
- 新規論文にはすべて計画と issues トラッキングを使用し、使用を省略しないでください。
- issues CSV は作業の実行契約です。各 issue の
StatusとVerified_Citationsを更新し、作業範囲が広がった場合は issue の行を追加/分割/挿入してください(追跡されない作業を行わないでください)。 - テンプレートは固定です:IEEEtran の 2 段組レイアウト(
assets/template/IEEEtran.cls)を使用します。2 段組の幅をレイアウト上の制約として扱い、必要に応じて 2 段抜きのフロートを使用してください。
Gate 0:リサーチスナップショット + 計画案
- 制約(投稿先、ページ数上限、著者欄、日付範囲)を確認します。
- トピックを検索キーワードに変換し、簡易的な論文検索を行います:
重要な論文を 10~20 件(
references/research-workflow.mdを参照)。手順 4 の後(<paper_dir>が作成されたら)、arxiv_registry.py searchで arXiv の検索結果をキャッシュし、スナップショットをnotes/research-snapshot.mdに保存します。 - トピックに沿ったタイトル案を 2~4 件提案します。
- プロジェクトフォルダーを作成し、計画案を用意します:
これはpython3 scripts/bootstrap_ieee_review_paper.py --stage kickoff --topic "<topic>" --out <workspace_dir>assets/template/から LaTeX テンプレートをコピーします。計画と issues はassets/内のテンプレートから生成されます。 arXiv レジストリを初期化します(1 回のみ):python3 scripts/arxiv_registry.py --project-dir <paper_dir> init。 main.texにフレームワークの骨組みを作成します (セクション見出し + セクションごとに 2~4 個の箇条書き + 引用の種;本文は書かないでください)。- 計画ファイルを更新し、フレームワーク、提案したタイトル、セクション/サブセクションの計画を反映します。
- 早い段階でコンパイルします:
python3 scripts/compile_paper.py --project-dir <paper_dir>Overfull \hboxの警告を修正します(以下の「レイアウトの整理」を参照)。 - ユーザーに以下を提示します:
- 提案するアウトライン(5~8 セクション、各セクションに 2~4 個の箇条書き)
- セクションに対応付けた視覚化案(5 件以上。
references/visual-templates.mdを参照) - 確認事項
- ユーザーの承認があるまで停止します。
ゲート 1:Issues CSV の作成(承認後)
- 計画内のキックオフゲートを確認します:
- [x] User confirmed scope + outline in chat。 - Issues CSV を作成します(ゲートが未チェックの場合、スクリプトは処理を拒否します):
python3 scripts/bootstrap_ieee_review_paper.py --stage issues --topic "<topic>" --out <workspace_dir> --with-literature-notes - 検証します:
python3 scripts/validate_paper_issues.py <paper_dir>/issues/<timestamp>-<slug>.csv - 文献メモが有効になっている場合は、再検索を避けるため、短い要約と(任意で)アブストラクトの抜粋を残します。
- 計画は変更される場合があります。必要に応じて課題を追加、分割、挿入し、編集後に再検証して、すべての課題(挿入した課題を含む)が
DONEまたはSKIPになるまで(可能であれば同じ実行中に)続けます。
フェーズ 2:課題ごとの執筆ループ
CSV 内の執筆課題ごとに、次を行います:
- 課題が大きく膨らんだ場合(新しい図、新しい小節、新しいベンチマークセット、または大規模な QA 修正など)、先に進む前に課題行を分割または挿入します(例:
W6a、Q5)。python3 scripts/validate_paper_issues.py <issues.csv>を再実行し、すべての課題がDONE/SKIPになるまで続けます。
- 調査:セクション固有の論文を 8~12 件調査します。
- 執筆:引用なしの文が 3 文以上続かないようにし、段落のリズムに変化をつけます
(
references/writing-style.mdを参照)。 セクションの意図と構成については、references/template-usage.mdを使用します。 - 可視化:内容に応じた条件に合うものを選びます(
references/visual-templates.mdを参照)。 まずは単一カラムに収まるサイズを優先し、必要な場合のみ 2 カラムにまたがるレイアウトを使用します(「レイアウトの整備」を参照)。 外部から取得した図の内容には引用を付けます。 - 検証:
ref.bibに追加する前に、ウェブ検索を行い、ソースページ(利用可能な場合は PDF も)を開いて確認します。 arXiv のエントリについては、python3 scripts/arxiv_registry.py --project-dir <paper_dir> export-bibtex <arxiv_id> --out-bib <paper_dir>/ref.bibを使って BibTeX を追加します。 - 更新:
Verified_Citationsの件数を記録し、課題をDONEにします。 - 重要な変更を加えた後にコンパイルし、課題を
DONEにする前にOverfull \hboxを修正します。
フェーズ 2.5:リズムの調整
すべての執筆課題が DONE になったら、latex-rhythm-refiner スキルを使ってセクションごとに文章を調整します。引用をすべて維持しながら、文や段落の長さに変化をつけ、不要な表現を削除します。
フェーズ 3:QA ゲート
- 内部 QA チェックリストを実行します(
references/quality-report.mdを参照)。 - コンパイルし、
main.logにOverfull \hboxの警告がないことを確認します。 main.tex、ref.bib、図、およびmain.pdfを納品します。
既存論文のワークフロー(再スキャフォールドなし)
論文フォルダーがすでに存在する場合は、スキャフォールドを再実行しないでください:
# Create plan
python3 scripts/create_paper_plan.py --topic "<topic>" --stage plan --output-dir <paper_dir>
# STOP for approval, then check kickoff gate box
# Create issues (use timestamp/slug from plan filename/frontmatter)
python3 scripts/create_paper_plan.py --topic "<topic>" --stage issues --timestamp "<TS>" --slug "<slug>" --output-dir <paper_dir> --with-literature-notes
引用検証のバリエーション
- 指定されたパスを LaTeX プロジェクトのルートとして扱います。
references/citation-workflow.mdに従います。- エントリの修正が必要な場合は、BibTeX のルールに
references/bibtex-guide.mdを使用します。 - 要求された場合は、検証レポートと修正済みの
ref.bibを納品します。
成功基準
コンパイル:python3 scripts/compile_paper.py --project-dir <paper_dir>(終了コード 0、「Citation undefined」の警告なし)。本文のページ数には --report-page-counts を使用します。
品質指標:
- 本文 6~10 ページ(参考文献を除く)
- 引用総数 60~80 件(各セクション 8 件以上)
- 引用検証率 100%
- 引用の 70% 以上が直近 3 年以内のもの
- 5 種類以上の可視化
- すべての課題が
DONEまたはSKIP
安全性とガードレール
- 引用や結果を捏造しないでください。根拠が不足している場合は TODO を追加し、ユーザーに確認してください。
ref.bibに追加する前に、ウェブ検索とソースページ(利用可能な場合は PDF も)を使ってすべての引用を検証してください。- 大規模な文献検索の前に確認を取ってください。
- 確認なしにユーザーファイルを上書きしないでください。
- Issues CSV を契約とし、基準を満たした場合にのみ
DONEにします。 - ユーザーからの依頼がない限り、提出用バンドルは作成しないでください。
レイアウトの整備
課題を DONE にする前に、Overfull \hbox の警告を修正します:
- 図:まず
figureと\columnwidthを使用し、必要に応じてfigure*と\textwidthに切り替えます - 表:
\resizeboxよりもp{...}の列幅や\tabcolsepを優先します - 数式:改行には
split、multline、aligned、またはIEEEeqnarrayを使用します
課題の CSV スキーマ
| フェーズ | 課題 |
|---|---|
| 調査 | Rx:調査、足場作り、フレームワーク、可視化の計画 |
| 執筆 | Wx:各セクションに引用目標と可視化を設定 |
| 推敲 | RFx:latex-rhythm-refiner スキルを適用(すべての Wx が DONE になった後) |
| QA | Qx:引用の検証、QA チェックリスト、コンパイル、最終レビュー |
ステータス:TODO → DOING → DONE、または Notes に理由を記載して SKIP。スキーマは validate_paper_issues.py で検証します。
Verified_Citations = 課題が DONE とマークされた時点で、その課題のセクションにある検証済み引用キーの一意な数(執筆以外の課題では 0)。