designing-tidy-r-functions

Installation
SKILL.md

Tidy R Function Design

Design R functions for humans, not computers. Optimize for cognitive load reduction, predictability, and composability. These principles apply to any R code, not just tidyverse packages.

Core principle: The less a user needs to think to use your function correctly, the better.

Quick Reference

Design Goal Pattern
Predictable names Verb in imperative mood, prefixes for families
Clear arguments Most important first, optional with defaults last
Pipe-friendly Primary data as first argument
Type stability Output type predictable from input types
Enumerated options Use arg_match() with character vector defaults
Side effects Return input invisibly; partition from computation
Complex strategies Extract to strategy objects (not boolean flags)

Function Naming

Related skills
Installs
9
GitHub Stars
10
First Seen
Feb 26, 2026