create-r-package
について
このスキルは、現代のベストプラクティスに従って完全なRパッケージ構造を構築します。DESCRIPTIONファイルの設定、testthatを用いたテスト、roxygen2によるドキュメント作成、renvによる依存関係管理、GitHub Actionsを使ったCI/CDなど、重要なコンポーネントを整備します。新しいパッケージを開始する際、スクリプトをパッケージに変換する場合、または共同プロジェクトの骨格を作成する際にご利用ください。
クイックインストール
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/create-r-packageこのコマンドをClaude Codeにコピー&ペーストしてスキルをインストールします
ドキュメント
Create R Package
Scaffold full R pkg w/ modern tools + best practices.
Use When
- New R pkg from scratch
- Loose R scripts → pkg
- Pkg skeleton for collab dev
In
- Required: Pkg name (lowercase, no special except
.) - Required: 1-line desc
- Optional: License (def: MIT)
- Optional: Author (name, email, ORCID)
- Optional: Init renv (def: yes)
Do
Step 1: Skeleton
usethis::create_package("packagename")
setwd("packagename")
Got: Dir w/ DESCRIPTION, NAMESPACE, R/, man/.
If err: Install usethis (install.packages("usethis")). Dir must not exist.
Step 2: DESCRIPTION
Edit w/ accurate metadata:
Package: packagename
Title: What the Package Does (Title Case)
Version: 0.1.0
Authors@R:
person("First", "Last", , "[email protected]", role = c("aut", "cre"),
comment = c(ORCID = "0000-0000-0000-0000"))
Description: One paragraph describing what the package does. Must be more
than one sentence. Avoid starting with "This package".
License: MIT + file LICENSE
Encoding: UTF-8
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.3.2
URL: https://github.com/username/packagename
BugReports: https://github.com/username/packagename/issues
Got: Valid DESCRIPTION, R CMD check no metadata warns.
If err: Warns → Title Case, Description >1 sentence, Authors@R valid person().
Step 3: Infra
usethis::use_mit_license()
usethis::use_readme_md()
usethis::use_news_md()
usethis::use_testthat(edition = 3)
usethis::use_git()
usethis::use_github_action("check-standard")
Got: LICENSE, README.md, NEWS.md, tests/, .git/, .github/workflows/.
If err: use_*() fail → install missing dep + rerun. .git/ exists → use_git() skips.
Step 4: Dev Config
.Rprofile:
if (file.exists("renv/activate.R")) {
source("renv/activate.R")
}
if (requireNamespace("mcptools", quietly = TRUE)) {
mcptools::mcp_session()
}
.Renviron.example:
RSTUDIO_PANDOC="C:/Program Files/RStudio/resources/app/bin/quarto/bin/tools"
# GITHUB_PAT=your_github_token_here
.Rbuildignore:
^\.Rprofile$
^\.Renviron$
^\.Renviron\.example$
^renv$
^renv\.lock$
^CLAUDE\.md$
^\.github$
^.*\.Rproj$
Got: .Rprofile, .Renviron.example, .Rbuildignore created. Dev files excluded from build.
If err: .Rprofile startup err → check syntax. requireNamespace() guards → prevent fail on missing pkgs.
Step 5: Init renv
renv::init()
Got: renv/ + renv.lock. Local lib active.
If err: Install renv (install.packages("renv")). Hang → check network / options(timeout = 600).
Step 6: Pkg Doc File
R/packagename-package.R:
#' @keywords internal
"_PACKAGE"
## usethis namespace: start
## usethis namespace: end
NULL
Got: File w/ "_PACKAGE" sentinel. devtools::document() → pkg-level help.
If err: Filename = R/<packagename>-package.R. "_PACKAGE" standalone, not in fn.
Step 7: CLAUDE.md
Create CLAUDE.md in root w/ proj-specific instructions for AI.
Got: CLAUDE.md in root w/ conventions + build cmds + arch notes.
If err: Unsure → pkg name, 1-line desc, dev cmds (devtools::check(), devtools::test()), non-obvious conventions.
Check
-
devtools::check()→ 0 err, 0 warn - Struct matches layout
-
.Rprofileloads no err -
renv::status()OK - Git init +
.gitignore - GH Actions workflow present
Traps
- Name conflicts: Check CRAN
available::available("packagename")pre-commit - Missing .Rbuildignore: Dev files (
.Rprofile,.Renviron,renv/) must be excluded - Forgot Encoding: Always
Encoding: UTF-8in DESCRIPTION - RoxygenNote mismatch: Ver in DESCRIPTION = installed roxygen2
Examples
# Minimal creation
usethis::create_package("myanalysis")
# Full setup in one session
usethis::create_package("myanalysis")
usethis::use_mit_license()
usethis::use_testthat(edition = 3)
usethis::use_readme_md()
usethis::use_git()
usethis::use_github_action("check-standard")
renv::init()
→
write-roxygen-docs— doc fnswrite-testthat-tests— add testssetup-github-actions-ci— CI/CD configmanage-renv-dependencies— deps mgmtwrite-claude-md— AI instr
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を選択してください。
