chores

R 패키지 메타데이터와 수집 신호를 모아 봅니다.

Packages / CRAN / chores

chores

v0.3.1
Repository CRANLicense MIT + file LICENSELifecycle activeNeeds compilation no
DOI
10.32614/CRAN.package.chores

Core Signals

첫 화면에서 판단해야 할 수집 신호를 먼저 배치합니다.

0
표시할 핵심 신호가 없습니다.

Supported Backends

DESCRIPTION에서 감지한 backend 관련 package입니다.

0
backend package 신호가 없습니다.

Quick Facts

기본 메타데이터를 작은 카드와 토큰으로 압축합니다.

profile
Repository
CRAN
Version
0.3.1
License
MIT + file LICENSE
Lifecycle
active
Needs compilation
no
Last observed
2026-05-30
CRAN
cran.r-project.org/package=chores

수집 소스별 패키지 정보

1개 소스
CRAN
0.3.1
2026-05-30
License
MIT + file LICENSE
Imports
cli (>= 3.6.3), glue (>= 1.8.0), ellmer (>= 0.4.0), miniUI (>= 0.1.1.1), rlang (>= 1.1.4), rstudioapi (>= 0.17.1), shiny (>= 1.9.1), streamy (>= 0.2.1)
Suggests
gt, knitr, rmarkdown, testthat (>= 3.0.0), tibble, withr
Needs compilation
no
Lifecycle
active
Last observed
2026-05-30 10:45:11

이 패키지가 의존하는 패키지

5개 표시전체 14개
PackageTypeSpec
cli
CRAN · 0.3.1 · 2026-05-30
Importscli (>= 3.6.3)
ellmer
CRAN · 0.3.1 · 2026-05-30
Importsellmer (>= 0.4.0)
glue
CRAN · 0.3.1 · 2026-05-30
Importsglue (>= 1.8.0)
miniUI
CRAN · 0.3.1 · 2026-05-30
ImportsminiUI (>= 0.1.1.1)
rlang
CRAN · 0.3.1 · 2026-05-30
Importsrlang (>= 1.1.4)
1 / 3

이 패키지를 쓰는 패키지

0개 표시전체 0개
PackageTypeSpec
표시할 dependency edge가 없습니다.
1 / 1

패키지 페이지

All links
46
Repository
CRAN
Version
0.3.1
Collected
2026-05-22 00:10:58
Package page
https://cran.r-project.org/web/packages/chores/index.html
DOI
10.32614/CRAN.package.chores
CRAN checks
https://cran.r-project.org/web/checks/check_results_chores.html
README
https://cran.r-project.org/web/packages/chores/readme/README.html
NEWS
https://cran.r-project.org/web/packages/chores/news/news.html
Reference HTML
https://cran.r-project.org/web/packages/chores/refman/chores.html
Reference PDF
https://cran.r-project.org/web/packages/chores/chores.pdf
Source package
https://cran.r-project.org/src/contrib/chores_0.3.1.tar.gz
Archive
https://CRAN.R-project.org/src/contrib/Archive/chores
Page fields
Author
Simon Couch [aut, cre], Posit Software, PBC [cph, fnd]
BugReports
https://github.com/simonpcouch/chores/issues
CRAN Checks
chores results
DOI
10.32614/CRAN.package.chores
License
MIT + file LICENSE
Maintainer
Simon Couch <simon.couch at posit.co>
Materials
README , NEWS
NeedsCompilation
no
Old Sources
chores archive
Package Source
chores_0.3.1.tar.gz
Published
2026-03-04
Reference Manual
chores.html , chores.pdf
URL
https://github.com/simonpcouch/chores , https://simonpcouch.github.io/chores/
Version
0.3.1
Vignettes
Getting started with chores ( source , R code ) Custom helpers ( source , R code ) Gallery ( source , R code )
Windows Binaries
r-devel: chores_0.3.1.zip , r-release: chores_0.3.1.zip , r-oldrel: chores_0.3.1.zip
MacOS Binaries
r-release (arm64): chores_0.3.1.tgz , r-oldrel (arm64): chores_0.3.1.tgz , r-release (x86_64): chores_0.3.1.tgz , r-oldrel (x86_64): chores_0.3.1.tgz
Version
0.3.1
Published
2026-03-04
DOI
10.32614/CRAN.package.chores
Author
Simon Couch [aut, cre], Posit Software, PBC [cph, fnd]
Maintainer
Simon Couch <simon.couch at posit.co>
BugReports
https://github.com/simonpcouch/chores/issues
License
MIT + file LICENSE
URL
https://github.com/simonpcouch/chores , https://simonpcouch.github.io/chores/
NeedsCompilation
no
Materials
README , NEWS
CRAN Checks
chores results
Reference Manual
chores.html , chores.pdf
Vignettes
Getting started with chores ( source , R code ) Custom helpers ( source , R code ) Gallery ( source , R code )
Package Source
chores_0.3.1.tar.gz
Windows Binaries
r-devel: chores_0.3.1.zip , r-release: chores_0.3.1.zip , r-oldrel: chores_0.3.1.zip
MacOS Binaries
r-release (arm64): chores_0.3.1.tgz , r-oldrel (arm64): chores_0.3.1.tgz , r-release (x86_64): chores_0.3.1.tgz , r-oldrel (x86_64): chores_0.3.1.tgz
Old Sources
chores archive
Page sections 3
Documentation
Heading
Documentation
Links
[{"label":"chores.html","section":"","type":"","url":"https://cran.r-project.org/web/packages/chores/refman/chores.html"},{"label":"chores.pdf","section":"","type":"","url":"https://cran.r-project.org/web/packages/chores/chores.pdf"},{"label":"Getting started with chores","section":"","type":"","url":"https://cran.r-project.org/web/packages/chores/vignettes/chores.html"},{"label":"source","section":"","type":"","url":"https://cran.r-project.org/web/packages/chores/vignettes/chores.Rmd"},{"label":"R code","section":"","type":"","url":"https://cran.r-project.org/web/packages/chores/vignettes/chores.R"},{"label":"Custom helpers","section":"","type":"","url":"https://cran.r-project.org/web/packages/chores/vignettes/custom.html"},{"label":"source","section":"","type":"","url":"https://cran.r-project.org/web/packages/chores/vignettes/custom.Rmd"},{"label":"R code","section":"","type":"","url":"https://cran.r-project.org/web/packages/chores/vignettes/custom.R"},{"label":"Gallery","section":"","type":"","url":"https://cran.r-project.org/web/packages/chores/vignettes/gallery.html"},{"label":"source","section":"","type":"","url":"https://cran.r-project.org/web/packages/chores/vignettes/gallery.Rmd"},{"label":"R code","section":"","type":"","url":"https://cran.r-project.org/web/packages/chores/vignettes/gallery.R"}]
Text
Reference manual: chores.html , chores.pdf Vignettes: Getting started with chores ( source , R code ) Custom helpers ( source , R code ) Gallery ( source , R code )
Downloads
Heading
Downloads
Links
[{"label":"chores_0.3.1.tar.gz","section":"","type":"","url":"https://cran.r-project.org/src/contrib/chores_0.3.1.tar.gz"},{"label":"chores_0.3.1.zip","section":"","type":"","url":"https://cran.r-project.org/bin/windows/contrib/4.7/chores_0.3.1.zip"},{"label":"chores_0.3.1.zip","section":"","type":"","url":"https://cran.r-project.org/bin/windows/contrib/4.6/chores_0.3.1.zip"},{"label":"chores_0.3.1.zip","section":"","type":"","url":"https://cran.r-project.org/bin/windows/contrib/4.5/chores_0.3.1.zip"},{"label":"chores_0.3.1.tgz","section":"","type":"","url":"https://cran.r-project.org/bin/macosx/sonoma-arm64/contrib/4.6/chores_0.3.1.tgz"},{"label":"chores_0.3.1.tgz","section":"","type":"","url":"https://cran.r-project.org/bin/macosx/big-sur-arm64/contrib/4.5/chores_0.3.1.tgz"},{"label":"chores_0.3.1.tgz","section":"","type":"","url":"https://cran.r-project.org/bin/macosx/big-sur-x86_64/contrib/4.6/chores_0.3.1.tgz"},{"label":"chores_0.3.1.tgz","section":"","type":"","url":"https://cran.r-project.org/bin/macosx/big-sur-x86_64/contrib/4.5/chores_0.3.1.tgz"},{"label":"chores archive","section":"","type":"","url":"https://CRAN.R-project.org/src/contrib/Archive/chores"}]
Text
Package source: chores_0.3.1.tar.gz Windows binaries: r-devel: chores_0.3.1.zip , r-release: chores_0.3.1.zip , r-oldrel: chores_0.3.1.zip macOS binaries: r-release (arm64): chores_0.3.1.tgz , r-oldrel (arm64): chores_0.3.1.tgz , r-release (x86_64): chores_0.3.1.tgz , r-oldrel (x86_64): chores_0.3.1.tgz Old sources: chores archive
Linking
Heading
Linking
Links
[{"label":"https://CRAN.R-project.org/package=chores","section":"","type":"","url":"https://CRAN.R-project.org/package=chores"}]
Text
Please use the canonical form https://CRAN.R-project.org/package=chores to link to this page.
Materials 2
Documentation 11
Vignettes 9
Downloads 9
All page links 46

패키지 문서 원문

4 artifacts
field
NEWS
CRAN · 0.3.1 · Materials · text/html · 4,917 · 2026-05-07
Title
NEWS
Label
NEWS
Text content
Text content
NEWS code{white-space: pre-wrap;} span.smallcaps{font-variant: small-caps;} span.underline{text-decoration: underline;} div.column{display: inline-block; vertical-align: top; width: 50%;} div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;} ul.task-list{list-style: none;} chores 0.3.1 Adjusted the recommended models in documentation. Anthropic : Claude Sonnet 3.7 -> Claude Haiku 4.5. OpenAI : Updated documentation to reflect GPT 4.1 and GPT 4.1 mini model names. Google : Added Gemini 3 Flash as a recommended model. prompt_new() gains an overwrite argument. When overwrite = TRUE , an existing prompt for the given chore will be overwritten with the provided contents (#103). chores 0.3.0 Adjusted the default recommended models in documentation (#98). Local models : At the time of chores’ last release, open-weights models that could reasonably run on a high-end laptop didn’t do the trick for powering chores helpers. The Qwen3 4B Instruct 2507 release changed this; the model provides high-accuracy responses with low latency on high-end laptops. See the “Getting started with chores” vignette for more information. OpenAI : GPT-4o and GPT-4o-mini transitioned to GPT 4.1 and GPT 4.1 mini, respectively. Anthropic : Claude Sonnet 3.5 -> Claude Sonnet 3.7. Note that Sonnet 3.7 is not the newest available minimally-thinking model from Anthropic. The newer models like Sonnet and Haiku 4.5 tend to introduce backticks in responses and struggle to strictly follow the requested output format. Reduced the cli helper prompt from ~4,100 to ~2,300 tokens for compatibility with default context window lenth of ollama and LM Studio, 4096. Previously, those applications would silently truncate the prompt, resulting in the model not receiving access to critical instructions about response format and appearing to ignore it entirely. The other default helper prompts were already well below the default limit. Introduced chores.chat and chores.dir as the preferred option names, following standard R package option naming conventions. The legacy options .chores_chat and .chores_dir continue to work and will not be deprecated (#99). Bumped the minimum version of the streamy package to 0.2.1, which will resolve an issue where some newlines were removed from multi-line file writes in Positron (#96). chores 0.2.0 In the helper selection app, clicking a helper in the selectize will now submit the selected choice. Previously, the user would have to click the helper to select it and then submit the selected choice by pressing Return/Enter (#87). This change aligns behavior in the UI when selecting helpers with a mouse click versus the up/down arrows. Users no longer need to call directory_load() manually after adding new custom helpers; the helper selection app will refresh the list of available helpers on app launch (#88). chores 0.1.0 Initial CRAN submission. Notable changes pre-CRAN submission Early adopters of the package will note a few changes made shortly before the release of the package to CRAN: The package was renamed from pal to chores, and the grammar surrounding the package shifted a bit in the process: “a pal from the pal package with a given role” is now “a helper from the chores package for a given chore.” The configuration options .pal_fn and .pal_args have been transitioned to one option, .chores_chat . That option takes an ellmer Chat, e.g. options(.chores_chat = ellmer::chat_claude()) . There is no longer a default ellmer model. Early in the development of chores, if you had an ANTHROPIC_API_KEY set up, the addin would “just work.” While this was convenient for Claude users, but it means that the package spends money on the users behalf without any explicit opt-in.
field
README
CRAN · 0.3.1 · Materials · text/html · 11,869 · 2026-05-07
Title
README
Label
README
Text content
Text content
README code{white-space: pre-wrap;} span.smallcaps{font-variant: small-caps;} span.underline{text-decoration: underline;} div.column{display: inline-block; vertical-align: top; width: 50%;} div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;} ul.task-list{list-style: none;} pre > code.sourceCode { white-space: pre; position: relative; } pre > code.sourceCode > span { display: inline-block; line-height: 1.25; } pre > code.sourceCode > span:empty { height: 1.2em; } .sourceCode { overflow: visible; } code.sourceCode > span { color: inherit; text-decoration: inherit; } div.sourceCode { margin: 1em 0; } pre.sourceCode { margin: 0; } @media screen { div.sourceCode { overflow: auto; } } @media print { pre > code.sourceCode { white-space: pre-wrap; } pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; } } pre.numberSource code { counter-reset: source-line 0; } pre.numberSource code > span { position: relative; left: -4em; counter-increment: source-line; } pre.numberSource code > span > a:first-child::before { content: counter(source-line); position: relative; left: -1em; text-align: right; vertical-align: baseline; border: none; display: inline-block; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; padding: 0 4px; width: 4em; color: #aaaaaa; } pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; } div.sourceCode { } @media screen { pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; } } code span.al { color: #ff0000; font-weight: bold; } /* Alert */ code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */ code span.at { color: #7d9029; } /* Attribute */ code span.bn { color: #40a070; } /* BaseN */ code span.bu { color: #008000; } /* BuiltIn */ code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */ code span.ch { color: #4070a0; } /* Char */ code span.cn { color: #880000; } /* Constant */ code span.co { color: #60a0b0; font-style: italic; } /* Comment */ code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */ code span.do { color: #ba2121; font-style: italic; } /* Documentation */ code span.dt { color: #902000; } /* DataType */ code span.dv { color: #40a070; } /* DecVal */ code span.er { color: #ff0000; font-weight: bold; } /* Error */ code span.ex { } /* Extension */ code span.fl { color: #40a070; } /* Float */ code span.fu { color: #06287e; } /* Function */ code span.im { color: #008000; font-weight: bold; } /* Import */ code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */ code span.kw { color: #007020; font-weight: bold; } /* Keyword */ code span.op { color: #666666; } /* Operator */ code span.ot { color: #007020; } /* Other */ code span.pp { color: #bc7a00; } /* Preprocessor */ code span.sc { color: #4070a0; } /* SpecialChar */ code span.ss { color: #bb6688; } /* SpecialString */ code span.st { color: #4070a0; } /* String */ code span.va { color: #19177c; } /* Variable */ code span.vs { color: #4070a0; } /* VerbatimString */ code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */ chores The chores package provides a library of ergonomic LLM assistants designed to help you complete repetitive, hard-to-automate tasks quickly. After selecting some code, press the keyboard shortcut you’ve chosen to trigger the chores addin (we suggest Ctrl+Cmd+C ), select the helper, and watch your code be rewritten. This package used to be called pal. Installation Getting started with chores takes three steps. 1) Install the chores package like so: install.packages ( "chores" ) You can install the developmental version with: pak :: pak ( "simonpcouch/chores" ) 2) Then, you need to configure chores with an ellmer model. chores uses ellmer under the hood, so any model that you can chat with through ellmer is also supported by chores. To configure chores with ellmer, set the option chores.chat to any ellmer Chat. For example, to use Claude, you’d write options(chores.chat = ellmer::chat_claude()) , possibly in your .Rprofile so that chores is ready to go every time you start R. You can also use a local model like Qwen3 4B Instruct 2507 for free, fully private inference (see the vignette for setup instructions). To learn more, see the Getting started with chores vignette. 3) Chore helpers are interfaced with the via the chores addin. For easiest access, we recommend registering the chores addin to a keyboard shortcut. In RStudio , navigate to Tools > Modify Keyboard Shortcuts > Search "Chores" —we suggest Ctrl+Alt+C (or Ctrl+Cmd+C on macOS). In Positron , you’ll need to open the command palette, run “Open Keyboard Shortcuts (JSON)”, and paste the following into your keybindings.json : { "key" : "Ctrl+Cmd+C" , "command" : "workbench.action.executeCode.console" , "when" : "editorTextFocus" , "args" : { "langId" : "r" , "code" : "chores::.init_addin()" , "focus" : true } } The analogous keybinding on non-macOS is Ctrl+Alt+C . That said, change the "key" entry to any keybinding you wish! Once those steps are completed, you’re ready to use helpers with a keyboard shortcut. Example Chore helpers are created automatically when users interact with the chores addin. Just highlight some code, open the addin, begin typing the “chore” of your chores and press “Return”, and watch your code be rewritten: As-is, the package provides ergonomic LLM assistants for R package development: "cli" : Convert to cli "testthat" : Convert to testthat 3 "roxygen" : Document functions with roxygen Users have also contributed a number of helpers for a wide range of tasks–see vignette("gallery", package = "chores") for a gallery of user-contributed helpers! That said, all you need to create your own chore helper is a markdown file with some instructions on how you’d like it to work. See prompt_new() for more information, and palpable for an example chores extension package. How much do helpers cost? The cost of using helpers depends on 1) the length of the underlying prompt for a given helper and 2) the cost per token of the chosen model. Using the cli helper with Anthropic’s Claude Haiku 4.5, for example, costs something like $3 per 1,000 code refactorings, while using the testthat helper with OpenAI’s GPT 4.1-mini would cost something like 60 cents per 1,000 refactorings. Chore helpers using a local model like Qwen3 4B Instruct 2507 are free and keep your code fully private, though with slightly reduced accuracy compared to hosted models.
reference_manual_html
Reference manual HTML
CRAN · 0.3.1 · Documentation · text/html · 36,117 · 2026-05-07
Title
Help for package chores
Label
Reference manual HTML
Text content
Text content
Help for package chores const macros = { "\\R": "\\textsf{R}", "\\mbox": "\\text", "\\code": "\\texttt"}; function processMathHTML() { var l = document.getElementsByClassName('reqn'); for (let e of l) { katex.render(e.textContent, e, { throwOnError: false, macros }); } return; } Package {chores} Contents chores-package .init_addin .init_helper cli_helper directory helper_options prompt roxygen_helper testthat_helper Title: A Collection of Large Language Model Assistants Version: 0.3.1 Description: Provides a collection of ergonomic large language model assistants designed to help you complete repetitive, hard-to-automate tasks quickly. After selecting some code, press the keyboard shortcut you've chosen to trigger the package app, select an assistant, and watch your chore be carried out. While the package ships with a number of chore helpers for R package development, users can create custom helpers just by writing some instructions in a markdown file. License: MIT + file LICENSE Config/testthat/edition: 3 Encoding: UTF-8 RoxygenNote: 7.3.3 URL: https://github.com/simonpcouch/chores , https://simonpcouch.github.io/chores/ BugReports: https://github.com/simonpcouch/chores/issues Imports: cli (≥ 3.6.3), glue (≥ 1.8.0), ellmer (≥ 0.4.0), miniUI (≥ 0.1.1.1), rlang (≥ 1.1.4), rstudioapi (≥ 0.17.1), shiny (≥ 1.9.1), streamy (≥ 0.2.1) Suggests: gt, knitr, rmarkdown, testthat (≥ 3.0.0), tibble, withr VignetteBuilder: knitr NeedsCompilation: no Packaged: 2026-03-04 21:27:05 UTC; simoncouch Author: Simon Couch [aut, cre], Posit Software, PBC [cph, fnd] Maintainer: Simon Couch <simon.couch@posit.co> Repository: CRAN Date/Publication: 2026-03-04 22:00:02 UTC chores: A Collection of Large Language Model Assistants Description Provides a collection of ergonomic large language model assistants designed to help you complete repetitive, hard-to-automate tasks quickly. After selecting some code, press the keyboard shortcut you've chosen to trigger the package app, select an assistant, and watch your chore be carried out. While the package ships with a number of chore helpers for R package development, users can create custom helpers just by writing some instructions in a markdown file. Author(s) Maintainer : Simon Couch simon.couch@posit.co ( ORCID ) Other contributors: Posit Software, PBC ( ROR ) [copyright holder, funder] See Also Useful links: https://github.com/simonpcouch/chores https://simonpcouch.github.io/chores/ Report bugs at https://github.com/simonpcouch/chores/issues Run the chores addin Description The chores addin allows users to interactively select a chore helper to interface with the current selection. This function is not intended to be interfaced with in regular usage of the package. To launch the chores addin in RStudio, navigate to Addins > Chores and/or register the addin with a shortcut via ⁠Tools > Modify Keyboard Shortcuts > Search "Chores"⁠ –we suggest Ctrl+Alt+C (or Ctrl+Cmd+C on macOS). Usage .init_addin() Value NULL , invisibly. Called for the side effect of launching the chores addin and interfacing with selected text. Examples if (interactive()) { .init_addin() } Initialize a Helper object Description Users typically should not need to call this function. Create new helpers that will automatically be registered with this function with prompt_new() . The chores addin will initialize needed helpers on-the-fly. Usage .init_helper(chore = NULL, .chores_chat = get_chores_chat()) Arguments chore The identifier for a helper prompt. By default one of "cli" , "testthat" or "roxygen" , though custom helpers can be added with prompt_new() . .chores_chat An ellmer Chat, e.g. ellmer::chat_claude() or ellmer::chat_google_gemini() . Defaults to the chores.chat option, so e.g. set options(chores.chat = ellmer::chat_claude(model = "claude-haiku-4-5")) in your .Rprofile to configure chores with ellmer every time you start a new R session. Value A Helper object, which is a subclass of an ellmer chat. Examples # requires an API key and sets options ## Not run: # to create a chat with claude: .init_helper(.chores_chat = ellmer::chat_claude(model = "claude-haiku-4-5")) # or with OpenAI's GPT-4.1-mini: .init_helper(.chores_chat = ellmer::chat_openai(model = "gpt-4.1-mini")) # or with Google's Gemini 3 Flash: .init_helper(.chores_chat = ellmer::chat_google_gemini( model = "gemini-3-flash-preview", api_args = list( generationConfig = list( thinkingConfig = list(thinkingLevel = "minimal") ) ) )) # to set OpenAI's GPT-4.1-mini as the default model powering chores, for example, # set the following option (possibly in your .Rprofile, if you'd like # them to persist across sessions): options( chores.chat = ellmer::chat_openai(model = "gpt-4.1-mini") ) ## End(Not run) The cli helper Description A couple years ago, the tidyverse team began migrating to the cli R package for raising errors, transitioning away from base R (e.g. stop() ), rlang (e.g. rlang::abort() ), glue, and homegrown combinations of them. cli's new syntax is easier to work with as a developer and more visually pleasing as a user. In some cases, transitioning is as simple as Finding + Replacing rlang::abort() to cli::cli_abort() . In others, there's a mess of ad-hoc pluralization, paste0() s, glue interpolations, and other assorted nonsense to sort through. Total pain, especially with thousands upon thousands of error messages thrown across the tidyverse, r-lib, and tidymodels organizations. The cli helper helps you convert your R package to use cli for error messages. Cost The system prompt for a cli helper includes something like 2,400 tokens. Add in (a generous) 100 tokens for the code that's actually highlighted and also sent off to the model and you're looking at 2,500 input tokens. The model returns approximately the same number of output tokens as it receives, so we'll call that 100 output tokens per refactor. As of the time of writing, the recommended chores model Claude Haiku 4.5 costs $1 per million input tokens and $5 per million output tokens. So, using the recommended model, cli helpers cost around $3 for every 1,000 refactored pieces of code . GPT-4.1 Mini, by contrast, doesn't tend to get cli markup classes right but does return syntactically valid calls to cli functions, and it would cost around $1 per 1,000 refactored pieces of code. Gallery This section includes a handful of examples "from the wild" and are generated with Claude Sonnet 3.5. At its simplest, a one-line message with a little bit of markup: rlang::abort("`save_pred` can only be used if the initial results saved predictions.") Returns: cli::cli_abort("{.arg save_pred} can only be used if the initial results saved predictions.") Some strange vector collapsing and funky line breaking: extra_grid_params <- glue::single_quote(extra_grid_params) extra_grid_params <- glue::glue_collapse(extra_grid_params, sep = ", ") msg <- glue::glue( "The provided `grid` has the following parameter columns that have ", "not been marked for tuning by `tune()`: {extra_grid_params}." ) rlang::abort(msg) Returns: cli::cli_abort( "The provided {.arg grid} has parameter columns that have not been marked for tuning by {.fn tune}: {.val {extra_grid_params}}." ) A message that probably best lives as two separate elements: rlang::abort( paste( "Some model parameters require finalization but there are recipe", "parameters that require tuning. Please use ", "`extract_parameter_set_dials()` to set parameter ranges ", "manually and supply the output to the `param_info` argument." ) ) Returns: cli::cli_abort( c( "Some model parameters require finalization but there are recipe parameters that require tuning.", "i" = "Please use {.fn extract_parameter_set_dials} to set parameter ranges manually and supply the output to the {.arg param_info} argument." ) ) Gnarly ad-hoc pluralization: msg <- "Creating pre-processing data to finalize unknown parameter" unk_names <- pset$id[unk] if (length(unk_names) == 1) { msg <- paste0(msg, ": ", un
section
chores.pdf
CRAN · 0.3.1 · Documentation · application/pdf · 134,237 · 2026-05-07
Title
chores.pdf
Label
chores.pdf

Reference for chores (0.3.1)

9개 topic
.init_addin
Run the chores addin
CRAN · 0.3.1 · chores/man/dot-init_addin.Rd · 2026-05-07

The chores addin allows users to interactively select a chore helper to interface with the current selection. This function is not intended to be interfaced with in regular usage of the package. To launch the chores addin in RStudio, navigate to Addins > Chores and/or register the addin with a shortcut via Tools > Modify Keyboard Shortcuts > Search "Chores"--we suggest Ctrl+Alt+C (or Ctrl+Cmd+C on macOS).

Aliases
.init_addin
Usage
.init_addin()
Value
NULL, invisibly. Called for the side effect of launching the chores addin and interfacing with selected text.
Examples
if (interactive()) .init_addin()
.init_helper
Initialize a Helper object
CRAN · 0.3.1 · chores/man/dot-init_helper.Rd · 2026-05-07

Users typically should not need to call this function. Create new helpers that will automatically be registered with this function with [=prompt_new]prompt_new(). The [=.init_addin]chores addin will initialize needed helpers on-the-fly.

Aliases
.init_helper
Usage
.init_helper(chore = NULL, .chores_chat = get_chores_chat())
Arguments
chore
The identifier for a helper prompt. By default one of [=cli_helper]"cli", [=testthat_helper]"testthat" or [=roxygen_helper]"roxygen", though custom helpers can be added with [=prompt_new]prompt_new().
.chores_chat
An ellmer Chat, e.g. ellmer::chat_claude() or ellmer::chat_google_gemini(). Defaults to the chores.chat option, so e.g. set options(chores.chat = ellmer::chat_claude(model = "claude-haiku-4-5")) in your .Rprofile to configure chores with ellmer every time you start a new R session.
Value
A Helper object, which is a subclass of an ellmer chat.
Examples
# requires an API key and sets options # to create a chat with claude: .init_helper(.chores_chat = ellmer::chat_claude(model = "claude-haiku-4-5")) # or with OpenAI's GPT-4.1-mini: .init_helper(.chores_chat = ellmer::chat_openai(model = "gpt-4.1-mini")) # or with Google's Gemini 3 Flash: .init_helper(.chores_chat = ellmer::chat_google_gemini( model = "gemini-3-flash-preview", api_args = list( generationConfig = list( thinkingConfig = list(thinkingLevel = "minimal") ) ) )) # to set OpenAI's GPT-4.1-mini as the default model powering chores, for example, # set the following option (possibly in your .Rprofile, if you'd like # them to persist across sessions): options( chores.chat = ellmer::chat_openai(model = "gpt-4.1-mini") )
chores-package
chores: A Collection of Large Language Model Assistants
CRAN · 0.3.1 · package · chores/man/chores-package.Rd · 2026-05-07

htmllogo.pngoptions: style='float: right' alt='logo' width='120' Provides a collection of ergonomic large language model assistants designed to help you complete repetitive, hard-to-automate tasks quickly. After selecting some code, press the keyboard shortcut you've chosen to trigger the package app, select an assistant, and watch your chore be carried out. While the package ships with a number of chore helpers for R package development, users can create custom helpers just by writing some instructions in a markdown file.

Aliases
choreschores-package
Keywords
internal
See also
Useful links: https://github.com/simonpcouch/chores https://simonpcouch.github.io/chores/ Report bugs at https://github.com/simonpcouch/chores/issues
Author
Maintainer: Simon Couch simon.couch@posit.co (https://orcid.org/0000-0001-5676-5107ORCID) Other contributors: Posit Software, PBC (https://ror.org/03wc8by49ROR) [copyright holder, funder]
cli_helper
The cli helper
CRAN · 0.3.1 · chores/man/cli_helper.Rd · 2026-05-07

A couple years ago, the tidyverse team began migrating to the cli R package for raising errors, transitioning away from base R (e.g. stop()), rlang (e.g. rlang::abort()), glue, and homegrown combinations of them. cli's new syntax is easier to work with as a developer and more visually pleasing as a user. In some cases, transitioning is as simple as Finding + Replacing rlang::abort() to cli::cli_abort(). In others, there's a mess of ad-hoc pluralization, paste0()s, glue interpolations, and other assorted nonsense to sort through. Total pain, especially with thousands upon thousands of error messages thrown across the tidyverse, r-lib, and tidymodels organizations. The cli helper helps you convert your R package to use cli for error messages.

Aliases
cli_helper
Custom sections
Cost
The system prompt for a cli helper includes something like 2,400 tokens. Add in (a generous) 100 tokens for the code that's actually highlighted and also sent off to the model and you're looking at 2,500 input tokens. The model returns approximately the same number of output tokens as it receives, so we'll call that 100 output tokens per refactor. As of the time of writing, the recommended chores model Claude Haiku 4.5 costs $1 per million input tokens and $5 per million output tokens. So, using the recommended model, cli helpers cost around $3 for every 1,000 refactored pieces of code. GPT-4.1 Mini, by contrast, doesn't tend to get cli markup classes right but does return syntactically valid calls to cli functions, and it would cost around $1 per 1,000 refactored pieces of code.
Gallery
This section includes a handful of examples https://github.com/tidymodels/tune/blob/f8d734ac0fa981fae3a87ed2871a46e9c40d509d/R/checks.R"from the wild" and are generated with Claude Sonnet 3.5. At its simplest, a one-line message with a little bit of markup: html<div class="sourceCode r">rlang::abort("`save_pred` can only be used if the initial results saved predictions.") html</div> Returns: html<div class="sourceCode r">cli::cli_abort("\.arg save_pred\ can only be used if the initial results saved predictions.") html</div> Some strange vector collapsing and funky line breaking: html<div class="sourceCode r">extra_grid_params <- glue::single_quote(extra_grid_params) extra_grid_params <- glue::glue_collapse(extra_grid_params, sep = ", ") msg <- glue::glue( "The provided `grid` has the following parameter columns that have ", "not been marked for tuning by `tune()`: \extra_grid_params\." ) rlang::abort(msg) html</div> Returns: html<div class="sourceCode r">cli::cli_abort( "The provided \.arg grid\ has parameter columns that have not been marked for tuning by \.fn tune\: \.val \extra_grid_params\\." ) html</div> A message that probably best lives as two separate elements: html<div class="sourceCode r">rlang::abort( paste( "Some model parameters require finalization but there are recipe", "parameters that require tuning. Please use ", "`extract_parameter_set_dials()` to set parameter ranges ", "manually and supply the output to the `param_info` argument." ) ) html</div> Returns: html<div class="sourceCode r">cli::cli_abort( c( "Some model parameters require finalization but there are recipe parameters that require tuning.", "i" = "Please use \.fn extract_parameter_set_dials\ to set parameter ranges manually and supply the output to the \.arg param_info\ argument." ) ) html</div> Gnarly ad-hoc pluralization: html<div class="sourceCode r">msg <- "Creating pre-processing data to finalize unknown parameter" unk_names <- pset$id[unk] if (length(unk_names) == 1) \ msg <- paste0(msg, ": ", unk_names) \ else \ msg <- paste0(msg, "s: ", paste0("'", unk_names, "'", collapse = ", ")) \ rlang::inform(msg) html</div> Returns: html<div class="sourceCode r">cli::cli_inform( "Creating pre-processing data to finalize unknown parameter\?s\: \.val \unk_names\\" ) html</div> Some paste0() wonk: html<div class="sourceCode r">rlang::abort(paste0( "The workflow has arguments to be tuned that are missing some ", "parameter objects: ", paste0("'", pset$id[!params], "'", collapse = ", ") )) html</div> Returns: html<div class="sourceCode r">cli::cli_abort( "The workflow has arguments to be tuned that are missing some parameter objects: \.val \pset$id[!params]\\" ) html</div> The model is instructed to only return a call to a cli function, so erroring code that's run conditionally can get borked: html<div class="sourceCode r">cls <- paste(cls, collapse = " or ") if (!fine) \ msg <- glue::glue("Argument '\deparse(cl$x)\' should be a \cls\ or NULL") if (!is.null(where)) \ msg <- glue::glue(msg, " in `\where\`") \ rlang::abort(msg) \ html</div> Returns: html<div class="sourceCode r">cli::cli_abort( "Argument \.code \deparse(cl$x)\\ should be \?a/an\ \.cls \cls\\ or \.code NULL\\?in \where\\." ) html</div> Note that ?in where is not valid cli markup. Sprintf-style statements aren't an issue: html<div class="sourceCode r">abort(sprintf("No such '%s' function: `%s()`.", package, name)) html</div> Returns: html<div class="sourceCode r">cli::cli_abort("No such \.pkg \package\\ function: \.fn \name\\.") html</div>
Interfacing manually with the cli helper
Chore helpers are typically interfaced with via the chores addin. To call the cli helper directly, use: html<div class="sourceCode r">helper_cli <- .init_helper("cli") html</div> Then, to submit a query, run: html<div class="sourceCode r">helper_cli$chat(\x\) html</div>
directory
The prompt directory
CRAN · 0.3.1 · chores/man/directory.Rd · 2026-05-07

The chores package's prompt directory is a directory of markdown files that is automatically registered with the chores package on package load. directory_*() functions allow users to interface with the directory, making new "chores" available: directory_path() returns the path to the prompt directory. directory_set() changes the path to the prompt directory (by setting the option chores.dir). directory_list() enumerates all of the different prompts that currently live in the directory (and provides clickable links to each). [=prompt]Functions prefixed with prompt*() allow users to conveniently create, edit, and delete the prompts in chores' prompt directory.

Aliases
directorydirectory_loaddirectory_listdirectory_pathdirectory_set
Usage
directory_load(dir = directory_path()) directory_list() directory_path() directory_set(dir)
Arguments
dir
Path to a directory of markdown files--see Details for more.
Value
directory_path() returns the path to the prompt directory (which is not created by default unless explicitly requested by the user). directory_set() return the path to the new prompt directory. directory_list() returns the file paths of all of the prompts that currently live in the directory (and provides clickable links to each). directory_load() returns NULL invisibly.
Examples
# choose a path for the prompt directory tmp_dir <- withr::local_tempdir() directory_set(tmp_dir) # print out the current prompt directory directory_path() # list out prompts currently in the directory directory_list() # create a prompt in the prompt directory prompt_new("boop", "replace") # view updated list of prompts directory_list()
See also
The "Custom helpers" vignette, at vignette("custom", package = "chores"),for more on adding your own helper prompts, sharing them with others, and using prompts from others.
Custom sections
Format of the prompt directory
Prompts are markdown files with the name chore-interface.md, where interface is one of "replace", "prefix" or "suffix". An example directory might look like: html<div class="sourceCode">/ |-- .config/ | |-- chores/ | |-- proofread-replace.md | |-- summarize-prefix.md html</div> In that case, chores will register two custom helpers when you call library(chores). One of them is for the "proofread" chore and will replace the selected text with a proofread version (according to the instructions contained in the markdown file itself). The other is for the "summarize" chore and will prefix the selected text with a summarized version (again, according to the markdown file's instructions). Note: Files without a .md extension are ignored. Files with a .md extension must contain only one hyphen in their filename, and the text following the hyphen must be one of replace, prefix, or suffix. To load custom prompts every time the package is loaded, place your prompts in directory_path(). To change the prompt directory without loading the package, just set the chores.dir option with options(chores.dir = some_dir). To load a directory of files that's not the prompt directory, provide a dir argument to directory_load().
helper_options
Options used by the chores package
CRAN · 0.3.1 · chores/man/helper_options.Rd · 2026-05-07

The chores package makes use of two notable user-facing options: chores.chat determines the underlying LLM powering each helper. See the "Choosing a model" section of vignette("chores", package = "chores") for more information. The legacy option .chores_chat is also supported. chores.dir is the directory where helper prompts live. See the helper directory help-page for more information. The legacy option .chores_dir is also supported.

Aliases
helper_optionschores.chat.chores_chatchores.dir.chores_dir
prompt
Working with helper prompts
CRAN · 0.3.1 · chores/man/prompt.Rd · 2026-05-07

The chores package provides a number of tools for working on system prompts. System prompts are what instruct helpers on how to behave and provide information to live in the models' "short-term memory." prompt_*() functions allow users to conveniently create, edit, remove, the prompts in chores' "[=directory]prompt directory." prompt_new() creates a new markdown file that will automatically create a helper with the specified chore, prompt, and interface on package load. Specify a contents argument to prefill with contents from a markdown file on your computer or the web. prompt_edit() and prompt_remove() open and delete, respectively, the file that defines the given chore's system prompt. The prompts you create with these functions will be automatically loaded when you next trigger the helper addin.

Aliases
promptprompt_newprompt_removeprompt_edit
Usage
prompt_new(chore, interface, contents = NULL, overwrite = FALSE) prompt_remove(chore) prompt_edit(chore)
Arguments
chore
A single string giving a descriptor of the helper's functionality. Cand only contain letters and numbers.
interface
One of "replace", "prefix", or "suffix", describing how the helper will interact with the selection. For example, the [=cli_helper]cli helper "replace"s the selection, while the [=roxygen_helper]roxygen helper "prefixes" the selected code with documentation.
contents
Optional. Path to a markdown file with contents that will "pre-fill" the file. Anything file ending in .md or .markdown that can be read with readLines() is fair game; this could be a local file, a "raw" URL to a GitHub Gist or file in a GitHub repository, etc.
overwrite
If TRUE and a prompt for the given chore already exists, overwrite it. Defaults to FALSE.
Value
Each prompt_*() function returns the file path to the created, edited, or removed filepath, invisibly.
Examples
if (interactive()) # create a new helper for chore `"boop"` that replaces the selected text: prompt_new("boop") # after closing the file, reopen with: prompt_edit("boop") # remove the prompt (next time the package is loaded) with: prompt_remove("boop") # pull prompts from files on local drives or the web with # `prompt_new(contents)`. for example, here is a GitHub Gist: # paste0( # "https://gist.githubusercontent.com/simonpcouch/", # "daaa6c4155918d6f3efd6706d022e584/raw/ed1da68b3f38a25b58dd9fdc8b9c258d", # "58c9b4da/summarize-prefix.md" # ) # # press "Raw" and then supply that URL as `contents` (you don't actually # have to use the paste0() to write out the URL--we're just keeping # the characters per line under 80): prompt_new( chore = "summarize", interface = "prefix", contents = paste0( "https://gist.githubusercontent.com/simonpcouch/", "daaa6c4155918d6f3efd6706d022e584/raw/ed1da68b3f38a25b58dd9fdc8b9c258d", "58c9b4da/summarize-prefix.md" ) )
See also
The directory help-page for more on working with prompts in batch using directory_*() functions, and vignette("custom", package = "chores") for more on sharing helper prompts and using prompts from others.
roxygen_helper
The roxygen helper
CRAN · 0.3.1 · chores/man/roxygen_helper.Rd · 2026-05-07

The roxygen helper prefixes the selected function with a minimal roxygen2 documentation template. The helper is instructed to only generate a subset of a complete documentation entry, to be then completed by a developer: Stub @param descriptions based on defaults and inferred types Stub @returns entry that describes the return value as well as important errors and warnings users might encounter.

Aliases
roxygen_helper
Custom sections
Cost
The system prompt from a roxygen helper includes something like 1,000 tokens. Add in 200 tokens for the code that's actually highlighted and also sent off to the model and you're looking at 1,200 input tokens. The model returns maybe 10 to 15 lines of relatively barebones royxgen documentation, so we'll call that 200 output tokens per refactor. As of the time of writing, the recommended chores model Claude Haiku 4.5 costs $1 per million input tokens and $5 per million output tokens. So, using the recommended model, roxygen helpers cost around $2 for every 1,000 generated roxygen documentation entries. GPT-4.1 Mini, by contrast, doesn't tend to infer argument types correctly as often and often fails to line-break properly, but does usually return syntactically valid documentation entries, and it would cost around 80 cents per 1,000 generated roxygen documentation entries.
Gallery
This section includes a handful of examples "from the wild" and are generated with Claude Sonnet 3.5. Documenting a function factory: html<div class="sourceCode r">deferred_method_transform <- function(lambda_expr, transformer, eval_env) \ transformer <- enexpr(transformer) force(eval_env) unique_id <- new_id() env_bind_lazy( generators, !!unique_id := inject((!!transformer)(!!lambda_expr)), eval.env = eval_env ) inject( function(...) \ (!!generators)[[!!unique_id]](self, private, ...) \ ) \ html</div> Returns: html<div class="sourceCode r">#' #' Transform a deferred method #' #' @description #' A short description... #' #' @param lambda_expr A lambda expression to transform. #' @param transformer A transformer function or expression. #' @param eval_env The environment in which to evaluate the transformer. #' #' @returns #' A function that, when called, will evaluate the transformed lambda expression. #' The returned function accepts `...` arguments which are passed to the generated function. #' #' @export html</div> A function that may raise a condition: html<div class="sourceCode r">set_default <- function(value, default, arg = caller_arg(value)) \ if (is.null(value)) \ if (!is_testing() || is_snapshot()) \ cli::cli_inform("Using \.field \arg\\ = \.val \default\\.") \ default \ else \ value \ \ html</div> Returns: html<div class="sourceCode r">#' Set default value #' #' @description #' A short description... #' #' @param value A value to check. #' @param default The default value to use if `value` is NULL. #' @param arg Optional. The name of the argument being set. #' #' @returns #' Returns `value` if it's not NULL, otherwise returns `default`. #' Informs the user when using the default value. #' #' @export html</div> A function with some tricky indexing: html<div class="sourceCode r">find_index <- function(left, e_right) \ if (!is.list(e_right) || !has_name(e_right, "index") || !is.numeric(e_right$index)) \ return(NA) \ matches_idx <- map_lgl(left, function(e_left) e_left$index == e_right$index) if (sum(matches_idx) != 1) \ return(NA) \ which(matches_idx)[[1]] \ html</div> Returns: html<div class="sourceCode">#' Find matching index #' #' @description #' A short description... #' #' @param left A list of elements, each expected to have an 'index' field. #' @param e_right A list with an 'index' field to search for in `left`. #' #' @returns #' The numeric index in `left` where `e_right$index` matches, or NA if not found #' or if inputs are invalid. Returns NA if multiple matches are found. #' #' @export html</div>
Interfacing manually with the roxygen helper
Chore helpers are typically interfaced with via the chores addin. To call the roxygen helper directly, use: html<div class="sourceCode r">helper_roxygen <- .init_helper("roxygen") html</div> Then, to submit a query, run: html<div class="sourceCode r">helper_roxygen$chat(\x\) html</div>
testthat_helper
The testthat helper
CRAN · 0.3.1 · chores/man/testthat_helper.Rd · 2026-05-07

testthat 3.0.0 was released in 2020, bringing with it numerous changes that were both huge quality of life improvements for package developers and also highly breaking changes. While some of the task of converting legacy unit testing code to testthat 3e is quite is pretty straightforward, other components can be quite tedious. The testthat helper helps you transition your R package's unit tests to the third edition of testthat, namely via: Converting to snapshot tests Disentangling nested expectations Transitioning from deprecated functions like expect_known_*()

Aliases
testthat_helper
Custom sections
Cost
The system prompt from a testthat helper includes something like 1,000 tokens. Add in (a generous) 100 tokens for the code that's actually highlighted and also sent off to the model and you're looking at 1,100 input tokens. The model returns approximately the same number of output tokens as it receives, so we'll call that 100 output tokens per refactor. As of the time of writing, the recommended chores model Claude Haiku 4.5 costs $1 per million input tokens and $5 per million output tokens. So, using the recommended model, testthat helpers cost around $2 for every 1,000 refactored pieces of code. GPT-4.1 Mini, by contrast, doesn't tend to get many pieces of formatting right and often fails to line-break properly, but does usually return syntactically valid calls to testthat functions, and it would cost around 60 cents per 1,000 refactored pieces of code.
Gallery
This section includes a handful of examples "https://github.com/tidymodels/broom/tree/7fa26488ab522bf577092e99aad1f2003f21b327/testsfrom the https://github.com/tidymodels/tune/tree/f8d734ac0fa981fae3a87ed2871a46e9c40d509d/testswild" and are generated with Claude Sonnet 3.5. Testthat helpers convert expect_error() (and *_warning() and *_message() and *_condition()) calls to use expect_snapshot() when there's a regular expression present: html<div class="sourceCode r">expect_warning( check_ellipses("exponentiate", "tidy", "boop", exponentiate = TRUE, quick = FALSE), "\\\\`exponentiate\\\\` argument is not supported in the \\\\`tidy\\\\(\\\\)\\\\` method for \\\\`boop\\\\` objects" ) html</div> Returns: html<div class="sourceCode r">expect_snapshot( .res <- check_ellipses( "exponentiate", "tidy", "boop", exponentiate = TRUE, quick = FALSE ) ) html</div> Note, as well, that intermediate results are assigned to an object so as not to be snapshotted when their contents weren't previously tests. Another example with multiple, redudant calls: html<div class="sourceCode r">augment_error <- "augment is only supported for fixest models estimated with feols, feglm, or femlm" expect_error(augment(res_fenegbin, df), augment_error) expect_error(augment(res_feNmlm, df), augment_error) expect_error(augment(res_fepois, df), augment_error) html</div> Returns: html<div class="sourceCode r">expect_snapshot(error = TRUE, augment(res_fenegbin, df)) expect_snapshot(error = TRUE, augment(res_feNmlm, df)) expect_snapshot(error = TRUE, augment(res_fepois, df)) html</div> They know about regexp = NA, which means "no error" (or warning, or message): html<div class="sourceCode r">expect_error( p4_b <- check_parameters(w4, p4_a, data = mtcars), regex = NA ) html</div> Returns: html<div class="sourceCode r">expect_no_error(p4_b <- check_parameters(w4, p4_a, data = mtcars)) html</div> They also know not to adjust calls to those condition expectations when there's a class argument present (which usually means that one is testing a condition from another package, which should be able to change the wording of the message without consequence): html<div class="sourceCode r">expect_error(tidy(pca, matrix = "u"), class = "pca_error") html</div> Returns: html<div class="sourceCode r">expect_error(tidy(pca, matrix = "u"), class = "pca_error") html</div> When converting non-erroring code, testthat helpers will assign intermediate results so as not to snapshot both the result and the warning: html<div class="sourceCode r">expect_warning( tidy(fit, robust = TRUE), '"robust" argument has been deprecated' ) html</div> Returns: html<div class="sourceCode r">expect_snapshot( .res <- tidy(fit, robust = TRUE) ) html</div> Nested expectations can generally be disentangled without issue: html<div class="sourceCode r">expect_equal( fit_resamples(decision_tree(cost_complexity = 1), bootstraps(mtcars)), expect_warning(tune_grid(decision_tree(cost_complexity = 1), bootstraps(mtcars))) ) html</div> Returns: html<div class="sourceCode r">expect_snapshot(\ fit_resamples_result <- fit_resamples(decision_tree(cost_complexity = 1), bootstraps(mtcars)) tune_grid_result <- tune_grid(decision_tree(cost_complexity = 1), bootstraps(mtcars)) \) expect_equal(fit_resamples_result, tune_grid_result) html</div> There are also a few edits the helper knows to make to third-edition code. For example, it transitions expect_snapshot_error() and friends to use expect_snapshot(error = TRUE) so that the error context is snapshotted in addition to the message itself: html<div class="sourceCode r">expect_snapshot_error( fit_best(knn_pca_res, parameters = tibble(neighbors = 2)) ) html</div> Returns: html<div class="sourceCode r">expect_snapshot( error = TRUE, fit_best(knn_pca_res, parameters = tibble(neighbors = 2)) ) html</div>
Interfacing manually with the testthat helper
Chore helpers are typically interfaced with via the chores addin. To call the testthat helper directly, use: html<div class="sourceCode r">helper_testthat <- .init_helper("testthat") html</div> Then, to submit a query, run: html<div class="sourceCode r">helper_testthat$chat(\x\) html</div>

버전 이력

RepositoryVersionPublishedFirst seenLast seenDocs
CRAN0.3.12026-05-292026-05-30

보안

표시할 OSV 데이터가 없습니다.

문헌 신호

표시할 OpenAlex 데이터가 없습니다.