quarto-authoring
Use 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, extensions, websites, books, presentations, and reports. Also use for explicit migration from or comparison with R Markdown, bookdown, blogdown, xaringan, distill, or Jupyter notebooks to Quarto. Do not use for general R Markdown or related-format questions unless Quarto or migration to Quarto is explicitly mentioned.
What this skill does
# Quarto Authoring
> This skill is based on Quarto CLI v1.9.36 (2026-03-24).
## When to Use What
Task: Write a new Quarto document
Use: Follow "QMD Essentials" below, then see specific reference files
Task: Add cross-references
Use: [references/cross-references.md](references/cross-references.md)
Task: Configure code cells
Use: [references/code-cells.md](references/code-cells.md)
Task: Add figures with captions
Use: [references/figures.md](references/figures.md)
Task: Create tables
Use: [references/tables.md](references/tables.md)
Task: Add citations and bibliography
Use: [references/citations.md](references/citations.md)
Task: Add callout blocks
Use: [references/callouts.md](references/callouts.md)
Task: Add diagrams (Mermaid, Graphviz)
Use: [references/diagrams.md](references/diagrams.md)
Task: Control page layout
Use: [references/layout.md](references/layout.md)
Task: Use shortcodes
Use: [references/shortcodes.md](references/shortcodes.md)
Task: Add conditional content
Use: [references/conditional-content.md](references/conditional-content.md)
Task: Use divs and spans
Use: [references/divs-and-spans.md](references/divs-and-spans.md)
Task: Configure YAML front matter
Use: [references/yaml-front-matter.md](references/yaml-front-matter.md)
Task: Find and use extensions
Use: [references/extensions.md](references/extensions.md)
Task: Apply markdown linting rules
Use: [references/markdown-linting.md](references/markdown-linting.md)
Task: Choose or configure a compute engine (knitr, jupyter, julia)
Use: [references/engines.md](references/engines.md)
### Migration (only when converting an existing project)
Do NOT read these references when writing new Quarto documents.
Only read the one matching the source format when the user explicitly asks to convert or migrate an existing project.
- R Markdown (.Rmd) to Quarto: [references/conversion-rmarkdown.md](references/conversion-rmarkdown.md)
- bookdown project: [references/conversion-bookdown.md](references/conversion-bookdown.md)
- xaringan slides: [references/conversion-xaringan.md](references/conversion-xaringan.md)
- distill article: [references/conversion-distill.md](references/conversion-distill.md)
- blogdown site: [references/conversion-blogdown.md](references/conversion-blogdown.md)
- Jupyter notebook (.ipynb) to/from Quarto: [references/conversion-jupyter.md](references/conversion-jupyter.md)
## QMD Essentials
### Basic Document Structure
```markdown
---
title: "Document Title"
author: "Author Name"
date: today
format: html
---
Content goes here.
```
A Quarto document consists of two main parts:
1. **YAML Front Matter**: Metadata and configuration at the top, enclosed by `---`.
2. **Markdown Content**: Main body using standard markdown syntax.
### Divs and Spans
Divs use fenced syntax with three colons:
```markdown
::: {.class-name}
Content inside the div.
:::
```
Spans use bracketed syntax:
```markdown
This is [important text]{.highlight}.
```
Details: [references/divs-and-spans.md](references/divs-and-spans.md)
### Code Cell Options Syntax
A code cell starts with triple backticks and a language identifier between curly braces.
Code cells are code blocks that can be executed to produce output.
Quarto uses the language's comment symbol + `|` for cell options. Options use **dashes, not dots** (e.g., `fig-cap` not `fig.cap`).
- R, Python, Julia: `#|`
- Mermaid: `%%|`
- Graphviz/DOT: `//|`
````markdown
```{language}
#| label: fig-example
#| echo: false
#| fig-cap: "A scatter plot example."
# code that produces a figure
```
````
Set document-level defaults in YAML front matter:
```yaml
execute:
echo: false
warning: false
```
**Caching — critical engine difference:** Only suggest `#| cache: true` for R code cells (knitr engine).
Never suggest it for other language cells — it does not work and will be silently ignored.
The only correct approach is `execute: cache: true` in the top-level YAML front matter when using engines other than `knitr`.
Python/Jupyter requires `jupyter-cache` (`pip install jupyter-cache`):
```yaml
execute:
cache: true
```
Details: [references/code-cells.md](references/code-cells.md)
### Cross-References
Labels must start with a type prefix. Reference with `@`:
- Figure: `fig-` prefix, e.g., `#| label: fig-plot` → `@fig-plot`
- Table: `tbl-` prefix, e.g., `#| label: tbl-data` → `@tbl-data`
- Section: `sec-` prefix, e.g., `{#sec-intro}` → `@sec-intro`
- Equation: `eq-` prefix, e.g., `{#eq-model}` → `@eq-model`
````markdown
```{language}
#| label: fig-plot
#| fig-cap: "A caption for the plot."
# code that produces a figure
```
See @fig-plot for the results.
````
Details: [references/cross-references.md](references/cross-references.md)
### Callout Blocks
Five types: `note`, `warning`, `important`, `tip`, `caution`.
```markdown
::: {.callout-note}
This is a note callout.
:::
::: {.callout-warning}
## Custom Title
This is a warning with a custom title.
:::
```
Details: [references/callouts.md](references/callouts.md)
### Figures
```markdown
{#fig-name fig-alt="Alt text"}
```
Subfigures:
```markdown
::: {#fig-group layout-ncol=2}
{#fig-sub1}
{#fig-sub2}
Main caption for the group.
:::
```
Details: [references/figures.md](references/figures.md)
### Tables
```markdown
::: {#tbl-example}
| Column 1 | Column 2 |
| -------- | -------- |
| Data 1 | Data 2 |
Table caption.
:::
```
Details: [references/tables.md](references/tables.md)
### Citations
```markdown
According to @smith2020, the results show...
Multiple citations [@smith2020; @jones2021].
```
Configure in YAML:
```yaml
bibliography: references.bib
csl: apa.csl
```
Details: [references/citations.md](references/citations.md)
## Common Workflows
### Creating an HTML Document
```yaml
title: "My Report"
author: "Your Name"
date: today
format:
html:
toc: true
code-fold: true
theme: cosmo
```
### Creating a PDF Document
```yaml
title: "My Report"
format:
pdf:
documentclass: article
papersize: a4
```
### Creating a RevealJS Presentation
```markdown
---
title: "My Presentation"
format: revealjs
---
## First Slide
Content here.
## Second Slide
More content.
```
### Setting Up a Quarto Project
Create `_quarto.yml` in the project root:
```yaml
project:
type: website
website:
title: "My Site"
navbar:
left:
- href: index.qmd
text: Home
- href: about.qmd
text: About
format:
html:
theme: cosmo
```
## Resources
- [Quarto Documentation](https://quarto.org/docs/)
- [Quarto Guide](https://quarto.org/docs/guide/)
- [Quarto Extensions](https://quarto.org/docs/extensions/)
- [Community Extensions List](https://m.canouil.dev/quarto-extensions/)
Related in Writing & Docs
jax-development
IncludedUse this skill when the user is writing, debugging, profiling, refactoring, reviewing, benchmarking, parallelising, exporting, or explaining JAX code, or when they mention JAX, jax.numpy, jit, grad, value_and_grad, vmap, scan, lax, random keys, pytrees, jax.Array, sharding, Mesh, PartitionSpec, NamedSharding, pmap, shard_map, Pallas, XLA, StableHLO, checkify, profiler, or the JAX repo. It helps turn NumPy or PyTorch-style code into pure functional JAX, fix tracer/control-flow/shape/PRNG bugs, remove recompiles and host-device syncs, choose transforms and sharding strategies, inspect jaxpr/lowering/IR, and benchmark compiled code correctly.
nature-article-writer
IncludedDrafts, rewrites, diagnostically critiques, and style-calibrates primary research manuscripts for Nature and Nature Portfolio journals. Use when the user wants a Nature-style title, summary paragraph or abstract, introduction, results, discussion, methods, figure legends, presubmission enquiry, cover letter, reviewer response, or when a scientific draft sounds generic, jargon-heavy, structurally weak, or AI-ish and needs precise, broad-reader-friendly prose without inventing data, analyses, or references. Best for primary research articles and letters rather than reviews or press releases unless explicitly adapting one.
deckrd
IncludedDocument-driven framework that derives requirements, specifications, implementation plans, and executable tasks from goals through structured AI dialogue. Use when user says "write requirements", "create spec", "plan implementation", "derive tasks", "structure this feature", "break down into tasks", or "document this module". Also use for reverse engineering existing code into docs (/deckrd rev). Do NOT use for direct code writing — use /deckrd-coder after tasks are generated. Do NOT use when the user only wants to run or fix existing code without planning.
clinical-decision-support
IncludedGenerate professional clinical decision support (CDS) documents for pharmaceutical and clinical research settings, including patient cohort analyses (biomarker-stratified with outcomes) and treatment recommendation reports (evidence-based guidelines with decision algorithms). Supports GRADE evidence grading, statistical analysis (hazard ratios, survival curves, waterfall plots), biomarker integration, and regulatory compliance. Outputs publication-ready LaTeX/PDF format optimized for drug development, clinical research, and evidence synthesis.
handling-sf-data
IncludedSalesforce data operations with 130-point scoring. Use this skill to create, update, delete, bulk import/export, generate test data, and clean up org records using sf CLI and anonymous Apex. TRIGGER when: user creates test data, performs bulk import/export, uses sf data CLI commands, needs data factory patterns for Apex tests, or needs to seed/clean records in a Salesforce org. DO NOT TRIGGER when: SOQL query writing only (use querying-soql), Apex test execution (use running-apex-tests), or metadata deployment (use deploying-metadata).
accelint-ac-to-playwright
IncludedConvert and validate acceptance criteria for Playwright test automation. Use when user asks to (1) review/evaluate/check if AC are ready for automation, (2) assess if AC can be converted as-is, (3) validate AC quality for Playwright, (4) turn AC into tests, (5) generate tests from acceptance criteria, (6) convert .md bullets or .feature Gherkin files to Playwright specs, (7) create test automation from requirements. Handles both bullet-style markdown and Gherkin syntax with JSON test plan generation and validation.