Make a Quarto Release

VerifiedCaution

Drive a Quarto release end-to-end from release checklists. Invoke with /make-release. Verifies git state and pauses for human confirmation before irreversible actions.

Sby Skills Guide Bot
DevOpsAdvanced
7/25/2026
Claude Code
#release-management#git#github-cli#quarto#checklists

Recommended for

Automated summary

Drives a Quarto release end-to-end from the dev-docs release checklists, verifying real git/gh state and pausing for explicit human confirmation before every irreversible action.

Strengths

  • Distinguishes the three release types (dev prerelease, first stable of a cycle, patch on an existing stable branch) and verifies the type with `git ls-remote` instead of trusting self-report
  • Confirms real state (branches, tags, `gh run view` results, release flags) rather than assuming a step happened
  • Enforces hard confirmation gates before pushing a stable branch, pushing commits to `main`, or any workflow_dispatch carrying a publish flag
  • Narrates each step before running it, so the user can stop the run early if something looks wrong

Limitations

  • Command-only: must be invoked explicitly as `/make-release`, so it never triggers from ambient conversation
  • Entirely dependent on the checklist files living in the Quarto repo's `dev-docs`; it does not embed the release steps itself
  • Does not cover backporting an individual PR to a stable branch, which uses a separate checklist
When to use it

Use it when cutting a Quarto release — prerelease, first stable, or patch — following the official checklist with safety gates.

When not to use it

Don't use it to backport a single PR to a stable branch or for any task that isn't a release cut.

Security analysis

Caution
Quality score85/100

The skill drives legitimate release operations using powerful git/gh and workflow-dispatch commands, including pushes and production package publishes. It mitigates risk with explicit human-confirmation gates before irreversible or externally visible actions and forbids auto-invocation, so it is not risky, but the powerful tooling warrants a caution rating.

Findings
  • •Instructs use of git/gh commands that can push branches, tags, dispatch publish workflows, and publish packages to production registries.
  • •Relies on external dev-docs checklists whose contents are not included, so safety depends on those files.
  • •No allowed-tools declared even though the skill expects git and gh access.
How this analysis is made

Examples

Patch release
/make-release — we need another v1.9.x patch release for the fixes merged this week.
First stable of a cycle
/make-release time to cut the first stable release of the v1.10 cycle.
Routine prerelease
/make-release, let's do the next dev prerelease off main.

name: make-release description: Drive a Quarto release end-to-end from the dev-docs release checklists. Invoke explicitly with /make-release — do not auto-invoke from ambient conversation, a release cut is high-stakes. Handles three release types — a routine dev prerelease off main, the first stable release of a new major.minor cycle, or a patch release on an existing stable branch — by asking which one applies (or reading it from an unambiguous request), then follows the matching checklist, verifying real git/gh state at each step and pausing for explicit human confirmation before every irreversible or externally-visible action.

Make Release

Command-only helper that drives an existing release checklist. Do not auto-invoke — only run when the user explicitly asks (e.g. /make-release). This skill does not restate the release steps; the checklists below are the source of truth. Your job is to read the right one and drive it with real-state verification and confirmation gates.

1. Detect which checklist applies (verify, don't trust self-report)

There are three release types, each with its own checklist. Branch-existence alone doesn't distinguish all three — a routine prerelease and a first-stable-of-cycle release can both start with no v1.x branch yet — so first establish intent, then verify with git where that disambiguates:

  • Routine dev prerelease off main (no version bump beyond the prerelease counter, no new branch) → drive dev-docs/checklist-make-a-new-quarto-prerelease.md
  • First stable release of a new major.minor cycle (cuts a new v1.x branch) → drive dev-docs/checklist-make-a-new-quarto-release.md
  • Patch release on an already-cut stable branch (e.g. another v1.9.x) → drive dev-docs/checklist-make-a-new-stable-quarto-release.md

If the user's request doesn't already make the type unambiguous, ask. Once it's a stable release (first or patch), confirm which with real state, don't trust self-report:

git ls-remote --heads origin v1.x   # substitute the target major.minor, e.g. v1.10

Branch absent → first stable of the cycle; branch present → patch release.

Out of scope: backporting an individual merged PR to a stable branch is a different task, not a release cut — see dev-docs/checklist-backport-a-pr.md directly, this skill doesn't drive it.

Always confirm before driving anything — even when the type seems obvious from the request. State it plainly, e.g. "I will follow this checklist: dev-docs/checklist-make-a-new-quarto-release.md", and wait for the user's go-ahead before starting step 1. This is the one point where a wrong detection would send the whole run down the wrong checklist, so confirm every time, not just when ambiguous.

2. Drive the checklist top to bottom, verifying real state, narrating as you go

Read the matching checklist and work it in order. Before each step (not just the hard-confirm gates in section 3), state in one line what you're about to do and why, so the user can stop you early if something looks wrong — don't silently chain multiple steps together without narrating between them.

At each step, confirm the real state with git/gh rather than trusting the checklist text or the user's word that something happened — e.g. that a branch/tag exists, a workflow run actually succeeded (gh run view <id>), a release's flags are set, a version field is what it should be. A step isn't done until real state confirms it.

3. Hard-confirm gates (stop and get explicit human OK before running)

Never fire these on your own — state exactly what you're about to do, to which repo, and wait for an explicit go:

  • Pushing the new stable branch (git push origin v1.x)
  • Pushing version-bump / release-checklist commits to main
  • Any workflow_dispatch carrying a publish flag (e.g. publish-release=true, chocolatey publish checkbox, Cloudsmith dry-run=false)
  • Editing a live GitHub release's flags (pre-release / "Set as latest release")
  • Pushing the release tag
  • Production package-registry publishes: pypi (Production Release), chocolatey, Cloudsmith manual publish

Dry-runs and read-only verification don't need a gate — run them freely.

4. Cross-repo flow

Three repos are involved, with real ordering dependencies:

  • quarto-dev/quarto-cli — the release build and tag
  • quarto-dev/quarto-web — quarto.org site, downloads, highlights, announcement
  • quarto-dev/quarto-cli-pypi — pypi publish

Ordering matters: e.g. quarto-cli's release build must fully publish before quarto-web's update-downloads.yml will pick it up, and chocolatey waits on the quarto.org download page updating. State which repo each step targets. Use gh --repo <owner>/<name> ... so verification works even without a local clone of every repo.

No local quarto-web clone: if a step needs local content edits to quarto-web (e.g. the docs/prerelease/<version>/ highlights .qmd files, or _quarto.yml edits) and no local quarto-web clone is present, stop and ask the user for the clone path or to make the edit themselves. Do not attempt the edit through the GitHub API and do not silently skip the step.

Release announcement: the announcement post is published on the Posit Open Source site (opensource.posit.co), not via a quarto-web blog PR (blog migrated June 2026). Point the user there; do not name any internal publishing tool.

5. When the checklist doesn't match reality

If a step's described state doesn't match what you find (stale path, wrong ordering, already done, renamed workflow), surface the discrepancy and get a human decision. Don't silently work around it, and don't edit the checklist mid-release — suggest a follow-up doc-fix PR instead.

6. Non-blocking gaps found along the way

If you spot a non-blocking gap during the release (e.g. a CI automation that only covers one branch, a doc-archival gap), don't try to fix it inline. Tell the user to track it in whatever task tracker they/their project use, and continue the release.

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/make-a-quarto-release-mrzxurip/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/make-a-quarto-release-mrzxurip' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/make-a-quarto-release-mrzxurip/download' --output '.skill-downloads/make-a-quarto-release-mrzxurip/SKILL.md.part' && mv '.skill-downloads/make-a-quarto-release-mrzxurip/SKILL.md.part' '.skill-downloads/make-a-quarto-release-mrzxurip/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.

Claude Code
test -f '.skill-downloads/make-a-quarto-release-mrzxurip/SKILL.md' && test -s '.skill-downloads/make-a-quarto-release-mrzxurip/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/make-release' && cp -R '.skill-downloads/make-a-quarto-release-mrzxurip' '.claude/skills/make-release'

OpenSkills

OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.

Official OpenSkills installation
openskills install './.skill-downloads/make-a-quarto-release-mrzxurip'

openskills read 'make-a-quarto-release-mrzxurip'

Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.

For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.

openskills sync

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/make-a-quarto-release-mrzxurip/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills