submit-to-cran
について
このスキルは、RパッケージをCRANに提出するための完全なワークフローを提供し、初回リリースと更新の両方を扱います。事前提出チェック(ローカル、win-builder、R-hub)の自動化、cran-comments.mdなどの必要なドキュメントの準備、URL・スペルチェックを実行します。パッケージが初めてCRANに提出できる状態になったとき、既存パッケージの更新を提出するとき、またはレビューアのフィードバック後の再提出時にご利用ください。
クイックインストール
Claude Code
推奨npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/submit-to-cranこのコマンドをClaude Codeにコピー&ペーストしてスキルをインストールします
ドキュメント
name: submit-to-cran description: > RパッケージをCRANに投稿するための完全な手順。事前チェック(ローカル、 win-builder、R-hub)、cran-comments.mdの準備、URLおよびスペルチェック、 投稿自体を含む。初回投稿および更新版の投稿に対応。パッケージが初回CRAN リリース準備完了時、既存CRANパッケージの更新版投稿時、またはCRANレビュー 担当者のフィードバック後の再投稿時に使用する。 locale: ja source_locale: en source_commit: 6f65f316 translator: claude-opus-4-6 translation_date: 2026-03-16 license: MIT allowed-tools: Read Write Edit Bash Grep Glob metadata: author: Philipp Thoss version: "1.0" domain: r-packages complexity: advanced language: R tags: r, cran, submission, release, publishing
CRANへの投稿
事前チェックから投稿まで、CRANへの投稿ワークフロー全体を実行する。
使用タイミング
- パッケージが初回CRANリリースの準備完了時
- 既存CRANパッケージの更新版を投稿する時
- CRANレビュー担当者のフィードバックを受けて再投稿する時
入力
- 必須: ローカルの
R CMD checkで0エラー・0警告をパスしたRパッケージ - 必須: DESCRIPTIONの更新済みバージョン番号
- 必須: 今バージョンの変更点を記載した更新済みNEWS.md
- 任意: 以前のCRANレビュー担当者のコメント(再投稿時)
手順
ステップ1: バージョンとNEWSの確認
DESCRIPTIONに正しいバージョンが記載されていることを確認する:
desc::desc_get_version()
NEWS.mdにこのバージョンのエントリがあることを確認する。エントリにはユーザー向けの変更点をまとめること。
期待結果: バージョンがセマンティックバージョニングに従っている。NEWS.mdにこのバージョンに対応するエントリがある。
失敗時: usethis::use_version()でバージョンを更新する("major"、"minor"、または"patch"を選択)。ユーザー向けの変更点をまとめたNEWS.mdエントリを追加する。
ステップ2: ローカルR CMD Check
devtools::check()
期待結果: 0エラー、0警告、0ノート(新規投稿の場合は「New submission」という1つのノートは許容)。
失敗時: 進む前にすべてのエラーと警告を修正する。詳細は<pkg>.Rcheck/00check.logのチェックログを参照する。ノートはcran-comments.mdで説明すること。
ステップ3: スペルチェック
devtools::spell_check()
正当な単語をinst/WORDLISTに追加する(1行1単語、アルファベット順)。
期待結果: 予期しないスペルミスがない。フラグが立てられた単語はすべて修正済み、またはinst/WORDLISTに追加済み。
失敗時: 本当のスペルミスを修正する。正当な技術用語はinst/WORDLISTに追加する(1行1単語、アルファベット順)。
ステップ4: URLチェック
urlchecker::url_check()
期待結果: すべてのURLがHTTP 200を返す。壊れたリンクやリダイレクトされたリンクがない。
失敗時: 壊れたURLを置き換える。DOIリンクには生URLの代わりに\doi{}を使用する。存在しなくなったリソースへのリンクを削除する。
ステップ5: Win-Builderチェック
devtools::check_win_devel()
devtools::check_win_release()
メールの結果を待つ(通常15〜30分)。
期待結果: Win-builderのreleaseとdevel両方で0エラー、0警告。結果は15〜30分以内にメールで届く。
失敗時: プラットフォーム固有の問題に対処する。一般的な原因:異なるコンパイラ警告、システム依存関係の欠如、パスセパレータの違い。ローカルで修正してWin-builderに再投稿する。
ステップ6: R-hubチェック
rhub::rhub_check()
複数のプラットフォーム(Ubuntu、Windows、macOS)でチェックする。
期待結果: すべてのプラットフォームで0エラー・0警告でパス。
失敗時: 特定のプラットフォームが失敗した場合、R-hubのビルドログでプラットフォーム固有のエラーを確認する。プラットフォーム依存の動作にはtestthat::skip_on_os()や条件付きコードを使用する。
ステップ7: cran-comments.mdの準備
パッケージルートにcran-comments.mdを作成または更新する:
## R CMD check results
0 errors | 0 warnings | 1 note
* This is a new release.
## Test environments
* local: Windows 11, R 4.5.0
* win-builder: R-release, R-devel
* R-hub: ubuntu-latest (R-release), windows-latest (R-release), macos-latest (R-release)
## Downstream dependencies
There are currently no downstream dependencies for this package.
更新版の場合は以下を含める:
- 変更点(簡潔に)
- 以前のレビュー担当者のフィードバックへの回答
- 該当する場合はリバースディペンデンシーチェックの結果
期待結果: cran-comments.mdがすべてのテスト環境にわたるチェック結果を正確にまとめ、ノートを説明している。
失敗時: プラットフォーム間でチェック結果が異なる場合はすべてのバリエーションを文書化する。CRANレビュー担当者は独自のテストと照合してこれらの主張を確認する。
ステップ8: 最終事前チェック
# 最後のチェック
devtools::check()
# ビルドされたtarballを確認
devtools::build()
期待結果: 最終的なdevtools::check()がクリーンにパスする。.tar.gzのtarballが親ディレクトリに作成される。
失敗時: 土壇場で問題が発生した場合は修正してステップ2からすべてのチェックを再実行する。既知の失敗がある状態で投稿しないこと。
ステップ9: 投稿
devtools::release()
対話式チェックを実行して投稿する。すべての質問に正直に答えること。
または、tarballをアップロードして https://cran.r-project.org/submit.html から手動で投稿することもできる。
期待結果: CRANからの確認メールが数分以内に届く。確認リンクをクリックして投稿を確定する。
失敗時: 却下理由のメールを確認する。一般的な問題:例の実行時間が長すぎる、\valueタグの欠如、移植性のないコード。問題を修正して再投稿し、cran-comments.mdに変更点を記載する。
ステップ10: 投稿後の処理
承認後:
# リリースをタグ付け
usethis::use_github_release()
# 開発バージョンにバンプ
usethis::use_dev_version()
期待結果: 承認済みバージョンタグでGitHubリリースが作成される。DESCRIPTIONが開発バージョン(x.y.z.9000)にバンプされる。
失敗時: GitHubリリースが失敗した場合はgh release createで手動作成する。CRAN承認が遅延している場合は確認メールを受け取ってからタグ付けする。
バリデーション
-
R CMD checkがローカルマシンで0エラー・0警告を返す - Win-builderでパス(releaseとdevel)
- R-hubがテストしたすべてのプラットフォームでパス
-
cran-comments.mdがチェック結果を正確に説明している - すべてのURLが有効
- スペルミスがない
- バージョン番号が正しく、インクリメントされている
- NEWS.mdが最新
- DESCRIPTIONのメタデータが完全で正確
よくある落とし穴
- 例の実行時間が長すぎる: コストのかかる例は
\donttest{}で囲む。CRANは時間制限を設けている - 非標準のファイル・ディレクトリ名: CRANのノートを引き起こすファイルを避ける(
.Rbuildignoreを確認) - ドキュメントの
\valueが欠如: エクスポートされるすべての関数には@returnタグが必要 - ビネットのビルド失敗:
.Renvironなしのクリーンな環境でビネットがビルドされることを確認する - DESCRIPTIONのタイトル形式: タイトルケース、末尾にピリオドなし、"A Package for..."は不可
- リバースディペンデンシーチェックを忘れる: 更新版の場合は
revdepcheck::revdep_check()を実行する
例
# 投稿前の完全なワークフロー
devtools::spell_check()
urlchecker::url_check()
devtools::check()
devtools::check_win_devel()
rhub::rhub_check()
# 結果を待つ...
devtools::release()
関連スキル
release-package-version- バージョンバンプとgitタグ付けwrite-roxygen-docs- CRANの標準を満たすドキュメントの確保setup-github-actions-ci- CRANの期待値を反映したCIチェックbuild-pkgdown-site- 承認済みパッケージのドキュメントサイト
GitHub リポジトリ
関連スキル
content-collections
メタこのスキルは、Content Collections(Markdown/MDXファイルを型安全なデータコレクションに変換するTypeScriptファーストのツール)の本番環境でテストされた設定を提供します。Zodバリデーションによる型安全性を実現し、ブログ、ドキュメントサイト、コンテンツ重視のVite + Reactアプリケーション構築時にご利用ください。Viteプラグインの設定、MDXコンパイルから、デプロイ最適化、スキーマバリデーションまで、すべてを網羅しています。
polymarket
メタこのスキルは、開発者がPolymarket予測市場プラットフォームを活用したアプリケーション構築を可能にします。API統合による取引や市場データの取得に加え、WebSocketを介したリアルタイムデータストリーミングにより、ライブ取引や市場活動を監視できます。取引戦略の実装や、ライブ市場更新を処理するツールの作成にご利用ください。
creating-opencode-plugins
メタこのスキルは、開発者がコマンド、ファイル、LSP操作など25種類以上のイベントタイプにフックするOpenCodeプラグインを作成することを支援します。JavaScript/TypeScriptモジュール向けに、プラグイン構造、イベントAPI仕様、および実装パターンを提供します。カスタムイベント駆動ロジックでOpenCode AIアシスタントのライフサイクルをインターセプト、監視、または拡張する必要がある場合にご利用ください。
sglang
メタSGLangは、高性能なLLMサービングフレームワークであり、RadixAttentionプレフィックスキャッシュを活用したJSON、正規表現、エージェントワークフロー向けの高速で構造化された生成を特長とします。特にプレフィックスが繰り返されるタスクにおいて、大幅に高速な推論を実現し、複雑な構造化出力やマルチターン対話に最適です。制約付きデコードが必要な場合や、広範なプレフィックス共有を伴うアプリケーションを構築する場合は、vLLMなどの代替案ではなくSGLangを選択してください。
