MCP HubMCP Hub
SKILL·1610A8

manage-renv-dependencies

pjt222
Mis à jour 1 month ago
9 vues
26
3
26
Voir sur GitHub
Autreaiapiautomation

À propos

Cette compétence aide les développeurs à gérer les dépendances des packages R en utilisant renv pour créer des environnements reproductibles. Elle prend en charge l'initialisation, les flux de travail de capture/restauration, le dépannage et l'intégration CI/CD pour les projets R. Utilisez-la lors de la configuration de nouveaux projets, de la restauration d'environnements sur différentes machines, ou pour résoudre des problèmes de dépendances.

Installation rapide

Claude Code

Recommandé
Principal
npx skills add pjt222/agent-almanac -a claude-code
Commande PluginAlternatif
/plugin add https://github.com/pjt222/agent-almanac
Git CloneAlternatif
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/manage-renv-dependencies

Copiez et collez cette commande dans Claude Code pour installer cette compétence

Documentation

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.lock committed to VC
  • renv::restore() works on clean checkout
  • .Rprofile conditionally activates renv
  • CI/CD uses renv.lock for dep resolution

Traps

  • Run renv::init() in wrong dir: Always verify getwd() first
  • Mix renv + sys library: After init, only use project library
  • Forget to snapshot: After installing, always renv::snapshot()
  • --vanilla flag: Rscript --vanilla skips .Rprofile → renv won't activate
  • Large lock files in diffs: Normal — renv.lock designed to be diffable JSON
  • Bioconductor pkgs: Use renv::install("bioc::PackageName") + ensure BiocManager configured

  • create-r-package — includes renv init
  • setup-github-actions-ci — CI integration w/ renv
  • submit-to-cran — dep mgmt for CRAN pkgs

Dépôt GitHub

pjt222/agent-almanac
Chemin: i18n/caveman-ultra/skills/manage-renv-dependencies
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams
FAQ

Frequently asked questions

What is the manage-renv-dependencies skill?

manage-renv-dependencies is a Claude Skill by pjt222. Skills package instructions and resources that Claude loads on demand, so Claude can perform manage-renv-dependencies-related tasks without extra prompting.

How do I install manage-renv-dependencies?

Use the install commands on this page: add manage-renv-dependencies 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 manage-renv-dependencies belong to?

manage-renv-dependencies is in the Other category, tagged ai, api and automation.

Is manage-renv-dependencies free to use?

Yes. manage-renv-dependencies is listed on AIMCP and free to install. It runs inside Claude, so no separate service account is required to use the skill itself.

Compétences associées

llamaguard
Autre

LlamaGuard est le modèle de Meta, doté de 7 à 8 milliards de paramètres, conçu pour modérer les entrées et sorties des LLM selon six catégories de sécurité comme la violence et les discours haineux. Il offre une précision de 94 à 95 % et peut être déployé avec vLLM, Hugging Face ou Amazon SageMaker. Utilisez cette compétence pour intégrer facilement le filtrage de contenu et des garde-fous de sécurité dans vos applications d'IA.

Voir la compétence
cost-optimization
Autre

Cette compétence de Claude aide les développeurs à optimiser les coûts du cloud grâce au redimensionnement des ressources, aux stratégies d'étiquetage et à l'analyse des dépenses. Elle fournit un cadre pour réduire les dépenses cloud et mettre en œuvre une gouvernance des coûts sur AWS, Azure et GCP. Utilisez-la lorsque vous devez analyser les coûts d'infrastructure, redimensionner les ressources ou respecter des contraintes budgétaires.

Voir la compétence
sports-betting-analyzer
Autre

Cette compétence Claude analyse les marchés des paris sportifs, incluant les spreads, les over/under et les paris spéciaux, en examinant les tendances historiques et les statistiques situationnelles pour identifier les paris à valeur ajoutée. Elle fournit une sortie en markdown structuré avec des recommandations actionnables à des fins éducatives. Les développeurs doivent l'utiliser pour des outils d'analyse de paris sportifs tout en notant qu'elle est conçue uniquement pour le divertissement et l'éducation.

Voir la compétence
quantizing-models-bitsandbytes
Autre

Cette compétence quantifie les LLMs en précision 8 bits ou 4 bits à l'aide de bitsandbytes, permettant une réduction de 50 à 75 % de la mémoire utilisée avec une perte de précision minime. Elle est idéale pour exécuter des modèles plus volumineux sur une mémoire GPU limitée ou pour accélérer l'inférence, prenant en charge des formats comme INT8, NF4 et FP4. La compétence s'intègre à HuggingFace Transformers et permet l'entraînement QLoRA ainsi que l'utilisation d'optimiseurs en 8 bits.

Voir la compétence