npx claudepluginhub pjt222/agent-almanacThis skill uses the workspace's default tool permissions.
---
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
Share bugs, ideas, or general feedback.
Set up and maintain reproducible R package environments using renv.
renv.lock file (for restore)renv::init()
This creates:
renv/ directory (library, settings, activation script)renv.lock (dependency snapshot).Rprofile to activate renv on loadExpected: Project-local library created. renv/ directory and renv.lock present. .Rprofile updated with activation script.
On failure: If it hangs, check network connectivity. If it fails on a specific package, install that package manually first with install.packages() and then rerun renv::init().
Install packages as usual:
install.packages("dplyr")
renv::install("github-user/private-pkg")
Then snapshot to record the state:
renv::snapshot()
Expected: renv.lock updated with new packages and their versions. renv::status() shows no out-of-sync packages.
On failure: If renv::snapshot() reports validation errors, run renv::dependencies() to check which packages are actually used, then renv::snapshot(force = TRUE) to bypass validation.
renv::restore()
Expected: All packages installed at the exact versions in renv.lock.
On failure: Common issues: GitHub packages fail (set GITHUB_PAT in .Renviron), system dependencies missing (install with apt-get on Linux), timeouts on large packages (set options(timeout = 600) before restore), or binaries not available (renv compiles from source; ensure build tools are installed).
# Update a specific package
renv::update("dplyr")
# Update all packages
renv::update()
# Snapshot after updates
renv::snapshot()
Expected: Target packages are updated to their latest compatible versions. renv.lock reflects the new versions after snapshot.
On failure: If renv::update() fails for a specific package, try installing it directly with renv::install("package@version") and then snapshot.
renv::status()
Expected: "No issues found" or a clear list of out-of-sync packages with actionable guidance.
On failure: If status reports packages used but not recorded, run renv::snapshot(). If packages are recorded but not installed, run renv::restore().
.Rprofile for Conditional Activationif (file.exists("renv/activate.R")) {
source("renv/activate.R")
}
This ensures the project works even if renv isn't installed (CI environments, collaborators).
Expected: R sessions activate renv automatically when starting in the project directory. Sessions without renv installed still start without errors.
On failure: If .Rprofile causes errors, ensure the file.exists() guard is present. Never call source("renv/activate.R") unconditionally.
Track these files:
renv.lock # Always commit
renv/activate.R # Always commit
renv/settings.json # Always commit
.Rprofile # Commit (contains renv activation)
Ignore these (already in renv's .gitignore):
renv/library/ # Machine-specific
renv/staging/ # Temporary
renv/cache/ # Machine-specific cache
Expected: renv.lock, renv/activate.R, and renv/settings.json are tracked by Git. Machine-specific directories (renv/library/, renv/cache/) are ignored.
On failure: If renv/library/ accidentally gets committed, remove it with git rm -r --cached renv/library/ and add it to .gitignore.
In GitHub Actions, use the renv cache action:
- uses: r-lib/actions/setup-renv@v2
This automatically restores from renv.lock with caching.
Expected: CI pipeline restores packages from renv.lock with caching enabled. Subsequent runs are faster due to cached packages.
On failure: If CI restore fails, check that renv.lock is committed and up to date. For private GitHub packages, ensure GITHUB_PAT is set as a repository secret.
renv::status() reports no issuesrenv.lock is committed to version controlrenv::restore() works on a clean checkout.Rprofile conditionally activates renvrenv.lock for dependency resolutionrenv::init() in wrong directory: Always verify getwd() firstrenv::init(), only use the project libraryrenv::snapshot()--vanilla flag: Rscript --vanilla skips .Rprofile, so renv won't activaterenv.lock is designed to be diffable JSONrenv::install("bioc::PackageName") and ensure BiocManager is configuredcreate-r-package - includes renv initializationsetup-github-actions-ci - CI integration with renvsubmit-to-cran - dependency management for CRAN packages