Release Bump
jamiepine/voicebox
Ends a release cycle by moving the Unreleased changelog notes under a dated version heading, bumping version files with bumpversion and tagging the commit.
Generates a GreptimeDB release changelog with git cliff, subtracts patch PRs already shipped, rebuilds contributors and prepares the docs-repo blog PR.
$ npx skills add GreptimeTeam/greptimedb --skill greptimedb-release-note -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install GreptimeTeam/greptimedb greptimedb-release-note --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/GreptimeTeam/greptimedb.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/greptimedb-release-note .claude/skills/greptimedb-release-note && 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 "greptimedb-release-note" agent skill from https://github.com/GreptimeTeam/greptimedb/tree/main/.agents/skills/greptimedb-release-note into .claude/skills/greptimedb-release-note/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "greptimedb-release-note", 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/GreptimeTeam/greptimedb/tree/main/.agents/skills/greptimedb-release-noteType 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 GreptimeTeam/greptimedb --skill greptimedb-release-note -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install GreptimeTeam/greptimedb greptimedb-release-note --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GreptimeTeam/greptimedb.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/greptimedb-release-note .agents/skills/greptimedb-release-note && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "greptimedb-release-note" agent skill from https://github.com/GreptimeTeam/greptimedb/tree/main/.agents/skills/greptimedb-release-note into .agents/skills/greptimedb-release-note/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "greptimedb-release-note", 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 GreptimeTeam/greptimedb --skill greptimedb-release-note -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install GreptimeTeam/greptimedb greptimedb-release-note --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GreptimeTeam/greptimedb.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/greptimedb-release-note .cursor/skills/greptimedb-release-note && 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 "greptimedb-release-note" agent skill from https://github.com/GreptimeTeam/greptimedb/tree/main/.agents/skills/greptimedb-release-note into .cursor/skills/greptimedb-release-note/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "greptimedb-release-note", 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/GreptimeTeam/greptimedb.git --path .agents/skills/greptimedb-release-note--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 GreptimeTeam/greptimedb --skill greptimedb-release-note -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install GreptimeTeam/greptimedb greptimedb-release-note --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GreptimeTeam/greptimedb.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/greptimedb-release-note .gemini/skills/greptimedb-release-note && 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 "greptimedb-release-note" agent skill from https://github.com/GreptimeTeam/greptimedb/tree/main/.agents/skills/greptimedb-release-note into .gemini/skills/greptimedb-release-note/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "greptimedb-release-note", 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 GreptimeTeam/greptimedb greptimedb-release-noteInstalls 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 GreptimeTeam/greptimedb --skill greptimedb-release-note -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/GreptimeTeam/greptimedb.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/greptimedb-release-note .github/skills/greptimedb-release-note && 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 "greptimedb-release-note" agent skill from https://github.com/GreptimeTeam/greptimedb/tree/main/.agents/skills/greptimedb-release-note into .github/skills/greptimedb-release-note/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "greptimedb-release-note", 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 GreptimeTeam/greptimedb --skill greptimedb-release-note -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install GreptimeTeam/greptimedb greptimedb-release-note --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GreptimeTeam/greptimedb.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/greptimedb-release-note .opencode/skills/greptimedb-release-note && 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 "greptimedb-release-note" agent skill from https://github.com/GreptimeTeam/greptimedb/tree/main/.agents/skills/greptimedb-release-note into .opencode/skills/greptimedb-release-note/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "greptimedb-release-note", 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.
greptimedb-release-noteGenerates a GreptimeDB release changelog with git cliff, subtracts patch PRs already shipped, rebuilds contributors and prepares the docs-repo blog PR.
The agent runs git cliff with the repository's cliff.toml and the gh CLI inside a greptimedb checkout, passing a GitHub token inline from gh auth token and never printing or reading it. It finds the previous version from the formal release list, ignoring nightly, rc and beta tags, and double-checks that choice with you. A patch release uses the previous patch as its base; for a new minor release the changelog range starts at the previous minor tag, while the latest patch of the prior line is used only to decide which PRs to subtract.
Range choice depends on tag topology: minor tags are ancestors of main, whereas patch tags live on the release branch as cherry-picks and are not, which is verified with git merge-base. After generating the changelog to a file, the skill subtracts PRs already shipped in intermediate patch releases, rebuilds the contributor list with a scripted step that needs Python, adds human-curated highlights and prepares the blog PR in the docs repository.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit a8e293f. 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.
Shell commands in SKILL.md call:
gitghFrom 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 these keys or tokens, usually read from environment variables:
GITHUB_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
GreptimeDB Release Notes loads about 2.5k tokens when it runs. Until then it costs about 78 tokens; SKILL.md has 1,176 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); files beside SKILL.md are not scanned.
The full file from GreptimeTeam/greptimedb at commit a8e293f, republished under its Apache-2.0 licence (© GreptimeTeam). 1,176 words, ~2,453 tokens.
.claude/skills/greptimedb-release-note/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Generate the changelog for a GreptimeDB release. Tooling: git cliff (config:
cliff.toml in the greptimedb repo) and gh. Run inside the greptimedb checkout.
Prerequisites: git cliff, gh (check gh auth status), and Python (the
subtract-PRs / rebuild-contributors step in §3–§4 is scripted). This skill writes
<remote> for the git remote pointing at GreptimeTeam/greptimedb (often upstream,
sometimes origin); resolve it with
git remote -v | grep -i 'GreptimeTeam/greptimedb' | awk '{print $1}' | head -1.
git cliff enriches commits with PR titles/authors via the GitHub API; for hundreds of
commits you need a token or you hit rate limits. Pass it inline and never read or echo the
token:
GITHUB_TOKEN=$(gh auth token) git cliff ...Alternatively the user sources an env file that exports GITHUB_TOKEN (don't read it). Without
a token it still runs, but may be rate-limited / incomplete.
From gh release list --repo GreptimeTeam/greptimedb, ignore *-nightly-*, -rc.*, -beta.*,
and build-suffixed tags; focus on formal vX.Y.Z.
vX.Y.Z (Z>0): previous = vX.Y.(Z-1).vX.Y.0: previous = the latest vX.(Y-1).* (for v1.0.0, the biggest 0.x).
Double-check with the user.Key topology fact: a minor tag (e.g. v1.0.0) is an ancestor of main; patch tags
(v1.0.1, v1.0.2) live on the release/v1.0 branch and are NOT ancestors of main
(they are cherry-picks with different SHAs). Verify with
git merge-base --is-ancestor <tag> <remote>/main.
X.Y.0, cut from main)Note the two different tags here: the git cliff base is the previous minor .0 tag
(e.g. v1.0.0, an ancestor of main) — not the "previous version" from §2 (the latest
patch, e.g. v1.0.2), which is only used below to decide which patch PRs to subtract.
Base = the previous minor tag (e.g. v1.0.0); tip = the release commit (= release/vX.Y
tip, usually <remote>/main):
GITHUB_TOKEN=$(gh auth token) git cliff <prev-minor-tag>..<release-commit> --tag vX.Y.0 \
-o /path/CHANGELOG-vX.Y.0.mdcliff.toml's ignore_tags folds in-range nightly tags into the single section.
Then subtract PRs already shipped in the intermediate patch releases (vX.(Y-1).1,
.2, …) — their main-branch commits are inside the range and would duplicate, and the
audience cares about what's new vs the latest patch. Collect the PR set from the patch release
bodies and remove matching lines:
gh release view vX.(Y-1).Z --repo GreptimeTeam/greptimedb | grep -oE 'pull/[0-9]+'Remove every changelog bullet whose #NNNN is in that combined set (a small Python script is
the reliable way — match pull/<n>) on lines starting with *).
X.Y.Z, Z>0, cherry-picks on the release branch)The previous patch tag is an ancestor of the release branch, so a plain range works when the cherry-picks land as individual commits:
GITHUB_TOKEN=$(gh auth token) git cliff <prev-patch-tag>..<release-branch-tip> --tag vX.Y.Z -o ...No extra subtraction (the branch only contains the new cherry-picks).
Common case — squashed pick commit. Patch branches are often a single squashed commit like
chore: pick fixes and bump version to vX.Y.Z (#NNNN), so the plain range above yields just
that one bullet. First find the picked PRs: read the squash commit message
(git log -1 --format=%B <release-branch-tip>) — each * fix: ... (#NN) line is a picked PR.
Then pick one of two ways to build the changelog (a patch is usually only a few PRs — ask the
user which they prefer):
main and filter — lets git cliff produce correctly formatted bullets
(titles, authors, categories):main chronologically:git log --oneline <remote>/main --grep='#NN1' --grep='#NN2' --reversemain range covering all of them (base = parent of the oldest picked
commit, tip = the newest), then keep only the picked #NN bullets:GITHUB_TOKEN=$(gh auth token) git cliff <oldest-pick>~1..<newest-pick> --tag vX.Y.Z -o /tmp/raw.mdgh api repos/GreptimeTeam/greptimedb/pulls/<n>)
and write the * <title> by [@user] in [#NN](...) lines plus the contributor list yourself.If the branch history is otherwise messy, the same "identify the picked PRs and keep only those" rule applies.
Flaky-network note for (a):
git clifffetches the repo's full commit history from the GitHub API for author enrichment (paginates back thousands of commits, even for a tiny range). On a flaky connection it can time out mid-pagination; it caches pages, so just re-run until it completes — each retry resumes from the cache. If it keeps failing, fall back to (b).
cliff computes New Contributors / All Contributors over the full range, so after removing
lines, recompute from the remaining commit bullets:
@user from remaining * ... by [@user] ... in [#NN]
lines (drop bots like dependabot[bot]).Cross-check the result against git log <base>..<tip>: no subtracted PR remains, and no
genuine new PR was dropped. Optionally drop the mechanical chore: bump version to vX.Y.Z
line (ask the user; some prefer to keep it).
Release date: line)Mirror past release bodies (gh release view v1.0.0 --repo GreptimeTeam/greptimedb):
### 👍 Highlights — few, deep highlights, each with a working example
(SQL / TOML config). To get examples right, read the highlight PR and the related docs
PR/page in the docs repo (GreptimeTeam/docs, often checked out locally) — verify syntax
in docs/reference/sql/*.md, config/*.example.toml, config/config.md. Do not mention
implementation details, tiny features, or unfinished/experimental-but-not-ready features.
Always have the user review and edit the highlights; iterate.gh release view <ver> --repo GreptimeTeam/dashboard; then the linked PRs) and
describe the user-facing change.Write to CHANGELOG-vX.Y.Z.md (title # vX.Y.Z, which --tag produces) and do not commit
it. The release runbook deletes it after the release + docs PR are done.
The release note is also published as a blog post in GreptimeTeam/docs.
GreptimeTeam/docs checkout path; if they have none, offer
to clone (git clone git@github.com:GreptimeTeam/docs.git <path>).blog/release-X-Y-Z.md (version with dashes; see blog/release-1-0-0.md).# vX.Y.Z H1 directly under the frontmatter. The blog frontmatter has no title:, so
Docusaurus uses that H1 as the page title and sidebar label — omitting it makes the page
render as the filename (e.g. release-1-1-0 instead of v1.1.0). Match the shape of
blog/release-1-0-0.md:---
keywords: [release, GreptimeDB, changelog, vX.Y.Z]
description: GreptimeDB vX.Y.Z Changelog
date: YYYY-MM-DD
---
# vX.Y.Z
Release date: ...git worktree off
origin/main:git -C <docs> fetch origin main
git -C <docs> worktree add -b chore/X.Y.Z-release-note /tmp/docs-release-note origin/main.github/pull_request_template.md) from the checkout used for the release.
Fill in every required section and leave reviewer-owned checklist boxes unchecked;
do not rely on hard-coded section names from an older template.git -C /tmp/docs-release-note add blog/release-X-Y-Z.md
git -C /tmp/docs-release-note commit -s -m "docs: add X.Y.Z release note"
git -C /tmp/docs-release-note push -u origin chore/X.Y.Z-release-note
gh pr create --draft --repo GreptimeTeam/docs --base main --head chore/X.Y.Z-release-note \
--title "docs: add X.Y.Z release note" --body-file <template-filled body>
git -C <docs> worktree remove /tmp/docs-release-notegh pr edit/create may fail with an org-scope error if the token lacks read:org.
Edit the body via REST instead: gh api repos/GreptimeTeam/docs/pulls/<n> -X PATCH -F body=@body.md.© GreptimeTeam, 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
SKILL.md and 1 other file in .agents/skills/greptimedb-release-note of GreptimeTeam/greptimedb.
Open the folder on GitHubat commit a8e293f
GreptimeDB Release Notes 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 |
|---|---|---|---|---|---|---|
| GreptimeDB Release Notes this skillGreptimeTeam/greptimedb | 6.7k | — | ~2.5k | Automated safety check: Pass | Apache-2.0 | |
| Release Bumpjamiepine/voicebox | 57k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Go-Redis Release Preparationredis/go-redis | 22k | — | ~1.1k | Automated safety check: Pass | BSD-2-Clause | |
| Hunk Release Workflowmodem-dev/hunk | 9.6k | — | ~3.8k | Automated safety check: Pass | MIT | |
| Worktrunk Release Workflowmax-sixty/worktrunk | 9.2k | — | ~6.9k | Automated safety check: Pass | Custom licence | |
| pybind11 Release Publicationpybind/pybind11 | 18k | — | ~2.5k | Automated safety check: Pass | Custom licence |
jamiepine/voicebox
Ends a release cycle by moving the Unreleased changelog notes under a dated version heading, bumping version files with bumpversion and tagging the commit.
redis/go-redis
Prepares a go-redis release locally: picks the next semver, gathers merged PRs, writes the RELEASE-NOTES entry and bumps versions, without publishing.
modem-dev/hunk
Maintainer workflow for preparing, publishing, verifying and curating Hunk releases, with confirmation gates before tags, publishes and public edits.
max-sixty/worktrunk
Walks a maintainer through cutting a Worktrunk release: sync the release branch, pass two test gates, review the changes, then publish.
pybind/pybind11
Walks a maintainer through publishing a pybind11 release after the preparation PR merges, with preflight checks, confirmations before each push and a GitHub release.
obot-platform/obot
Drafts release notes for an upcoming Obot minor release and saves them as an unpublished GitHub draft release, never tagging or publishing.
GreptimeTeam/greptimedb
Packages a locally built GreptimeDB debug binary into a development-only Docker image for local-cluster testing, with an optional push to a dev registry.
GreptimeTeam/greptimedb
Diagnoses a failed GreptimeDB fuzz CI job by pulling its GitHub Actions logs and fuzz artifacts, then matching the evidence to the local source code.
GreptimeTeam/greptimedb
Runbook for publishing a GreptimeDB version: pick the release branch, verify the Cargo version, then tag, create the GitHub release and open the docs note PR.
Categories
Generates a GreptimeDB release changelog with git cliff, subtracts patch PRs already shipped, rebuilds contributors and prepares the docs-repo blog PR. toml and the gh CLI inside a greptimedb checkout, passing a GitHub token inline from gh auth token and never printing or reading it. It finds the previous version from the formal release list, ignoring nightly, rc and beta tags, and double-checks that choice with you.
GreptimeDB Release Notes fits situations like: writing the changelog for a new GreptimeDB minor or patch release; working out the correct git cliff range from release tags; removing PRs already shipped in earlier patch releases from a minor release's notes; preparing the release blog PR in the docs repository.
Run `npx skills add GreptimeTeam/greptimedb --skill greptimedb-release-note -a claude-code`. Or copy the skill folder (.agents/skills/greptimedb-release-note in GreptimeTeam/greptimedb) into .claude/skills/greptimedb-release-note in your project. Claude Code loads it when a task matches its description.
Run `npx skills add GreptimeTeam/greptimedb --skill greptimedb-release-note -a codex`. Or copy the skill folder (.agents/skills/greptimedb-release-note in GreptimeTeam/greptimedb) into .agents/skills/greptimedb-release-note 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 GreptimeTeam/greptimedb --skill greptimedb-release-note -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/greptimedb-release-note, .gemini/skills/greptimedb-release-note, .github/skills/greptimedb-release-note and .opencode/skills/greptimedb-release-note in your project.
Going by SKILL.md and its folder, GreptimeDB Release Notes needs the command-line tools its instructions call (git and gh) and credentials named GITHUB_TOKEN. Our summary lists: git cliff; The gh CLI, authenticated; Python for the subtract and contributor steps; A greptimedb checkout.
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. Review the folder before installing.
GreptimeDB Release Notes 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.
About 2.5k tokens (SKILL.md is roughly 9.8k 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 GreptimeDB Release Notes: Release Bump (jamiepine/voicebox, 57k stars), Go-Redis Release Preparation (redis/go-redis, 22k stars), Hunk Release Workflow (modem-dev/hunk, 9.6k stars) and Worktrunk Release Workflow (max-sixty/worktrunk, 9.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
GreptimeTeam (a GitHub organization) maintains it in GreptimeTeam/greptimedb, which has 6,727 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 10, 2026.
Source: GreptimeTeam/greptimedb on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.