write-roxygen-docs
关于
This Claude Skill generates comprehensive roxygen2 documentation for R packages following Tidyverse style guidelines. It handles functions, datasets, classes, and methods while automatically creating proper NAMESPACE entries and cross-references. Use it when adding documentation for new package components or fixing R CMD check warnings related to documentation.
快速安装
Claude Code
推荐npx 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/write-roxygen-docs在 Claude Code 中复制并粘贴此命令以安装该技能
技能文档
name: write-roxygen-docs description: > roxygen2-Dokumentation fuer Funktionen, Datensaetze und Klassen eines R-Pakets schreiben. Umfasst alle gaengigen Tags, Querverweise, Beispiele und die Generierung von NAMESPACE-Eintraegen. Folgt dem Tidyverse-Dokumentationsstil. Verwenden beim Hinzufuegen von Dokumentation zu neuen exportierten Funktionen, internen Hilfsfunktionen, Datensaetzen, S3/S4/R6-Klassen und -Methoden oder beim Beheben dokumentationsbezogener R CMD check-Hinweise. locale: de source_locale: en source_commit: 6f65f316 translator: claude-opus-4-6 translation_date: 2026-03-16 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, roxygen2, documentation, namespace
Roxygen-Dokumentation schreiben
Vollstaendige roxygen2-Dokumentation fuer Funktionen, Datensaetze und Klassen eines R-Pakets erstellen.
Wann verwenden
- Dokumentation zu einer neuen exportierten Funktion hinzufuegen
- Interne Hilfsfunktionen dokumentieren
- Paketdatensaetze dokumentieren
- S3/S4/R6-Klassen und -Methoden dokumentieren
- Dokumentationsbezogene
R CMD check-Hinweise beheben
Eingaben
- Erforderlich: Zu dokumentierende R-Funktion, Datensatz oder Klasse
- Optional: Verwandte Funktionen fuer Querverweise (
@family,@seealso) - Optional: Ob die Funktion exportiert werden soll
Vorgehensweise
Schritt 1: Funktionsdokumentation schreiben
Roxygen-Kommentare direkt oberhalb der Funktion platzieren:
#' Compute the weighted mean of a numeric vector
#'
#' Calculates the arithmetic mean of `x` weighted by `w`. Missing values
#' in either `x` or `w` are handled according to the `na.rm` parameter.
#'
#' @param x A numeric vector of values.
#' @param w A numeric vector of weights, same length as `x`.
#' @param na.rm Logical. Should missing values be removed? Default `FALSE`.
#'
#' @return A single numeric value representing the weighted mean.
#'
#' @examples
#' weighted_mean(1:5, rep(1, 5))
#' weighted_mean(c(1, 2, NA, 4), c(1, 1, 1, 1), na.rm = TRUE)
#'
#' @export
#' @family summary functions
#' @seealso [stats::weighted.mean()] for the base R equivalent
weighted_mean <- function(x, w, na.rm = FALSE) {
# implementation
}
Erwartet: Vollstaendiger Roxygen-Block mit Titel, Beschreibung, @param fuer jeden Parameter, @return, @examples und @export.
Bei Fehler: Bei Unsicherheit ueber ein Tag ?roxygen2::rd_roclet konsultieren. Haeufig vergessen wird @return, das CRAN fuer alle exportierten Funktionen erfordert.
Schritt 2: Referenz der wesentlichen Tags
| Tag | Zweck | Fuer Export erforderlich? |
|---|---|---|
#' Title | Erste Zeile, ein Satz | Ja |
#' Description | Absatz nach Leerzeile | Ja |
@param | Parameterdokumentation | Ja |
@return | Beschreibung des Rueckgabewerts | Ja (CRAN) |
@examples | Verwendungsbeispiele | Dringend empfohlen |
@export | Zu NAMESPACE hinzufuegen | Ja, fuer oeffentliche API |
@family | Verwandte Funktionen gruppieren | Empfohlen |
@seealso | Querverweise | Optional |
@keywords internal | Als intern markieren | Fuer nicht-exportierte Dokumentation |
Erwartet: Alle erforderlichen Tags fuer den Funktionstyp sind identifiziert. Exportierte Funktionen haben mindestens @param, @return, @examples und @export.
Bei Fehler: Bei unbekannten Tags die roxygen2-Dokumentation fuer Verwendung und Syntax konsultieren.
Schritt 3: Datensaetze dokumentieren
R/data.R erstellen:
#' Example dataset of city temperatures
#'
#' A dataset containing daily temperature readings for major cities.
#'
#' @format A data frame with 365 rows and 4 variables:
#' \describe{
#' \item{date}{Date of observation}
#' \item{city}{City name}
#' \item{temp_c}{Temperature in Celsius}
#' \item{humidity}{Relative humidity percentage}
#' }
#' @source \url{https://example.com/data}
"city_temperatures"
Erwartet: R/data.R enthaelt Roxygen-Bloecke fuer jeden Datensatz mit @format zur Beschreibung der Struktur und @source zur Angabe der Datenherkunft.
Bei Fehler: Wenn R CMD check vor nicht dokumentierten Datensaetzen warnt, sicherstellen, dass der in Anfuehrungszeichen gesetzte String (z.B. "city_temperatures") genau dem Objektnamen entspricht, der mit usethis::use_data() gespeichert wurde.
Schritt 4: Das Paket dokumentieren
R/packagename-package.R erstellen:
#' @keywords internal
"_PACKAGE"
## usethis namespace: start
## usethis namespace: end
NULL
Erwartet: R/packagename-package.R existiert mit @keywords internal und dem "_PACKAGE"-Sentinel. devtools::document() generiert man/packagename-package.Rd.
Bei Fehler: Wenn R CMD check eine fehlende Paketdokumentationsseite meldet, sicherstellen, dass die Datei R/<packagename>-package.R heisst und den String "_PACKAGE" enthaelt.
Schritt 5: Sonderfaelle behandeln
Funktionen mit Punkten im Namen (S3-Methoden):
#' @export
#' @rdname process
process.myclass <- function(x, ...) {
# S3 method
}
Dokumentation wiederverwenden mit @inheritParams:
#' @inheritParams weighted_mean
#' @param trim Fraction of observations to trim.
trimmed_mean <- function(x, w, na.rm = FALSE, trim = 0.1) {
# implementation
}
Keine sichtbare Bindung beheben mit dem .data-Pronomen:
#' @importFrom rlang .data
my_function <- function(df) {
dplyr::filter(df, .data$column > 5)
}
Erwartet: Sonderfaelle (S3-Methoden, vererbte Parameter, .data-Pronomen) sind korrekt dokumentiert. @rdname gruppiert S3-Methoden zusammen. @inheritParams verwendet Parameter-Dokumentation ohne Duplikation.
Bei Fehler: Wenn R CMD check vor "no visible binding for global variable" warnt, #' @importFrom rlang .data hinzufuegen oder als letzten Ausweg utils::globalVariables() verwenden.
Schritt 6: Dokumentation generieren
devtools::document()
Erwartet: man/-Verzeichnis mit .Rd-Dateien fuer jedes dokumentierte Objekt aktualisiert. NAMESPACE mit korrekten Exporten und Importen neu generiert.
Bei Fehler: Auf Roxygen-Syntaxfehler pruefen. Haeufige Probleme: nicht geschlossene Klammern in \describe{}, fehlende #'-Praefix in einer Zeile oder ungueltiger Tag-Name. devtools::document() nach der Korrektur erneut ausfuehren.
Validierung
- Jede exportierte Funktion hat
@param,@returnund@examples -
devtools::document()laeuft ohne Fehler -
devtools::check()zeigt keine Dokumentationswarnungen -
@family-Tags gruppieren verwandte Funktionen korrekt - Beispiele laufen ohne Fehler (testen mit
devtools::run_examples())
Haeufige Stolperfallen
- Fehlendes
@return: CRAN erfordert, dass alle exportierten Funktionen ihren Rueckgabewert dokumentieren - Beispiele, die Internet/Authentifizierung benoetigen: In
\dontrun{}einschliessen mit einem erklaerenden Kommentar - Langsame Beispiele:
\donttest{}fuer Beispiele verwenden, die funktionieren, aber fuer CRAN zu lange dauern - Markdown in roxygen: Mit
Roxygen: list(markdown = TRUE)in DESCRIPTION aktivieren devtools::document()zu laufen vergessen: Man-Pages werden generiert, nicht haendisch geschrieben
Verwandte Skills
create-r-package- erstmalige Paketeinrichtung einschliesslich roxygen-Konfigurationwrite-testthat-tests- die dokumentierten Funktionen testenwrite-vignette- ausfuehrliche Dokumentation jenseits der Funktionsreferenzsubmit-to-cran- Dokumentationsanforderungen fuer CRAN
GitHub 仓库
相关推荐技能
railway-docs
文档Railway Docs Skill可实时获取最新的Railway官方文档,确保回答的准确性。当开发者询问Railway功能特性、工作原理或分享docs.railway.com链接时,应优先使用此技能。它通过专门的LLM优化文档源提供最新信息,避免依赖过时记忆来回答技术问题。
n8n-code-python
文档该Skill为在n8n平台的Python代码节点中编写代码提供专家指导,特别适用于需要使用_input/_json/_node语法、Python标准库或了解n8n中Python限制的场景。它强调JavaScript应作为首选方案,仅当需要特定Python功能或对Python语法更熟悉时才使用Python。Skill提供了快速入门模板和关键注意事项,帮助开发者在n8n中高效编写Python代码。
archon
文档Archon Skill为开发者提供了基于RAG的语义搜索和项目任务管理功能,可通过REST API访问知识库。它支持文档搜索、网站爬取、文件上传和版本控制,适用于技术文档查询和项目管理场景。首次使用时需要配置Archon主机地址,建议在处理外部文档时优先使用该Skill。
n8n-code-javascript
文档这个Skill为n8n工作流中的JavaScript代码节点提供专业指导,涵盖数据处理、HTTP请求和日期操作等核心场景。它详细解释了如何正确使用n8n特有的`$input`/`$json`语法、`$helpers`工具以及DateTime对象,并包含关键的错误排查和模式选择建议。开发者通过该Skill能快速掌握Code节点的正确返回格式、数据访问方法和常见陷阱解决方案。
