一键导入
release
Cut a versioned release — bump semver, generate the changelog with git-cliff, tag, and publish a GitHub release. Use when shipping a new tagged version.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Cut a versioned release — bump semver, generate the changelog with git-cliff, tag, and publish a GitHub release. Use when shipping a new tagged version.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Write standalone single-file Python scripts using PEP 723 inline metadata and uv. Use when creating a quick CLI script that needs dependencies without a full project.
Canonical Python development stack — uv, Ruff, ty, pytest, scaffolding, Litestar web, Typer scripts, and AI agents via agents-cli. Use for any Python project, library, CLI, or agent.
Cut a versioned release for fmind/dotfiles using the Go dot CLI release command (alias r). Use when shipping a new tagged version of dotfiles.
Build a presentation as one self-contained, zero-dependency HTML file (16:9, keyboard + touch nav), authored directly by the agent. Use when creating slides, a deck, or a talk from notes or a document.
Configure MCP servers for Antigravity, OpenCode, and Claude — stdio or remote transport, workspace or user scope. Use when adding, connecting, or troubleshooting an MCP server.
Bootstrap workspace agent configuration — AGENTS.md, the .agents/ layout, subagents, and skills — for Antigravity, OpenCode, and Claude. Use when initializing or onboarding a repository for agents.
| name | release |
| description | Cut a versioned release — bump semver, generate the changelog with git-cliff, tag, and publish a GitHub release. Use when shipping a new tagged version. |
| metadata | {"author":"Médéric HURIER (Fmind)","source":"github.com/fmind/dotfiles/tree/main/skills/release","created":"2026-07-04T00:00:00.000Z","updated":"2026-07-06T00:00:00.000Z"} |
Turn the Conventional Commits since the last tag into a versioned release: a bumped CHANGELOG.md, package manifest updates, an annotated git tag, and a GitHub release. Uses git-cliff (config: dot_config/git-cliff/cliff.toml, deployed to ~/.config/git-cliff/cliff.toml).
main), synced with origin.type and skips chore(release)/chore(deps).Compute the next version from the commit types since the last tag (feat → minor, fix/others → patch, !/BREAKING CHANGE → major):
# Resolves the local/global cliff.toml configuration
git-cliff --bumped-version
# Or explicitly reference the global config if a local one is not present:
git-cliff --config ~/.config/git-cliff/cliff.toml --bumped-version
Update package manifests (if the project doesn't use dynamic/VCS-based versioning) to match the computed version (e.g., vX.Y.Z or X.Y.Z):
version in pyproject.toml (unless using dynamic versioning via hatch-vcs or similar).npm version --no-git-tag-version X.Y.Z or update package.json.Generate the changelog for that version (pass --config to be explicit):
git-cliff --config ~/.config/git-cliff/cliff.toml --bump -o CHANGELOG.md
Commit the changelog and manifest changes with a release commit (excluded from the changelog by design):
git add CHANGELOG.md
# plus the manifest you bumped in step 2, if any (Python: pyproject.toml · Node: package.json · Go/OpenTofu: none)
git commit -m "chore(release): vX.Y.Z"
Tag annotated and push commit + tag:
git tag -a vX.Y.Z -m "vX.Y.Z"
git push --follow-tags
Publish the GitHub release using only the latest section as notes (write to a temp file to stay shell-agnostic):
git-cliff --config ~/.config/git-cliff/cliff.toml --latest --strip all > /tmp/release-notes.md
gh release create vX.Y.Z --title "vX.Y.Z" --notes-file /tmp/release-notes.md
Print the release URL and the resolved version.
git-cliff --bumped-version decide from commits; only override for a deliberate bump (e.g. first stable v1.0.0).v prefix consistent — git-cliff, gh, and Go module tags all expect vX.Y.Z.v1.0.0. Features/fixes bump the patch. This is controlled by features_always_bump_minor = false and breaking_always_bump_major = false in cliff.toml.git-cliff defaults to the initial_tag (configured as v0.1.0 in cliff.toml to match the tag_pattern).git-cliff is run without --config, it looks for a local cliff.toml or git-cliff/cliff.toml at the repository root. Fall back to --config ~/.config/git-cliff/cliff.toml when running in a repository without a custom setup.