modules/programs/agents/shared/_archive/release/SKILL.md
Cut a release (bump version, commit, tag, push)
npx skillsauth add MichaelVessia/nixos-config releaseInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
$ARGUMENTS - Optional: version specifier (patch, minor, major, or explicit X.Y.Z)
Parse from $ARGUMENTS:
--dry-run: Show what would happen without making changes--no-push: Commit and tag locally, don't push--force: Skip branch check--yes: Non-interactive mode (skip prompts)git rev-parse --show-toplevel
Error if not in a git repo. All operations happen from git root.
Check in order (first match wins):
package.json → .versionCargo.toml → [package].versionpyproject.toml → [project].version or [tool.poetry].versionversion.txt → entire content (strict: exactly X.Y.Z)VERSION → entire content (strict: exactly X.Y.Z)Error if multiple found. List them and abort.
Check lockfiles:
bun.lockb → bunpnpm-lock.yaml → pnpmyarn.lock → yarnpackage-lock.json → npmError if multiple lockfiles. Default to npm if none.
Abort if:
vX.Y.Z exists: "Tag vX.Y.Z already exists."--yes without --force)Parse current version (strict semver MAJOR.MINOR.PATCH):
patch: increment PATCHminor: increment MINOR, reset PATCHmajor: increment MAJOR, reset MINOR and PATCHX.Y.Z: validate greater than currentHard abort if checks fail.
| Project | Command |
|---------|---------|
| package.json | <pm> run check or <pm> run test (first found) |
| Cargo.toml | cargo test |
| pyproject.toml | pytest |
Edit version file with new version.
git add <version-file> [<lockfile-if-changed>]
git commit -m "chore: release vX.Y.Z"
git tag vX.Y.Z
git push && git push --tags
Skip push if --no-push. Use default remote for current branch.
Released vX.Y.Z
Commit: <hash>
Tag: vX.Y.Z
Previous: vX.Y.Z
If --dry-run, show:
0.1.0 → 0.2.0If push succeeds but tag push fails:
Error: Failed to push tags.
The commit was pushed but the tag was not.
To recover manually:
git push --tags
| Project | Lockfile | |---------|----------| | package.json | Detected lockfile (error if multiple) | | Cargo.toml | Cargo.lock | | pyproject.toml | poetry.lock, pdm.lock, or uv.lock (error if multiple) |
Don't run install/lock commands - just commit if changed.
development
Generate self-contained HTML visualizations with Plannotator theming. Use for implementation plans, PR explainers, architecture diagrams, data tables, slide decks, and any visual explanation of technical concepts. Plans and PR explainers follow Plannotator's prescriptive approach; all other visual content delegates to nicobailon/visual-explainer.
development
Turn an idea or objective into a goal package for /goal. Interviews the user, builds a reviewed fact sheet via Plannotator, then explores the codebase to produce an execution plan.
development
Open Plannotator's browser-based code review UI for the current worktree or a pull request URL, then act on the feedback that comes back.
testing
Open Plannotator on the latest rendered assistant message and use the returned annotations to revise that message or continue.