skills/chattool-release/SKILL.md
Handle ChatTool release readiness and post-merge release execution. Use when the task includes version bumps, changelog finalization, tag timing, Publish Package workflow checks, PyPI verification, or appending release.log after a real release.
npx skillsauth add cubenlp/chattool chattool-releaseInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill when ChatTool work includes release preparation or an actual release cut.
Boundary: this skill starts where $chattool-dev-review stops. Use it for merged-mainline release work, not for ordinary feature review.
__version__, CHANGELOG.md, release tags, or Publish Package.release.log after a real release.Tag only from merged mainline
master from origin/master before tagging.vX.Y.Z, not a bare X.Y.Z.src/chattool/__init__.py and reflected in CHANGELOG.md before the PR is merged. Post-merge release work should not be the first time the version changes.Confirm release inputs first
src/chattool/__init__.py version.CHANGELOG.md entry.vX.Y.Z tag already exists locally or on remote.Validate the release path before pushing a tag
twine check.Push the tag, then verify publish
vX.Y.Z tag from merged master.Publish Package workflow, which should strip the leading v before comparing against __version__ and fail loudly if PyPI already has that version, then verify the new version on PyPI.Append release.log only after the release actually happened
release.log before tag/publish success.masterrelease.loggit fetch origin
git checkout master
git pull --ff-only origin master
git tag --list 'v*'
git ls-remote --tags origin 'v*'
python -m build
python -m twine check dist/*
chattool gh pr view --repo cubenlp/ChatTool --number <pr>
chattool gh pr checks --repo cubenlp/ChatTool --number <pr> --wait
chattool gh run view --repo cubenlp/ChatTool --run-id <id>
python - <<'PY'
import json, urllib.request
print(json.load(urllib.request.urlopen('https://pypi.org/pypi/chattool/json'))['info']['version'])
PY
chattool gh pr checks --wait so CI reaches a terminal state before release decisions.tools
Create staged previews of Zulip topics using read-only CLI queries, including full-thread originals, a small zh-en translation slice, and a Chinese overview in an external work directory such as ~/tmp/chattool-zulip/<channel>/<topic>. Use when asked to preview, summarize, or translate Zulip thread content.
tools
Aggregate and summarize Zulip community updates via ChatTool CLI. Use when user asks to fetch latest Zulip news, list streams/messages, or generate periodic summaries from configured streams/topics.
tools
Use `chattool pypi init` to scaffold a minimal Python package, then validate it with doctor/build/check. Example package name `mychat`.
tools
Post-task normalization workflow for ChatTool development. Use after implementation to review the completed work, extract reusable pieces into the repo, check existing CLI surfaces before adding scripts, run $chattool-dev-review, and then drive docs/tests/changelog/PR updates through the project standards. If the task also includes merged-mainline release work, hand off to $chattool-release after PR/MR stage.