ワンクリックで
npm-release
Bump @oxide/api to a new omicron release tag, open the PR, and (after the user merges) hand off the npm publish commands.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Bump @oxide/api to a new omicron release tag, open the PR, and (after the user merges) hand off the npm publish commands.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | npm-release |
| description | Bump @oxide/api to a new omicron release tag, open the PR, and (after the user merges) hand off the npm publish commands. |
| user_invocable | true |
This skill handles the full release cycle for the @oxide/api npm package when
a new omicron release tag appears (e.g., rel/v19/rc0).
Ask the user for:
rel/v19/rc0). If not provided, look up the
latest rel/ tag on oxidecomputer/omicron via
gh-api-read repos/oxidecomputer/omicron/tags --jq '.[].name' and pick the
newest one. Confirm with the user before proceeding.@oxide/api version: Always a minor bump. Read the current version
from oxide-api/package.json and bump minor (e.g., 0.5.1 → 0.6.0).Resolve the omicron tag to a commit SHA. Omicron release tags are annotated tags, so you need to dereference to the underlying commit:
gh-api-read repos/oxidecomputer/omicron/git/ref/tags/<tag> --jq '.object.sha'
That gives you the tag object SHA. Then:
gh-api-read repos/oxidecomputer/omicron/git/tags/<tag-object-sha> --jq '.object.sha'
That gives you the commit SHA. Write it to OMICRON_VERSION.
Update OMICRON_VERSION with the commit SHA (just the SHA, one line,
trailing newline).
Bump version in oxide-api/package.json to the agreed version. Then
run cd oxide-api && npm install --package-lock-only so package-lock.json
is updated to match.
Update the versions table in oxide-api/README.md. Add a row for the
new release at the top of the table with the system version, @oxide/api
version, and npm dist-tag.
Regenerate the API client by running ./tools/gen.sh. This downloads
the OpenAPI spec from the omicron commit and regenerates oxide-api/src/.
Update test snapshots. In oxide-openapi-gen-ts/, run:
npm ci && npm test run -- --update
This regenerates the snapshots in
oxide-openapi-gen-ts/src/__snapshots__/.
Run CI checks locally to make sure everything passes:
cd oxide-api && npm ci && npm run tsccd oxide-openapi-gen-ts && npm run tsc && npm run lint && npm run fmt:checkCreate a branch and PR. Use jj to create a new commit, then push a branch and open a PR:
jj desc -m 'Bump API to <tag> (<version>)'
jj git push --change @
Then create the PR with gh pr create. Use a title like
Bump API to rel/v19/rc0 (0.6.0) and mention the omicron tag in the body.
Wait for CI. The update-api-spec workflow runs on push to non-main
branches and may create an "Autogenerate config update" commit — this is
expected. The validate workflow must pass.
Hand off to the user for review and merge. Once CI is green, report that the PR is ready and stop. The user will review and merge the PR themselves, then tell you to continue. Do not merge the PR yourself.
Do not run these steps yourself. npm publish and npm dist-tag require
interactive npm auth (a browser one-time-password flow) that won't work from an
automated tool call. Instead, present the exact commands — with <version>
and <N> already substituted for this release — and let the user
run them. Give the commands one step at a time (or as a short numbered list),
and wait for the user to confirm each is done before relying on it.
Pull main. After the PR is merged, update the local working copy so the publish builds from the merged commit:
jj git fetch
jj new main
Publish to npm. From oxide-api/:
npm publish
The prepublishOnly script runs npm run build (tsup) automatically. The
user must be logged into npm with publish access to the @oxide scope.
Add npm dist-tag. Tag the published version with the release name so consumers can pin to it:
npm dist-tag add @oxide/api@<version> rel<N>
where <N> is the system release number (e.g., 19 for rel/v19/rc0).
Note: bare version numbers like v10 are not allowed by npm because they
parse as semver — use the rel prefix.
@oxide/openapi-gen-ts package version is bumped separately and less
frequently — do not bump it as part of this flow unless the user asks.@oxide/api roughly follows omicron releases with
minor bumps for new releases and patch bumps for fixes. See issue #245 for
ongoing discussion.openapi/nexus/nexus-latest.json exists at that commit.