Agent skill

Release

by bmeares in bmeares/Meerschaum

Meerschaum release process — bump version, update changelog, stage dev→main PR, run CI, publish to PyPI, tag, GitHub release, build/push Docker images, rebuild docs on prod VPS.

Apache-2.0Auto-check: notesDevOps & Cloud

Install Release

skills CLI
$ npx skills add bmeares/Meerschaum --skill release -a claude-code

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

GitHub CLI
$ gh skill install bmeares/Meerschaum 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/bmeares/Meerschaum.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/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
154
Token cost
~1.1k tokens
SKILL.md length
402 words
Files
1
Skills in repo
1
Repo updated
First seen
Licence
Apache-2.0

At a glance

Meerschaum release process — bump version, update changelog, stage dev→main PR, run CI, publish to PyPI, tag, GitHub release, build/push Docker images, rebuild docs on prod VPS.

  • Works in 7 steps: Bump version → Update the changelog → Stage the release branch and PR → …
  • Cutting a new Meerschaum release
  • SKILL.md covers 1. Bump version, 2. Update the changelog, 3. Stage the release branch… and 4. CI, plus 4 more sections
  • Calls git, gh and docker; needs PYPI_TOKEN and TWINE_PASSWORD

What it does

Release is an agent skill from bmeares/Meerschaum. Meerschaum release process — bump version, update changelog, stage dev→main PR, run CI, publish to PyPI, tag, GitHub release, build/push Docker images, rebuild docs on prod VPS. Use when cutting a new Meerschaum release or preparing a release PR.

Its SKILL.md is about 1.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 DevOps & Cloud, covering Deployment, Changelog and release notes and Containers. It works with Docker, GitHub and pandas. The repository describes itself as: Create and manage data pipes with Meerschaum. The licence is Apache-2.0.

When your agent uses it

  • Cutting a new Meerschaum release
  • Preparing a release PR

Example prompts

  • “/release”

Requirements

  • Python 3
  • Docker
  • A credential in PYPI_TOKEN

Workflow steps

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

  1. Bump version
  2. Update the changelog
  3. Stage the release branch and PR
  4. CI
  5. Merge, build, publish to PyPI
  6. Tag and GitHub release
  7. Prod VPS: Docker images and docs

What it can do on your machine

Read from SKILL.md and the folder at commit 89b1d6a. 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
    • gh
    • docker
    • ssh

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

  • Network

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

    • PYPI_TOKEN
    • TWINE_PASSWORD

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

Context cost

Release loads about 1.1k tokens when it runs. Until then it costs about 64 tokens; SKILL.md has 402 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~64
When it runs · the whole SKILL.md, loaded when a task matches
~1.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: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:67
    Publish (token in `.env` as `PYPI_TOKEN`):
  • NoteMentions a .env fileSKILL.md:70
    source .env

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 bmeares/Meerschaum at commit 89b1d6a, republished under its Apache-2.0 licence (© bmeares). 402 words, ~1,065 tokens.

Download SKILL.mdSave it as .claude/skills/release/SKILL.md (or your agent's skills folder).
name
release
description
Meerschaum release process — bump version, update changelog, stage dev→main PR, run CI, publish to PyPI, tag, GitHub release, build/push Docker images, rebuild docs on prod VPS. Use when cutting a new Meerschaum release or preparing a release PR.

Meerschaum Release Process

Follow these steps in order. The finished state: version bumped in meerschaum/config/_version.py, PR merged into main with CI passing, git tag pushed, GitHub release created, package on PyPI, Docker images on DockerHub, docs rebuilt on prod.

1. Bump version

Edit meerschaum/config/_version.py (__version__ = "X.Y.Z").

2. Update the changelog

Edit docs/zensical/news/changelog.md (the source of truth — root CHANGELOG.md is generated from it by scripts/docs.sh, which scripts/build.sh calls). Follow the existing style exactly:

  • New ### vX.Y.Z heading under the current release-cycle ## section, above the previous version.
  • One bullet per change: - **Bolded title ending with a period.** followed by two trailing spaces (markdown line break), then an indented explanation paragraph on the next line.
  • Code blocks and examples are fine inside a bullet's explanation (indented to match).

Do NOT hand-edit root CHANGELOG.md; it's overwritten by the build.

3. Stage the release branch and PR

dev is recreated fresh from main for each release:

bash
git checkout main && git pull
git branch -D dev
git checkout -b dev
# ...commit release changes (version bump, changelog, fixes)...

Before the final commit, run ./scripts/build.sh — it may update requirements/*.txt and regenerate CHANGELOG.md; commit those too.

Push and open a PR from dev to main:

  • Title: relevant gitmoji + version + short summary, e.g. 🐛 v3.4.6 Derive venvs path from root when MRSM_VENVS_DIR is unset.
  • Body: the changelog notes for this version verbatim, except the version heading uses one # instead of ###.

4. CI

The PR triggers .github/workflows/pytest.yaml on a self-hosted runner (~/actions-runner/run.sh on this machine). It runs ./scripts/test.sh db with MRSM_TEST_FLAVORS=all against the databases in tests/docker-compose.yaml.

If tests fail unexpectedly (stale DB state), reset the test databases:

bash
cd tests/
docker compose down -v
docker compose up -d

Never run two test.sh invocations concurrently (shared test_root + API port 8989).

Show full SKILL.md (147 more words)Show less

5. Merge, build, publish to PyPI

Once CI is green, mark the PR ready (release PRs often start as drafts) and merge:

bash
gh pr ready <number>
gh pr merge <number> --squash
git checkout main && git pull
./scripts/build.sh          # cleans, builds docs, regenerates requirements, builds wheel + sdist into dist/

Publish (token in .env as PYPI_TOKEN):

bash
source .env
TWINE_USERNAME=__token__ TWINE_PASSWORD="$PYPI_TOKEN" twine upload dist/*

6. Tag and GitHub release

bash
git tag -m "vX.Y.Z" vX.Y.Z   # -m required: git config forces annotated tags
git push origin main --tags

Create a GitHub release for the tag (gh release create vX.Y.Z --title "<same as PR title>" --notes-file <notes>). The release description = the PR body = the changelog notes, with the version heading demoted to a single #.

7. Prod VPS: Docker images and docs

bash
ssh -p 2269 meerschaum@mrsm.io
cd ~/docs/Meerschaum
git pull
./scripts/docker/buildx.sh --push   # build multi-arch Docker images and push to DockerHub
./scripts/build.sh                  # rebuild on Ubuntu/older Python (catches last-minute bugs); calls docs.sh which rebuilds the website docs

Optionally run ./scripts/setup.sh (locally and on the VPS) to ensure latest dev packages before building.

Checklist

  • meerschaum/config/_version.py bumped
  • docs/zensical/news/changelog.md updated (style matched)
  • ./scripts/build.sh run before final commit (requirements + CHANGELOG.md regenerated)
  • PR dev → main, gitmoji title, changelog-verbatim body, CI green, merged
  • Wheel/sdist built from main and uploaded to PyPI via twine
  • vX.Y.Z tag pushed; GitHub release created with same notes
  • Docker images built and pushed from prod VPS
  • Docs rebuilt on prod VPS

© bmeares, 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 .claude/skills/release of bmeares/Meerschaum.

Open the folder on GitHubat commit 89b1d6a

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 skillbmeares/Meerschaum154—~1.1kAutomated safety check: NotesApache-2.0
1panel App Builderarch3rPro/1Panel-Appstore213—~1.3kAutomated safety check: PassMIT
Releasematrixorigin/memoria607—~494Automated safety check: PassApache-2.0
Releasing MarchatCod-e-Codes/marchat137—~801Automated safety check: PassMIT
Reflexo ReleaseMyriad-Dreamin/typst.ts1.2k—~1.5kAutomated safety check: PassApache-2.0
Railway Servicedavila7/claude-code-templates32k—~1.7kAutomated safety check: PassMIT

Similar skills

  • 1panel App Builder

    arch3rPro/1Panel-Appstore

    A skill your agent uses when packaging Docker deployments as 1Panel local app store apps, including GitHub projects, docker-compose.yml files, docker run commands, app metadata, version directories…

    213 GitHub stars~1.3k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Release

    matrixorigin/memoria

    Cut a Memoria release. An agent skill from matrixorigin/memoria.

    607 GitHub stars~494 tokensUpdated today
    DevOps & CloudAuto-check passed
  • Releasing Marchat

    Cod-e-Codes/marchat

    Prepares marchat releases: version bumps, CHANGELOG, packaging checksums, GitHub Actions release workflow, and Docker tags.

    137 GitHub stars~801 tokensUpdated 4 days ago
    DevOps & CloudAuto-check passed
  • Reflexo Release

    Myriad-Dreamin/typst.ts

    Guide Reflexo/typst.ts release preparation and operator handoffs.

    1.2k GitHub stars~1.5k tokensUpdated 13 days ago
    DevOps & CloudAuto-check passed
  • Railway Service

    davila7/claude-code-templates

    Check service status, rename services, change service icons, link services, or create services with Docker images.

    32k GitHub stars~1.7k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Project Release

    swimmwatch/cloakbrowser-mcp

    Prepare, publish, verify, or recover a cloakbrowser-mcp release only when the user explicitly requests release work.

    161 GitHub stars~1.9k tokensUpdated 5 days ago
    Agent WorkflowsAuto-check passed

Questions about Release

What does Release do?

Meerschaum release process — bump version, update changelog, stage dev→main PR, run CI, publish to PyPI, tag, GitHub release, build/push Docker images, rebuild docs on prod VPS. Release is an agent skill from bmeares/Meerschaum. Meerschaum release process — bump version, update changelog, stage dev→main PR, run CI, publish to PyPI, tag, GitHub release, build/push Docker images, rebuild docs on prod VPS.

When should I use Release?

Release fits situations like: cutting a new Meerschaum release; preparing a release PR.

How do I install Release in Claude Code?

Run `npx skills add bmeares/Meerschaum --skill release -a claude-code`. Or copy the skill folder (.claude/skills/release in bmeares/Meerschaum) 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 bmeares/Meerschaum --skill release -a codex`. Or copy the skill folder (.claude/skills/release in bmeares/Meerschaum) 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 bmeares/Meerschaum --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, gh, docker and ssh) and credentials named PYPI_TOKEN and TWINE_PASSWORD. Our summary lists: Python 3; Docker; A credential in PYPI_TOKEN.

Does Release access the network?

SKILL.md contains no URLs. Its commands use git, gh, docker and ssh, 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 notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Release use?

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 Release use?

About 1.1k tokens (SKILL.md is roughly 4.3k 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: 1panel App Builder (arch3rPro/1Panel-Appstore, 213 stars), Release (matrixorigin/memoria, 607 stars), Releasing Marchat (Cod-e-Codes/marchat, 137 stars) and Reflexo Release (Myriad-Dreamin/typst.ts, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Release?

bmeares (a GitHub user) maintains it in bmeares/Meerschaum, which has 154 GitHub stars. The repository was last updated on September 8, 2026.

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