用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/petar-djukic/coding-skills --skill gh-release-push命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | gh-release-push |
| description | Tag and push a release from green `main`. |
Apply this command workflow. Treat any text after its invocation as the command input.
Tag and push a release from green main.
A release tags a green main. It produces no code change and never runs on a
worktree branch. Stop immediately if the current branch is not main:
branch=$(git branch --show-current)
[ "$branch" = "main" ] || { echo "Release must run on main (currently on '$branch'). Abort."; exit 1; }
Run the repo's full release gate set. Where mage -l lists targets, mage tag is the entry point — it re-runs every declared gate (audit, test,
integration, conformance, and anything else the repo registers) and creates
the tag on success. Where no mage target exists, run the repo's own check
and test commands.
If any gate fails, stop the release. Do not fix, retry, or waive the
failure inline. File a PRD-backed bug via /gh-issue-push, implement and
merge the fix through the normal issue/PR flow, then re-run the release
against the now-green main.
Record the previous release tag: git describe --tags --abbrev=0 (or empty
if no tags exist yet).
If mage tag already created the tag, capture its name from the output or
via git describe --tags --abbrev=0. Otherwise create a v0.YYYYMMDD.N
tag manually.
Generate a changelog: git log --oneline <previous-tag>..<new-tag> (or all
commits if no previous tag). Summarize changes grouped by category
(features, fixes, docs, etc.).
Replace the lightweight tag with an annotated tag carrying the summary:
git tag -d <new-tag> && git tag -a <new-tag> -m "<summary>". Print the
summary.
Push the branch and tags to origin. If git remote | grep -q release
succeeds, also push to release.
git push origin main
git push origin --tags
# if release remote exists:
git push release main
git push release --tags
If the repo is a Go module, resolve the module path with go list -m and
run go get <module>@<new-tag> to warm the Go module proxy. Report errors
but do not fail the release.
Report the tag name, branch, which remotes received the push, and the change summary.