MCP HubMCP Hub
Volver a habilidades

manage-renv-dependencies

pjt222
Actualizado Yesterday
3 vistas
17
2
17
Ver en GitHub
Otrogeneral

Acerca de

Esta habilidad ayuda a los desarrolladores a gestionar las dependencias de paquetes de R utilizando renv para entornos reproducibles. Maneja la inicialización, los flujos de trabajo de instantánea/restauración, la resolución de problemas comunes y la integración con CI/CD. Úsala al configurar nuevos proyectos de R, restaurar entornos en diferentes máquinas o integrar renv en pipelines automatizados.

Instalación rápida

Claude Code

Recomendado
Principal
npx skills add pjt222/agent-almanac -a claude-code
Comando PluginAlternativo
/plugin add https://github.com/pjt222/agent-almanac
Git CloneAlternativo
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/manage-renv-dependencies

Copia y pega este comando en Claude Code para instalar esta habilidad

Documentación


name: manage-renv-dependencies description: > renvを使用してRパッケージの依存関係を再現可能な環境で管理する。 初期化、スナップショット/リストアワークフロー、一般的な問題のトラブルシューティング、 CI/CD統合を網羅。新規Rプロジェクトへの依存関係管理の初期化、パッケージの 追加・更新、新しいマシンへの環境復元、リストア失敗のトラブルシューティング、 またはCI/CDパイプラインとのrenv統合時に使用する。 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: intermediate language: R tags: r, renv, dependencies, reproducibility, lockfile

renv依存関係の管理

renvを使用して再現可能なRパッケージ環境をセットアップして保守する。

使用タイミング

  • 新規RプロジェクトへのIの依存関係管理の初期化
  • パッケージの依存関係の追加または更新
  • 新しいマシンへのプロジェクト環境の復元
  • renvのリストア失敗のトラブルシューティング
  • CI/CDパイプラインとのrenv統合

入力

  • 必須: Rプロジェクトディレクトリ
  • 任意: 既存のrenv.lockファイル(リストア用)
  • 任意: プライベートパッケージ用のGitHub PAT

手順

ステップ1: renvの初期化

renv::init()

これにより以下が作成される:

  • renv/ディレクトリ(ライブラリ、設定、アクティベーションスクリプト)
  • renv.lock(依存関係のスナップショット)
  • .Rprofileがrenvを読み込み時にアクティベートするよう更新される

期待結果: プロジェクトローカルライブラリが作成される。renv/ディレクトリとrenv.lockが存在する。.Rprofileがアクティベーションスクリプトで更新される。

失敗時: ハングする場合はネットワーク接続を確認する。特定のパッケージで失敗する場合は、そのパッケージをinstall.packages()で手動インストールしてからrenv::init()を再実行する。

ステップ2: 依存関係の追加

通常通りパッケージをインストールする:

install.packages("dplyr")
renv::install("github-user/private-pkg")

状態を記録するためにスナップショットを作成する:

renv::snapshot()

期待結果: renv.lockが新しいパッケージとそのバージョンで更新される。renv::status()が同期外れのパッケージがないことを示す。

失敗時: renv::snapshot()がバリデーションエラーを報告する場合はrenv::dependencies()を実行して実際に使用されているパッケージを確認し、次にrenv::snapshot(force = TRUE)でバリデーションをバイパスする。

ステップ3: 別のマシンへの復元

renv::restore()

期待結果: renv.lockの正確なバージョンですべてのパッケージがインストールされる。

失敗時: 一般的な問題:GitHubパッケージの失敗(.RenvironGITHUB_PATを設定)、システム依存関係の欠如(Linuxでapt-getを使用してインストール)、大きなパッケージのタイムアウト(リストア前にoptions(timeout = 600)を設定)、またはバイナリが利用不可(renvがソースからコンパイル;ビルドツールがインストールされているか確認)。

ステップ4: 依存関係の更新

# 特定のパッケージを更新
renv::update("dplyr")

# すべてのパッケージを更新
renv::update()

# 更新後にスナップショットを作成
renv::snapshot()

期待結果: 対象パッケージが最新の互換バージョンに更新される。renv.lockがスナップショット後に新しいバージョンを反映する。

失敗時: renv::update()が特定のパッケージで失敗する場合はrenv::install("package@version")で直接インストールしてからスナップショットを作成する。

ステップ5: ステータスの確認

renv::status()

期待結果: 「問題なし」または同期外れのパッケージの明確なリストとアクション可能なガイダンス。

失敗時: ステータスが使用されているが記録されていないパッケージを報告する場合はrenv::snapshot()を実行する。記録されているがインストールされていないパッケージがある場合はrenv::restore()を実行する。

ステップ6: 条件付きアクティベーション用の.Rprofile設定

if (file.exists("renv/activate.R")) {
  source("renv/activate.R")
}

これによりrenvがインストールされていない場合(CI環境、共同作業者)でもプロジェクトが動作する。

期待結果: プロジェクトディレクトリで開始するとRセッションが自動的にrenvをアクティベートする。renvがインストールされていないセッションもエラーなく起動する。

失敗時: .Rprofileがエラーを引き起こす場合、file.exists()ガードが存在することを確認する。source("renv/activate.R")を条件なしで呼び出してはならない。

ステップ7: Git設定

これらのファイルをトラックする:

renv.lock           # 常にコミット
renv/activate.R     # 常にコミット
renv/settings.json  # 常にコミット
.Rprofile           # コミット(renvアクティベーションを含む)

これらは無視する(renvの.gitignoreに既に含まれる):

renv/library/       # マシン固有
renv/staging/       # 一時的
renv/cache/         # マシン固有のキャッシュ

期待結果: renv.lockrenv/activate.Rrenv/settings.jsonがGitでトラックされる。マシン固有のディレクトリ(renv/library/renv/cache/)が無視される。

失敗時: renv/library/が誤ってコミットされた場合はgit rm -r --cached renv/library/で削除し、.gitignoreに追加する。

ステップ8: CI/CD統合

GitHub Actionsではrenvキャッシュアクションを使用する:

- uses: r-lib/actions/setup-renv@v2

これによりrenv.lockからキャッシュを使用して自動的に復元される。

期待結果: CIパイプラインがキャッシュを有効にしてrenv.lockからパッケージを復元する。キャッシュされたパッケージにより後続の実行が高速化される。

失敗時: CIの復元が失敗する場合、renv.lockがコミットされて最新であるか確認する。プライベートGitHubパッケージには、GITHUB_PATがリポジトリシークレットとして設定されているか確認する。

バリデーション

  • renv::status()が問題なしを報告する
  • renv.lockがバージョン管理にコミットされている
  • renv::restore()がクリーンなチェックアウトで動作する
  • .Rprofileが条件付きでrenvをアクティベートする
  • CI/CDが依存関係解決にrenv.lockを使用する

よくある落とし穴

  • 間違ったディレクトリでrenv::init()を実行: 最初にgetwd()を確認する
  • renvとシステムライブラリの混在: renv::init()後はプロジェクトライブラリのみを使用する
  • スナップショットを忘れる: パッケージのインストール後は常にrenv::snapshot()を実行する
  • --vanillaフラグ: Rscript --vanilla.Rprofileをスキップするため、renvはアクティベートされない
  • 差分の大きなロックファイル: 正常 — renv.lockは差分可能なJSONとして設計されている
  • Bioconductorパッケージ: renv::install("bioc::PackageName")を使用してBiocManagerが設定されていることを確認する

関連スキル

  • create-r-package - renv初期化を含む
  • setup-github-actions-ci - renvとのCI統合
  • submit-to-cran - CRANパッケージの依存関係管理

Repositorio GitHub

pjt222/agent-almanac
Ruta: i18n/ja/skills/manage-renv-dependencies
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

Habilidades relacionadas

llamaguard

Otro

LlamaGuard es el modelo de Meta de 7-8B parámetros para moderar las entradas y salidas de LLM en seis categorías de seguridad como violencia y discurso de odio. Ofrece una precisión del 94-95% y puede implementarse usando vLLM, Hugging Face o Amazon SageMaker. Utiliza esta skill para integrar fácilmente filtrado de contenido y barreras de seguridad en tus aplicaciones de IA.

Ver habilidad

cost-optimization

Otro

Esta Skill de Claude ayuda a los desarrolladores a optimizar los costes en la nube mediante el ajuste de tamaño de recursos, estrategias de etiquetado y análisis de gastos. Proporciona un marco para reducir los gastos en la nube e implementar una gobernanza de costes en AWS, Azure y GCP. Úsala cuando necesites analizar los costes de infraestructura, ajustar el tamaño de los recursos o cumplir con restricciones presupuestarias.

Ver habilidad

quantizing-models-bitsandbytes

Otro

Esta habilidad cuantiza LLMs a precisión de 8 o 4 bits utilizando bitsandbytes, logrando una reducción de memoria del 50-75% con pérdida mínima de precisión. Es ideal para ejecutar modelos más grandes en memoria GPU limitada o para acelerar la inferencia, admitiendo formatos como INT8, NF4 y FP4. La habilidad se integra con HuggingFace Transformers y permite entrenamiento QLoRA y optimizadores de 8 bits.

Ver habilidad

dispatching-parallel-agents

Otro

Esta Skill de Claude despliega múltiples agentes para investigar y solucionar 3 o más problemas independientes de forma concurrente. Está diseñada para escenarios que involucran fallos no relacionados que pueden resolverse sin estado compartido o dependencias. Su capacidad principal es la resolución paralela de problemas, asignando un agente por cada dominio problemático independiente para maximizar la eficiencia.

Ver habilidad