协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
create-r-package【开发与工程】Scaffold a new R package with complete structure including DESCRIPTION, NAMESPACE, testthat, roxygen2, renv, Git, GitHub Actions CI, and development configuration files (.Rprofile, .Renviron.example, CLAUDE.md). Follows usethis conventions and tidyverse style. Use when starting a new R package from scratch, converting loose R scripts into a structure…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
以現代工具與最佳實踐腳手架一全配之 R 套件。
. 外無特殊字元)usethis::create_package("packagename")
setwd("packagename")
預期: 已造目錄,含 DESCRIPTION、NAMESPACE、R/、man/ 子目錄。
失敗時: 確保已裝 usethis(install.packages("usethis"))。察目錄未既存。
編 DESCRIPTION 以準確元資料:
Package: packagename
Title: What the Package Does (Title Case)
Version: 0.1.0
Authors@R:
person("First", "Last", , "email@example.com", 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::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,含 AI 助手之項目專屬指示。
預期: CLAUDE.md 存於項目根,含項目專屬編輯慣例、建構命令、架構注記。
失敗時: 疑應含何,始於套件名、一句描述、常開發命令(devtools::check()、devtools::test())、任何不顯之慣例。
devtools::check() 返 0 誤、0 警告.Rprofile 載入無誤renv::status() 無問題.gitignoreavailable::available("packagename") 察 CRAN.Rprofile、.Renviron、renv/)須排於建構之套件外Encoding: UTF-8# 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 助手指示