source-command-release

SkillDev tools

Review and merge the release-plz release PR with explicit user confirmation

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the source-command-release skill

What this skill tells your AI

The instructions your AI receives, as published by utensils/nxv in .agents/skills/source-command-release/SKILL.md and read by ahel’s review.

Use this skill when the user asks to run the migrated source command release.

Command Template

Release

Releases are driven by release-plz (release-plz.toml + .github/workflows/release-plz.yml). On every push to main it maintains a chore: release vX.Y.Z PR with the version bump and CHANGELOG update derived from conventional commits. Merging that PR ships the release — release-plz pushes the vX.Y.Z tag, which triggers release.yml (static binaries, GitHub release, crates.io, Docker) and flakehub-publish-tagged.yml.

This command walks that flow safely. Never merge the release PR without explicit user confirmation — it is an outward-facing, hard-to-reverse action.

Phase 1: Locate the release PR

gh pr list --repo utensils/nxv --search "chore: release in:title" --state open

If none exists, check whether main has unreleased conventional commits since the last tag (git log $(git describe --tags --abbrev=0)..origin/main --oneline). If there are releasable commits but no PR, check the latest Release-plz workflow run for errors (gh run list --workflow release-plz.yml).

Phase 2: Review what will ship

  1. Show the PR's version bump (Cargo.toml diff) and CHANGELOG addition.
  2. Verify the version follows the project convention: feat: commits bump the 0.x minor (features_always_increment_minor = true), fixes bump patch.
  3. If the version or changelog is wrong, edit the release PR directly (it is a normal editable PR) — release-plz preserves manual edits unless new commits land on main.

Phase 3: Pre-flight

  1. All CI checks on the release PR must be green. If checks show "Expected / Waiting", the App token is misconfigured — see release-plz.yml comments.
  2. Confirm no other PR is about to land that should be in this release.

Phase 4: Confirm and merge

Present a summary (version, commit list, changelog) and require the user to confirm with the explicit version number (AskUserQuestion). Then:

gh pr merge <PR> --repo utensils/nxv --squash

Phase 5: Monitor

  1. The Release-plz workflow on main pushes the tag.
  2. The Release workflow builds binaries and publishes — monitor with gh run list --workflow release.yml / gh run watch.
  3. Verify the GitHub release has all four binaries + SHA256SUMS.txt, crates.io has the new version, and ghcr.io has the version tag.

Manual escape hatches

  • Tagging failed after the release PR merged: re-run the Release-plz workflow on main (it is idempotent — existing tags are the gate).
  • The old fully-manual flow (bump Cargo.toml, edit CHANGELOG, tag by hand) still works in emergencies but must match release-plz's expectations (tag vX.Y.Z, CHANGELOG section ## [X.Y.Z] - YYYY-MM-DD).

Signals

GitHub stars
136
Forks
2
Last commit
Aug 2026
Advanced
Catalog kind
skill
Gateway key
source-command-release
Source
github.com/utensils/nxv