create-r-package
Über
Diese Claude Skill erstellt ein vollständiges R-Paket-Gerüst nach den Konventionen von usethis und tidyverse. Es generiert wesentliche Dateien wie DESCRIPTION, NAMESPACE und richtet Testumgebungen (testthat), Dokumentation (roxygen2), Abhängigkeitsverwaltung (renv) und CI/CD (GitHub Actions) ein. Nutzen Sie es, um ein neues Paket zu starten, lose Skripte in ein strukturiertes Paket zu überführen oder ein Projektgerüst für Zusammenarbeit vorzubereiten.
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: > Generar la estructura inicial de un paquete R completo incluyendo DESCRIPTION, NAMESPACE, testthat, roxygen2, renv, Git, GitHub Actions CI y archivos de configuración para desarrollo (.Rprofile, .Renviron.example, CLAUDE.md). Sigue las convenciones de usethis y el estilo tidyverse. Utilizar al iniciar un paquete R desde cero, al convertir scripts R sueltos en un paquete estructurado, o al preparar un esqueleto de paquete para desarrollo colaborativo. 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: es source_locale: en source_commit: 6a868d56 translator: Claude Opus 4.6 translation_date: 2026-03-13
Crear Paquete R
Generar la estructura de un paquete R completamente configurado con herramientas modernas y buenas prácticas.
Cuándo Usar
- Al iniciar un paquete R desde cero
- Al convertir scripts R sueltos en un paquete
- Al preparar un esqueleto de paquete para desarrollo colaborativo
Entradas
- Requerido: Nombre del paquete (minúsculas, sin caracteres especiales excepto
.) - Requerido: Descripción en una línea del propósito del paquete
- Opcional: Tipo de licencia (predeterminado: MIT)
- Opcional: Información del autor (nombre, correo electrónico, ORCID)
- Opcional: Si se debe inicializar renv (predeterminado: sí)
Procedimiento
Paso 1: Crear el Esqueleto del Paquete
usethis::create_package("packagename")
setwd("packagename")
Esperado: Directorio creado con DESCRIPTION, NAMESPACE, R/ y subdirectorios man/.
En caso de fallo: Asegurar que usethis está instalado (install.packages("usethis")). Verificar que el directorio no exista previamente.
Paso 2: Configurar DESCRIPTION
Editar DESCRIPTION con metadatos precisos:
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
Esperado: DESCRIPTION válido que pasa R CMD check sin advertencias de metadatos.
En caso de fallo: Si R CMD check advierte sobre campos de DESCRIPTION, verificar que Title esté en formato Title Case, Description tenga más de una oración y Authors@R use la sintaxis válida de person().
Paso 3: Configurar la Infraestructura
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")
Esperado: LICENSE, README.md, NEWS.md, directorio tests/, .git/ inicializado y .github/workflows/ creados.
En caso de fallo: Si alguna función usethis::use_*() falla, instalar la dependencia faltante y volver a ejecutar. Si .git/ ya existe, use_git() omitirá la inicialización.
Paso 4: Crear la Configuración de Desarrollo
Crear .Rprofile:
if (file.exists("renv/activate.R")) {
source("renv/activate.R")
}
if (requireNamespace("mcptools", quietly = TRUE)) {
mcptools::mcp_session()
}
Crear .Renviron.example:
RSTUDIO_PANDOC="C:/Program Files/RStudio/resources/app/bin/quarto/bin/tools"
# GITHUB_PAT=your_github_token_here
Crear entradas en .Rbuildignore:
^\.Rprofile$
^\.Renviron$
^\.Renviron\.example$
^renv$
^renv\.lock$
^CLAUDE\.md$
^\.github$
^.*\.Rproj$
Esperado: .Rprofile, .Renviron.example y .Rbuildignore están creados. Los archivos de desarrollo están excluidos del paquete construido.
En caso de fallo: Si .Rprofile causa errores al iniciar, verificar problemas de sintaxis. Asegurar que las protecciones con requireNamespace() eviten fallos cuando no están instalados los paquetes opcionales.
Paso 5: Inicializar renv
renv::init()
Esperado: Directorio renv/ y renv.lock creados. La biblioteca local del proyecto está activa.
En caso de fallo: Instalar renv con install.packages("renv"). Si renv se congela durante la inicialización, verificar la conectividad de red o establecer options(timeout = 600).
Paso 6: Crear el Archivo de Documentación del Paquete
Crear R/packagename-package.R:
#' @keywords internal
"_PACKAGE"
## usethis namespace: start
## usethis namespace: end
NULL
Esperado: R/packagename-package.R existe con el centinela "_PACKAGE". Ejecutar devtools::document() genera la ayuda a nivel de paquete.
En caso de fallo: Asegurar que el nombre del archivo siga el patrón R/<packagename>-package.R. La cadena "_PACKAGE" debe ser una expresión independiente, no dentro de una función.
Paso 7: Crear CLAUDE.md
Crear CLAUDE.md en la raíz del proyecto con instrucciones específicas del proyecto para asistentes de IA.
Esperado: CLAUDE.md existe en la raíz del proyecto con convenciones de edición, comandos de compilación y notas de arquitectura específicas del proyecto.
En caso de fallo: Si no se sabe qué incluir, comenzar con el nombre del paquete, una descripción de una línea, comandos comunes de desarrollo (devtools::check(), devtools::test()) y cualquier convención no obvia.
Validación
-
devtools::check()devuelve 0 errores, 0 advertencias - La estructura del paquete coincide con el diseño esperado
-
.Rprofilese carga sin errores -
renv::status()no muestra problemas - Repositorio Git inicializado con
.gitignoreapropiado - Archivo de flujo de trabajo de GitHub Actions presente
Errores Comunes
- Conflicto de nombres de paquete: Verificar en CRAN con
available::available("packagename")antes de decidirse por un nombre - Entradas faltantes en .Rbuildignore: Los archivos de desarrollo (
.Rprofile,.Renviron,renv/) deben excluirse del paquete construido - Olvidar Encoding: Siempre incluir
Encoding: UTF-8en DESCRIPTION - Discrepancia en RoxygenNote: La versión en DESCRIPTION debe coincidir con el roxygen2 instalado
Ejemplos
# Creación mínima
usethis::create_package("myanalysis")
# Configuración completa en una sesión
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()
Habilidades Relacionadas
write-roxygen-docs- documentar las funciones creadaswrite-testthat-tests- agregar pruebas al paquetesetup-github-actions-ci- configuración detallada de CI/CDmanage-renv-dependencies- gestionar dependencias del paquetewrite-claude-md- crear instrucciones efectivas para asistentes de IA
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.
