nemoclaw-maintainer-cut-release-tag

star 21.3k

Creates deterministic NemoClaw semver release tags on origin/main and drafts release notes. Use when cutting a release, tagging a version, shipping a build, creating vX.Y.Z tags, or preparing release announcements.

NVIDIA By NVIDIA schedule Updated 6/3/2026

name: nemoclaw-maintainer-cut-release-tag description: Creates deterministic NemoClaw semver release tags on origin/main, handles release housekeeping, and drafts release notes. Use when cutting a release, tagging a version, shipping a build, creating vX.Y.Z tags, or preparing release announcements. user_invocable: true

Cut Release Tag

Use the release scripts for normal release operations. Do not run raw git tag, git push, gh api, or version-bump commands by hand for the normal release flow.

The release is one annotated semver tag on an already-merged origin/main commit. The GitHub workflow moves latest; release admins promote lkg manually after validation. After the tag is cut, finish version-label housekeeping for remaining open issues/PRs and draft release notes for the maintainer to post.

Hard Rules

  • Tag only the commit captured in a generated release plan.
  • Ask the maintainer to paste the exact confirmation phrase from the plan before cutting the tag.
  • Push only the semver tag (vX.Y.Z) from the agent-controlled step.
  • Never push latest or lkg from this skill.
  • Never move, delete, or force-push an existing remote semver tag unless the maintainer explicitly starts protected-tag remediation.
  • Draft release notes locally. Do not create the GitHub Discussion; the maintainer does that.
  • Follow the shared Git and GitHub Access Hard Stop for SSH, authentication, remote access, authorization, or permission failures.

Workflow

Copy this checklist and update it as you proceed:

Release Progress:
- [ ] Step 1: Generate release plan
- [ ] Step 2: Show plan and exact confirmation phrase
- [ ] Step 3: Cut the semver tag from the confirmed plan
- [ ] Step 4: Wait for workflow-managed latest
- [ ] Step 5: Housekeep remaining open issues/PRs
- [ ] Step 6: Generate release-note data and draft Markdown
- [ ] Step 7: Hand off announcement steps

Step 1: Generate Release Plan

Run exactly one of:

npm run release:plan -- --bump patch
npm run release:plan -- --bump minor
npm run release:plan -- --bump major

Patch is the default if the maintainer says "yes", "go", or similar without choosing.

The script writes a plan outside the checkout root, for example:

../nemoclaw-release-v0.0.58/plan.json

Step 2: Show Plan and Ask for Exact Confirmation

Read the generated plan.json and show the maintainer:

  • previous tag,
  • next tag,
  • target origin/main commit and headline,
  • plan hash,
  • forbidden operations,
  • exact confirmation phrase,
  • open issue/PR housekeeping plan for the release label.

Ask the maintainer to paste the exact phrase:

CONFIRM RELEASE vX.Y.Z <full-origin-main-sha>

Do not proceed on a generic "yes" at this step.

Step 3: Cut the Semver Tag

Run the cut script with the plan and the maintainer's exact phrase:

npm run release:cut -- --plan <plan.json> --confirm "CONFIRM RELEASE vX.Y.Z <full-origin-main-sha>"

The script verifies a clean worktree, unchanged origin/main, tag availability, target reachability, and remote peeled tag state. It writes:

<release-dir>/cut-result.json

If the script fails because of SSH, authentication, remote access, authorization, or permissions, follow Git and GitHub Access Hard Stop. For other precondition failures, report the failed precondition and use the recovery guidance below. Do not improvise git commands.

Step 4: Wait for Workflow-Managed latest

Run:

npm run release:wait-latest -- --plan <plan.json>

The script waits until vX.Y.Z^{} and latest^{} both peel to the planned commit and verifies lkg did not change from the plan. It writes:

<release-dir>/latest-result.json

If it fails, report the failed workflow/status. Do not manually move latest.

Step 5: Housekeep Remaining Open Issues/PRs

Move any remaining open issues or PRs labeled with the released version to the next patch label:

node --experimental-strip-types --no-warnings .agents/skills/nemoclaw-maintainer-day/scripts/bump-stragglers.ts <released-version> <next-version>

Then verify the released version has no open stragglers:

gh issue list --repo NVIDIA/NemoClaw --state open --label <released-version> --limit 100
gh pr list --repo NVIDIA/NemoClaw --state open --label <released-version> --limit 100

Summarize:

  • shipped/closed items that remain associated with <released-version>;
  • open issues/PRs bumped to <next-version>;
  • any items that need manual maintainer attention.

Step 6: Generate Release-Note Data and Draft Markdown

Collect deterministic release-note input:

npm run release:notes-data -- --plan <plan.json>

This writes:

<release-dir>/notes-data.json

If notes-data.json has status: "partial" or non-empty pullRequestWarnings, report the warnings and ask the maintainer whether to fetch/fill the missing PR metadata before drafting.

Draft release notes from notes-data.json using the style from nemoclaw-maintainer-release-notes. Save only Markdown, outside the checkout root:

<release-dir>/release-note-draft.md

Do not create or update a GitHub Discussion.

Step 7: Hand Off Announcement

Return:

  • release tag,
  • confirmed release commit,
  • plan path and plan hash,
  • cut-result.json, latest-result.json, and notes-data.json paths,
  • Markdown draft path,
  • issue/PR housekeeping summary,
  • suggested discussion title: NemoClaw <new-version> is out,
  • reminder: maintainer creates the Announcement discussion and shares its link in external channels.

Recovery

  • Plan generation fails: fix the named precondition, then regenerate the plan.
  • origin/main moved after plan generation: regenerate the plan and ask for the new exact confirmation phrase.
  • Remote semver tag already exists: stop; do not retag unless the maintainer explicitly starts protected-tag remediation.
  • latest workflow fails or times out: report the workflow/status; do not move latest manually.
  • latest workflow rejects a rollback: keep latest unchanged, inspect the plan target commit, and regenerate the plan for the current origin/main tip if appropriate.
  • lkg changed: stop and escalate to a release admin.
  • Housekeeping finds open items that should still ship in the released version: stop and ask the maintainer whether to leave the label or bump them.
Install via CLI
npx skills add https://github.com/NVIDIA/NemoClaw --skill nemoclaw-maintainer-cut-release-tag
Repository Details
star Stars 21,253
call_split Forks 2,832
navigation Branch main
article Path SKILL.md
More from Creator