Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Build reproducible scientific documents, presentations, and websites with Quarto supporting R, Python, Julia, and Observable JS. Use when creating reproducible reports with Quarto.
.claude/skills/bio-reporting-quarto-reports/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 330% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 56% | 0% |
| case-10 | ✓→✓ | = Same ✓ | 225% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 115% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 53% | 0% |
<!--
#
#
-->
yaml--- title: "Analysis Report" author: "Your Name" date: today format: html: toc: true code-fold: true theme: cosmo ---
`markdown--- title: "scRNA-seq Analysis" format: html jupyter: python3 ---
import scanpy as sc import matplotlib.pyplot as plt
adata = sc.read_h5ad('data.h5ad') sc.pl.umap(adata, color='leiden')
`markdown--- title: "DE Analysis" format: html ---
library(DESeq2) dds <- DESeqDataSetFromMatrix(counts, metadata, ~ condition) dds <- DESeq(dds)
yaml--- title: "Multi-format Report" format: html: toc: true pdf: documentclass: article docx: reference-doc: template.docx ---
bash# Render all formats quarto render report.qmd # Render specific format quarto render report.qmd --to pdf
yaml--- title: "Parameterized Report" params: sample: "sample1" threshold: 0.05 ---
bash# Render with parameters quarto render report.qmd -P sample:sample2 -P threshold:0.01
`markdown::: {.panel-tabset} ## PCA
plotPCA(vsd)
## Heatmappheatmap(mat)
:::markdown::: {.callout-note} This is an important note about the analysis. ::: ::: {.callout-warning} Check your input data format before proceeding. ::: ::: {.callout-tip} Use caching for long computations. :::
`markdownSee @fig-volcano for the volcano plot.
#| label: fig-volcano #| fig-cap: "Volcano plot showing DE genes" ggplot(res, aes(log2FC, -log10(pvalue))) + geom_point()
Results are summarized in @tbl-summary.
#| label: tbl-summary #| tbl-cap: "Summary statistics" knitr::kable(summary_df)
`markdown
#| echo: true #| warning: false #| fig-width: 10 #| fig-height: 6 #| cache: true
import scanpy as sc sc.pl.umap(adata, color='leiden')
markdownWe found `{python} len(sig_genes)` significant genes. We found `{r} nrow(sig)` significant genes.
yaml--- title: "Analysis Results" format: revealjs --- ## Slide 1 Content here ## Slide 2 {.smaller} More content with smaller text
yaml# _quarto.yml project: type: website output-dir: docs website: title: "Analysis Portal" navbar: left: - href: index.qmd text: Home - href: methods.qmd text: Methods - href: results.qmd text: Results
yaml--- bibliography: references.bib csl: nature.csl ---
markdownGene expression analysis was performed using DESeq2 [@love2014]. ## References
yaml# _quarto.yml execute: freeze: auto # Only re-run when source changes
markdown{{< include _methods.qmd >}}
`markdown
flowchart LR ARaw Data] --> BQC] B --> CAlignment] C --> DQuantification] D --> EDE Analysis]
`markdown--- title: "R + Python Analysis" --- Load in R:
library(reticulate) counts <- read.csv('counts.csv')
Process in Python:import pandas as pd counts_py = r.counts # Access R object
<!-- AUTHOR_SIGNATURE: 9a7f3c2e-MD-BABU-MIA-2026-MSSM-SECURE -->
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-10 | pass→pass | 3,050 | 2,279 | -25% | 1 | 1 | 0% | 520 | 1,688 | +225% | 0 | 0 | — |
case-01 | fail→pass | 27,510 | 16,869 | -39% | 1 | 1 | 0% | 1,052 | 4,522 | +330% | 0 | 0 | — |
case-02 | pass→pass | 5,692 | 5,702 | +0% | 1 | 1 | 0% | 1,066 | 2,293 | +115% | 0 | 0 | — |
case-03 | pass→pass | 10,351 | 9,569 | -8% | 1 | 1 | 0% | 1,936 | 2,968 | +53% | 0 | 0 | — |
case-04 | pass→pass | 11,449 | 12,697 | +11% | 1 | 1 | 0% | 2,254 | 3,665 | +63% | 0 | 0 | — |
case-05 | pass→pass | 7,466 | 4,986 | -33% | 1 | 1 | 0% | 1,366 | 2,243 | +64% | 0 | 0 | — |
case-06 | pass→pass | 8,134 | 2,662 | -67% | 1 | 1 | 0% | 1,589 | 1,767 | +11% | 0 | 0 | — |
case-07 | pass→pass | 7,539 | 3,673 | -51% | 1 | 1 | 0% | 1,193 | 1,978 | +66% | 0 | 0 | — |
case-08 | pass→pass | 6,618 | 2,896 | -56% | 1 | 1 | 0% | 1,376 | 1,829 | +33% | 0 | 0 | — |
case-09 | pass→pass | 11,399 | 7,812 | -31% | 1 | 1 | 0% | 2,050 | 2,680 | +31% | 0 | 0 | — |
case-11 | pass→pass | 8,443 | 3,246 | -62% | 1 | 1 | 0% | 1,593 | 1,858 | +17% | 0 | 0 | — |
case-12 | pass→pass | 5,076 | 2,902 | -43% | 1 | 1 | 0% | 947 | 1,792 | +89% | 0 | 0 | — |
case-13 | pass→pass | 6,186 | 3,647 | -41% | 1 | 1 | 0% | 1,247 | 1,955 | +57% | 0 | 0 | — |
case-14 | pass→pass | 10,148 | 6,376 | -37% | 1 | 1 | 0% | 1,831 | 2,550 | +39% | 0 | 0 | — |
case-15 | fail→pass | 9,803 | 7,247 | -26% | 1 | 1 | 0% | 1,747 | 2,723 | +56% | 0 | 0 | — |
case-16 | pass→pass | 4,951 | 8,722 | +76% | 1 | 1 | 0% | 897 | 1,783 | +99% | 0 | 0 | — |
case-17 | pass→pass | 6,507 | 4,072 | -37% | 1 | 1 | 0% | 1,202 | 2,052 | +71% | 0 | 0 | — |
case-18 | pass→pass | 6,400 | 2,652 | -59% | 1 | 1 | 0% | 1,068 | 1,701 | +59% | 0 | 0 | — |
case-19 | pass→pass | 6,034 | 2,810 | -53% | 1 | 1 | 0% | 1,084 | 1,796 | +66% | 0 | 0 | — |
case-20 | pass→pass | 9,704 | 7,239 | -25% | 1 | 1 | 0% | 1,771 | 2,710 | +53% | 0 | 0 | — |
case-21 | pass→pass | 4,467 | 3,382 | -24% | 1 | 1 | 0% | 820 | 1,860 | +127% | 0 | 0 | — |
case-22 | pass→pass | 7,486 | 5,561 | -26% | 1 | 1 | 0% | 1,423 | 2,439 | +71% | 0 | 0 | — |
case-23 | pass→pass | 8,888 | 7,456 | -16% | 1 | 1 | 0% | 1,791 | 2,831 | +58% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 22 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +9 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
| Model | Method | Date | Lift |
|---|---|---|---|
| gemini-3.6-flash | verified | 7/26/2026 | +23% |
Other measured skills in the registry, with their headline benchmark lift.