返回技能列表

create-r-package

pjt222
更新于 Yesterday
3 次查看
17
2
17
在 GitHub 上查看
aitesting

关于

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-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 為 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.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-lite/skills/create-r-package
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

相关推荐技能

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是理想选择。

查看技能