install-putior
About
This skill installs and configures the `putior` R package for workflow visualization, handling both CRAN and GitHub installations along with optional dependencies. It verifies the complete annotation-to-diagram pipeline to ensure proper setup. Use it for initial setup, environment preparation, or when restoring an environment after upgrades.
Quick Install
Claude Code
Recommendednpx 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/install-putiorCopy and paste this command in Claude Code to install this skill
Documentation
Install putior
Install the putior R package and its optional dependencies so the annotation-to-diagram pipeline is ready to use.
When to Use
- Setting up putior for the first time in a project or environment
- Preparing a machine for workflow visualization tasks
- A downstream skill (analyze-codebase-workflow, generate-workflow-diagram) requires putior to be installed
- Restoring an environment after an R version upgrade or renv wipe
Inputs
- Required: Access to an R installation (>= 4.1.0)
- Optional: Whether to install from CRAN (default) or GitHub dev version
- Optional: Which optional dependency groups to install: MCP (
mcptools,ellmer), interactive (shiny,shinyAce), logging (logger), ACP (plumber2)
Procedure
Step 1: Verify R Installation
Confirm R is available and meets the minimum version requirement.
R.Version()$version.string
# Must be >= 4.1.0
# From WSL with Windows R
"/mnt/c/Program Files/R/R-4.5.2/bin/Rscript.exe" -e "cat(R.version.string)"
Got: R version string printed, >= 4.1.0.
If fail: Install or upgrade R. On Windows, download from https://cran.r-project.org/bin/windows/base/. On Linux, use sudo apt install r-base.
Step 2: Install putior
Install from CRAN (stable) or GitHub (dev).
# CRAN (recommended)
install.packages("putior")
# GitHub dev version (if latest features needed)
remotes::install_github("pjt222/putior")
Got: Package installs without errors. library(putior) loads silently.
If fail: If CRAN installation fails with "not available for this version of R", use the GitHub version. If GitHub fails, check that remotes is installed: install.packages("remotes").
Step 3: Install Optional Dependencies
Install optional packages based on required functionality.
# MCP server integration (for AI assistant access)
remotes::install_github("posit-dev/mcptools")
install.packages("ellmer")
# Interactive sandbox
install.packages("shiny")
install.packages("shinyAce")
# Structured logging
install.packages("logger")
# ACP server (agent-to-agent communication)
install.packages("plumber2")
Got: Each package installs without errors.
If fail: For mcptools, ensure remotes is installed first. For system dependency errors on Linux, install the required libraries (e.g., sudo apt install libcurl4-openssl-dev for httr2 dependency).
Step 4: Verify Installation
Run the basic pipeline to confirm everything works.
library(putior)
# Check package version
packageVersion("putior")
# Verify core functions are available
stopifnot(
is.function(put),
is.function(put_auto),
is.function(put_diagram),
is.function(put_generate),
is.function(put_merge),
is.function(put_theme)
)
# Test basic pipeline with a temp file
tmp <- tempfile(fileext = ".R")
writeLines("# put id:'test', label:'Hello putior'", tmp)
cat(put_diagram(put(tmp)))
Got: Mermaid flowchart code printed to console containing test and Hello putior.
Key defaults: All scan functions (
put(),put_auto(),put_generate(),put_merge()) default torecursive = TRUE, scanning subdirectories automatically. This is a breaking change from pre-0.2.0 versions where the default wasFALSE. All scan functions also accept anexcludeparameter for regex-based file filtering (e.g.,put("./src/", exclude = "test_")).
If the optional shiny package is installed, try the interactive sandbox:
putior::run_sandbox()
This launches a browser-based editor where you can experiment with PUT annotation syntax and see diagrams rendered in real time.
If fail: If put is not found, the package did not install correctly. Reinstall with install.packages("putior", dependencies = TRUE). If the diagram is empty, verify the temp file was created and the annotation syntax uses single quotes inside double quotes.
Validation
-
library(putior)loads without errors -
packageVersion("putior")returns a valid version -
put()with a file containing a valid PUT annotation returns a data frame with one row -
put_diagram()produces Mermaid code starting withflowchart - All requested optional dependencies load without errors
Pitfalls
- Wrong quote nesting: PUT annotations use single quotes inside the annotation:
id:'name', notid:"name"(which conflicts with the comment string delimiter in some contexts). - Missing Pandoc for vignettes: If you plan to build putior's vignettes locally, ensure
RSTUDIO_PANDOCis set in.Renviron. - renv isolation: If the project uses renv, you must install putior inside the renv library. Run
renv::install("putior")instead ofinstall.packages("putior"). - GitHub rate limits: Installing
mcptoolsfrom GitHub may fail without aGITHUB_PAT. Set one viausethis::create_github_token().
Related Skills
analyze-codebase-workflow— next step after installation to survey a codebaseconfigure-putior-mcp— set up the MCP server after installing optional depsmanage-renv-dependencies— manage putior within an renv environmentconfigure-mcp-server— general MCP server configuration
GitHub Repository
Related Skills
content-collections
MetaThis skill provides a production-tested setup for Content Collections, a TypeScript-first tool that transforms Markdown/MDX files into type-safe data collections with Zod validation. Use it when building blogs, documentation sites, or content-heavy Vite + React applications to ensure type safety and automatic content validation. It covers everything from Vite plugin configuration and MDX compilation to deployment optimization and schema validation.
polymarket
MetaThis skill enables developers to build applications with the Polymarket prediction markets platform, including API integration for trading and market data. It also provides real-time data streaming via WebSocket to monitor live trades and market activity. Use it for implementing trading strategies or creating tools that process live market updates.
creating-opencode-plugins
MetaThis skill helps developers create OpenCode plugins that hook into 25+ event types like commands, files, and LSP operations. It provides the plugin structure, event API specifications, and implementation patterns for JavaScript/TypeScript modules. Use it when you need to intercept, monitor, or extend the OpenCode AI assistant's lifecycle with custom event-driven logic.
sglang
MetaSGLang is a high-performance LLM serving framework that specializes in fast, structured generation for JSON, regex, and agentic workflows using its RadixAttention prefix caching. It delivers significantly faster inference, especially for tasks with repeated prefixes, making it ideal for complex, structured outputs and multi-turn conversations. Choose SGLang over alternatives like vLLM when you need constrained decoding or are building applications with extensive prefix sharing.
