rlang-conditions

Implement R package error handling with rlang conditions and testthat snapshots.

13|2|Updated Jan 13, 2026
One-click install
npx skills add https://github.com/jsperger/llm-r-skills --skill rlang-conditions
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: rlang-conditions
Source: https://github.com/jsperger/llm-r-skills/tree/main/skills/rlang-conditions
Command: npx skills add https://github.com/jsperger/llm-r-skills --skill rlang-conditions

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill helps R developers implement robust error handling in packages, enabling consistent, user-friendly error reporting and reliable failure handling.

Core Features & Use Cases

  • Formatted conditions: Use cli_abort(), cli_warn(), and cli_inform() to craft informative error and status messages.
  • Error context: Attach contextual information with caller_env() and caller_arg() so end users see meaningful call traces.
  • Input validation: Provide reusable checkers that validate arguments and report precise function and parameter names.
  • Error chaining: Use try_fetch() to wrap operations and chain contextual errors without losing the original cause.
  • Testing: Validate error behaviour with testthat snapshots to ensure snapshots reflect produced messages.

Quick Start

Load the rlang package in your package development workflow and replace base error calls with cli_abort/cli_warn/cli_inform. For example, enforce argument types with a helper that uses caller_arg() to display the correct parameter name, and wrap risky operations with try_fetch() to preserve context.

Frequently Asked Questions about rlang-conditions

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I implement robust R error handling in my package?▼

Robust R error handling uses cli_abort() and cli_warn() to produce formatted, contextual conditions. It replaces base error calls to generate user-friendly messages and consistent failure reporting within package development workflows.

How does try_fetch() chain errors in R without losing context?▼

try_fetch() chains errors in R by wrapping risky operations to capture and attach contextual information. It preserves the original cause of failures while adding new context, preventing error masking during package execution.

Can I display correct parameter names during R input validation?▼

Input validation in R displays correct parameter names by using caller_arg() and caller_env(). These helpers identify the exact function and parameter source, reporting precise argument names in the resulting error messages.

Does this error handling approach work with testthat snapshots?▼

Yes, this error handling approach works with testthat snapshots to validate error behavior. It integrates with standard testing workflows, ensuring snapshots accurately reflect the formatted messages produced by cli_abort and related functions.

What R and rlang versions are needed for cli_abort and caller_env?▼

Using cli_abort and caller_env for error handling requires R version 4.3 or higher and rlang version 1.1.3 or higher. These versions provide the necessary condition formatting and environment tracing capabilities.