create-r-package
关于
This Claude Skill scaffolds a complete, production-ready R package structure following usethis conventions and tidyverse style. It generates essential files including DESCRIPTION, NAMESPACE, testing with testthat, documentation with roxygen2, dependency management with renv, and CI/CD with 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。初懸→察網或 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()返零誤零警 - 包構合期
-
.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是理想选择。
