with one click
release
Create a semver release with changelog, git tag, and GitHub release
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Create a semver release with changelog, git tag, and GitHub release
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Register bot commands with Telegram so they appear in the command menu
Rebuild miniclaw and restart the background service
Interactive setup wizard for new miniclaw users who just forked the repo
Summarise recent conversations across all threads into auto memory (MEMORY.md + topic files)
Analyse chat history to update voice and typing style guide (voice.md in auto memory)
Review git diff and suggest how to group and commit changes
| name | release |
| description | Create a semver release with changelog, git tag, and GitHub release |
Create a new semver release: infer the version, generate a changelog from commits since the last tag, and publish a GitHub release.
Infer which repo the user is working with from the conversation context. If unclear, default to the miniclaw repo (your working directory's parent).
Run git rev-parse --show-toplevel to confirm it's a valid git repo. Start your response by stating the absolute path.
cd <repo-root> && BASE=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's@^refs/remotes/origin/@@' || git branch -l main master --format '%(refname:short)' | head -1) && CURRENT=$(git branch --show-current) && echo "BASE: $BASE" && echo "CURRENT: $CURRENT" && git pull && git status
If not on the primary branch, stop and tell the user to switch first.
If the working tree is dirty, list the uncommitted changes and ask the user if they want to commit everything before proceeding. If yes, stage all changes, commit with an appropriate message, and continue.
Find the latest semver tag:
git tag -l 'v*' --sort=-v:refname | head -1
If no tags exist, the first release is v0.1.0. Use a brief "Initial release" changelog entry instead of listing every commit.
For subsequent releases, infer the next version by scanning commit messages since the last tag:
git log <last-tag>..HEAD --oneline
Apply conventional commit rules to determine the bump:
Pre-v1 (v0.x.y):
feat: or breaking changes -> bump minor (v0.1.0 -> v0.2.0)fix:, chore:, docs:, style:, refactor: -> bump patch (v0.1.0 -> v0.1.1)Post-v1 (v1.0.0+):
BREAKING CHANGE: or !: suffix) -> bump majorfeat: -> bump minorState the proposed version and why.
Group commits by type and write a changelog entry:
## vX.Y.Z (YYYY-MM-DD)
### Features
- descriptions (from feat: commits)
### Bug Fixes
- descriptions (from fix: commits)
### Improvements
- descriptions (from refactor:, chore:, docs:, style: commits)
Only include sections that have entries. Strip the conventional commit prefix (feat:, fix:, etc.) from each description.
If CHANGELOG.md doesn't exist, create it with a header:
# Changelog
All notable changes to this project will be documented in this file.
Prepend the new entry after the header (newest first). Keep all previous entries intact.
Show the user:
Ask for confirmation before proceeding.
After confirmation:
git add CHANGELOG.md
git commit -m "chore: release vX.Y.Z"
git tag vX.Y.Z
git push && git push --tags
Then create a GitHub release:
gh release create vX.Y.Z --title "vX.Y.Z" --notes "$(cat <<'EOF'
<changelog entry content here>
EOF
)"
Confirm the release was created and provide the GitHub release URL.