R Package Check
pedrohcgs/claude-code-my-workflow
Run the full R package release gate — regenerate docs, run the test suite, run R CMD check --as-cran, and triage every ERROR / WARNING / NOTE against CRAN policy before a release or submission.
Prepare R packages for CRAN submission by checking for common ad-hoc requirements not caught by devtools::check().
$ npx skills add quarto-dev/quarto-r --skill cran-extrachecks -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install quarto-dev/quarto-r cran-extrachecks --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/quarto-dev/quarto-r.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/cran-extrachecks .claude/skills/cran-extrachecks && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "cran-extrachecks" agent skill from https://github.com/quarto-dev/quarto-r/tree/main/.claude/skills/cran-extrachecks into .claude/skills/cran-extrachecks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cran-extrachecks", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/quarto-dev/quarto-r/tree/main/.claude/skills/cran-extrachecksType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add quarto-dev/quarto-r --skill cran-extrachecks -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install quarto-dev/quarto-r cran-extrachecks --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/quarto-dev/quarto-r.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/cran-extrachecks .agents/skills/cran-extrachecks && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "cran-extrachecks" agent skill from https://github.com/quarto-dev/quarto-r/tree/main/.claude/skills/cran-extrachecks into .agents/skills/cran-extrachecks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cran-extrachecks", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add quarto-dev/quarto-r --skill cran-extrachecks -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install quarto-dev/quarto-r cran-extrachecks --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/quarto-dev/quarto-r.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/cran-extrachecks .cursor/skills/cran-extrachecks && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "cran-extrachecks" agent skill from https://github.com/quarto-dev/quarto-r/tree/main/.claude/skills/cran-extrachecks into .cursor/skills/cran-extrachecks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cran-extrachecks", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/quarto-dev/quarto-r.git --path .claude/skills/cran-extrachecks--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add quarto-dev/quarto-r --skill cran-extrachecks -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install quarto-dev/quarto-r cran-extrachecks --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/quarto-dev/quarto-r.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/cran-extrachecks .gemini/skills/cran-extrachecks && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "cran-extrachecks" agent skill from https://github.com/quarto-dev/quarto-r/tree/main/.claude/skills/cran-extrachecks into .gemini/skills/cran-extrachecks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cran-extrachecks", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install quarto-dev/quarto-r cran-extrachecksInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add quarto-dev/quarto-r --skill cran-extrachecks -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/quarto-dev/quarto-r.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/cran-extrachecks .github/skills/cran-extrachecks && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "cran-extrachecks" agent skill from https://github.com/quarto-dev/quarto-r/tree/main/.claude/skills/cran-extrachecks into .github/skills/cran-extrachecks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cran-extrachecks", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add quarto-dev/quarto-r --skill cran-extrachecks -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install quarto-dev/quarto-r cran-extrachecks --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/quarto-dev/quarto-r.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/cran-extrachecks .opencode/skills/cran-extrachecks && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "cran-extrachecks" agent skill from https://github.com/quarto-dev/quarto-r/tree/main/.claude/skills/cran-extrachecks into .opencode/skills/cran-extrachecks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cran-extrachecks", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
cran-extrachecksPrepare R packages for CRAN submission by checking for common ad-hoc requirements not caught by devtools::check().
Cran Extrachecks is an agent skill from quarto-dev/quarto-r. Prepare R packages for CRAN submission by checking for common ad-hoc requirements not caught by devtools::check(). Use when: (1) Preparing a package for first CRAN release, (2) Preparing a package update for CRAN resubmission, (3) Reviewing a package to ensure CRAN compliance, (4) Responding to CRAN reviewer feedback. Covers documentation requirements, DESCRIPTION field standards, URL validation, examples, and administrative requirements.
Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: R interface to quarto-cli. The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit bd2329a. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are r and markdown).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
paleobiodb.orgh3geo.orgcran.r-project.orgr-pkg.orgcranchecks.infoFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Cran Extrachecks loads about 3.7k tokens when it runs. Until then it costs about 115 tokens; SKILL.md has 1,294 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from quarto-dev/quarto-r at commit bd2329a, republished under its MIT licence (© quarto-dev). 1,294 words, ~3,712 tokens.
.claude/skills/cran-extrachecks/SKILL.md (or your agent's skills folder).Help R package developers prepare packages for CRAN submission by systematically checking for common ad-hoc requirements that CRAN reviewers enforce but devtools::check() doesn't catch.
Work through these items systematically:
usethis::use_news_md() if not already presentusethis::use_cran_comments() if not already presentinstall.packages("pkgname")).devtools::build_readme() to re-render README.mdTitle: and Description: fields (see detailed guidance below)@return and @examples (see detailed guidance below)Authors@R: includes a copyright holder with role [cph]urlchecker::url_check() and fix any issuesReturn Value Documentation (Strictly Enforced)
CRAN now strictly requires @return documentation for all exported functions. Use the roxygen2 tag @return to document what the function returns.
@keywords internal@return None or similarExample:
# Missing @return - WILL BE REJECTED
#' Calculate sum
#' @export
my_sum <- function(x, y) {
x + y
}
# Correct - includes @return
#' Calculate sum
#' @param x First number
#' @param y Second number
#' @return A numeric value
#' @export
my_sum <- function(x, y) {
x + y
}
# For functions with no return value
#' Print message
#' @param msg Message to print
#' @return None, called for side effects
#' @export
print_msg <- function(msg) {
cat(msg, "\n")
}Examples for Exported Functions
If your exported function has a meaningful return value, it will almost definitely require an @examples section. Use the roxygen2 tag @examples.
@keywords internalUn-exported Functions with Examples
If you write roxygen examples for un-exported functions, you must either:
::: notation: pkg:::my_fun()@noRd tag to suppress .Rd file creationUsing \dontrun{} Sparingly
\dontrun{} should only be used if the example really cannot be executed (e.g., missing additional software, API keys, etc.).
try() insteadgooglesheets4::sheets_has_token()) with if () blocksinteractive() can be used as the condition\donttest{}Never Comment Out Code in Examples
# BAD - Will be rejected
#' @examples
#' # my_function(x) # Don't do this!CRAN's guidance: "Examples/code lines in examples should never be commented out. Ideally find toy examples that can be regularly executed and checked."
Guarding Examples with Suggested Packages
Use @examplesIf for entire example sections requiring suggested packages:
#' @examplesIf rlang::is_installed("dplyr")
#' library(dplyr)
#' my_data %>% my_function()For individual code blocks within examples:
#' @examples
#' if (rlang::is_installed("dplyr")) {
#' library(dplyr)
#' my_data %>% my_function()
#' }CRAN enforces strict Title requirements:
Use Title Case
Capitalize all words except articles like 'a', 'the'. Use tools::toTitleCase() to help format.
Avoid Redundancy
Common phrases that get flagged:
Examples:
# BAD
Title: A Toolkit for the Construction of Modeling Packages for R
# GOOD
Title: Construct Modeling Packages
# BAD
Title: Command Argument Parsing for R
# GOOD
Title: Command Argument ParsingQuote Software/Package Names
Put all software and R package names in single quotes:
# GOOD
Title: Interface to 'Tiingo' Stock Price APILength Limit
Keep titles under 65 characters.
Never Start With Forbidden Phrases
CRAN will reject descriptions starting with:
# BAD
Description: This package provides functions for rendering slides.
Description: Functions for rendering slides to different formats.
# GOOD
Description: Render slides to different formats including HTML and PDF.Expand to 3-4 Sentences
Single-sentence descriptions are insufficient. Provide a broader description of:
# BAD (too short)
Description: Render slides to different formats.
# GOOD
Description: Render slides to different formats including HTML and PDF.
Supports custom themes and progressive disclosure patterns. Integrates
with 'reveal.js' for interactive presentations. Designed for technical
presentations and teaching materials.Quote Software Names, Not Functions
# BAD
Description: Uses 'case_when()' to process data.
# GOOD
Description: Uses case_when() to process data with 'dplyr'.Software, package, and API names get single quotes (including 'R'). Function names do not.
Expand All Acronyms
All acronyms must be fully expanded on first mention:
# BAD
Description: Implements X-SAMPA processing.
# GOOD
Description: Implements Extended Speech Assessment Methods Phonetic
Alphabet (X-SAMPA) processing.Publication Titles Only in Double Quotes
Only use double quotes for publication titles, not for phrases or emphasis:
# BAD
Description: Handles dates like "the first Monday of December".
# GOOD
Description: Handles dates like the first Monday of December.All URLs Must Use HTTPS
CRAN requires https:// protocol for all URLs. HTTP links will be rejected.
# BAD
URL: http://paleobiodb.org/
# GOOD
URL: https://paleobiodb.org/No Redirecting URLs
CRAN rejects URLs that redirect to other locations. Example rejection:
Found the following (possibly) invalid URLs:
URL: https://h3geo.org/docs/core-library/coordsystems#faceijk-coordinates
(moved to https://h3geo.org/docs/core-library/coordsystems/)Use urlchecker Package
# Find redirecting URLs
urlchecker::url_check()
# Automatically update to final destinations
urlchecker::url_update()Ignore URLs That Will Exist After Publication
Some URLs that don't currently resolve will exist once the package is published on CRAN. These should NOT be changed:
https://cran.r-project.org/package=pkgname)https://www.r-pkg.org/badges/version/pkgname)https://cranchecks.info/badges/pkgname)When urlchecker::url_check() flags these URLs, leave them as-is. They are aspirational URLs that will work once the package is on CRAN.
Check for Invalid File URIs
Relative links in README must exist after package build. Common issue:
Found the following (possibly) invalid file URI:
URI: CODE_OF_CONDUCT.md
From: README.mdThis occurs when files are in .Rbuildignore. Solutions:
.Rbuildignoreusethis::use_code_of_conduct() which generates sections without relative linksCopyright Holder Role
Always add [cph] role to Authors field, even if you're the only author:
# Required
Authors@R: person("John", "Doe", role = c("aut", "cre", "cph"))Posit-Supported Packages
For packages in Posit-related GitHub organizations (posit-dev, rstudio, r-lib, tidyverse, tidymodels) or maintained by someone with a @posit.co email address, include Posit Software, PBC as copyright holder and funder:
Authors@R: c(
person("Jane", "Doe", role = c("aut", "cre"),
email = "jane.doe@posit.co"),
person("Posit Software, PBC", role = c("cph", "fnd"),
comment = c(ROR = "03wc8by49"))
)LICENSE Year
Update LICENSE year to current submission year:
# If LICENSE shows 2024 but submitting in 2026
# Update: 2024 → 2026Method References
CRAN may ask:
If there are references describing the methods in your package, please add these in the description field...
If there are no references, reply to the email explaining this. Consider adding a preemptive note in cran-comments.md:
## Method References
There are no published references describing the methods in this package.
The package implements original functionality for [brief description].Work through these files systematically:
@return, @examples, @examplesIf, @noRd)devtools::build_readme()DESCRIPTION Title:
# Before
Title: A Toolkit for the Construction of Modeling Packages for R
# After
Title: Construct Modeling PackagesDESCRIPTION Description:
# Before
Description: This package provides functions for rendering slides.
# After
Description: Render slides to different formats including HTML and PDF.
Supports custom themes and progressive disclosure. Integrates with
'reveal.js' for interactive presentations.Function Documentation:
# Before - Missing @return
#' Calculate total
#' @param x Values
#' @export
calc_total <- function(x) sum(x)
# After - Complete documentation
#' Calculate total
#' @param x Numeric values to sum
#' @return A numeric value representing the sum
#' @examples
#' calc_total(1:10)
#' @export
calc_total <- function(x) sum(x)tools::toTitleCase() - Format titles with proper capitalizationurlchecker::url_check() - Find problematic URLsurlchecker::url_update() - Fix redirecting URLsusethis::use_news_md() - Create NEWS.mdusethis::use_cran_comments() - Create cran-comments.mddevtools::build_readme() - Re-render README.md from README.Rmdusethis::use_code_of_conduct() - Add CoC without relative linksusethis::use_build_ignore() - Ignore files in R package buildusethis::use_package() - Add a package dependency to DESCRIPTIONusethis::use_tidy_description() - Tidy up DESCRIPTION formattingUse this checklist to ensure nothing is missed before submission:
NEWS.md exists and documents changes for this versioncran-comments.md exists with submission notesdevtools::build_readme() was runinstall.packages("pkgname"))Title: uses title caseTitle: has no redundant phrases ("A Toolkit for", "Tools for", "for R")Title: quotes all software/package names in single quotesTitle: is under 65 charactersDescription: does NOT start with "This package", package name, or "Functions for"Description: is 3-4 sentences explaining purpose and utilityDescription: quotes software/package/API names (including 'R') but NOT function namesDescription: expands all acronyms on first mentionDescription: uses double quotes only for publication titlesAuthors@R: includes copyright holder with [cph] roleperson("Posit Software, PBC", role = c("cph", "fnd"), comment = c(ROR = "03wc8by49"))@return documentation@examples\dontrun{} unless truly necessary@examplesIf or if guards::: notation or @noRdurlchecker::url_check() was run.Rbuildignore filescran-comments.md© quarto-dev, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/cran-extrachecks of quarto-dev/quarto-r.
Open the folder on GitHubat commit bd2329a
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in quarto-dev/quarto-r, which our catalogue first saw on October 7, 2026.
Cran Extrachecks next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Cran Extrachecks this skillquarto-dev/quarto-r | 160 | 1 repos | ~3.7k | Automated safety check: Pass | MIT | |
| R Package Checkpedrohcgs/claude-code-my-workflow | 1.7k | — | ~1.6k | Automated safety check: Notes | MIT | |
| R Package Checkipea/geobr | 959 | — | ~1.5k | Automated safety check: Notes | None | |
| Check PRpaperclipai/paperclip | 99k | — | ~3.6k | Automated safety check: Pass | MIT | |
| Prepare Paperclip PRpaperclipai/paperclip | 99k | — | ~954 | Automated safety check: Pass | MIT | |
| Audit Preparationsickn33/agentic-awesome-skills | 47k | 1 repos | ~5.3k | Automated safety check: Pass | MIT |
pedrohcgs/claude-code-my-workflow
Run the full R package release gate — regenerate docs, run the test suite, run R CMD check --as-cran, and triage every ERROR / WARNING / NOTE against CRAN policy before a release or submission.
ipea/geobr
Run the full R package release gate — regenerate docs, run the test suite, run R CMD check --as-cran, and triage every ERROR / WARNING / NOTE against CRAN policy before a release or submission.
paperclipai/paperclip
Check a GitHub, GitLab, or Perforce PR/MR/CL for review comments, failing checks, and PR-body gaps.
paperclipai/paperclip
Prepare a Paperclip branch for PR with commits, template body, and checks.
sickn33/agentic-awesome-skills
Audit preparation register: required document, period covered, request and receipt dates, preparer and reviewer, auditor queries and adjustments.
davepoon/buildwithclaude
Run CIAgent regression checks after changing an AI agent's code, prompts, or knowledge base in a repo that has agentcispec.yaml, and interpret the results.
quarto-dev/quarto-r
Create professional package release blog posts following Tidyverse or Shiny blog conventions.
quarto-dev/quarto-r
Create a release checklist and GitHub issue for an R package.
quarto-dev/quarto-r
Generate and improve accessible alt text for data visualizations and images in R packages and Quarto documents.
quarto-dev/quarto-r
Comprehensive R package for command-line interface styling, semantic messaging, and user communication.
quarto-dev/quarto-r
A skill your agent uses when the user is explicitly working with Quarto, .qmd files, quarto.yml, Quarto projects, or Quarto features such as callouts, cross-references, citations, Mermaid diagrams…
quarto-dev/quarto-r
Best practices for writing R package tests using testthat version 3+.
Prepare R packages for CRAN submission by checking for common ad-hoc requirements not caught by devtools::check(). Cran Extrachecks is an agent skill from quarto-dev/quarto-r. Prepare R packages for CRAN submission by checking for common ad-hoc requirements not caught by devtools::check().
Cran Extrachecks fits situations like: preparing a package for first CRAN release; preparing a package update for CRAN resubmission; reviewing a package to ensure CRAN compliance; responding to CRAN reviewer feedback.
Run `npx skills add quarto-dev/quarto-r --skill cran-extrachecks -a claude-code`. Or copy the skill folder (.claude/skills/cran-extrachecks in quarto-dev/quarto-r) into .claude/skills/cran-extrachecks in your project. Claude Code loads it when a task matches its description.
Run `npx skills add quarto-dev/quarto-r --skill cran-extrachecks -a codex`. Or copy the skill folder (.claude/skills/cran-extrachecks in quarto-dev/quarto-r) into .agents/skills/cran-extrachecks in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add quarto-dev/quarto-r --skill cran-extrachecks -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cran-extrachecks, .gemini/skills/cran-extrachecks, .github/skills/cran-extrachecks and .opencode/skills/cran-extrachecks in your project.
SKILL.md names no scripts, command-line tools or credentials: Cran Extrachecks is instructions for the agent only.
SKILL.md names 5 domains. In commands or code: paleobiodb.org, h3geo.org, cran.r-project.org, r-pkg.org and cranchecks.info; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Cran Extrachecks is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.7k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Cran Extrachecks: R Package Check (pedrohcgs/claude-code-my-workflow, 1.7k stars), R Package Check (ipea/geobr, 959 stars), Check PR (paperclipai/paperclip, 99k stars) and Prepare Paperclip PR (paperclipai/paperclip, 99k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
quarto-dev (a GitHub organization) maintains it in quarto-dev/quarto-r, which has 160 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on September 10, 2026.
Source: quarto-dev/quarto-r on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.