スキル一覧に戻る

create-r-package

pjt222
更新日 Yesterday
2 閲覧
17
2
17
GitHubで表示
メタaitesting

について

このClaudeスキルは、usethisの規約とtidyverseスタイルに従った、完全で本番環境対応のRパッケージ構造を構築します。DESCRIPTIONやNAMESPACEといった必須ファイルを自動生成し、テスト(testthat)、ドキュメント(roxygen2)、依存関係管理(renv)、Git、およびGitHub Actions CIの設定を行います。新規Rパッケージをゼロから開始する場合、散在するスクリプトを構造化されたパッケージに変換する場合、または共同プロジェクトテンプレートを作成する際にご利用ください。

クイックインストール

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にコピー&ペーストしてスキルをインストールします

ドキュメント


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
  • .Rprofile laedt 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-8 in 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 dokumentieren
  • write-testthat-tests - Tests fuer das Paket hinzufuegen
  • setup-github-actions-ci - Detaillierte CI/CD-Konfiguration
  • manage-renv-dependencies - Paketabhaengigkeiten verwalten
  • write-claude-md - Wirksame KI-Assistenten-Anweisungen erstellen

GitHub リポジトリ

pjt222/agent-almanac
パス: i18n/de/skills/create-r-package
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

関連スキル

content-collections

メタ

このスキルは、Content Collections(Markdown/MDXファイルを型安全なデータコレクションに変換するTypeScriptファーストのツール)の本番環境でテストされた設定を提供します。Zodバリデーションによる型安全性を実現し、ブログ、ドキュメントサイト、コンテンツ重視のVite + Reactアプリケーション構築時にご利用ください。Viteプラグインの設定、MDXコンパイルから、デプロイ最適化、スキーマバリデーションまで、すべてを網羅しています。

スキルを見る

polymarket

メタ

このスキルは、開発者がPolymarket予測市場プラットフォームを活用したアプリケーション構築を可能にします。API統合による取引や市場データの取得に加え、WebSocketを介したリアルタイムデータストリーミングにより、ライブ取引や市場活動を監視できます。取引戦略の実装や、ライブ市場更新を処理するツールの作成にご利用ください。

スキルを見る

creating-opencode-plugins

メタ

このスキルは、開発者がコマンド、ファイル、LSP操作など25種類以上のイベントタイプにフックするOpenCodeプラグインを作成することを支援します。JavaScript/TypeScriptモジュール向けに、プラグイン構造、イベントAPI仕様、および実装パターンを提供します。カスタムイベント駆動ロジックでOpenCode AIアシスタントのライフサイクルをインターセプト、監視、または拡張する必要がある場合にご利用ください。

スキルを見る

sglang

メタ

SGLangは、高性能なLLMサービングフレームワークであり、RadixAttentionプレフィックスキャッシュを活用したJSON、正規表現、エージェントワークフロー向けの高速で構造化された生成を特長とします。特にプレフィックスが繰り返されるタスクにおいて、大幅に高速な推論を実現し、複雑な構造化出力やマルチターン対話に最適です。制約付きデコードが必要な場合や、広範なプレフィックス共有を伴うアプリケーションを構築する場合は、vLLMなどの代替案ではなくSGLangを選択してください。

スキルを見る