submit-paper について
submit-paperは、会議投稿前にLaTeX論文の準備状況を確認するワークフロースキルです。投稿モード、ソースの公開範囲、コンパイル環境に応じた静的チェックと確認手順を提供します。
主な機能
- 01論文プロジェクトと投稿先の検出
- 02必須セクションと要旨の長さの確認
- 03草稿の残存物と匿名性の問題の検出
- 04参考文献と図表参照の検証
- 05ローカルまたはリモートのコンパイル確認
- 06ソース公開範囲とクリーンアップの確認
活用シーン
- 01初回投稿前の論文チェック
- 02カメラレディ版やarXiv版の確認
- 03共有前のソース衛生チェック
- 04レイアウトやコンパイル問題の切り分け
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ a-green-hand-jack/ ml-research-skills --skill submit-paperインストール後、Claude Code で/submit-paperを入力して読み込まれたか確認します。
同梱ファイルreferences/layout-debugging.mdscripts/check.sh
詳細
論文の提出 — 提出前チェックリスト
学会に投稿する前に、LaTeX 論文プロジェクトの準備状況を体系的に確認します。投稿形式、必須セクション、執筆中の残作業、参考文献、匿名性、ソースのフォーマット、任意のコンパイルを対象とします。
TeX がローカルで利用可能かどうかを、共有プロジェクトの状態として記録しないでください。latexmk、pdflatex、xelatex、lualatex、tectonic、tlmgr が存在するかどうかは、個々のユーザーのマシンに関する実行時の情報です。永続的なプロジェクト状態として記録するのは、論文または作業ツリーのコンパイルバックエンドです。値は local、Overleaf-GitHub、CI、unknown のいずれかです。
デフォルトでは、ローカルで静的チェックを実行してください。ローカルでの LaTeX コンパイルは、プロジェクトのコンパイルバックエンドが local であるか、ユーザーがローカルでのコンパイルを明示的に依頼した場合に限り、実行時に利用可能なコンパイラを検出した後で実行してください。バックエンドが Overleaf-GitHub または CI の場合は、プッシュ済みのソースとリモートのログ/PDF 成果物をコンパイルの証拠として使用してください。
論文のバージョンが別々の作業ツリーに置かれている場合があります。プロジェクトに paper-worktrees/ がある場合は、メインの paper/ ブランチを変更するのではなく、対象の投稿先、arXiv リリース、またはカメラレディ版に対応するバージョンの作業ツリーを優先して確認してください。
タスクにレイアウトのデバッグ、フロートの配置、オーバーフル/アンダーフルのボックス、短い行、改ページ、またはスクリーンショットに基づくフォーマットのフィードバックが含まれる場合は、修正案を提示する前に references/layout-debugging.md を読んでください。一度限りのグローバルなパラメーター調整よりも、該当するページやオブジェクトに限定した変更を優先してください。
Step 1 — LaTeX プロジェクトを見つける
// turbo 論文のディレクトリを探します。
# If we're inside a project-init project, look for paper/ sibling
git rev-parse --show-toplevel 2>/dev/null
ls "$(git rev-parse --show-toplevel 2>/dev/null)/../" 2>/dev/null || true
# Find main.tex
find . -maxdepth 3 -name "main.tex" 2>/dev/null | head -5
main.tex を含むディレクトリを $PAPER_DIR として特定します。
$ARGUMENTS にパスが指定されている場合は、それを直接使用します。
project-init のプロジェクト構成の場合は、兄弟ディレクトリに paper/ があるか確認します。
指定された対象が投稿先の変更、arXiv リリース、またはカメラレディ版の場合は、一致する兄弟ディレクトリ paper-worktrees/ も確認します。
Step 2 — 投稿の状況を尋ねる
ユーザーに1つのメッセージで次の項目を尋ねます。
- 投稿の種類:初回投稿(匿名)/カメラレディ版/arXiv プレプリント?
- 締め切り:締め切りはいつですか?(修正の優先順位を決めるのに役立ちます)
- コンパイルバックエンド:この論文は、ローカルでのコンパイル、GitHub 経由の Overleaf、CI、または不明なワークフローのどれで検証されていますか?
- バージョンの作業場所:メインの
paper/リポジトリですか、それとも特定の投稿先/arXiv/カメラレディ版を対象とするpaper-worktrees/のバージョンですか? - ソースの公開範囲:このソースは
agent-private、Overleaf/共著者を通じて閲覧可能なauthor-visible、anonymous-submission、public-preprint、camera-ready-public、またはpublisher-artifactのどれですか?
投稿先が venue_preamble.tex から推測できる場合(Step 3 で読み込みます)は、質問を省略します。
回答を待ってから、次に進みます。
Step 3 — チェックスクリプトを実行する
// turbo
bash <submit-paper-skill-dir>/scripts/check.sh "$PAPER_DIR" [--compile]
重要:<submit-paper-skill-dir> をこのスキルのインストール先ディレクトリとして解決し、check.sh には絶対パスを使用してください。
--compile を渡すのは、コンパイルバックエンドが local の場合、またはユーザーがローカルでのコンパイルを明示的に依頼した場合に限ります。スクリプトは実行時に利用可能なコンパイラを検出します。コンパイラが存在しない場合は、--compile を付けずにスクリプトを実行してください。それでも有用な静的チェックは実行されます。
スクリプトでは次のチェックを実行します。
| チェック | 確認内容 |
|---|---|
| プロジェクトの検出 | main.tex の存在、venue_preamble.tex からの投稿先の特定 |
| 執筆中の残作業 | \todo、\fixme、\red{}、著者コメント用マクロ、TODO/FIXME のテキスト |
| 匿名性 | 謝辞、研究資金の開示、個人の URL/メールアドレス |
| 参考文献 | .bib ファイルが空でないこと、\bibliography{} の呼び出しがあること |
| 必須セクション | 投稿先ごとに必要なセクション(下記参照) |
| 要旨の長さ | 約30~350語(範囲外の場合は警告) |
| 図と表 | すべての \label{fig:*} と \label{tab:*} が \ref で参照されていること |
| ソースのフォーマット | tex-fmt がインストールされている場合に任意で tex-fmt --check --nowrap --recursive . を実行 |
| コンパイル | ローカルコンパイルのワークフローでは任意でローカルの LaTeX コンパイルを実行。それ以外では Overleaf または CI 経由で PDF/ページ数を確認 |
ステップ 4 — ソースのフォーマットを扱う
tex-fmt がインストールされている場合、チェック用スクリプトはチェックモードのみで実行します。
tex-fmt --check --nowrap --recursive .
フォーマットの不一致は、ユーザーまたはプロジェクトのポリシーでフォーマットが必須のゲートとされていない限り、警告として扱ってください。提出チェック中にソースを黙ってフォーマットしてはいけません。次のコマンドの実行を提案してください。
tex-fmt --nowrap --recursive .
その後、コミットまたはプッシュする前に差分を確認してください。プロジェクト固有の tex-fmt 設定がある場合は、それを使用してください。プロジェクトが明示的に折り返しを有効にしていない限り、フォーマッターの実行によって長い文章の行が折り返されないよう、デフォルトのフォールバックとして --nowrap を維持してください。
tex-fmt が見つからない場合、作業を続けるためだけにユーザーへインストールを求めないでください。任意のフォーマットチェックをスキップしたことを報告してください。
ステップ 5 — Overleaf/GitHub でのコンパイルを扱う
プロジェクトのコンパイルバックエンドが Overleaf-GitHub の場合、またはユーザーが Overleaf 用の変更公開を求めている場合は、このワークフローを使用してください。現在のマシンに TeX がないという理由だけで、これを選択してはいけません。バックエンドが不明な場合は、確認するか、コンパイル検証が保留中であることを報告してください。
- ローカルの論文リポジトリに GitHub リモートがあることを確認します。
git -C "$PAPER_DIR" remote -v
git -C "$PAPER_DIR" status --short --branch
-
ユーザーが Overleaf 用の変更公開を求めている場合は、通常の Git の流れに従ってコミットし、プッシュします。差分を確認せずに、ユーザーの無関係な変更をコミットしてはいけません。これは、Overleaf と連携する論文で通常行うコンパイルへの引き継ぎです。
-
同期されたブランチを Overleaf でコンパイルするようユーザーに伝えます。以下については、PDF の正となる情報源として Overleaf を扱ってください。
- コンパイルが正常に完了したかどうか
- ページ数
- overfull box とレイアウトに関する警告
- 参考文献のレンダリング
- 最終 PDF の確認
-
Overleaf がエラーを報告した場合は、Overleaf のログテキストまたはスクリーンショットをコンパイルの証拠として使用します。LaTeX ソースをローカルで修正してから、再度プッシュしてください。
プロジェクトのコンパイルバックエンドが明示的に local である場合を除き、ローカルで latexmk、pdflatex、xelatex、lualatex、または tectonic が利用できないことだけを理由に、提出可能な状態であることを妨げてはいけません。ローカル以外のバックエンドでは、Overleaf または CI のコンパイル証拠を使用してください。
プロジェクトのメモリーが存在し、論文ソースが共著者、査読者、arXiv、出版社、または成果物の閲覧者に公開されている場合は、memory/source-visibility-board.md を更新し、ティア、同期先、クリーンアップゲート、監査状況、クリーンアップ作業を記録してください。
ステップ 6 — venue_preamble.tex の投稿モードを修正する
スクリプトの出力を読んだ後、venue_preamble.tex を確認し、\usepackage のオプションがステップ 2 でユーザーが指定した内容と一致していることを確認してください。
モードが間違っている場合は、ユーザーに変更内容を示し、修正を提案してください。
| 投稿の種類 | venue_preamble.tex に記述する内容 |
|---|---|
| 初回投稿/匿名 | 例:\usepackage{neurips_<year>}、\usepackage[review]{cvpr}、または \usepackage[review]{iccv} |
| arXiv/プレプリント | 例:\usepackage[preprint]{neurips_<year>} |
| 最終版 | 例:\usepackage[final]{neurips_<year>}、\usepackage{cvpr}、または \usepackage{iccv} |
「venue_preamble.tex を [mode] モードに更新しますか?」と尋ね、確認が取れたら編集してください。
ステップ 7 — ソースの公開範囲とクリーンアップを確認する
論文のバージョンによって、ソースに求められる衛生要件は異なります。ソースの公開範囲は投稿先とは独立しています。ブランチが Overleaf/GitHub にリンクされている、または共著者に見える場合は、非公開ではなく author-visible として扱ってください。
| 公開範囲の区分 | 一般的なソースの状態 | 必要なクリーンアップ |
|---|---|---|
agent-private | ローカル/非公開のドラフト作業ツリー | エージェントの状態、内部メモ、作図スクリプト、CSV、来歴情報が含まれていてもかまいませんが、Overleaf/公開リモートにはプッシュしないでください |
author-visible | Overleaf/GitHub にリンクされたメインブランチ | .agent/、AGENTS.md、CLAUDE.md、生の CSV、内部用の結果文書、作図スクリプト、査読者対応の方針、非公開パス、エージェント専用のメモを除外してください |
anonymous-submission | 投稿先に提出するソース/PDF | 匿名化を徹底し、身元が漏れる情報を削除してください。ソースがアップロードされる可能性があるため、内部コメントは避けてください |
public-preprint | arXiv/公開用ソース | TODO、著者コメント、査読者向けメモ、非表示コメント、図表の内部向け説明、匿名化の残り、エージェント用ファイル、来歴文書、スクリプト、CSV、非公開パスを削除してください |
camera-ready-public | 出版社向け/最終版のソースパッケージ | 匿名化を解除し、謝辞/資金提供情報を追加してください。ドラフト専用のメモを削除し、反論での約束を完了させ、エージェント用/非公開ファイルを除外してください |
著者に見えるソース、匿名投稿用ソース、arXiv 用ソース、カメラレディ版、または出版社に見えるソースには、内部監査用の成果物を残さないでください。これには .agent/、AGENTS.md、CLAUDE.md、図の説明、表の説明、来歴メモ、査読者への回答メモ、TODO、生の CSV、内部用の結果文書、作図スクリプト、ノートブック、非公開パス、著者コメント用マクロが含まれます。これらは公開ソースではなく、ルートの memory/、コード側の文書、または agent-private の論文作業ツリーに保管してください。
公開ソース内に禁止ファイルがないか確認してください。
find "$PAPER_DIR" -maxdepth 3 \( \
-path "$PAPER_DIR/.agent" -o \
-name "AGENTS.md" -o -name "CLAUDE.md" -o \
-name "*.csv" -o -name "*.ipynb" -o \
-path "*/docs/results/*" -o -path "*/docs/reports/*" -o -path "*/docs/runs/*" -o \
-path "*/scripts/*" -o -path "*/plot_scripts/*" -o \
-iname "*provenance*" -o -iname "*result-inventory*" -o -iname "*writing-memory*" \
\) -print
リスクのあるソーステキストがないか確認してください。
grep -RIn "\\\\todo\\|\\\\fixme\\|TODO\\|FIXME\\|\\\\jieke\\|\\\\jerry\\|\\\\wwm\\|Reviewer\\|internal\\|description\\|provenance" "$PAPER_DIR" --include="*.tex" || true
削除する前に判断してください。「description」などの語は、論文本文として適切な場合があります。ドラフト/内部向けの内容だけを削除するか、書き換えてください。
ステップ 8 — 確認結果と対応計画を報告する
結果を構造化して提示してください。
ローカル/Overleaf のコンパイル状態を明示してください。
- ローカルの静的チェック結果
tex-fmtの状態:成功、変更が必要、または利用できないためスキップ- コンパイルバックエンド:ローカル、Overleaf-GitHub、CI、または不明
- 判明している場合はコンパイル状態。不明の場合、Overleaf/CI の証拠が必要であれば「リモートでのコンパイル待ち」
- バックエンドがローカル以外、不明、または利用できないためにローカル LaTeX の実行をスキップしたかどうか
- バージョン作業環境の状態:メインの論文リポジトリ、または特定の論文作業ツリー
- 著者に見える、匿名投稿用、arXiv 用、カメラレディ版、または出版社に見えるモードの場合は、ソースの公開範囲の区分とソースの衛生状態
- 該当する場合はレイアウトのデバッグ状況:影響を受けるページ/オブジェクト、試したローカル修正、コンパイルバックエンド、目視確認の結果、後続ページの再確認が必要かどうか
## Submission Readiness: <venue> — <mode>
### ✅ Passed (N)
- ...
### ⚠️ Warnings (N) — review before submitting
- ...
### ❌ Must Fix (N) — blocking submission
- ...
### Action Plan
1. <highest-priority fix>
2. ...
失敗または警告ごとに、具体的なファイルと行、および正確な修正内容を示してください。
ステップ 9 — 対象を絞った修正を提案する
よくある問題については、その場で修正を提案します。
- 執筆時の残骸:一覧を表示し、削除するかどうかを尋ねます。
- ソースのフォーマット:
tex-fmtが変更を報告した場合は、tex-fmt --nowrap --recursive .を実行してから差分を確認することを提案します。 - 必須セクションの不足:ユーザーが記入できるプレースホルダーの作成を提案します。
- 投稿モードの誤り:
venue_preamble.texの編集を提案します。 - ソースの衛生上の問題:著者に見えるソース/公開ソース/投稿用ソースについては、差分の範囲を示したうえで、
.agent/、AGENTS/CLAUDE のガイダンス、内部コメント、図や表の説明、査読者向けメモ、TODO、未加工の CSV、プロット用スクリプト、来歴のドキュメント、著者コメント用マクロを削除または別の場所へ移動することを提案します。 - レイアウト、フロート、短い行の問題:
references/layout-debugging.mdを使用します。まずページ/オブジェクトを特定し、全体に適用する\sloppy、\emergencystretch、段落間隔/フロート間隔の変更よりも、局所的な文言の修正、局所的なフロート間隔の調整、オブジェクトの移動、または\Needspace/\FloatBarrierを優先します。 - 空の bib ファイル:
bib/refs.bibに参考文献を追加するようユーザーに伝えます。
確認を得ずに自動修正してはいけません。
会場別リファレンス:必須セクションとページ制限
| 会場 | 締切 | ページ数(本文) | 必須の追加項目 |
|---|---|---|---|
| ICML | 1月 | 9 | sections/impact.tex(広範な影響) |
| ACL | 2月 | 8 | sections/limitations.tex |
| ICCV | 3月(奇数年) | 8 | — |
| ECCV | 3月(偶数年) | 図を含めて合計14 | — |
| NeurIPS | 5月 | 9 | sections/impact.tex + sections/checklist.tex |
| EMNLP | 5月 | 8 | sections/limitations.tex |
| ICLR | 9月 | 約9(目安) | — |
| CVPR | 11月 | 8 | — |
| NAACL | 12月 | 8 | sections/limitations.tex |
| ACM | さまざま | さまざま | CCS の概念、\acmConference(カメラレディ) |
参考文献と必須の追加項目はページ制限に含まれません(上記のすべての会場)。
投稿モードのクイックリファレンス
NeurIPS
% Anonymous submission (default):
\usepackage{neurips_<year>}
% arXiv preprint:
\usepackage[preprint]{neurips_<year>}
% Camera-ready:
\usepackage[final]{neurips_<year>}
ICML
\usepackage{icml<year>} % anonymous
\usepackage[accepted]{icml<year>} % camera-ready
ICLR
\usepackage[submitted]{iclr<year>_conference} % anonymous
\usepackage[accepted]{iclr<year>_conference} % camera-ready
CVPR
\usepackage[review]{cvpr} % anonymous
\usepackage{cvpr} % camera-ready
\usepackage[pagenumbers]{cvpr} % arXiv (shows page numbers)
ICCV
\usepackage[review]{iccv} % anonymous
\usepackage{iccv} % camera-ready
\usepackage[pagenumbers]{iccv} % arXiv (shows page numbers)
ACL / EMNLP / NAACL
\usepackage[review]{acl} % anonymous
\usepackage{acl} % camera-ready
ECCV
\usepackage{eccv} % anonymous (blind review)
\usepackage[final]{eccv} % camera-ready
カメラレディのチェックリスト(追加項目)
--mode camera-ready が指定されている場合、または投稿種別がカメラレディの場合は、以下も確認します。
-
venue_preamble.texが[final]/[accepted]モードに設定されている -
main.texに著者名と所属が記入されている - 謝辞が追加されている(研究費、計算資源のクレジットなど)
- 著者コメント用マクロ(
\jieke{}、\jerry{}など)がすべて削除されている -
sections/acknowledgement.texが空ではない - 必要に応じて著作権/ライセンス表記が追加されている(ACM)
- 最終版の参考文献が正しくフォーマットされている(「Anonymous」の項目がない)
- 必要に応じて補足資料が別途パッケージ化されている
- ソースの
.texファイルが ZIP にまとめられ、アップロードできる状態になっている(多くの会場ではソースが必要です)
arXiv への投稿に関する注意事項
arXiv には、会場への投稿とは異なるパッケージ要件があります。
.texソースを投稿する必要があります(PDF のみでは不可)- 多数のファイルを使用している場合は
\input{...}を展開します(一部の arXiv 環境では単一の.texファイルが必要です) [preprint]モードに切り替えます(会場のブランディング/匿名化を削除します).sty、.bst、.clsファイルをすべて ZIP に含めます- 利用可能な場合は
tex-fmt --check --nowrap --recursive .を実行し、想定される差分の範囲を確認してからフォーマットします - 公開ソースから内部コメント、TODO、著者コメント用マクロ、査読者向けメモ、非公開パス、図や表の説明を削除します
- arXiv でフォントの問題が発生する場合は、
\usepackage{times}を削除します - arXiv は古い TeX Live でコンパイルするため、パッケージの互換性を確認します
実行例
/submit-paper # check current directory
/submit-paper ~/Papers/my-neurips-paper # check specific project
/submit-paper . --compile # include local LaTeX check only if a compiler exists
/submit-paper . --mode camera-ready # camera-ready checklist