Ama Logs Update Charts Release Notes
microsoft/Docker-Provider
Prepare an ama-logs release PR: bump the image tag (X.Y.Z) across Helm charts, manifests, and Dockerfiles, and add a formatted ReleaseNotes.md entry.
Automates the ngrok-operator release process: gathers PR data, classifies changes by component (container, Helm chart, CRDs chart), generates changelogs, updates version files, and prepares the…
$ npx skills add ngrok/ngrok-operator --skill release -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ngrok/ngrok-operator release --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ngrok/ngrok-operator.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/release .claude/skills/release && rm -rf skills-srcUse ~/.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/
Install the "release" agent skill from https://github.com/ngrok/ngrok-operator/tree/main/.agents/skills/release into .claude/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ngrok/ngrok-operator/tree/main/.agents/skills/releaseType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ngrok/ngrok-operator --skill release -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ngrok/ngrok-operator release --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ngrok/ngrok-operator.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/release .agents/skills/release && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "release" agent skill from https://github.com/ngrok/ngrok-operator/tree/main/.agents/skills/release into .agents/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ngrok/ngrok-operator --skill release -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ngrok/ngrok-operator release --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ngrok/ngrok-operator.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/release .cursor/skills/release && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "release" agent skill from https://github.com/ngrok/ngrok-operator/tree/main/.agents/skills/release into .cursor/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ngrok/ngrok-operator.git --path .agents/skills/release--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ngrok/ngrok-operator --skill release -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ngrok/ngrok-operator release --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ngrok/ngrok-operator.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/release .gemini/skills/release && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "release" agent skill from https://github.com/ngrok/ngrok-operator/tree/main/.agents/skills/release into .gemini/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ngrok/ngrok-operator releaseInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ngrok/ngrok-operator --skill release -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ngrok/ngrok-operator.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/release .github/skills/release && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "release" agent skill from https://github.com/ngrok/ngrok-operator/tree/main/.agents/skills/release into .github/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ngrok/ngrok-operator --skill release -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ngrok/ngrok-operator release --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ngrok/ngrok-operator.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/release .opencode/skills/release && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "release" agent skill from https://github.com/ngrok/ngrok-operator/tree/main/.agents/skills/release into .opencode/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
releaseAutomates the ngrok-operator release process: gathers PR data, classifies changes by component (container, Helm chart, CRDs chart), generates changelogs, updates version files, and prepares the…
Release is an agent skill from ngrok/ngrok-operator. Automates the ngrok-operator release process: gathers PR data, classifies changes by component (container, Helm chart, CRDs chart), generates changelogs, updates version files, and prepares the release branch. Use this skill whenever the user mentions releasing, cutting a release, bumping versions, updating changelogs, or preparing a release PR for the ngrok-operator. Also use when the user says "release", "cut a release", "prepare release", "update changelog", or "version bump".
Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/gather-release-data.sh`).
It sits in Development, covering Changelog and release notes, Container orchestration and Deployment. It works with Helm and Kubernetes. The repository describes itself as: The official ngrok Kubernetes Operator. The licence is MIT.
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 55a7ebb. It shows what the files ask for, not the result of running them.
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.
Ships 1 file in scripts/ (Shell), which the agent can run.
Shell commands in SKILL.md call:
yqgitbashmakeghFrom the folder's file list and the shell code blocks in SKILL.md.
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.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Release loads about 2.7k tokens when it runs. Until then it costs about 123 tokens; SKILL.md has 1,050 words of instructions outside code blocks.
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.
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); the scripts in this folder are not scanned.
The full file from ngrok/ngrok-operator at commit 55a7ebb, republished under its MIT licence (© ngrok). 1,050 words, ~2,709 tokens.
.claude/skills/release/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.This skill orchestrates the full release preparation for the ngrok-operator. It supersedes the legacy workflow and is the canonical source for release steps; scripts/release.sh and .github/agents/release-agent.agent.md may still exist and delegate here.
The key insight: a shell script handles deterministic data gathering (PR metadata, file classification, author attribution via gh CLI), and you handle what AI is good at — summarizing changes into readable changelogs and suggesting version bumps.
| Component | Changelog | Version source | Tag pattern |
|---|---|---|---|
| Container (Go binary) | CHANGELOG.md | VERSION file | ngrok-operator-X.Y.Z |
| Helm operator chart | helm/ngrok-operator/CHANGELOG.md | helm/ngrok-operator/Chart.yaml .version | helm-chart-ngrok-operator-X.Y.Z |
| CRDs sub-chart | helm/ngrok-crds/CHANGELOG.md | helm/ngrok-crds/Chart.yaml .version | helm-chart-ngrok-crds-X.Y.Z |
A single PR often affects multiple components. The data-gathering script classifies by files changed — you don't need to figure this out yourself.
Follow these steps in order. Do NOT commit, push, or create a PR — stop after local changes.
git status --porcelaingh CLI is available and authenticated: gh auth statuscat VERSIONyq '.version' helm/ngrok-operator/Chart.yamlyq '.version' helm/ngrok-crds/Chart.yamlIf the tree isn't clean, stop and tell the user.
Run the data-gathering script. It lives relative to this skill file:
bash .agents/skills/release/scripts/gather-release-data.sh > /tmp/release-data.jsonIf the user wants to override the base tags (e.g., to capture a wider range):
bash .agents/skills/release/scripts/gather-release-data.sh \
--container-tag ngrok-operator-0.19.0 \
> /tmp/release-data.jsonRead the output JSON. Present a summary to the user:
Analyze the PRs in the JSON to suggest next versions. Rules (this project uses semver, currently pre-1.0):
Container version (from VERSION):
feat: prefix in title) → bump minorHelm operator chart version (from Chart.yaml .version):
CRDs chart version (from helm/ngrok-crds/Chart.yaml .version):
new_for containing "helm_crds"Present your suggestions and ask the user to confirm or override. Wait for confirmation before proceeding.
Release candidates (RC): If the user asks for an RC, append -rc.N (with a dot before the number) to each version. The canonical format is always -rc.1, -rc.2, etc. — even if the user writes "RC1" or "rc1", normalize to -rc.N. To find the right N, check existing RC tags:
git tag -l 'ngrok-operator-<base-version>-rc.*' | sort -V | tail -1If no RC exists yet, use -rc.1. Otherwise increment. Apply the RC suffix to all components being released.
When doing an RC:
release-ngrok-operator-0.21.0-rc.1-helm-chart-0.23.0-rc.10.21.0-rc.10.23.0-rc.1## 0.21.0-rc.1)When the user later does the final (non-RC) release, the RC changelog entries get folded into the final version entry — don't duplicate them.
git fetch origin main
git checkout -b release-ngrok-operator-<app-ver>-helm-chart-<chart-ver> origin/mainWrite new container version:
echo "<new-app-version>" > VERSIONUpdate Helm operator chart:
yq -Y -i ".version = \"<new-chart-version>\"" helm/ngrok-operator/Chart.yaml
yq -Y -i ".appVersion = \"<new-app-version>\"" helm/ngrok-operator/Chart.yamlIf CRDs changed, update CRDs chart:
yq -Y -i ".version = \"<new-crds-version>\"" helm/ngrok-crds/Chart.yaml
yq -Y -i ".appVersion = \"<new-crds-version>\"" helm/ngrok-crds/Chart.yamlIf CRDs changed, update the dependency version in the operator chart:
yq -Y -i "(.dependencies[] | select(.name == \"ngrok-crds\") | .version) = \"<new-crds-version>\"" helm/ngrok-operator/Chart.yamlSome PRs only touch CI workflows, developer docs, AI agent configs, nix tooling, or other files that don't affect the released artifacts. The gather script marks these with "meta_only": true.
Review each meta-only PR and decide: include or exclude from the changelog.
Exclude when the PR clearly doesn't affect users:
.github/workflows/ only).github/agents/, .github/copilot/)flake.nix, flake.lock)docs/developer-guide/, specs/)Include when the change could matter to users even indirectly:
deploy/, manifest-bundle/)Always err on the side of including — it's better to document something trivial than to miss something that matters.
Present excluded PRs to the user as a separate list with reasons, so they can override your decision:
Excluded from changelogs (meta-only):
- #786: Temporarily disabled Trivy scanning — CI workflow only
- #795: Consolidated nix setup — dev tooling onlyFor each component where summary.*_prs > 0 in the release data JSON, generate a changelog entry. Use ONLY the PRs where new_for includes that component. Skip PRs you excluded in Step 6.
Match the existing format exactly. Read the current changelogs to see recent examples.
Container changelog (CHANGELOG.md):
## <version>
**Full Changelog**: https://github.com/ngrok/ngrok-operator/compare/ngrok-operator-<prev>...ngrok-operator-<new>
### Added
- <description> by @<author> in [#<num>](https://github.com/ngrok/ngrok-operator/pull/<num>)
### Changed
- <description> by @<author> in [#<num>](https://github.com/ngrok/ngrok-operator/pull/<num>)
### Fixed
- <description> by @<author> in [#<num>](https://github.com/ngrok/ngrok-operator/pull/<num>)Helm operator changelog (helm/ngrok-operator/CHANGELOG.md):
## <chart-version>
**Full Changelog**: https://github.com/ngrok/ngrok-operator/compare/helm-chart-ngrok-operator-<prev>...helm-chart-ngrok-operator-<new>
- Update ngrok-operator image version to `<app-version>`
- Update Helm chart version to `<chart-version>`
- Update [ngrok-crds](../ngrok-crds/CHANGELOG.md) dependency version to `<crds-version>` (only if CRDs updated)
### Added
...CRDs changelog (helm/ngrok-crds/CHANGELOG.md):
## <crds-version>
**Full Changelog**: https://github.com/ngrok/ngrok-operator/compare/helm-chart-ngrok-crds-<prev>...helm-chart-ngrok-crds-<new>
- Update CRDs Helm chart version to `<crds-version>`
### Added
...Use the PR title's conventional commit prefix to categorize:
feat: or feat(...): → Addedfix: or fix(...): → Fixedchore:, refactor:, ci:, docs:, test:, perf: → ChangedIf a PR has has_breaking_changes: true, add a Breaking Changes subsection at the top (before Added).
fix(ngrok): → just describe the fix).by @author in [#num](url) attribution format.### Added headers.Insert the new version section after the header block (the "# Changelog" line and the format description) and before the first existing ## X.Y.Z entry. Do not overwrite or modify existing entries.
make helm-update-snapshots helm-testIf helm-test fails, investigate and fix. Common cause: snapshot drift from version changes.
make manifest-bundleThis regenerates manifest-bundle.yaml at the repo root with the updated Helm chart versions. CI will fail if this is stale.
Show the user:
git status)git diff CHANGELOG.md helm/ngrok-operator/CHANGELOG.md helm/ngrok-crds/CHANGELOG.md)Do NOT commit, push, or create a PR. The user handles that.
gather-release-data.sh script writes progress to stderr and JSON to stdout. Always redirect stdout to a file.ngrok-operator- for container, helm-chart-ngrok-operator- for helm chart, helm-chart-ngrok-crds- for CRDs).appVersion in helm/ngrok-operator/Chart.yaml must match the container version in VERSION.helm/ngrok-operator/Chart.yaml under the dependencies section.docs/developer-guide/releasing.md for the full release documentation.© ngrok, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (scripts) in .agents/skills/release of ngrok/ngrok-operator.
Open the folder on GitHubat commit 55a7ebb
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Release this skillngrok/ngrok-operator | 272 | — | ~2.7k | Automated safety check: Pass | MIT | |
| Ama Logs Update Charts Release Notesmicrosoft/Docker-Provider | 173 | — | ~2.6k | Automated safety check: Pass | Custom licence | |
| KubeShark for KubernetesLukasNiessen/kubernetes-skill | 444 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Release Chartzabbix-community/helm-zabbix | 132 | — | ~1.5k | Automated safety check: Pass | Apache-2.0 | |
| Aks Deployment Skilltimothywarner/chatgptclass | 143 | — | ~916 | Automated safety check: Pass | Custom licence | |
| Securing Helm Chart Deploymentsmukul975/Anthropic-Cybersecurity-Skills | 34k | — | ~1.9k | Automated safety check: Warn | Apache-2.0 |
microsoft/Docker-Provider
Prepare an ama-logs release PR: bump the image tag (X.Y.Z) across Helm charts, manifests, and Dockerfiles, and add a formatted ReleaseNotes.md entry.
LukasNiessen/kubernetes-skill
Keeps Kubernetes manifests, Helm charts and policies grounded by diagnosing six failure modes, such as insecure defaults and API drift, and loading only matching references.
zabbix-community/helm-zabbix
Cut and publish a new release of the Zabbix Helm chart in this repository, following the versioning rules and maintainer release process documented in CONTRIBUTING.md and CLAUDE.md (bump…
timothywarner/chatgptclass
Deploy and operate workloads on Azure Kubernetes Service (AKS) the safe way.
mukul975/Anthropic-Cybersecurity-Skills
Secures Helm chart deployments by verifying chart signatures and provenance, rendering and linting templates for misconfiguration, enforcing pod security contexts through values.yaml, moving secrets…
seb1n/awesome-ai-agent-skills
Deploy, manage, and scale applications on Kubernetes clusters using manifests, Helm charts, and autoscaling configurations.
Works with
Categories
Automates the ngrok-operator release process: gathers PR data, classifies changes by component (container, Helm chart, CRDs chart), generates changelogs, updates version files, and prepares the…. Release is an agent skill from ngrok/ngrok-operator. Automates the ngrok-operator release process: gathers PR data, classifies changes by component (container, Helm chart, CRDs chart), generates changelogs, updates version files, and prepares the release branch.
Release fits situations like: the user mentions releasing; cutting a release; bumping versions; updating changelogs.
Run `npx skills add ngrok/ngrok-operator --skill release -a claude-code`. Or copy the skill folder (.agents/skills/release in ngrok/ngrok-operator) into .claude/skills/release in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ngrok/ngrok-operator --skill release -a codex`. Or copy the skill folder (.agents/skills/release in ngrok/ngrok-operator) into .agents/skills/release in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ngrok/ngrok-operator --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.
Going by SKILL.md and its folder, Release needs a shell for the scripts in its folder and the command-line tools its instructions call (yq, git, bash, make and gh). Our summary lists: A Bash shell.
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.
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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Release is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Release: Ama Logs Update Charts Release Notes (microsoft/Docker-Provider, 173 stars), KubeShark for Kubernetes (LukasNiessen/kubernetes-skill, 444 stars), Release Chart (zabbix-community/helm-zabbix, 132 stars) and Aks Deployment Skill (timothywarner/chatgptclass, 143 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ngrok (a GitHub organization) maintains it in ngrok/ngrok-operator, which has 272 GitHub stars. The repository was last updated on October 5, 2026.
Source: ngrok/ngrok-operator on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.