Agent skill

Rocky Release

by rocky-data in rocky-data/rocky

Tag-namespaced release workflow for the Rocky monorepo. An agent skill from rocky-data/rocky.

Apache-2.0Auto-check: warningsDevelopment

Install Rocky Release

The automated check flagged lines worth reading first. See the safety section below.

skills CLI
$ npx skills add rocky-data/rocky --skill rocky-release -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install rocky-data/rocky rocky-release --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/rocky-data/rocky.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/rocky-release .claude/skills/rocky-release && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
rocky-release
GitHub stars
304
Token cost
~4.1k tokens
SKILL.md length
1,885 words
Files
1
Skills in repo
22
Repo updated
First seen
Licence
Apache-2.0

At a glance

Tag-namespaced release workflow for the Rocky monorepo. An agent skill from rocky-data/rocky.

  • Works in 3 steps: Land a release PR that bumps the version… → Tag the merged commit with the… → Push the tag — this triggers the…
  • Cutting any Rocky release
  • SKILL.md covers When to use this skill, The flow: release PR → merge →…, Engine release (default: just… and SDK release (default: just tag…, plus 8 more sections
  • Calls just, gh and git; needs UV_PUBLISH_TOKEN and NPM_TOKEN

What it does

Rocky Release is an agent skill from rocky-data/rocky. Tag-namespaced release workflow for the Rocky monorepo. All four artifacts (engine, rocky-sdk, dagster-rocky, vscode) are CI-driven — land a release PR with the version bump + CHANGELOG, tag the merged commit, push the tag, and the matching release workflow handles everything. Use when cutting any Rocky release.

Its SKILL.md is about 4.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Monorepo tooling and Changelog and release notes. It works with Dagster, Visual Studio Code and GitHub. The repository describes itself as: A SQL transformation engine that type-checks your whole pipeline and catches breaking changes before they run — branches, replay, column-level lineage, compile-time contracts… The licence is Apache-2.0.

When your agent uses it

  • Cutting any Rocky release
  • Tasks that involve Monorepo tooling
  • Tasks that involve Changelog and release notes

Example prompts

  • “/rocky-release”

Requirements

  • Node.js
  • Docker
  • A credential in UV_PUBLISH_TOKEN

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Land a release PR that bumps the version file(s) + updates the changelog.
  2. Tag the merged commit with the namespaced tag (engine-v*, sdk-v*, dagster-v*, vscode-v*).
  3. Push the tag — this triggers the matching *-release.yml workflow.

What it can do on your machine

Read from SKILL.md and the folder at commit 9c3d777. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • just
    • gh
    • git
    • cargo
    • uv
    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use gh, git, uv and npx, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • UV_PUBLISH_TOKEN
    • NPM_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Rocky Release loads about 4.1k tokens when it runs. Until then it costs about 82 tokens; SKILL.md has 1,885 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~82
When it runs · the whole SKILL.md, loaded when a task matches
~4.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: warnings

The automated check found patterns that need a careful read before installing.

  • WarningMentions a credentials file (SSH keys, cloud or package-manager tokens)SKILL.md:123
    # + PyPI via UV_PUBLISH_TOKEN or ~/.pypirc
  • WarningMentions a credentials file (SSH keys, cloud or package-manager tokens)SKILL.md:154
    publish` needs `UV_PUBLISH_TOKEN` or `~/.pypirc` |
  • WarningMentions a credentials file (SSH keys, cloud or package-manager tokens)SKILL.md:155
    publish` needs `UV_PUBLISH_TOKEN` or `~/.pypirc` |

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from rocky-data/rocky at commit 9c3d777, republished under its Apache-2.0 licence (© rocky-data). 1,885 words, ~4,074 tokens.

Download SKILL.mdSave it as .claude/skills/rocky-release/SKILL.md (or your agent's skills folder).
name
rocky-release
description
Tag-namespaced release workflow for the Rocky monorepo. All four artifacts (engine, rocky-sdk, dagster-rocky, vscode) are CI-driven — land a release PR with the version bump + CHANGELOG, tag the merged commit, push the tag, and the matching release workflow handles everything. Use when cutting any Rocky release.

Rocky release workflow

Four artifacts ship independently from one monorepo, each with its own tag namespace:

ArtifactTagDestinationBuild path
Engine binaries (rocky + rocky-lsp)engine-v<version>GitHub Release (5 targets x 2 binaries = 10 archives)CI — engine-release.yml
rocky-sdk wheelsdk-v<version>GitHub Release + PyPICI — sdk-release.yml (OIDC → PyPI)
dagster-rocky wheeldagster-v<version>GitHub Release + PyPICI — dagster-release.yml (OIDC → PyPI)
Rocky VS Code extensionvscode-v<version>GitHub Release + VS Code MarketplaceCI — vscode-release.yml (VSCE_PAT secret → Marketplace)

Never tag a release as bare v0.1.0 — the tag namespace is how engine/install.sh, engine/install.ps1, and downstream consumers filter for their artifact.

When to use this skill

  • Cutting any Rocky release (engine, sdk, dagster, vscode)
  • Debugging a release failure — the failing job is always in the relevant *-release.yml logs. A failed run leaves the GitHub Release as a draft; re-run the failed job. If a sdk/dagster/vscode job failed after its registry upload, the re-run fails on the duplicate upload: attach the artifacts with gh release upload and publish with gh release edit <tag> --draft=false --latest=false by hand.
  • Deciding whether a release needs the local-build fallback (only when CI runner credits are exhausted or a workflow itself is broken)

The flow: release PR → merge → tag → push

All four artifacts follow the same pattern:

  1. Land a release PR that bumps the version file(s) + updates the changelog.
  2. Tag the merged commit with the namespaced tag (engine-v*, sdk-v*, dagster-v*, vscode-v*).
  3. Push the tag — this triggers the matching *-release.yml workflow.

The workflow handles the GitHub Release creation, build, and (for dagster/vscode) the publish to the external registry.

scripts/release.sh + the just release-engine|sdk|dagster|vscode recipes survive as local-build fallbacks when CI is unavailable. The local path creates the GH Release as a draft with its artifacts attached. The tag push's CI run accepts that draft and publishes it. ensure-release refuses a release that is already published, so CI never attaches to, or re-publishes, a live release.

Every release is a draft until its last step — all five workflows and every local path. No path publishes a GitHub Release before every artifact it lists exists and the registry upload (PyPI, Marketplace, npm) has succeeded. A failed run leaves a draft, which the public release list omits. Re-run the failed job; the draft is the intended leftover, not a bug.

Engine release (default: just tag and push)

bash
# 1. Bump versions + changelog in a PR, merge to main (see "Pre-flight" below).
# 2. From main at the commit you want to release:
git tag -a engine-v0.2.0 -m "Release engine-v0.2.0"
git push origin engine-v0.2.0

That's it. The tag push triggers engine-release.yml, which:

  1. ensure-release — creates the engine-v0.2.0 GitHub Release if missing, as a draft (--generate-notes --draft). An existing draft (the local fallback) is used as it is. An existing published release stops the run.
  2. build matrix — runs on macos-14, ubuntu-24.04, and windows-2022 across 5 targets. Each target produces two archives, one per binary: rocky-<target>.tar.gz and rocky-lsp-<target>.tar.gz (.zip on Windows). 10 archives in total, not 5.
  3. checksums — generates checksums.txt (not SHA256SUMS) from every platform archive and uploads it alongside them.
  4. publish — flips the release out of draft, once and only once every artifact is attached.

The draft-until-complete ordering is load-bearing, not cosmetic: install.sh resolves "latest" by listing /releases and taking the highest engine-v* tag, and draft releases are omitted from that listing. Publishing up front would make the tag resolvable for the 15–25 min the matrix is still building, so a concurrent install.sh — a user's, or another PR's smoke job — would resolve a version whose binaries do not exist yet.

Total elapsed: ~15–25 min. Watch with:

bash
gh run watch $(gh run list --workflow=engine-release.yml --limit=1 --json databaseId --jq '.[0].databaseId')

After the run, verify:

  • gh release view engine-v0.2.0 --repo rocky-data/rocky shows 11 assets: 10 platform archives (rocky-* and rocky-lsp-*, one pair per target) + checksums.txt
  • engine/install.sh and engine/install.ps1 resolve the new version (they filter releases by the engine-v* prefix)
Engine fallback: local build (only when CI is unavailable)

When GitHub Actions credits are exhausted or the CI matrix is broken, scripts/release.sh (exposed as just release-engine <version>) builds on your laptop:

bash
just release-engine 0.2.0
# or:
./scripts/release.sh engine 0.2.0

This builds macOS locally (cargo --release), cross-builds Linux via cargo-zigbuild or Docker (scripts/build_rocky_linux.sh), pushes the tag, then creates the GitHub Release as a draft (--generate-notes --draft) with the macOS + Linux tarballs. The tag push still triggers engine-release.yml: if CI is healthy it rebuilds everything, overwrites the local uploads, adds checksums.txt, and publishes the draft. If CI is broken, the draft stays a draft. Publish it by hand with gh release edit engine-v0.2.0 --repo rocky-data/rocky --draft=false --latest, knowing that install.sh will still fail on it: the local path builds neither checksums.txt nor the rocky-lsp archives.

Only reach for this when CI is genuinely unavailable. It's slower, riskier, and produces artifacts signed by your laptop instead of the GitHub runner.

SDK release (default: just tag and push)

bash
# 1. Bump sdk/python/pyproject.toml + sdk/python/CHANGELOG.md in a PR, merge to main.
# 2. Tag the merged commit and push:
git tag -a sdk-v0.2.0 -m "Release sdk-v0.2.0"
git push origin sdk-v0.2.0

The tag push triggers sdk-release.yml, which:

  1. ensure-release — creates the sdk-v0.2.0 GitHub Release if missing, as a draft (--draft --latest=false). An existing draft (the local fallback) is used as it is. An existing published release stops the run.
  2. publish-pypi — uv build, publish via pypa/gh-action-pypi-publish using OIDC (trusted publisher; no token in repo secrets), attach dist/* to the GH Release (wheel, sdist, and the two .publish.attestation files the publish step writes), then publish the release (gh release edit --draft=false --latest=false) as the last step.

Ordering rule: release rocky-sdk before any dagster-rocky release that raises its rocky-sdk>=… floor — the published dagster wheel resolves the SDK from PyPI, not the monorepo path source.

SDK fallback: local build
bash
just release-sdk 0.2.0                # GH release only
just release-sdk 0.2.0 --publish      # + PyPI

Dagster release (default: just tag and push)

bash
# 1. Bump pyproject.toml + CHANGELOG in a PR, merge to main.
# 2. Tag the merged commit and push:
git tag -a dagster-v0.4.0 -m "Release dagster-v0.4.0"
git push origin dagster-v0.4.0

The tag push triggers dagster-release.yml, which:

  1. ensure-release — creates the dagster-v0.4.0 GitHub Release if missing, as a draft (--draft --latest=false). An existing draft (the local fallback) is used as it is. An existing published release stops the run.
  2. publish-pypi — uv build, publish via pypa/gh-action-pypi-publish using OIDC (trusted publisher; no token in repo secrets), attach dist/* to the GH Release (wheel, sdist, and the two .publish.attestation files), then publish the release (gh release edit --draft=false --latest=false) as the last step.
Dagster fallback: local build
bash
just release-dagster 0.4.0                # GH release only
just release-dagster 0.4.0 --publish      # + PyPI via UV_PUBLISH_TOKEN or ~/.pypirc

Without --publish, the local path creates a draft and the tag push's CI run publishes it after the PyPI upload. With --publish, PyPI already has the wheel, so the script creates the draft, attaches the artifacts, and then publishes it in a separate step; the tag push's CI run then stops at ensure-release (already published). That red run is expected. Only reach for this when the CI workflow itself is broken.

VS Code release (default: just tag and push)

bash
# 1. Bump package.json + CHANGELOG in a PR, merge to main.
# 2. Tag the merged commit and push:
git tag -a vscode-v0.3.0 -m "Release vscode-v0.3.0"
git push origin vscode-v0.3.0

The tag push triggers vscode-release.yml, which:

  1. ensure-release — creates the vscode-v0.3.0 GitHub Release if missing, as a draft (--draft --latest=false). An existing draft (the local fallback) is used as it is. An existing published release stops the run.
  2. build — npx vsce package produces the VSIX and attaches it with gh release upload; vsce publish pushes to the VS Code Marketplace using the VSCE_PAT repo secret; then the release is published (gh release edit --draft=false --latest=false) as the last step. In rocky-data/rocky an unset VSCE_PAT fails the run and the release stays a draft. A fork without the secret skips the Marketplace step.
Show full SKILL.md (748 more words)Show less
VS Code fallback: local build
bash
just release-vscode 0.3.0                 # GH release only
just release-vscode 0.3.0 --publish       # + Marketplace via local VSCE_PAT

Prerequisites

ArtifactDefault path (CI)Local fallback
Enginegit + gh CLIplus cargo, cargo-zigbuild + zig (or Docker) for local Linux cross-compile
SDKgit + gh CLI; PyPI OIDC trusted-publisher configured on the projectuv + gh; --publish needs UV_PUBLISH_TOKEN or ~/.pypirc
Dagstergit + gh CLI; PyPI OIDC trusted-publisher configured on the projectuv + gh; --publish needs UV_PUBLISH_TOKEN or ~/.pypirc
VS Codegit + gh CLI; VSCE_PAT configured as a repo secretnpm, npx + gh; --publish needs VSCE_PAT in the shell environment

gh must be authenticated against rocky-data/rocky with release-write permission for all paths.

Pre-flight: what to check before tagging

Runs before any release:

bash
# 1. Everything builds + tests
just build
just test
just lint

# 2. Codegen is clean (no drift)
just codegen
git status     # should show no diff

# 3. Changelog updated
# For engine releases: engine/CHANGELOG.md
# For sdk: sdk/python/CHANGELOG.md
# For dagster: integrations/dagster/CHANGELOG.md
# For vscode: editors/vscode/CHANGELOG.md

# 4. Version numbers bumped
# engine:  every engine/crates/*/Cargo.toml + engine/rocky/Cargo.toml + engine/rocky-lsp/Cargo.toml (~25 files)
# sdk:     sdk/python/pyproject.toml
# dagster: integrations/dagster/pyproject.toml
# vscode:  editors/vscode/package.json

Version bump + tag commit

Rocky uses a single "release" commit per artifact that bumps the version file + updates the changelog. Land it as a PR to main, not a direct push:

chore(engine): release 0.2.0
chore(sdk): release 0.2.0
chore(dagster): release 0.4.0
chore(vscode): release 0.3.0

For engine releases, the PR touches ~25 Cargo.toml files — one per crate (including rocky-bigquery), plus engine/rocky/Cargo.toml and engine/rocky-lsp/Cargo.toml. All crates version in lockstep.

Neither CI (engine-release.yml) nor scripts/release.sh bump versions for you — that's a manual step before the tag. scripts/release.sh WILL refuse to proceed if the tag already exists (confirm_tag() in release.sh); engine-release.yml won't, but its ensure-release job attaches only to an existing draft and refuses a release that is already published.

Common pitfalls

  • Forgetting the namespace: v0.2.0 instead of engine-v0.2.0. The install scripts filter by prefix; a bare tag is invisible to them.
  • Wrong commit tagged: verify git log -1 before tagging — the tag captures HEAD, not main.
  • Missing Cargo.toml bumps: every crate in engine/crates/* must bump. Grep for the old version before pushing the release PR: grep -rn '^version = "1.2.0"$' engine --include="Cargo.toml" should return zero after the bump.
  • Missing the rocky-mcp bump specifically: rocky mcp announces its own crate version to every MCP client as serverInfo.version, so a missed bump makes the server claim an older Rocky than rocky --version prints. engine/rocky/tests/mcp_server_identity.rs fails the build when the two disagree, which the grep above cannot do (it looks for the OLD version, so a crate that already fell behind is invisible to it).
  • The MCP served-text golden moves on every release: rocky-mcp's served_text.golden pins the initialize payload, which carries the version. Expect exactly two rows to change, default/initialize and worker/initialize, and re-bless with ROCKY_BLESS_MCP_SERVED_TEXT=1 cargo test -p rocky-mcp --test roundtrip. Any OTHER row moving in the same diff is a real change to the served text: read it before blessing.
  • Dirty codegen: just codegen produced a diff that wasn't committed — codegen-drift.yml CI retroactively fails.
  • Docker not running (fallback only): scripts/build_rocky_linux.sh silently falls back to zigbuild which has its own issues with ring on newer Rust. The --docker flag forces the Docker path.

CI surface

Path-filtered workflows in .github/workflows/:

  • engine-ci.yml — test + clippy + fmt on every PR touching engine/**
  • engine-weekly.yml — coverage (tarpaulin) + cargo-audit, Monday schedule + manual dispatch
  • engine-bench.yml — only PRs labeled perf touching engine/crates/** or engine/Cargo.*
  • engine-release.yml — full 5-target matrix build on tag engine-v* push. Owns the GitHub Release creation + binary uploads + checksums.txt.
  • sdk-release.yml / dagster-release.yml / vscode-release.yml — tag-triggered (sdk-v* / dagster-v* / vscode-v*) release + publish
  • engine-wasm-release.yml — builds rocky-wasm and publishes to npm on engine-wasm-v* tags (independent of CLI releases). Same draft-until-last-step shape as the other four; an unset NPM_TOKEN fails the run here and stays a no-op on a fork
  • engine-docs.yml — build + deploy Astro docs from docs/ to GitHub Pages
  • codegen-drift.yml — fails any PR where committed bindings drift from just codegen output

Post-release checklist

  • gh release view <tag> shows all expected artifacts (11 for engine: 10 archives + checksums.txt; 4 for sdk and 4 for dagster: wheel, sdist and one .publish.attestation for each, uploaded by the PyPI trusted-publisher step; 1 for vscode) and gh release view <tag> --json isDraft is false
  • Install script (engine/install.sh or install.ps1) resolves and installs the new version on a clean machine
  • Browser UI screenshots match the release. With the new engine on PATH, run ./cli-recording/record-ui-screenshots.sh --publish and look at each image before committing. Skip it when the release changed nothing the UI shows. The images in docs/public/ must show a binary a reader can install, so they are recaptured from the tagged build, never from main.
  • No docs page still announces this release's UI change as coming. docs/src/content/docs/guides/browser-ui.md carries one such line under the tour GIF: it tells a reader the screenshots show the current release and names what arrives in the next one. Once the tag ships that change, the line is false. Delete it, or point it at whatever is now next.
  • Changelog is on main (it merged with the release PR, but double-check)
  • Announcement, if public-facing (blog, release notes)

© rocky-data, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/rocky-release of rocky-data/rocky.

Open the folder on GitHubat commit 9c3d777

Compare with similar skills

Rocky Release next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Rocky Release compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Rocky Release this skillrocky-data/rocky304—~4.1kAutomated safety check: WarnApache-2.0
Cutting A ReleaseTriliumNext/Trilium38k—~3.2kAutomated safety check: PassAGPL-3.0
Release Roslynatordotnet/roslynator3.5k—~1kAutomated safety check: PassCustom licence
Releasesignageos/vscode-sops122—~2.2kAutomated safety check: NotesMIT
Releasequerylenshq/ef-querylens225—~887Automated safety check: PassMIT
Automate npm Releasejd-solanki/slidev-theme-dracula161—~626Automated safety check: PassNone

Similar skills

  • Cutting A Release

    TriliumNext/Trilium

    A skill your agent uses when cutting, preparing, or debugging a Trilium release — bumping the monorepo version, tagging, or diagnosing a failed "Release" workflow run.

    38k GitHub stars~3.2k tokensUpdated today
    DevelopmentAuto-check passed
  • Release Roslynator

    dotnet/roslynator

    Official

    A skill your agent uses when shipping a roslynator release, rolling CHANGELOG.md [Unreleased], updating the VS Code extension changelog, creating a GitHub v release, or optionally tagging cli-v.

    3.5k GitHub stars~1k tokensUpdated 4 days ago
    DevelopmentAuto-check passed
  • Release

    signageos/vscode-sops

    Releases the vscode-sops extension end-to-end: determines the next version from the bump history, updates CHANGELOG.md and package.json/package-lock.json, builds via vscode:prepublish, publishes to…

    122 GitHub stars~2.2k tokensUpdated 6 mo ago
    DevelopmentAuto-check: notes
  • Release

    querylenshq/ef-querylens

    A skill your agent uses when: creating a release, publishing a version, cutting a release, tagging a release, releasing plugin, release workflow, prepare release, create git tag, create GitHub…

    225 GitHub stars~887 tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • Automate npm Release

    jd-solanki/slidev-theme-dracula

    Automate npm package publishing via GitHub Actions for single-package repos and independent monorepo packages, including bumpp version tags, GitHub release notes, trusted publishing, provenance, and…

    161 GitHub stars~626 tokensUpdated 3 mo ago
    DevelopmentAuto-check passed
  • Acreadiness Generate Instructions

    github/awesome-copilot

    Official

    Generate tailored AI agent instruction files via AgentRC instructions command.

    40k GitHub starsUsed in 1 repo~2.1k tokens
    DevelopmentAuto-check passed

More from rocky-data/rocky

All 22 skills in this repo
  • Fivetran

    rocky-data/rocky

    Fivetran REST API reference for Rocky's source adapter. An agent skill from rocky-data/rocky.

    304 GitHub stars~914 tokensUpdated today
    Auto-check passed
  • Databricks

    rocky-data/rocky

    Databricks REST API and SQL reference for Rocky's warehouse adapter.

    304 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Rocky Codegen

    rocky-data/rocky

    Rocky CLI JSON-output schema cascade. An agent skill from rocky-data/rocky.

    304 GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • Rocky Dev

    rocky-data/rocky

    Top-level router for Rocky development tasks. An agent skill from rocky-data/rocky.

    304 GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Rocky Dsl Change

    rocky-data/rocky

    Rocky DSL (.rocky file) cross-subproject cascade. An agent skill from rocky-data/rocky.

    304 GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • Rocky New Adapter

    rocky-data/rocky

    Adding a new warehouse or source adapter crate to the Rocky engine.

    304 GitHub stars~2k tokensUpdated today
    Auto-check passed

Categories

Questions about Rocky Release

What does Rocky Release do?

Tag-namespaced release workflow for the Rocky monorepo. An agent skill from rocky-data/rocky. Rocky Release is an agent skill from rocky-data/rocky. Tag-namespaced release workflow for the Rocky monorepo.

When should I use Rocky Release?

Rocky Release fits situations like: cutting any Rocky release; tasks that involve Monorepo tooling; tasks that involve Changelog and release notes.

How do I install Rocky Release in Claude Code?

Run `npx skills add rocky-data/rocky --skill rocky-release -a claude-code`. Or copy the skill folder (.agents/skills/rocky-release in rocky-data/rocky) into .claude/skills/rocky-release in your project. Claude Code loads it when a task matches its description.

How do I install Rocky Release in Codex?

Run `npx skills add rocky-data/rocky --skill rocky-release -a codex`. Or copy the skill folder (.agents/skills/rocky-release in rocky-data/rocky) into .agents/skills/rocky-release in your project. Codex loads it when a task matches its description.

Can I use Rocky Release in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add rocky-data/rocky --skill rocky-release -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/rocky-release, .gemini/skills/rocky-release, .github/skills/rocky-release and .opencode/skills/rocky-release in your project.

What does Rocky Release need to run?

Going by SKILL.md and its folder, Rocky Release needs the command-line tools its instructions call (just, gh, git, cargo, uv and npx) and credentials named UV_PUBLISH_TOKEN and NPM_TOKEN. Our summary lists: Node.js; Docker; A credential in UV_PUBLISH_TOKEN.

Does Rocky Release access the network?

SKILL.md contains no URLs. Its commands use gh, git, uv and npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Rocky Release safe to install?

Our automated static check of SKILL.md flagged 3 warning(s): mentions a credentials file (ssh keys, cloud or package-manager tokens). Read the flagged lines before installing; the check is not a guarantee either way.

What licence does Rocky Release use?

Rocky Release is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Rocky Release use?

About 4.1k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Rocky Release?

Skills that share tags, products or a category with Rocky Release: Cutting A Release (TriliumNext/Trilium, 38k stars), Release Roslynator (dotnet/roslynator, 3.5k stars), Release (signageos/vscode-sops, 122 stars) and Release (querylenshq/ef-querylens, 225 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Rocky Release?

rocky-data (a GitHub organization) maintains it in rocky-data/rocky, which has 304 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on October 9, 2026.

Source: rocky-data/rocky on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.