rlang metaprogramming for tidy evaluation and non-standard evaluation (NSE) in R. Use when building data-masking APIs, wrapping dplyr/ggplot2/tidyr functions with {{ !! !!! operators, implementing quosures and dynamic dots, or designing tidyverse-style DSLs—e.g., "tidy eval wrapper function", "embrace operator usage", "NSE programming patterns", "custom select helpers".
93
92%
Does it follow best practices?
Impact
92%
1.27xAverage score across 3 eval scenarios
Passed
No known issues
Tidy eval wrapping and name injection
Embrace operator used
66%
66%
Glue name injection
50%
100%
No mixed defusal styles
100%
100%
Explicit quosure for reuse
100%
100%
Disambiguation pronoun
100%
100%
NSE documented
100%
100%
Optional grouping pattern
100%
100%
Passing `...` to group_by
0%
0%
No bare `stop()`
100%
100%
Structured error handling with caller context and classes
approach.md names rlang
100%
100%
`call = caller_env()` in helpers
100%
100%
`caller_arg()` used
0%
100%
Error classes assigned
75%
100%
Bullet list error messages
0%
100%
No bare `stop()`
100%
100%
`local_error_call()` used
0%
100%
`try_fetch()` for chaining
16%
100%
Different error classes tested
100%
75%
Error shows caller function
100%
100%
Dynamic expression construction and argument validation
`sym()` for string-to-symbol
100%
100%
`call2()` for expression construction
100%
100%
`Reduce` for combining conditions
100%
100%
`eval_tidy()` for evaluation
60%
60%
`arg_match()` for mode validation
0%
100%
`list2()` for dynamic dots
100%
100%
`check_dots_empty()` or `check_dots_used()`
25%
37%
Test: single symbol condition
100%
100%
Test: compound condition
100%
100%
Test: programmatic string column
100%
100%
No `parse()`/`eval(parse())`
100%
100%
b74de5e
Table of Contents
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.