Agent skill

Release Prep

by Devolutions in Devolutions/IronRDP

Reviews and finalizes a release-plz "chore(release): prepare for publishing" PR for the IronRDP workspace.

Apache-2.0Auto-check passedDevelopment

Install Release Prep

skills CLI
$ npx skills add Devolutions/IronRDP --skill release-prep -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Devolutions/IronRDP release-prep --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Devolutions/IronRDP.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/release-prep .claude/skills/release-prep && rm -rf skills-src

Use ~/.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/

Facts

Skill name
release-prep
GitHub stars
3.2k
Token cost
~2.2k tokens
SKILL.md length
1,126 words
Files
1
Skills in repo
8
Repo updated
First seen
Licence
Apache-2.0

At a glance

Reviews and finalizes a release-plz "chore(release): prepare for publishing" PR for the IronRDP workspace.

  • Works in 4 steps: Default: rewrite to describe what this… → Fallback: if the change here is… → Preserve the conventional-commit… → …
  • The user asks to review
  • SKILL.md covers The public-dependency…, Changelog quality pass, Scope of edits and Procedure
  • Calls cargo, git and gh

What it does

Release Prep is an agent skill from Devolutions/IronRDP. Reviews and finalizes a release-plz "chore(release): prepare for publishing" PR for the IronRDP workspace. Use this skill whenever the user asks to review, fix, prepare, or finalize a release PR; mentions release-plz, version bumps, CHANGELOG cleanup, or "publishing crates"; or references a PR titled "chore(release): prepare for publishing". Invoke proactively any time work involves auditing or editing CHANGELOG.md / Cargo.toml version fields across multiple crates ahead of publishing to crates.io.

Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Changelog and release notes. It works with Rust. The repository describes itself as: Rust implementation of the Microsoft Remote Desktop Protocol (RDP). The licence is Apache-2.0.

When your agent uses it

  • The user asks to review
  • Finalize a release PR
  • Mentions release-plz
  • CHANGELOG cleanup

Example prompts

  • “chore(release): prepare for publishing”
  • “publishing crates”
  • “Use the release-prep skill to review and finalizes a release-plz "chore(release): prepare for publishing" PR for the IronRDP workspace”
  • “/release-prep”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Default: rewrite to describe what this crate actually changed, inferred from the diff for this crate in the originating commit. Use git…
  2. Fallback: if the change here is genuinely just "recompile against new dep" with nothing more specific to say, replace the entry with a…
  3. Preserve the conventional-commit category mapping (Features / Bug Fixes / Documentation / etc.) defined in cliff.toml, but recategorize if…
  4. If the rewrite changes a non-breaking entry into a breaking one (or vice versa) because of the public-dep rule, add or remove the…

What it can do on your machine

Read from SKILL.md and the folder at commit 2c08bda. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • cargo
    • git
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Release Prep loads about 2.2k tokens when it runs. Until then it costs about 129 tokens; SKILL.md has 1,126 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~129
When it runs · the whole SKILL.md, loaded when a task matches
~2.2k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from Devolutions/IronRDP at commit 2c08bda, republished under its Apache-2.0 licence (© Devolutions). 1,126 words, ~2,165 tokens.

Download SKILL.mdSave it as .claude/skills/release-prep/SKILL.md (or your agent's skills folder).
name
release-prep
description
Reviews and finalizes a release-plz "chore(release): prepare for publishing" PR for the IronRDP workspace. Use this skill whenever the user asks to review, fix, prepare, or finalize a release PR; mentions release-plz, version bumps, CHANGELOG cleanup, or "publishing crates"; or references a PR titled "chore(release): prepare for publishing". Invoke proactively any time work involves auditing or editing CHANGELOG.md / Cargo.toml version fields across multiple crates ahead of publishing to crates.io.

IronRDP release-plz PR review & finalization

release-plz does most of the mechanical work (computing bumps, generating changelog entries from conventional commits, updating dependency version requirements, refreshing Cargo.lock). This skill covers the human-in-the-loop pass that release-plz cannot do automatically: verifying bumps against the public-dependency rule, rewriting per-crate changelog entries, and deduplicating commits that collapse into a single net change.

All fixes go on the release-plz PR branch directly. Do not rewrite history on main for cosmetic changelog reasons; if real source/doc changes are needed, land them on main first and let release-plz regenerate the PR.

The public-dependency propagation rule

A dependency line in Cargo.toml annotated with # public means that the dependency's types appear in this crate's public API surface.

  • Breaking change in a # public dependency ⇒ breaking change in the depending crate (minor bump pre-1.0, major bump post-1.0). The downstream changelog must reflect that it is breaking, even if the downstream's own code changes were trivial recompiles.
  • A patch-level bump in a # public dependency does not force any bump in downstream crates: workspace Cargo.toml files use "0.7"-style major.minor requirements only, so Cargo's resolver picks the new patch up automatically.
  • A dependency without the # public marker is internal. A breaking change in it is just a patch for the depending crate (assuming the public API is unchanged).

Enumerate public-dep edges with grep -n '# public' crates/*/Cargo.toml. The dep's bump kind is visible in the release-plz PR body's "New release" summary.

For each crate in the release, cross-check the proposed bump against (a) its own commits' conventional-commit signals (feat!, BREAKING CHANGE footer, etc.) and (b) the propagation rule above. When the bump is wrong, fix it on the PR branch: edit version = "..." in that crate's Cargo.toml, cascade to the version requirement in any consumer crate's Cargo.toml, and update the version-header line at the top of the corresponding CHANGELOG.md (## [[X.Y.Z](...)] - YYYY-MM-DD, including the vOLD...vNEW compare URL).

Changelog quality pass

release-plz pulls each commit's subject + body into the changelog of every crate touched by that commit. Many IronRDP commits span multiple crates with very different semantics on each side — e.g. a breaking change in ironrdp-pdu that requires a mechanical call-site update in ironrdp-connector. The PDU-flavored description does not belong in the connector's changelog.

For each duplicated entry:

  1. Default: rewrite to describe what this crate actually changed, inferred from the diff for this crate in the originating commit. Use git show <sha> -- crates/<this-crate>/ to see only this crate's slice.
  2. Fallback: if the change here is genuinely just "recompile against new dep" with nothing more specific to say, replace the entry with a short note such as Update <dep> dependency. There is a real code change (release-plz wouldn't have inserted an entry otherwise — at minimum the dep version requirement moved), so the changelog should still acknowledge it; just don't parrot the upstream description.
  3. Preserve the conventional-commit category mapping (Features / Bug Fixes / Documentation / etc.) defined in cliff.toml, but recategorize if the rewritten entry fits a different bucket better.
  4. If the rewrite changes a non-breaking entry into a breaking one (or vice versa) because of the public-dep rule, add or remove the [**breaking**] prefix accordingly, and revert the breaking bump which was wrongly applied (minor bump pre-1.0, major bump post-1.0).
Deduplication across the release window

Multiple commits in the release window often collapse into a single net change. Spend real effort on this — a clean changelog is one of the highest-leverage outputs of this pass. Common patterns:

  • Revert before release: both entries should be dropped (or, if the revert was partial, replaced with a single entry describing the final state).
  • Iteration on an unreleased feature: initial commit introduces feature X, follow-ups tweak its API or behaviour, all within the same release window. Collapse into a single entry describing X as it actually ships.
  • Bug fix on an unreleased feature: if the bug only ever existed in the unreleased code, fold the fix into the feature entry.
  • Mechanical follow-ups (review feedback, clippy fixes on a feature PR): keep only the feature entry.

When merging entries, preserve every relevant [#NNNN]/commit-SHA link so the historical trail stays navigable. The headline text should describe the final outcome, not the journey.

Show full SKILL.md (441 more words)Show less
Format fidelity

CHANGELOG.md content is generated by git-cliff using the template in cliff.toml. When hand-editing, preserve the generated format exactly:

  • Section order is controlled by <!-- N --> prefixes in commit_parsers (Security, Features, Improvements, Revert, Bug Fixes, Performance, Documentation, Build, Please Sort). Do not reorder sections, even if the result looks unbalanced.
  • Section headings keep the <!-- N --> prefix verbatim (e.g. ### <!-- 1 -->Features). Don't strip it.
  • Spacing must match git-cliff's output: one blank line between version headers, sections, and entries; two-space hanging indent for entry bodies. Don't collapse or add blank lines.
  • Entry shape is - {breaking?}{Message} ({commit_link}) followed, when there's a body, by a blank line and the indented body. Keep [**breaking**] exactly as rendered.
  • Links are reference-style URLs to issues/PRs ([#1234](...)) and commits ([abcdef0123](...)). When merging or rewriting entries, keep these links intact rather than rewriting them by hand.
  • Category placement for rewritten entries should still match the commit_parsers mapping in cliff.toml. If a rewrite changes the appropriate category, move the entry into the correct existing section rather than inventing a new one.

Scope of edits

Only these files should be touched on the release-plz PR branch:

  • crates/<crate>/CHANGELOG.md — content rewrites, drops, breaking-tag fixes, version-header bumps.
  • crates/<crate>/Cargo.toml — version = "..." corrections and cascading version-requirement updates in consumer crates.
  • Cargo.lock — regenerated automatically by cargo check after any Cargo.toml version edit (see procedure step 6); never edited by hand.

Do not touch source code, READMEs, MSRV, rust-toolchain.toml, or CI files here. Those belong on main.

Procedure

  1. Inspect the PR's changes from the working tree: git --no-pager diff origin/main -- '**/CHANGELOG.md' '**/Cargo.toml' for the substantive deltas, and read the PR body for the "New release" bump table (use gh pr view only if the body isn't already provided in context).
  2. Read the PR body's "New release" bump table.
  3. Enumerate # public dep edges and cross-check every proposed bump against the propagation rule and the originating commits' conventional-commit signals. Note mismatches.
  4. For each crate's CHANGELOG.md section in the diff, classify entries as own change, public-dep ripple, or internal-dep ripple / unrelated. Rewrite or replace per the rules above. Then deduplicate across the release window.
  5. Apply any Cargo.toml version corrections from step 3, cascading to consumer crates' version requirements and the corresponding changelog version headers.
  6. If you edited any Cargo.toml version, run cargo check --workspace (without --locked, so Cargo.lock can be regenerated) and commit the resulting lock delta. Then run cargo xtask check locks -v, which verifies no lock file is left uncommitted.
  7. Push the fixups with conventional-commit-shaped messages (typically chore(release): ...) so they don't pollute the next release window.
  8. Summarize the changes and any judgement calls — especially dropped entries and escalated bumps — for the human reviewer.

© Devolutions, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .github/skills/release-prep of Devolutions/IronRDP.

Open the folder on GitHubat commit 2c08bda

Compare with similar skills

Release Prep 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.

Release Prep compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Release Prep this skillDevolutions/IronRDP3.2k—~2.2kAutomated safety check: PassApache-2.0
Release Skillsnexmoe/eve4213 repos~3.3kAutomated safety check: PassNone
Aptos CLI Releaseaptos-labs/aptos-core6.4k—~431Automated safety check: PassCustom licence
Worktrunk Release Workflowmax-sixty/worktrunk8.9k—~6.9kAutomated safety check: PassCustom licence
Cut Releasedelexw/claude-code-trace3761 repos~1.4kAutomated safety check: PassMIT
Releasexin2017338/lynx-proxy502—~1.1kAutomated safety check: PassMIT

Similar skills

  • Release Skills

    nexmoe/eve

    Universal release workflow. An agent skill from nexmoe/eve.

    421 GitHub starsUsed in 3 repos~3.3k tokens
    DevelopmentAuto-check passed
  • Aptos CLI Release

    aptos-labs/aptos-core

    A skill your agent uses when cutting or preparing a new Aptos CLI release, bumping the aptos crate version, or editing crates/aptos/CHANGELOG.md for a release

    6.4k GitHub stars~431 tokensUpdated today
    DevelopmentAuto-check passed
  • Worktrunk Release Workflow

    max-sixty/worktrunk

    Walks a maintainer through cutting a Worktrunk release: sync the release branch, pass two test gates, review the changes, then publish.

    8.9k GitHub stars~6.9k tokensUpdated today
    DevelopmentAuto-check passed
  • Cut Release

    delexw/claude-code-trace

    Cuts a new versioned release of claude-code-trace end-to-end without asking any questions.

    376 GitHub starsUsed in 1 repo~1.4k tokens
    DevelopmentAuto-check passed
  • Release

    xin2017338/lynx-proxy

    Publish a new release version of Lynx Proxy. An agent skill from xin2017338/lynx-proxy.

    502 GitHub stars~1.1k tokensUpdated 22 days ago
    DevelopmentAuto-check passed
  • Prepare Release

    frozenlib/parse-display

    Prepare parse-display release changes before publishing with a Rust Cargo script when nightly Cargo is available.

    193 GitHub stars~1.3k tokensUpdated 3 days ago
    DevelopmentAuto-check passed

More from Devolutions/IronRDP

All 8 skills in this repo
  • Commit Scope

    Devolutions/IronRDP

    Derive and validate the canonical scope for IronRDP Conventional Commit and pull-request titles.

    3.2k GitHub stars~854 tokensUpdated today
    Auto-check passed
  • Test IronRDP ActiveX in the real mstsc.exe child launched by MsRdpEx, including the native credential bridge, shell behavior, resize handling, clipboard startup, and bounded UI stress.

    3.2k GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • New Crate

    Devolutions/IronRDP

    Create and integrate a new Rust crate in the IronRDP workspace.

    3.2k GitHub stars~236 tokensUpdated today
    Auto-check passed
  • Public Dependency

    Devolutions/IronRDP

    Add or change Rust crate dependencies while preserving IronRDP's public-dependency markers.

    3.2k GitHub stars~265 tokensUpdated today
    Auto-check passed
  • Code Review

    Devolutions/IronRDP

    Review IronRDP pull requests and diffs using focused protocol, compression, prose, and skeptical passes.

    3.2k GitHub stars~539 tokensUpdated today
    Auto-check passed
  • Crate Readme Writer

    Devolutions/IronRDP

    Write or substantially revise a Rust crate's README.md as a concise, user-facing design document.

    3.2k GitHub stars~455 tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Release Prep

What does Release Prep do?

Reviews and finalizes a release-plz "chore(release): prepare for publishing" PR for the IronRDP workspace. Release Prep is an agent skill from Devolutions/IronRDP. Reviews and finalizes a release-plz "chore(release): prepare for publishing" PR for the IronRDP workspace.

When should I use Release Prep?

Release Prep fits situations like: the user asks to review; finalize a release PR; mentions release-plz; CHANGELOG cleanup.

How do I install Release Prep in Claude Code?

Run `npx skills add Devolutions/IronRDP --skill release-prep -a claude-code`. Or copy the skill folder (.github/skills/release-prep in Devolutions/IronRDP) into .claude/skills/release-prep in your project. Claude Code loads it when a task matches its description.

How do I install Release Prep in Codex?

Run `npx skills add Devolutions/IronRDP --skill release-prep -a codex`. Or copy the skill folder (.github/skills/release-prep in Devolutions/IronRDP) into .agents/skills/release-prep in your project. Codex loads it when a task matches its description.

Can I use Release Prep in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Devolutions/IronRDP --skill release-prep -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/release-prep, .gemini/skills/release-prep, .github/skills/release-prep and .opencode/skills/release-prep in your project.

What does Release Prep need to run?

Going by SKILL.md and its folder, Release Prep needs the command-line tools its instructions call (cargo, git and gh).

Does Release Prep access the network?

SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Release Prep safe to install?

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.

What licence does Release Prep use?

Release Prep is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Release Prep use?

About 2.2k tokens (SKILL.md is roughly 8.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Release Prep?

Skills that share tags, products or a category with Release Prep: Release Skills (nexmoe/eve, 421 stars), Aptos CLI Release (aptos-labs/aptos-core, 6.4k stars), Worktrunk Release Workflow (max-sixty/worktrunk, 8.9k stars) and Cut Release (delexw/claude-code-trace, 376 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Release Prep?

Devolutions (a GitHub organization) maintains it in Devolutions/IronRDP, which has 3,213 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 6, 2026.

Source: Devolutions/IronRDP on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.