create-r-package
关于
This Claude Skill scaffolds a complete, production-ready R package structure following modern best practices. It automatically generates essential files like DESCRIPTION, NAMESPACE, testing (testthat), documentation (roxygen2), dependency management (renv), and CI/CD (GitHub Actions). Use it when starting a new package from scratch, converting loose scripts into a structured package, or setting up a collaborative project skeleton.
快速安装
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 中复制并粘贴此命令以安装该技能
技能文档
造 R 套件
以現代工具與最佳實踐腳手架一全配之 R 套件。
適用時機
- 由頭造新 R 套件
- 將鬆散 R 腳本轉為結構化套件
- 為協作開發立套件骨架
輸入
- 必要:套件名(小寫,除
.外無特殊字元) - 必要:套件目的之一句描述
- 選擇性:授權類型(預設:MIT)
- 選擇性:作者資訊(名、郵、ORCID)
- 選擇性:是否初始化 renv(預設:是)
步驟
步驟一:造套件骨架
usethis::create_package("packagename")
setwd("packagename")
預期: 已造目錄,含 DESCRIPTION、NAMESPACE、R/、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 為 Title Case、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。若 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、.Renviron、renv/)須排於建構之套件外 - 忘 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 仓库
相关推荐技能
content-collections
元Content Collections 是一个 TypeScript 优先的构建工具,可将本地 Markdown/MDX 文件转换为类型安全的数据集合。它专为构建博客、文档站和内容密集型 Vite+React 应用而设计,提供基于 Zod 的自动模式验证。该工具涵盖从 Vite 插件配置、MDX 编译到生产环境部署的完整工作流。
polymarket
元这个Claude Skill为开发者提供完整的Polymarket预测市场开发支持,涵盖API调用、交易执行和市场数据分析。关键特性包括实时WebSocket数据流,可监控实时交易、订单和市场动态。开发者可用它构建预测市场应用、实施交易策略并集成实时市场预测功能。
creating-opencode-plugins
元该Skill帮助开发者创建OpenCode插件,用于接入命令、文件、LSP等25+种事件。它提供了插件结构、事件API规范和JavaScript/TypeScript实现模式,适合需要拦截操作、扩展功能或自定义事件处理的场景。开发者可通过它快速构建响应式模块来增强OpenCode AI助手的能力。
sglang
元SGLang是一个专为LLM设计的高性能推理框架,特别适用于需要结构化输出的场景。它通过RadixAttention前缀缓存技术,在处理JSON、正则表达式、工具调用等具有重复前缀的复杂工作流时,能实现极速生成。如果你正在构建智能体或多轮对话系统,并追求远超vLLM的推理性能,SGLang是理想选择。
