スキル一覧に戻る

create-r-package

pjt222
更新日 Yesterday
5 閲覧
17
2
17
GitHubで表示
メタaitesting

について

このClaude Skillは、usethisの慣習とtidyverseスタイルに従って、完全なRパッケージ構造を一から構築します。DESCRIPTION、NAMESPACE、テスト(testthat)の設定、ドキュメント(roxygen2)、依存関係管理(renv)、CI/CD(GitHub Actions)の準備など、必須ファイルを生成します。新規パッケージの開始時、バラバラのスクリプトを構造化されたパッケージに変換する際、または共同開発のための骨組みを作成する場合にご利用ください。

クイックインストール

Claude Code

推奨
メイン
npx skills add pjt222/agent-almanac -a claude-code
プラグインコマンド代替
/plugin add https://github.com/pjt222/agent-almanac
Git クローン代替
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/create-r-package

このコマンドをClaude Codeにコピー&ペーストしてスキルをインストールします

ドキュメント

建 R 包

搭全配之 R 包,以新具與最佳之法。

用時

  • 由無而建 R 包
  • 將散 R 本轉為包
  • 為協作開發搭包骨

  • 必要:包名(小寫,唯 . 為特字)
  • 必要:包志之一行述
  • 可選:許可類(默 MIT)
  • 可選:作者信息(名、電郵、ORCID)
  • 可選:是否起 renv(默為)

第一步:建包骨

usethis::create_package("packagename")
setwd("packagename")

得: 目錄建,含 DESCRIPTIONNAMESPACER/man/ 子目錄。

敗則: 確 usethis 已裝(install.packages("usethis"))。察目錄未存。

第二步:設 DESCRIPTION

DESCRIPTION 含精元資料:

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

得: 合法 DESCRIPTION 過 R CMD check 無元資料警。

敗則:R CMD check 警 DESCRIPTION 域,驗 Title 為題式大小寫、Description 逾一句、Authors@R 用合法 person() 語法。

第三步:設基建

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")

得: LICENSE、README.md、NEWS.md、tests/ 目錄、.git/ 已起、.github/workflows/ 已建。

敗則: 若某 usethis::use_*() 敗,裝缺依而重運。若 .git/ 已存,use_git() 略起。

第四步:建開發之配

.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$

得: .Rprofile.Renviron.example.Rbuildignore 已建。開發文件排於建包外。

敗則:.Rprofile 致起誤,察語法。確 requireNamespace() 守防可選包缺致敗。

第五步:起 renv

renv::init()

得: renv/ 目錄與 renv.lock 建。項目本地庫活。

敗則:install.packages("renv") 裝之。若 renv 起時卡,察網或 options(timeout = 600)

第六步:建包文件

R/packagename-package.R

#' @keywords internal
"_PACKAGE"

## usethis namespace: start
## usethis namespace: end
NULL

得: R/packagename-package.R 存含 "_PACKAGE" 標。devtools::document() 生包級助。

敗則: 確文件名合 R/<packagename>-package.R"_PACKAGE" 字串宜獨立表達,非函內。

第七步:建 CLAUDE.md

於項根建 CLAUDE.md,含項專 AI 助手之指。

得: CLAUDE.md 存於項根,含項專編慣、建命、構註。

敗則: 若疑含何,始以包名、一行述、常開發命(devtools::check()devtools::test()),及任何非顯慣。

  • devtools::check() 返 0 誤 0 警
  • 包構合期佈
  • .Rprofile 加載無訛
  • renv::status() 無問
  • Git 庫已起含宜 .gitignore
  • GitHub Actions 工作流文件存

  • 包名衝:建名前以 available::available("packagename") 察 CRAN
  • 缺 .Rbuildignore 項:開發文件(.Rprofile.Renvironrenv/)須排於建包外
  • 忘 Encoding:DESCRIPTION 皆含 Encoding: UTF-8
  • RoxygenNote 不合:DESCRIPTION 之版須合所裝 roxygen2

# 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 — 文所建之函
  • write-testthat-tests — 為包加試
  • setup-github-actions-ci — 詳 CI/CD 配
  • manage-renv-dependencies — 管包依
  • write-claude-md — 建有效 AI 助手指

GitHub リポジトリ

pjt222/agent-almanac
パス: i18n/wenyan/skills/create-r-package
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

関連スキル

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を選択してください。

スキルを見る