manage-renv-dependencies
について
このスキルは、開発者がrenvを使用してRパッケージの依存関係を管理し、再現可能な環境を作成するのを支援します。Rプロジェクトにおける初期化、スナップショット/復元ワークフロー、トラブルシューティング、CI/CD統合を扱います。新規プロジェクトのセットアップ時、異なるマシンでの環境復元時、または依存関係の問題解決時にご利用ください。
クイックインストール
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/manage-renv-dependenciesこのコマンドをClaude Codeにコピー&ペーストしてスキルをインストールします
ドキュメント
Manage renv Dependencies
Setup + maintain reproducible R pkg envs via renv.
Use When
- Init dep mgmt for new R project
- Add / update pkg deps
- Restore env on new machine
- Troubleshoot renv restore fails
- Integrate renv w/ CI/CD
In
- Req: R project dir
- Opt: Existing
renv.lock(for restore) - Opt: GitHub PAT for private pkgs
Do
Step 1: Init renv
renv::init()
Creates:
renv/dir (library, settings, activation script)renv.lock(dep snapshot)- Updates
.Rprofile→ activate renv on load
→ Project-local lib created. renv/ dir + renv.lock present. .Rprofile updated w/ activation.
If err: Hangs → check network. Fails on specific pkg → install manually first w/ install.packages() + rerun renv::init().
Step 2: Add Deps
Install pkgs as usual:
install.packages("dplyr")
renv::install("github-user/private-pkg")
Snapshot to record state:
renv::snapshot()
→ renv.lock updated w/ new pkgs + vers. renv::status() shows no out-of-sync.
If err: Snapshot reports validation errs → renv::dependencies() to check which pkgs actually used → renv::snapshot(force = TRUE) to bypass validation.
Step 3: Restore on Another Machine
renv::restore()
→ All pkgs installed at exact vers in renv.lock.
If err: Common issues: GitHub pkgs fail (set GITHUB_PAT in .Renviron), sys deps missing (install w/ apt-get on Linux), timeouts on large pkgs (options(timeout = 600) before restore), or binaries not avail (renv compiles from source → ensure build tools installed).
Step 4: Update Deps
# Update a specific package
renv::update("dplyr")
# Update all packages
renv::update()
# Snapshot after updates
renv::snapshot()
→ Target pkgs updated to latest compatible vers. renv.lock reflects new vers after snapshot.
If err: Update fails for specific pkg → install directly w/ renv::install("package@version") + snapshot.
Step 5: Check Status
renv::status()
→ "No issues found" or clear list of out-of-sync pkgs w/ actionable guidance.
If err: Status reports pkgs used but not recorded → renv::snapshot(). Recorded but not installed → renv::restore().
Step 6: Config .Rprofile for Conditional Activation
if (file.exists("renv/activate.R")) {
source("renv/activate.R")
}
Ensures project works even if renv not installed (CI envs, collaborators).
→ R sessions activate renv auto when starting in project dir. Sessions w/o renv still start w/o errs.
If err: .Rprofile causes errs → ensure file.exists() guard present. Never call source("renv/activate.R") unconditionally.
Step 7: Git Config
Track:
renv.lock # Always commit
renv/activate.R # Always commit
renv/settings.json # Always commit
.Rprofile # Commit (contains renv activation)
Ignore (already in renv's .gitignore):
renv/library/ # Machine-specific
renv/staging/ # Temporary
renv/cache/ # Machine-specific cache
→ renv.lock, renv/activate.R, renv/settings.json tracked by Git. Machine-specific dirs (renv/library/, renv/cache/) ignored.
If err: renv/library/ accidentally committed → remove w/ git rm -r --cached renv/library/ + add to .gitignore.
Step 8: CI/CD Integration
GitHub Actions → renv cache action:
- uses: r-lib/actions/setup-renv@v2
Automatically restores from renv.lock w/ caching.
→ CI pipeline restores pkgs from renv.lock w/ caching. Subsequent runs faster due to cached pkgs.
If err: CI restore fails → check renv.lock committed + up to date. Private GitHub pkgs → ensure GITHUB_PAT set as repo secret.
Check
-
renv::status()reports no issues -
renv.lockcommitted to VC -
renv::restore()works on clean checkout -
.Rprofileconditionally activates renv - CI/CD uses
renv.lockfor dep resolution
Traps
- Run
renv::init()in wrong dir: Always verifygetwd()first - Mix renv + sys library: After init, only use project library
- Forget to snapshot: After installing, always
renv::snapshot() --vanillaflag:Rscript --vanillaskips.Rprofile→ renv won't activate- Large lock files in diffs: Normal —
renv.lockdesigned to be diffable JSON - Bioconductor pkgs: Use
renv::install("bioc::PackageName")+ ensure BiocManager configured
→
create-r-package— includes renv initsetup-github-actions-ci— CI integration w/ renvsubmit-to-cran— dep mgmt for CRAN pkgs
GitHub リポジトリ
関連スキル
llamaguard
その他LlamaGuardは、暴力やヘイトスピーチなど6つの安全性カテゴリーにおいて、LLMの入力と出力をモデレートするMetaの70-80億パラメータモデルです。94〜95%の精度を提供し、vLLM、Hugging Face、Amazon SageMakerを使用してデプロイ可能です。このスキルを使用して、AIアプリケーションにコンテンツフィルタリングと安全策を簡単に統合できます。
cost-optimization
その他このClaudeスキルは、リソースの適正サイジング、タグ付け戦略、支出分析を通じて、開発者がクラウドコストを最適化することを支援します。AWS、Azure、GCPにわたるクラウド支出の削減とコストガバナンスの実施のためのフレームワークを提供します。インフラコストの分析、リソースの適正サイジング、または予算制約への対応が必要な際にご利用ください。
quantizing-models-bitsandbytes
その他このスキルは、bitsandbytesを使用してLLMを8ビットまたは4ビット精度に量子化し、精度の低下を最小限に抑えつつ50〜75%のメモリ削減を実現します。限られたGPUメモリでより大規模なモデルを実行したり、推論を高速化するのに理想的で、INT8、NF4、FP4などのフォーマットをサポートしています。HuggingFace Transformersと統合され、QLoRAトレーニングや8ビットオプティマイザーを可能にします。
dispatching-parallel-agents
その他このClaudeスキルは、複数のエージェントを配備し、3つ以上の独立した問題を並行して調査・修正します。共有状態や依存関係がなく解決可能な、無関係な障害が発生するシナリオ向けに設計されています。中核となる機能は並列問題解決であり、効率を最大化するために独立した問題領域ごとに1つのエージェントを割り当てます。
