Skip to content
Back to skills

Create Rc Tag

ASecurity

Create and push a signed, annotated NeMo Relay release-candidate tag from its validated release branch. Use when cutting an RC tag; not for code freezes or stable tags.

  • 190 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 1, 2026
ai-agentsbashgit

Security analysis

A100/100

Scanned October 1, 2026

npx -y skills add NVIDIA/NeMo-Relay --skill create-rc-tag --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Create Rc Tag?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Create Rc Tag
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/nvidia-create-rc-tag/badge)](https://www.skillsdirectory.com/skills/nvidia-create-rc-tag)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: create-rc-tag
description: Create and push a signed, annotated NeMo Relay release-candidate tag from its validated release branch. Use when cutting an RC tag; not for code freezes or stable tags.
license: Apache-2.0
---

# Create an RC Tag

Require an explicit stable base version in `<major>.<minor>[.<patch>]` form;
treat two components as patch `0`. Do not infer it from the branch or package
metadata, and do not edit version files while creating the tag. The matching
`release/<major>.<minor>` branch must exist on `upstream`.

Select the next unused positive RC number for that exact base version unless the
user supplies one. Relay uses raw-SemVer tags such as `0.9.0-rc.1`, without a
leading `v`.

Before the destructive tag push, require explicit approval. Preserve user
changes: do not stash, discard, or switch away from a dirty checkout. Fetch the
release branch and tags, require `HEAD` to equal the upstream release branch,
and require the workspace version to equal the stable base version. Verify that
both local and remote tags are absent, create a signed annotated tag, verify it
with `git tag -v`, and push only `refs/tags/<tag>`. Stop on any failed check;
never force-update, replace, or delete tags.

## Select and Verify the Source

Use `upstream` for `NVIDIA/NeMo-Relay`. The version and optional RC number are
user inputs. Validate a supplied number as a positive integer; otherwise derive
the next number after fetching the release branch and tags.

```bash
BASE_VERSION=<major.minor[.patch]>
[[ "$BASE_VERSION" =~ ^[0-9]+\.[0-9]+(\.[0-9]+)?$ ]] || { echo "Error: invalid base version" >&2; exit 1; }
if [[ "$BASE_VERSION" =~ ^[0-9]+\.[0-9]+$ ]]; then BASE_VERSION="$BASE_VERSION.0"; fi
RELEASE_BRANCH="release/$(printf '%s' "$BASE_VERSION" | cut -d. -f1,2)"
git ls-remote --exit-code --heads upstream "refs/heads/$RELEASE_BRANCH"
git fetch upstream "$RELEASE_BRANCH" --tags

LAST_RC="$(git tag --list "${BASE_VERSION}-rc.*" | sed -nE "s/^${BASE_VERSION//./\\.}-rc\.([1-9][0-9]*)$/\\1/p" | sort -n | tail -1)"
RC_NUMBER="${RC_NUMBER:-$(( ${LAST_RC:-0} + 1 ))}"
[[ "$RC_NUMBER" =~ ^[1-9][0-9]*$ ]]
TAG="${BASE_VERSION}-rc.${RC_NUMBER}"
```

From a clean checkout of `RELEASE_BRANCH`, require `HEAD` to match
`upstream/$RELEASE_BRANCH`, verify the workspace version matches `BASE_VERSION`,
and check that `TAG` is absent locally and on `upstream`. After the user
authorizes the push:

```bash
git tag -s -a -m "NVIDIA NeMo Relay ${TAG}" "$TAG" HEAD
git tag -v "$TAG"
git push upstream "refs/tags/$TAG"
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…