From rrc-R-tools
Scaffold a new Quarto project with the right folder structure, _quarto.yml, template .qmd, setup chunk, and .gitignore. Use this skill when the user wants to start a new Quarto project, create a new .qmd report, set up a Quarto analysis, or initialize a project folder for R/Quarto work.
How this skill is triggered — by the user, by Claude, or both
Slash command
/rrc-R-tools:quarto-scaffoldThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Set up a new Quarto project following RRC team conventions. Ask the user the questions below, then generate the files.
Set up a new Quarto project following RRC team conventions. Ask the user the questions below, then generate the files.
Ask the user (skip anything they've already answered):
project-name/
├── _quarto.yml
├── project-name.Rproj
├── .gitignore
├── report.qmd # or a descriptive name based on the project
├── output/ # rendered output (gitignored)
└── scripts/ # helper R scripts
Data typically lives on a network drive (Z: / Egnyte), not in the repo. Data paths are passed via params in the .qmd YAML. The repo contains only scripts and rendered output.
If the project is parameterized with site-specific runs, use the numbered-prefix pattern:
project-name/
├── _quarto.yml
├── project-name.Rproj
├── .gitignore
├── 00_template_scripts/
│ └── report_template.qmd # master template
├── 01_site_scripts/
│ ├── 01_SITE1/
│ │ └── report.qmd # site-specific overrides
│ └── 02_SITE2/
│ └── report.qmd
├── output/
└── scripts/
For a standard project:
project:
type: default
If network sync is needed, add the post-render hook:
project:
type: default
post-render:
- "Rscript post_render.R"
Then create post_render.R following the pattern from the quarto-render-sync skill (if available), or note that the user should set it up with /rrc-R-tools:quarto-render-sync.
Version: 1.0
RestoreWorkspace: No
SaveWorkspace: No
AlwaysSaveHistory: Default
EnableCodeIndexing: Yes
UseSpacesForTab: Yes
NumSpacesForTab: 2
Encoding: UTF-8
AutoAppendNewline: Yes
StripTrailingWhitespace: Yes
# R / RStudio
.Rproj.user/
.Rhistory
.RData
.Ruserdata
# Quarto
/.quarto/
**/*.quarto_ipynb
*_files/
# Rendered output
output/
*.html
*.docx
---
title: "Report Title"
date: today
format:
html:
theme: cosmo
toc: true
toc-depth: 3
embed-resources: true
editor: visual
execute:
echo: false
warning: false
message: false
---
---
title: "Report Title"
format:
docx:
toc: false
number-sections: true
fig-width: 6.5
fig-height: 4
fig-dpi: 300
editor: visual
execute:
echo: false
warning: false
message: false
---
If the user has a custom reference doc (custom-reference.docx), add reference-doc: custom-reference.docx under the docx: key.
Add a params block with sensible defaults. Common parameters for RRC projects:
params:
park: "SITE"
year_survey: 2026
data_path: ""
output_path: ""
Use params in the title with inline R:
title: "`r paste(params$park, params$year_survey)`"
subtitle: "`r paste0('Project Name - ', params$park)`"
date: "`r format(Sys.Date(), '%B %d, %Y')`"
Every .qmd should start with a setup chunk:
```{r}
#| label: setup
#| include: false
library(tidyverse)
library(haven)
library(scales)
knitr::opts_chunk$set(
echo = FALSE,
include = TRUE,
message = FALSE,
warning = FALSE
)
```
Add additional libraries based on the project needs:
gt for HTML, flextable for Wordreadxl, writexlsf, leafletplotlyRrcUtilsAfter generating all files, summarize what was created and remind the user:
.Rproj file in RStudio/Positron to start workingparams block with real values before renderingquarto render from the terminaloutput_path parameter to the network destinationGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub rrc-associates/claude-rrc-plugins --plugin rrc-R-tools