manage-renv-dependencies
Acerca de
Esta habilidad ayuda a los desarrolladores a gestionar las dependencias de paquetes de R utilizando renv para crear entornos reproducibles. Maneja la inicialización, los flujos de trabajo de instantánea/restauración, la resolución de problemas y la integración con CI/CD para proyectos de R. Úsala al configurar nuevos proyectos, restaurar entornos en diferentes máquinas o resolver problemas de dependencias.
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/manage-renv-dependenciesCopia y pega este comando en Claude Code para instalar esta habilidad
Documentación
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
Repositorio GitHub
Habilidades relacionadas
llamaguard
OtroLlamaGuard 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.
cost-optimization
OtroEsta 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.
quantizing-models-bitsandbytes
OtroEsta 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.
dispatching-parallel-agents
OtroEsta 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.
