create-r-package
Über
Diese Claude-Fähigkeit erstellt ein vollständiges, produktionsreifes R-Paket-Gerüst nach usethis-Konventionen und im tidyverse-Stil. Es generiert automatisch essentielle Dateien wie DESCRIPTION, NAMESPACE und richtet Testumgebungen (testthat), Dokumentation (roxygen2), Abhängigkeitsverwaltung (renv), Git und GitHub Actions CI ein. Nutzen Sie es, wenn Sie ein neues R-Paket von Grund auf starten, lose Skripte in ein strukturiertes Paket überführen oder eine kollaborative Projektvorlage erstellen möchten.
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
name: create-r-package description: > Ein neues R-Paket mit vollstaendiger Struktur aufsetzen, einschliesslich DESCRIPTION, NAMESPACE, testthat, roxygen2, renv, Git, GitHub Actions CI und Entwicklungskonfigurationsdateien (.Rprofile, .Renviron.example, CLAUDE.md). Folgt den usethis-Konventionen und dem tidyverse-Stil. Verwenden beim Erstellen eines neuen R-Pakets von Grund auf, beim Umwandeln loser R-Skripte in ein strukturiertes Paket oder beim Aufsetzen eines Paketgeruests fuer kollaborative Entwicklung. license: MIT allowed-tools: Read Write Edit Bash Grep Glob metadata: author: Philipp Thoss version: "1.0" domain: r-packages complexity: basic language: R tags: r, package, usethis, scaffold, setup locale: de source_locale: en source_commit: 6a868d56 translator: claude-opus-4-6 translation_date: 2026-03-13
R-Paket erstellen
Ein vollstaendig konfiguriertes R-Paket mit modernen Werkzeugen und Best Practices aufsetzen.
Wann verwenden
- Beim Erstellen eines neuen R-Pakets von Grund auf
- Beim Umwandeln loser R-Skripte in ein Paket
- Beim Aufsetzen eines Paketgeruests fuer kollaborative Entwicklung
Eingaben
- Erforderlich: Paketname (Kleinbuchstaben, keine Sonderzeichen ausser
.) - Erforderlich: Einzeilige Beschreibung des Paketzwecks
- Optional: Lizenztyp (Standard: MIT)
- Optional: Autorinformationen (Name, E-Mail, ORCID)
- Optional: Ob renv initialisiert werden soll (Standard: ja)
Vorgehensweise
Schritt 1: Paketgeruest erstellen
usethis::create_package("packagename")
setwd("packagename")
Erwartet: Verzeichnis erstellt mit DESCRIPTION, NAMESPACE, R/ und man/ Unterverzeichnissen.
Bei Fehler: Sicherstellen, dass usethis installiert ist (install.packages("usethis")). Pruefen, dass das Verzeichnis nicht bereits existiert.
Schritt 2: DESCRIPTION konfigurieren
DESCRIPTION mit korrekten Metadaten bearbeiten:
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
Erwartet: Gueltige DESCRIPTION, die R CMD check ohne Metadaten-Warnungen besteht.
Bei Fehler: Falls R CMD check DESCRIPTION-Felder bemaengelt, sicherstellen, dass Title in Title Case ist, Description mehr als einen Satz enthaelt und Authors@R gueltige person()-Syntax verwendet.
Schritt 3: Infrastruktur einrichten
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")
Erwartet: LICENSE, README.md, NEWS.md, tests/-Verzeichnis, .git/ initialisiert und .github/workflows/ erstellt.
Bei Fehler: Falls eine usethis::use_*()-Funktion fehlschlaegt, die fehlende Abhaengigkeit installieren und erneut ausfuehren. Falls .git/ bereits existiert, ueberspringt use_git() die Initialisierung.
Schritt 4: Entwicklungskonfiguration erstellen
.Rprofile erstellen:
if (file.exists("renv/activate.R")) {
source("renv/activate.R")
}
if (requireNamespace("mcptools", quietly = TRUE)) {
mcptools::mcp_session()
}
.Renviron.example erstellen:
RSTUDIO_PANDOC="C:/Program Files/RStudio/resources/app/bin/quarto/bin/tools"
# GITHUB_PAT=your_github_token_here
.Rbuildignore-Eintraege erstellen:
^\.Rprofile$
^\.Renviron$
^\.Renviron\.example$
^renv$
^renv\.lock$
^CLAUDE\.md$
^\.github$
^.*\.Rproj$
Erwartet: .Rprofile, .Renviron.example und .Rbuildignore sind erstellt. Entwicklungsdateien sind vom gebauten Paket ausgeschlossen.
Bei Fehler: Falls .Rprofile beim Start Fehler verursacht, Syntaxprobleme pruefen. Sicherstellen, dass requireNamespace()-Schutzabfragen Fehler bei fehlenden optionalen Paketen verhindern.
Schritt 5: renv initialisieren
renv::init()
Erwartet: renv/-Verzeichnis und renv.lock erstellt. Projektlokale Bibliothek ist aktiv.
Bei Fehler: renv mit install.packages("renv") installieren. Falls renv bei der Initialisierung haengt, Netzwerkverbindung pruefen oder options(timeout = 600) setzen.
Schritt 6: Paketdokumentationsdatei erstellen
R/packagename-package.R erstellen:
#' @keywords internal
"_PACKAGE"
## usethis namespace: start
## usethis namespace: end
NULL
Erwartet: R/packagename-package.R existiert mit dem "_PACKAGE"-Sentinel. Ausfuehren von devtools::document() generiert die paketweite Hilfe.
Bei Fehler: Sicherstellen, dass der Dateiname dem Muster R/<packagename>-package.R entspricht. Der "_PACKAGE"-String muss ein eigenstaendiger Ausdruck sein, nicht innerhalb einer Funktion.
Schritt 7: CLAUDE.md erstellen
CLAUDE.md im Projektstammverzeichnis mit projektspezifischen Anweisungen fuer KI-Assistenten erstellen.
Erwartet: CLAUDE.md existiert im Projektstammverzeichnis mit projektspezifischen Bearbeitungskonventionen, Build-Befehlen und Architekturhinweisen.
Bei Fehler: Falls unsicher, was enthalten sein soll, mit dem Paketnamen, einer einzeiligen Beschreibung, gaengigen Entwicklungsbefehlen (devtools::check(), devtools::test()) und nicht offensichtlichen Konventionen beginnen.
Validierung
-
devtools::check()liefert 0 Fehler, 0 Warnungen - Paketstruktur entspricht dem erwarteten Layout
-
.Rprofilelaedt fehlerfrei -
renv::status()zeigt keine Probleme - Git-Repository initialisiert mit passendem
.gitignore - GitHub Actions Workflow-Datei vorhanden
Haeufige Stolperfallen
- Paketnamenskonflikte: Vor der Namensfestlegung CRAN mit
available::available("packagename")pruefen - Fehlende .Rbuildignore-Eintraege: Entwicklungsdateien (
.Rprofile,.Renviron,renv/) muessen vom gebauten Paket ausgeschlossen werden - Encoding vergessen: Immer
Encoding: UTF-8in DESCRIPTION einfuegen - RoxygenNote-Abweichung: Die Version in DESCRIPTION muss mit der installierten roxygen2-Version uebereinstimmen
Beispiele
# Minimale Erstellung
usethis::create_package("myanalysis")
# Vollstaendiges Setup in einer Sitzung
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()
Verwandte Skills
write-roxygen-docs- Funktionen dokumentierenwrite-testthat-tests- Tests fuer das Paket hinzufuegensetup-github-actions-ci- Detaillierte CI/CD-Konfigurationmanage-renv-dependencies- Paketabhaengigkeiten verwaltenwrite-claude-md- Wirksame KI-Assistenten-Anweisungen erstellen
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.
