Acerca de
Esta habilidad de Claude ayuda a los desarrolladores a crear viñetas de paquetes R usando R Markdown o Quarto. Te guía a través de la configuración, la configuración YAML, las opciones de fragmentos de código, la construcción, las pruebas y el cumplimiento de los requisitos de CRAN. Úsala cuando necesites agregar tutoriales introductorios, documentar flujos de trabajo complejos con múltiples funciones, crear guías específicas de dominio o proporcionar documentación para usuarios que vaya más allá de las páginas de ayuda básicas de funciones para envíos a CRAN.
Instalación rápida
Claude Code
Recomendadonpx 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-vignetteCopia y pega este comando en Claude Code para instalar esta habilidad
Documentación
name: write-vignette description: > R MarkdownまたはQuartoを使用してRパッケージのビネットを作成する。 ビネットのセットアップ、YAML設定、コードチャンクオプション、ビルドとテスト、 ビネットのCRAN要件を網羅。「はじめに」チュートリアルの追加、複数の関数にまたがる 複雑なワークフローの文書化、ドメイン固有のガイド作成、またはCRAN投稿で 関数ヘルプページを超えたユーザー向けドキュメントが必要な時に使用する。 locale: ja 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, vignette, rmarkdown, documentation, tutorial
ビネットの記述
Rパッケージの長文ドキュメントビネットを作成する。
使用タイミング
- パッケージの「はじめに」チュートリアルを追加する時
- 複数の関数にまたがる複雑なワークフローを文書化する時
- ドメイン固有のガイドを作成する時(例:統計手法)
- CRAN投稿で関数ヘルプを超えたユーザー向けドキュメントが必要な時
入力
- 必須: ドキュメント化する関数を持つRパッケージ
- 必須: ビネットのタイトルとトピック
- 任意: 形式(R MarkdownまたはQuarto、デフォルト:R Markdown)
- 任意: ビネットが外部データやAPIを必要とするかどうか
手順
ステップ1: ビネットファイルの作成
usethis::use_vignette("getting-started", title = "Getting Started with packagename")
期待結果: YAMLフロントマターを持つvignettes/getting-started.Rmdが作成される。DESCRIPTIONのSuggestsフィールドにknitrとrmarkdownが追加される。vignettes/ディレクトリが存在する。
失敗時: usethis::use_vignette()が失敗する場合、作業ディレクトリがパッケージルート(DESCRIPTIONが含まれる)であることを確認する。knitrがインストールされていない場合はinstall.packages("knitr")を実行する。手動で作成する場合はvignettes/ディレクトリとファイルを作成し、YAMLフロントマターに3つの%\Vignette*エントリすべてが含まれていることを確認する。
ステップ2: ビネットコンテンツの記述
---
title: "Getting Started with packagename"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{Getting Started with packagename}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
## Introduction
Brief overview of what the package does and who it's for.
## Installation
```r
install.packages("packagename")
library(packagename)
Basic Usage
Walk through the primary workflow:
# Load example data
data <- example_data()
# Process
result <- main_function(data, option = "default")
# Inspect
summary(result)
Advanced Features
Cover optional or advanced functionality.
Conclusion
Summarize and point to other vignettes or resources.
**期待結果:** ビネットのRmdファイルに「はじめに」、インストール、基本的な使い方、高度な機能、まとめのセクションが含まれる。コード例がパッケージのエクスポートされた関数を使用して表示可能な出力を生成する。
**失敗時:** 例が実行に失敗する場合、`devtools::install()`でパッケージがインストールされているか確認する。例が(`devtools::load_all()`ではなく)`library()`呼び出しでパッケージ名を使用していることを確認する。外部リソースを必要とする関数には、実行せずにコードを表示するために`eval=FALSE`を使用する。
### ステップ3: コードチャンクの設定
異なる目的でチャンクオプションを使用する:
```r
# 標準的な評価チャンク
{r example-basic}
result <- compute_something(1:10)
result
# コードを表示するが実行しない(例示目的)
{r api-example, eval=FALSE}
connect_to_api(key = "your_key_here")
# コードを非表示にして実行する(出力のみ表示)
{r hidden-setup, echo=FALSE}
library(packagename)
# グローバルオプションを設定
{r setup, include=FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.width = 7,
fig.height = 5
)
期待結果: include=FALSEを持つsetupチャンクがグローバルオプション(collapse、comment、fig.width、fig.height)を設定する。チャンクが適切に設定される:例示コードにはeval=FALSE、隠しセットアップにはecho=FALSE、インタラクティブな例には標準チャンク。
失敗時: チャンクオプションが効果を発揮しない場合、構文が{r chunk-name, option=value}形式(カンマ区切り、論理値に引用符なし)を使用していることを確認する。setupチャンクがドキュメントの先頭に配置されていることを確認する。
ステップ4: 外部依存関係の処理
ネットワークアクセスやオプションパッケージが必要なビネットの場合:
{r check-available, include=FALSE}
has_suggested <- requireNamespace("optionalpkg", quietly = TRUE)
{r use-suggested, eval=has_suggested}
optionalpkg::special_function()
長時間実行される計算の場合、結果を事前計算して保存する:
# vignettes/に事前計算済みの結果を保存
saveRDS(expensive_result, "vignettes/precomputed.rds")
# ビネット内で読み込む
{r load-precomputed}
result <- readRDS("precomputed.rds")
期待結果: 外部依存関係が適切に処理される:オプションパッケージはrequireNamespace()で条件付き読み込み、ネットワーク依存コードはeval=FALSEまたはtryCatch()を使用、コストのかかる計算は事前計算済みの.rdsファイルを使用する。
失敗時: オプションパッケージが利用不可のためにCRANでビネットが失敗する場合、それらのセクションを条件変数で囲む(例:eval=has_suggested)。事前計算済みの結果は、.rdsファイルがvignettes/ディレクトリに含まれていて相対パスで参照されていることを確認する。
ステップ5: ビネットのビルドとテスト
# 単一のビネットをビルド
devtools::build_vignettes()
# ビルドとチェック(ビネットの問題を検出)
devtools::check()
期待結果: ビネットがエラーなくビルドされる。HTML出力が読みやすい。
失敗時:
- pandocの欠如:
.RenvironでRSTUDIO_PANDOCを設定する - パッケージが未インストール:先に
devtools::install()を実行する - Suggestsの欠如:DESCRIPTIONのSuggestsに記載されたパッケージをインストールする
ステップ6: パッケージチェックでの確認
devtools::check()
ビネット関連のチェック:正しくビルドされる、時間がかかりすぎない、エラーがない。
期待結果: devtools::check()がビネット関連のエラーや警告なしでパスする。ビネットがCRANの時間制限内(通常60秒以内)にビルドされる。
失敗時: ビネットがチェック失敗を引き起こす場合、一般的な修正には:DESCRIPTIONへのSuggestsパッケージの追加、低速なチャンクへのeval=FALSEの使用によるビルド時間の短縮、VignetteIndexEntryがタイトルと一致していることの確認が含まれる。ビネット固有のエラーを分離するためにdevtools::build_vignettes()を別途実行する。
バリデーション
-
devtools::build_vignettes()でビネットがエラーなくビルドされる - すべてのコードチャンクが正しく実行される
- VignetteIndexEntryがタイトルと一致する
-
devtools::check()がビネット警告なしでパスする - ビネットがpkgdownサイトの記事に表示される(該当する場合)
- ビルド時間が妥当である(CRANでは60秒未満)
よくある落とし穴
- VignetteIndexEntryの不一致: YAMLのインデックスエントリは
vignette(package = "pkg")でユーザーに表示されるものと一致しなければならない vignetteYAMLブロックの欠如: 3つの%\Vignette*行すべてが必要- CRANには遅すぎるビネット: 結果を事前計算するか、コストのかかる処理に
eval=FALSEを使用する - pandocが見つからない:
RSTUDIO_PANDOC環境変数が設定されていることを確認する - パッケージの自己参照: ビネット内では
devtools::load_all()ではなくlibrary(packagename)を使用する
関連スキル
write-roxygen-docs- ビネットチュートリアルを補完する関数レベルのドキュメントbuild-pkgdown-site- ビネットはpkgdownサイトの記事として表示されるsubmit-to-cran- CRANにはビネットに固有の要件があるcreate-quarto-report- R Markdownビネットの代替としてのQuarto
Repositorio GitHub
Frequently asked questions
What is the write-vignette skill?
write-vignette is a Claude Skill by pjt222. Skills package instructions and resources that Claude loads on demand, so Claude can perform write-vignette-related tasks without extra prompting.
How do I install write-vignette?
Use the install commands on this page: add write-vignette to Claude Code as a plugin, or clone its repository into your skills directory, then restart Claude so it picks up the skill.
What category does write-vignette belong to?
write-vignette is in the Design category, tagged general.
Is write-vignette free to use?
Yes. write-vignette is listed on AIMCP and free to install. It runs inside Claude, so no separate service account is required to use the skill itself.
Habilidades relacionadas
Utilice la habilidad executing-plans cuando tenga un plan de implementación completo para ejecutar en lotes controlados con puntos de revisión. Esta habilidad carga y revisa críticamente el plan, luego ejecuta tareas en pequeños lotes (por defecto 3 tareas) mientras reporta el progreso entre cada lote para la revisión del arquitecto. Esto asegura una implementación sistemática con puntos de control de calidad integrados.
Esta habilidad despacha un subagente revisor de código para analizar los cambios en el código frente a los requisitos antes de proceder. Debe usarse después de completar tareas, implementar funciones principales o antes de fusionar con la rama principal. La revisión ayuda a detectar problemas de forma temprana al comparar la implementación actual con el plan original.
Esta habilidad proporciona una guía integral para que los desarrolladores conecten servidores MCP a Claude Code mediante transportes HTTP, stdio o SSE. Cubre la instalación, configuración, autenticación y seguridad para integrar servicios externos como GitHub, Notion y APIs personalizadas. Úsala al configurar integraciones MCP, al configurar herramientas externas o al trabajar con el Protocolo de Contexto del Modelo de Claude.
Esta habilidad ayuda a los desarrolladores a elegir entre las interfaces web y CLI de Claude Code mediante el análisis de tareas, y luego permite la teletransportación fluida de sesiones entre estos entornos. Optimiza el flujo de trabajo gestionando el estado y el contexto de la sesión al cambiar entre web, CLI o móvil. Úsala para proyectos complejos que requieren diferentes herramientas en varias etapas.
