create-r-package
Über
Diese Fähigkeit erstellt ein vollständiges R-Paket-Gerüst nach modernen Best Practices. Sie richtet wesentliche Komponenten ein wie DESCRIPTION, Testen mit testthat, Dokumentation mit roxygen2, Abhängigkeitsverwaltung mit renv und CI/CD mit GitHub Actions. Nutzen Sie sie beim Start eines neuen Pakets, bei der Umwandlung von Skripten in ein Paket oder beim Erstellen eines Projektgerüsts für kollaborative Arbeit.
Schnellinstallation
Claude Code
Empfohlennpx 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-packageKopieren Sie diesen Befehl und fügen Sie ihn in Claude Code ein, um diese Fähigkeit zu installieren
Dokumentation
Create R Package
Scaffold full R pkg w/ modern tools + best practices.
Use When
- New R pkg from scratch
- Loose R scripts → pkg
- Pkg skeleton for collab dev
In
- Required: Pkg name (lowercase, no special except
.) - Required: 1-line desc
- Optional: License (def: MIT)
- Optional: Author (name, email, ORCID)
- Optional: Init renv (def: yes)
Do
Step 1: Skeleton
usethis::create_package("packagename")
setwd("packagename")
Got: Dir w/ DESCRIPTION, NAMESPACE, R/, man/.
If err: Install usethis (install.packages("usethis")). Dir must not exist.
Step 2: DESCRIPTION
Edit w/ accurate metadata:
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
Got: Valid DESCRIPTION, R CMD check no metadata warns.
If err: Warns → Title Case, Description >1 sentence, Authors@R valid person().
Step 3: Infra
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")
Got: LICENSE, README.md, NEWS.md, tests/, .git/, .github/workflows/.
If err: use_*() fail → install missing dep + rerun. .git/ exists → use_git() skips.
Step 4: Dev Config
.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$
Got: .Rprofile, .Renviron.example, .Rbuildignore created. Dev files excluded from build.
If err: .Rprofile startup err → check syntax. requireNamespace() guards → prevent fail on missing pkgs.
Step 5: Init renv
renv::init()
Got: renv/ + renv.lock. Local lib active.
If err: Install renv (install.packages("renv")). Hang → check network / options(timeout = 600).
Step 6: Pkg Doc File
R/packagename-package.R:
#' @keywords internal
"_PACKAGE"
## usethis namespace: start
## usethis namespace: end
NULL
Got: File w/ "_PACKAGE" sentinel. devtools::document() → pkg-level help.
If err: Filename = R/<packagename>-package.R. "_PACKAGE" standalone, not in fn.
Step 7: CLAUDE.md
Create CLAUDE.md in root w/ proj-specific instructions for AI.
Got: CLAUDE.md in root w/ conventions + build cmds + arch notes.
If err: Unsure → pkg name, 1-line desc, dev cmds (devtools::check(), devtools::test()), non-obvious conventions.
Check
-
devtools::check()→ 0 err, 0 warn - Struct matches layout
-
.Rprofileloads no err -
renv::status()OK - Git init +
.gitignore - GH Actions workflow present
Traps
- Name conflicts: Check CRAN
available::available("packagename")pre-commit - Missing .Rbuildignore: Dev files (
.Rprofile,.Renviron,renv/) must be excluded - Forgot Encoding: Always
Encoding: UTF-8in DESCRIPTION - RoxygenNote mismatch: Ver in DESCRIPTION = installed roxygen2
Examples
# 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— doc fnswrite-testthat-tests— add testssetup-github-actions-ci— CI/CD configmanage-renv-dependencies— deps mgmtwrite-claude-md— AI instr
GitHub Repository
Verwandte Skills
content-collections
MetaDiese Skill bietet eine produktionsgetestete Einrichtung für Content Collections – ein TypeScript-first-Tool, das Markdown/MDX-Dateien in typsichere Datensammlungen mit Zod-Validierung umwandelt. Verwenden Sie ihn beim Erstellen von Blogs, Dokumentationsseiten oder inhaltsstarken Vite + React-Anwendungen, um Typsicherheit und automatische Inhaltsvalidierung zu gewährleisten. Er behandelt alles von der Vite-Plugin-Konfiguration und MDX-Kompilierung bis hin zur Deployment-Optimierung und Schema-Validierung.
polymarket
MetaDiese Fähigkeit ermöglicht es Entwicklern, Anwendungen mit der Polymarket-Prognosemärkte-Plattform zu erstellen, einschließlich API-Integration für Handel und Marktdaten. Sie bietet außerdem Echtzeit-Datenstreaming über WebSocket, um Live-Trades und Marktaktivitäten zu überwachen. Nutzen Sie sie zur Implementierung von Handelsstrategien oder zur Erstellung von Tools, die Live-Marktaktualisierungen verarbeiten.
creating-opencode-plugins
MetaDiese Fähigkeit unterstützt Entwickler dabei, OpenCode-Plugins zu erstellen, die in über 25 Ereignistypen wie Befehle, Dateien und LSP-Operationen eingreifen. Sie bietet die Plugin-Struktur, Event-API-Spezifikationen und Implementierungsmuster für JavaScript/TypeScript-Module. Nutzen Sie sie, wenn Sie den Lebenszyklus des OpenCode KI-Assistenten mit benutzerdefinierter ereignisgesteuerter Logik abfangen, überwachen oder erweitern müssen.
sglang
MetaSGLang ist ein hochperformantes LLM-Serving-Framework, das sich auf schnelle, strukturierte Generierung für JSON, Regex und agentenbasierte Workflows unter Verwendung seines RadixAttention-Prefix-Cachings spezialisiert. Es bietet deutlich schnellere Inferenz, insbesondere für Aufgaben mit wiederholten Präfixen, was es ideal für komplexe, strukturierte Ausgaben und Mehrfachdialoge macht. Wählen Sie SGLang gegenüber Alternativen wie vLLM, wenn Sie constrained decoding benötigen oder Anwendungen mit umfangreicher Präfix-Weitergabe entwickeln.
