Agent skill

Release

by mxpv in mxpv/openusd

Publish a new release of the openusd workspace crates. An agent skill from mxpv/openusd.

MITAuto-check passedDevelopment

Install Release

skills CLI
$ npx skills add mxpv/openusd --skill release -a claude-code

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

GitHub CLI
$ gh skill install mxpv/openusd release --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/mxpv/openusd.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/release .claude/skills/release && 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
GitHub stars
129
Token cost
~1.7k tokens
SKILL.md length
976 words
Files
1
Skills in repo
3
Repo updated
First seen
Licence
MIT

At a glance

Publish a new release of the openusd workspace crates. An agent skill from mxpv/openusd.

  • Works in 9 steps: Validate version: The arguments may… → Pre-flight checks: Run these in parallel… → Generate changelog → …
  • Cutting a release
  • Calls cargo, git and gh
  • Bumping the version

What it does

Release is an agent skill from mxpv/openusd. Publish a new release of the openusd workspace crates. Use when cutting a release, bumping the version, or publishing to crates.io.

Its SKILL.md is about 1.7k 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. It works with Rust. The repository describes itself as: Native Rust USD library. The licence is MIT.

When your agent uses it

  • Cutting a release
  • Bumping the version
  • Publishing to crates.io

Example prompts

  • “/release”

Requirements

  • Pre-approved tools (allowed-tools): Bash(cargo *), Bash(git *), Bash(gh *)

Workflow steps

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

  1. Validate version: The arguments may include a version, highlights for the changelog, and/or other instructions — parse them out.
  2. Pre-flight checks: Run these in parallel and stop if any fail
  3. Generate changelog
  4. Bump version and commit: The version lives in two places in the root Cargo.toml and both must move together
  5. Tag: Create tag v on the version bump commit. Do NOT move the tag later — it must stay on this commit.
  6. Update roadmap: In ROADMAP.md, replace every occurrence of the literal string main with — this includes both the Version column cells and…
  7. Publish to crates.io: Run cargo publish --workspace from the repository root. It publishes every member in dependency order, so openusd…
  8. Push: Run git push --atomic origin HEAD v to push commits and tag together. Wait for confirmation from the user before running this step.
  9. Create GitHub release: Run gh release create v --notes-file /tmp/CHANGELOG-.md --latest.

What it can do on your machine

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

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash(cargo *)
    • Bash(git *)
    • Bash(gh *)

    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 loads about 1.7k tokens when it runs. Until then it costs about 35 tokens; SKILL.md has 976 words of instructions outside code blocks.

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

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 mxpv/openusd at commit 37d0f2a, republished under its MIT licence (© mxpv). 976 words, ~1,749 tokens.

Download SKILL.mdSave it as .claude/skills/release/SKILL.md (or your agent's skills folder).
name
release
description
Publish a new release of the openusd workspace crates. Use when cutting a release, bumping the version, or publishing to crates.io.
allowed-tools
Bash(cargo *), Bash(git *), Bash(gh *)
argument-hint
[version] [highlights or other instructions]
disable-model-invocation
true

Publish a new release of the openusd workspace. Every crate in crates/ shares one version, one tag, and one set of release notes, and they publish together. The version argument is: $ARGUMENTS

Follow these steps:

  1. Validate version: The arguments may include a version, highlights for the changelog, and/or other instructions — parse them out.

    • If a version is given, it must follow semver (e.g. 0.3.0) and must NOT include a v prefix.
    • If no version is given, default to the next minor version above the current version in the root Cargo.toml's [workspace.package]: bump the minor component and reset the patch to 0 (e.g. 0.3.0 → 0.4.0, 0.9.1 → 0.10.0, 1.2.3 → 1.3.0).
    • Treat any non-version text in the arguments as guidance for the changelog summary or extra instructions to follow during the release.
  2. Pre-flight checks: Run these in parallel and stop if any fail:

    • cargo clippy --workspace --all-targets --all-features -- -D warnings
    • cargo fmt --all -- --check --files-with-diff
    • cargo test --workspace --all-targets --all-features
  3. Generate changelog:

    • Run git describe --tags --abbrev=0 to find the previous tag, then git log <prev_tag>..HEAD --pretty=format:"- %s (%h)" to list commits.
    • Start with a brief, natural summary (2-4 sentences). Write it like a human would in a project update — e.g. "This release introduces the PCP composition engine with full LIVRPS arc support including relocates." Don't enumerate changes in the summary — capture the overall narrative in plain language. Revise the summary with the writing-review skill before showing it.
    • After the summary, add a "Compliance" section. Introduce it with "New AOUSD Core Spec coverage in this release:" then list newly covered spec items. Check ROADMAP.md for features marked with main (about to become this version). Format each item as `<section>` <name> (e.g. `10.3.2.6` Relocates). Skip this section if no new spec coverage was added.
    • Then list the detailed changes: group commits by area (composition engine, text parser, binary reader, stage, asset resolution, etc.) and then by type (features, fixes, dependencies). Keep each commit as its own line — do not merge distinct features into one bullet.
    • Filter out noise (formatting, CI, README updates, CLAUDE.md).
    • Wrap code identifiers (types, functions, methods, traits, modules, flags, etc.) and crate names/versions in backticks, e.g. - Add \ListOp::compose_over` for list-edit composition (82845fd)`.
    • Write the changelog to a temp file (e.g. /tmp/CHANGELOG-<version>.md), NOT to the repo. It is only used for the GitHub release notes.
    • Show the changelog to the user in full and verbatim — every section and every bullet, exactly as it will appear in the release — and wait for confirmation. Do NOT substitute a digest: a paraphrase of the summary, a count of the bullets, or a list of section names is not the changelog. The user is approving text that will be published under their name, so they have to see all of it. Length is not a reason to abbreviate; print it anyway.
    • Before showing it, verify every commit in the range is either present in the changelog or deliberately filtered as noise, and that no listed hash is one the range does not contain.
  4. Bump version and commit: The version lives in two places in the root Cargo.toml and both must move together:

    • [workspace.package] version — the version every crate inherits.
    • [workspace.dependencies] openusd.version — what openusd-schemas requires of openusd. A stale value here publishes a crate that depends on the previous release.

    Then update the dependency examples to the new version (use the major.minor form, e.g. openusd = "0.5" for 0.5.0) in all four READMEs: README.md, crates/openusd/README.md, crates/openusd-schemas/README.md (which pins openusd and openusd-schemas), and crates/openusd-build/README.md (which pins openusd and openusd-build). Stage the root Cargo.toml and the four READMEs (Cargo.lock is gitignored). Commit with message Bump crate version to <version>.

  5. Tag: Create tag v<version> on the version bump commit. Do NOT move the tag later — it must stay on this commit.

  6. Update roadmap: In ROADMAP.md, replace every occurrence of the literal string `main` with `<version>` — this includes both the Version column cells and any `main` — annotations inside the Notes column. Use the Edit tool to make each replacement individually and precisely, since a shell one-liner mangles the backticks. After editing, run grep -n 'main' ROADMAP.md to confirm zero matches remain, then show the full git diff ROADMAP.md to the user and wait for confirmation before staging or committing anything. Commit with message Update ROADMAP only after the user approves the diff.

  7. Publish to crates.io: Run cargo publish --workspace from the repository root. It publishes every member in dependency order, so openusd lands before openusd-build, and both before openusd-schemas, which builds with openusd-build. Wait for confirmation from the user before running this step.

    If any workspace member has never been published, warn the user first: creating a crate needs a crates.io token with the publish-new scope, and a token restricted to a crate list must include the new name. A token that can update the existing crates will publish those and then fail the new one with 403 Forbidden: this token does not have the required permissions.

    Publishing is NOT atomic. If it fails partway, some crates are published at the new version and others are not. Report exactly which succeeded, and resume with cargo publish -p <crate> for each one that did not — do NOT re-run cargo publish --workspace, which fails on the members already uploaded, and never retry blindly: a published version cannot be replaced or re-uploaded, only yanked.

  8. Push: Run git push --atomic origin HEAD v<version> to push commits and tag together. Wait for confirmation from the user before running this step.

  9. Create GitHub release: Run gh release create v<version> --notes-file /tmp/CHANGELOG-<version>.md --latest.

Show full SKILL.md (53 more words)Show less

Important:

  • Always wait for user confirmation before publishing to crates.io (step 7) and pushing (step 8).
  • Always wait for user confirmation before committing the ROADMAP update (step 6).
  • Run --dry-run only when the user asks for a dry run.
  • Do NOT add "Co-Authored-By" or "Generated with Claude Code" to commits or the release.

© mxpv, MIT. 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 .claude/skills/release of mxpv/openusd.

Open the folder on GitHubat commit 37d0f2a

Compare with similar skills

Release 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 compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Release this skillmxpv/openusd129—~1.7kAutomated safety check: PassMIT
Dojo Contributingdojoengine/dojo478—~356Automated safety check: PassApache-2.0
Bevy Ecsgamedev-skills/awesome-gamedev-agent-skills1.4k—~2kAutomated safety check: PassApache-2.0
Migrate Core Code to Submodulestinyhumansai/openhuman42k—~2.6kAutomated safety check: PassGPL-3.0
Rust Best Practicesfarm-fe/farm5.6k3 repos~1.1kAutomated safety check: PassMIT
OpenLogi macOS Permissions TriageAprilNEA/OpenLogi23k—~2.5kAutomated safety check: NotesApache-2.0

Similar skills

  • Dojo Contributing

    dojoengine/dojo

    Contributor workflow for dojoengine/dojo. An agent skill from dojoengine/dojo.

    478 GitHub stars~356 tokensUpdated 5 mo ago
    DevelopmentAuto-check passed
  • Bevy Ecs

    gamedev-skills/awesome-gamedev-agent-skills

    Structure a Bevy app around its Entity Component System: build the App with plugins, define Component/Resource types, write systems with Query/Res/Commands, filter and order systems, and use the…

    1.4k GitHub stars~2k tokensUpdated 11 days ago
    DevelopmentAuto-check passed
  • Migrate Core Code to Submodules

    tinyhumansai/openhuman

    Plans and carries out moving non-host-specific code and its tests from the OpenHuman core into vendored tiny submodule libraries, then releases the submodule and re-pins the host.

    42k GitHub stars~2.6k tokensUpdated today
    DevelopmentAuto-check passed
  • Guide for writing idiomatic Rust code based on Apollo GraphQL's best practices handbook.

    5.6k GitHub starsUsed in 3 repos~1.1k tokens
    DevelopmentAuto-check passed
  • Decides whether an OpenLogi device problem on macOS is a privacy-permission (TCC) problem, using agent log lines, and says which identity needs which grant.

    23k GitHub stars~2.5k tokensUpdated 4 days ago
    DevelopmentAuto-check: notes
  • Describes seven Rust design patterns for the RTK CLI filter modules, with when to use each, RTK examples, and notes on when a pattern is overkill.

    83k GitHub stars~1.9k tokensUpdated today
    DevelopmentAuto-check passed

More from mxpv/openusd

  • Writing Review

    mxpv/openusd

    Revise drafted prose into the plain, reader-facing register this project uses: commit messages, doc comments and inline comments, README and docs/ pages, ROADMAP notes, and the prose in plans and…

    129 GitHub stars~3.4k tokensUpdated 3 days ago
    Auto-check passed
  • Commit

    mxpv/openusd

    Stage and commit changes with pre-flight checks, doc updates, and roadmap tracking.

    129 GitHub stars~982 tokensUpdated 3 days ago
    Auto-check passed

Works with

Questions about Release

What does Release do?

Publish a new release of the openusd workspace crates. An agent skill from mxpv/openusd. Release is an agent skill from mxpv/openusd. Publish a new release of the openusd workspace crates.

When should I use Release?

Release fits situations like: cutting a release; bumping the version; publishing to crates.io.

How do I install Release in Claude Code?

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

How do I install Release in Codex?

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

Can I use Release 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 mxpv/openusd --skill release -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, .gemini/skills/release, .github/skills/release and .opencode/skills/release in your project.

What does Release need to run?

Going by SKILL.md and its folder, Release needs the command-line tools its instructions call (cargo, git and gh). Its frontmatter pre-approves these tools: Bash(cargo *), Bash(git *), Bash(gh *).

Does Release 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 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 use?

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

How many tokens does Release use?

About 1.7k tokens (SKILL.md is roughly 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?

Skills that share tags, products or a category with Release: Dojo Contributing (dojoengine/dojo, 478 stars), Bevy Ecs (gamedev-skills/awesome-gamedev-agent-skills, 1.4k stars), Migrate Core Code to Submodules (tinyhumansai/openhuman, 42k stars) and Rust Best Practices (farm-fe/farm, 5.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Release?

mxpv (a GitHub user) maintains it in mxpv/openusd, which has 129 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 4, 2026.

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