Agent skill

Release

by pando85 in pando85/kaniop

Prepare and publish a new release. An agent skill from pando85/kaniop.

AGPL-3.0Auto-check passedDevelopment

Install Release

skills CLI
$ npx skills add pando85/kaniop --skill release -a claude-code

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

GitHub CLI
$ gh skill install pando85/kaniop 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/pando85/kaniop.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.opencode/skills/release .claude/skills/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
release
GitHub stars
130
Token cost
~2.4k tokens
SKILL.md length
1,046 words
Files
1
Skills in repo
5
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Prepare and publish a new release. An agent skill from pando85/kaniop.

  • Works in 9 steps: Verify Clean State → Determine Version → Create Release Branch → …
  • The user asks to release
  • SKILL.md covers Purpose, When to use, Prerequisites and Version Decision Guide, plus 6 more sections
  • Calls git, make and gh; needs GPG_PRIVATE_KEY

What it does

Release is an agent skill from pando85/kaniop. Prepare and publish a new release. Use when the user asks to release, cut a release, or publish a new version.

Its SKILL.md is about 2.4k 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. It works with Git and Kubernetes. The repository describes itself as: Kubernetes operator for managing Kanidm. The licence is AGPL-3.0.

When your agent uses it

  • The user asks to release
  • Publish a new version

Example prompts

  • “/release”

Requirements

  • Docker
  • A credential in GPG_PRIVATE_KEY

Workflow steps

9 steps, taken from the step headings in SKILL.md.

  1. Verify Clean State
  2. Determine Version
  3. Create Release Branch
  4. Update Version
  5. Update Changelog
  6. Regenerate Examples
  7. Commit Changes
  8. Push Branch and Create PR
  9. After Merge

What it can do on your machine

Read from SKILL.md and the folder at commit 768ac0b. 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:

    • git
    • make
    • gh
    • cargo

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

  • Network

    No URLs in SKILL.md. Its commands use git and gh, 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:

    • GPG_PRIVATE_KEY

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

Context cost

Release loads about 2.4k tokens when it runs. Until then it costs about 30 tokens; SKILL.md has 1,046 words of instructions outside code blocks.

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

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 passed

The automated check found no risky patterns in SKILL.md.

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 pando85/kaniop at commit 768ac0b, republished under its AGPL-3.0 licence (© pando85). 1,046 words, ~2,397 tokens.

Download SKILL.mdSave it as .claude/skills/release/SKILL.md (or your agent's skills folder).
name
release
description
Prepare and publish a new release. Use when the user asks to release, cut a release, or publish a new version.

Purpose

Release a new version of Kaniop using the release script and CI pipeline.

When to use

Use this skill when:

  • The user asks to release a new version
  • The user asks to cut a release or publish
  • The user asks to tag a new version

Prerequisites

Before releasing, verify:

  1. Working tree is clean — no uncommitted changes
  2. You are on master — releases only happen from master
  3. Local master is up to date with origin/master
  4. No commits ahead of origin/master (output of git rev-list --count origin/master..HEAD must be 0)
  5. Repository is not a shallow clone — git-cliff needs full history for accurate changelogs

Check with:

bash
git status --short
git rev-parse --abbrev-ref HEAD
git pull origin master
git rev-list --count origin/master..HEAD
git tag --sort=-creatordate | head -3
git log --oneline v<latest_tag>..HEAD

Version Decision Guide

Use Semantic Versioning (MAJOR.MINOR.PATCH). Determine the bump type by analyzing commits since the last release.

Major Version (X.0.0)

Bump MAJOR when:

  • Breaking changes to CRD specs
  • Breaking changes to Helm chart values
  • Breaking changes to operator behavior requiring manual intervention
  • Commit message contains BREAKING CHANGE: or ! (e.g., feat!: ...)
Minor Version (0.X.0)

Bump MINOR when:

  • New features added (feat: commits)
  • New CRD types or fields
  • New Helm chart configuration options
  • Backward-compatible enhancements
Patch Version (0.0.X)

Bump PATCH when:

  • Bug fixes (fix: commits)
  • Documentation updates (docs: commits)
  • Internal refactoring (refactor: commits)
  • Dependency updates (chore(deps): commits)
Decision Process
  1. Run: git log v<CURRENT_VERSION>..HEAD --oneline
  2. Check commit messages for:
    • ! or BREAKING CHANGE: -> MAJOR
    • feat: -> MINOR
    • fix:, docs:, refactor:, etc. -> PATCH
  3. If multiple types, use the highest precedence (MAJOR > MINOR > PATCH)

Release Process

Step 1: Verify Clean State

Ensure you're on master with no uncommitted changes, up to date with origin, and no commits ahead:

bash
git checkout master
git pull origin master
git status  # Should show "nothing to commit, working tree clean"

Verify no commits ahead of origin/master:

bash
git rev-list --count origin/master..HEAD  # Should output 0

Unshallow check — shallow clones produce incomplete changelogs:

bash
git rev-parse --is-shallow-repository

If this outputs true, unshallow the repo before proceeding:

bash
git fetch --unshallow origin
git fetch --tags origin
Step 2: Determine Version
  1. Get current version:

    bash
    grep '^version =' Cargo.toml | head -1
  2. Review commits since last release:

    bash
    git log v<CURRENT_VERSION>..HEAD --oneline
  3. Decide on MAJOR, MINOR, or PATCH bump based on the Version Decision Guide above.

Step 3: Create Release Branch
bash
git checkout -b release/v<NEW_VERSION>
Step 4: Update Version

Edit the root Cargo.toml and update the version in the [workspace.package] section:

toml
version = "<NEW_VERSION>"

Then propagate the version across all workspace files:

bash
make update-version

This automatically updates:

  • All workspace dependency versions in root Cargo.toml
  • Cargo.lock
  • charts/kaniop/Chart.yaml (version, appVersion, image tags, annotations)
  • Artifact Hub changes annotation (via git-cliff with .ci/cliff-chart.toml)

Important: After running make update-version, verify the artifacthub.io/changes annotation in charts/kaniop/Chart.yaml includes any chart-scoped commits (e.g., feat(chart):, fix(chart):). If it shows "No changes in the chart" but chart commits exist, see Troubleshooting.

Step 5: Update Changelog

Generate the changelog using git-cliff:

bash
make update-changelog

This runs: git cliff -t v<VERSION> -u -p CHANGELOG.md

The changelog is generated from conventional commits and grouped by type (Added, Fixed, Documentation, Build, Refactor, Styling, Testing, Chore). Release commits are excluded.

Step 6: Regenerate Examples

If CRD fields were changed in this release cycle:

bash
make examples
Step 7: Commit Changes

Stage and commit all changes:

bash
git add .
VERSION=$(sed -n 's/^version = "\(.*\)"/\1/p' Cargo.toml | head -n1)
git commit -m "release: Version $VERSION"
Step 8: Push Branch and Create PR
bash
git push -u origin release/v<NEW_VERSION>

Create a pull request to merge into master.

Step 9: After Merge

After the PR is merged to master, tagging and releasing is done automatically by CI:

  1. auto-tag.yml reads the new version from CHANGELOG.md
  2. Creates a signed GPG tag v<VERSION>
  3. Pushes the tag to GitHub

The tag then triggers:

  • docker_images.yml: Builds/pushes multi-arch Docker images (amd64, arm64), creates GitHub Release
  • rust.yml: Publishes crates to crates.io
  • helm.yml: Publishes signed Helm chart to GHCR OCI registry

Monitor with:

bash
gh run list --limit 5

Note: Do not manually create tags — CI handles this automatically.

What NOT to Do

MistakeWhy it's wrongFix
Manually editing CHANGELOG.mdgit-cliff generates it from conventional commitsUse make update-changelog
Manually editing Chart.yaml versionmake update-version handles all of itUse the Makefile target
Creating git tags manuallyauto-tag.yml creates signed tags automaticallyJust push to master
Releasing from a feature branchChangelog generation needs master commit IDsCheckout master first
Releasing with dirty working treeScript will fail or produce incomplete releaseCommit or stash changes first
Skipping the unshallow checkShallow clones produce incomplete changelogsAlways check and unshallow if needed
Forgetting make update-version after Cargo.toml editVersion won't propagate to Chart.yaml, lock file, etc.Always run make update-version
Show full SKILL.md (376 more words)Show less

Troubleshooting

"There are commits ahead of origin/master"

Merge or push them first before starting the release.

Shallow clone detected
bash
git fetch --unshallow origin
git fetch --tags origin
git-cliff not installed
bash
cargo install git-cliff
Auto-tag workflow didn't trigger

Ensure:

  • The CHANGELOG.md has a new version entry as the first ## [v...] heading
  • The tag doesn't already exist: git tag -l | grep <version>
  • The PAT and GPG_PRIVATE_KEY secrets are configured in GitHub
Version not propagating to Chart.yaml

Ensure make update-version was run after editing Cargo.toml. The version is read from the root Cargo.toml [workspace.package] section.

Incorrect artifacthub.io/changes annotation

If the annotation shows "No changes in the chart for this Kaniop version" but chart commits exist:

  1. The Makefile now fails on shallow clones — ensure git rev-parse --is-shallow-repository returns false
  2. Verify tags are present: git tag --sort=-creatordate | head -3
  3. If tags are missing: git fetch --tags origin
  4. Re-run make update-version and verify the annotation includes chart commits
  5. The Makefile will now show git-cliff errors instead of silently falling back

Key Files

FileRole
Cargo.tomlRoot workspace version (single source of truth)
cliff.tomlgit-cliff configuration for main changelog
.ci/cliff-chart.tomlgit-cliff configuration for Artifact Hub chart changes
CHANGELOG.mdGenerated changelog (auto-tag reads version from here)
charts/kaniop/Chart.yamlHelm chart version, appVersion, image tags, annotations
.github/workflows/auto-tag.ymlCreates signed tag on push to master
.github/workflows/docker_images.ymlBuilds/pushes Docker images and creates GitHub Release
.github/workflows/rust.ymlPublishes crates to crates.io on tag
.github/workflows/helm.ymlPublishes Helm chart to GHCR on tag
Makefileupdate-version, update-changelog, and release targets

Checklist

  • On master branch, clean working tree
  • Pulled latest from origin/master
  • No commits ahead of origin/master
  • Repository is not a shallow clone (or has been unshallowed)
  • Determined version bump type (MAJOR/MINOR/PATCH)
  • Created release branch release/v<VERSION>
  • Updated version in root Cargo.toml
  • Ran make update-version
  • Ran make update-changelog
  • Ran make examples (if CRD fields changed)
  • Committed with message release: Version <VERSION>
  • Pushed and created PR
  • After merge: CI automatically creates tag and release

Quick Reference

StepCommand
Check current versiongrep '^version =' Cargo.toml | head -1
View recent commitsgit log v<CUR>..HEAD --oneline
Check commits aheadgit rev-list --count origin/master..HEAD
Check shallow clonegit rev-parse --is-shallow-repository
Unshallow repogit fetch --unshallow origin && git fetch --tags origin
Propagate versionmake update-version
Update changelogmake update-changelog
Regenerate examplesmake examples
Commitgit commit -m "release: Version <VER>"
Monitor CIgh run list --limit 5

© pando85, AGPL-3.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 .opencode/skills/release of pando85/kaniop.

Open the folder on GitHubat commit 768ac0b

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders. This page covers the copy in pando85/kaniop, which our catalogue first saw on October 7, 2026.

Compare with similar skills

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.

Release compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Release this skillpando85/kaniop130—~2.4kAutomated safety check: PassAGPL-3.0
Git Worktree Setupk8zdev/k8z155—~930Automated safety check: PassNone
Educates Git Workfloweducates/educates-training-platform161—~2.6kAutomated safety check: PassApache-2.0
Git Coauthoropenshift-examples/web181—~472Automated safety check: PassNone
Cherry Pick PRkubernetes-sigs/cloud-provider-azure294—~636Automated safety check: PassApache-2.0
Release Notes Generatorscylladb/scylla-operator401—~1.9kAutomated safety check: PassApache-2.0

Similar skills

  • Automate git worktree creation and copy private files (not tracked in git) to new workdirs.

    155 GitHub stars~930 tokensUpdated 3 mo ago
    DevelopmentAuto-check passed
  • Educates Git Workflow

    educates/educates-training-platform

    Drives the Educates project's Gitflow-based branch and release workflow.

    161 GitHub stars~2.6k tokensUpdated 4 days ago
    DevelopmentAuto-check passed
  • Git Coauthor

    openshift-examples/web

    A skill your agent uses when committing changes made with AI assistance.

    181 GitHub stars~472 tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • Cherry Pick PR

    kubernetes-sigs/cloud-provider-azure

    Official

    Cherry-pick a merged pull request onto a release branch with Prow-style branch naming, manual conflict resolution, targeted validation, and GitHub PR creation.

    294 GitHub stars~636 tokensUpdated today
    DevelopmentAuto-check passed
  • Release Notes Generator

    scylladb/scylla-operator

    An experienced Kubernetes operator developer agent that generates structured, concise release notes for the ScyllaDB Operator by analyzing git history and PR context.

    401 GitHub stars~1.9k tokensUpdated today
    DevelopmentAuto-check passed
  • Release Tag

    Prismer-AI/PrismerCloud

    Cut a release tag behind a real tier gate and cloud approval readback.

    1.6k GitHub stars~2.3k tokensUpdated 7 days ago
    DevelopmentAuto-check: notes

More from pando85/kaniop

  • Document Learnings

    pando85/kaniop

    Guidelines for documenting reusable patterns discovered during work.

    130 GitHub stars~501 tokensUpdated today
    Auto-check passed
  • Helm Chart

    pando85/kaniop

    Guidelines for modifying the Helm chart. An agent skill from pando85/kaniop.

    130 GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Kaniop Development

    pando85/kaniop

    Kaniop architecture, Rust controller conventions, commands, testing, and repository workflows.

    130 GitHub stars~3.1k tokensUpdated today
    Auto-check passed
  • Grafana Dashboard

    pando85/kaniop

    Improve and validate the Kaniop Grafana dashboard against repository metrics and the grigri live cluster.

    130 GitHub stars~987 tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Release

What does Release do?

Prepare and publish a new release. An agent skill from pando85/kaniop. Release is an agent skill from pando85/kaniop. Prepare and publish a new release.

When should I use Release?

Release fits situations like: the user asks to release; publish a new version.

How do I install Release in Claude Code?

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

How do I install Release in Codex?

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

Can I use 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 pando85/kaniop --skill 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/release, .gemini/skills/release, .github/skills/release and .opencode/skills/release in your project.

What does Release need to run?

Going by SKILL.md and its folder, Release needs the command-line tools its instructions call (git, make, gh and cargo) and credentials named GPG_PRIVATE_KEY. Our summary lists: Docker; A credential in GPG_PRIVATE_KEY.

Does Release access the network?

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

Is Release safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Release use?

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

How many tokens does Release use?

About 2.4k tokens (SKILL.md is roughly 9.6k 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 Release?

Skills that share tags, products or a category with Release: Git Worktree Setup (k8zdev/k8z, 155 stars), Educates Git Workflow (educates/educates-training-platform, 161 stars), Git Coauthor (openshift-examples/web, 181 stars) and Cherry Pick PR (kubernetes-sigs/cloud-provider-azure, 294 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Release?

pando85 (a GitHub user) maintains it in pando85/kaniop, which has 130 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 7, 2026.

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