with one click
github-release
发布 GitHub Release,从 CHANGELOG 生成发布公告并更新 Draft Release (project)
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
发布 GitHub Release,从 CHANGELOG 生成发布公告并更新 Draft Release (project)
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
在 CCX Desktop 发布后下载 Store MSIX 并生成发布公告。用户提到 Store 上架、MSIX、从 GitHub Release 下载 store.msix、发布后同步 Windows Store、从 release 填写商店更新内容时必须使用此技能。该技能会下载最新 GitHub Release 的 amd64/arm64 MSIX,校验 sha256,从 Release body 生成 Store listing releaseNotes 预览,并输出手动上传指引。
新增或更新 CCX 项目中的 Claude 模型注册。当用户提到新模型发布、添加模型、更新模型元数据、model registry、模型注册时触发。覆盖上游能力表、AgentModelProfile、优先级排序和代码生成。
升级项目版本号并提交git,支持patch/minor/major版本升级或指定具体版本号,自动从git log生成CHANGELOG
检查 Claude Code / Codex 上游版本变更,对比本地版本,识别协议/工具/用法相关更新并追加 TODO 提醒
| name | github-release |
| description | 发布 GitHub Release,从 CHANGELOG 生成发布公告并更新 Draft Release (project) |
| version | 1.2.0 |
| author | https://github.com/BenedictKing/ccx/ |
| allowed-tools | Bash, Read |
| context | fork |
当用户输入包含以下关键词时触发:
# 获取最新 tag
git describe --tags --abbrev=0
# 获取所有 tag 列表
git tag --sort=-v:refname | head -10
# 获取所有 release 列表(包含 draft 状态)
gh release list --limit 10
多 Draft 处理策略:
如果检测到多个 Draft:
# 列出所有 draft release
gh release list --limit 20 | grep -i draft
# 删除中间版本的 draft(保留最新的)
gh release delete <old-tag> --yes
注意:删除 draft 不会删除对应的 git tag,只是移除 GitHub Release 页面的条目。
# 从 CHANGELOG.md 中提取相关版本的内容
cat CHANGELOG.md
解析 CHANGELOG.md,提取从上次公开发布版本到当前版本的所有变更内容。
根据 CHANGELOG 内容生成简洁的发布公告。
⚠️ 【必须】发布公告格式要求:
- 必须按类型分组(✨ 新功能 / 🐛 修复 / 🔧 改进)
- 如果某个分组没有实际内容,直接忽略该分组,不要输出占位文案
- 禁止输出“本版本无新增功能”“无修复”“无改进”等空内容提示
- 必须在末尾包含 Full Changelog 链接(从上次公开发布版本到最新版本)
- Full Changelog 链接前必须加
---分隔线
标准格式:
### ✨ 新功能
- 功能点 1
- 功能点 2
### 🐛 修复
- 修复点 1
- 修复点 2
### 🔧 改进
- 改进点 1
---
**Full Changelog**: https://github.com/BenedictKing/ccx/compare/v2.3.5...v2.3.7
注意事项:
内容精简规则(重要):
发布公告面向最终用户,必须移除技术实现细节,只保留用户可感知的变化:
| 应移除的内容 | 应保留的内容 |
|---|---|
具体文件路径(internal/types/types.go) | 功能名称 |
代码结构(ClaudeRequest 结构体) | 问题现象(返回 403) |
字段名称(metadata 字段) | 用户操作(配置 modelMapping) |
| 实现方式(JSON 反序列化) | 修复结果 |
精简示例:
CHANGELOG 原文:
- **修复 ModelMapping 导致请求字段丢失** - 解决使用模型重定向时 Claude API 返回 403 的问题:
- 原因:`ClaudeRequest` 结构体缺少 `metadata` 字段,JSON 反序列化时该字段被丢弃
- 表现:配置 `modelMapping` 后请求被上游拒绝(如 `opus` → `claude-opus-4-5-20251101`)
- 修复:在 `ClaudeRequest` 中添加 `Metadata map[string]interface{}` 字段
- 涉及文件:`backend-go/internal/types/types.go`
发布公告精简后:
- **修复模型映射功能** - 解决配置 `modelMapping` 后请求被上游拒绝(返回 403)的问题
# 编辑 release 内容并发布
gh release edit <tag> \
--title "<tag>" \
--notes "发布公告内容" \
--draft=false
或者如果没有 draft,直接创建:
gh release create <tag> \
--title "<tag>" \
--notes "发布公告内容" \
--latest
发布后必须检查 assets 数量是否符合预期(当前项目预期 12 个文件:darwin/linux/windows × amd64/arm64 + 对应 sha256)。
# 检查 assets 数量
gh release view <tag> --json assets --jq '.assets | length'
# 列出所有 assets
gh release view <tag> --json assets --jq '.assets[].name' | sort
预期 assets 列表(12 个):
ccx-darwin-amd64
ccx-darwin-amd64.sha256
ccx-darwin-arm64
ccx-darwin-arm64.sha256
ccx-linux-amd64
ccx-linux-amd64.sha256
ccx-linux-arm64
ccx-linux-arm64.sha256
ccx-windows-amd64.exe
ccx-windows-amd64.exe.sha256
ccx-windows-arm64.exe
ccx-windows-arm64.exe.sha256
如果 assets 不足:
多个 CI workflow 并行时,softprops/action-gh-release 可能因竞态条件将部分文件上传到一个 untagged draft release。检查并修复:
# 查找残留的 draft release(可能包含缺失的 assets)
gh api repos/BenedictKing/ccx/releases --jq '.[] | select(.draft == true) | {id, tag_name, assets: [.assets[].name]}'
# 如果找到包含缺失文件的 draft,下载后上传到正式 release
gh release download <draft-tag-or-id> -D /tmp/missing-assets -p '*' -R BenedictKing/ccx
gh release upload <tag> /tmp/missing-assets/<file1> /tmp/missing-assets/<file2> --clobber
# 清理残留 draft
gh api -X DELETE repos/BenedictKing/ccx/releases/<draft-id>
重要:下载大文件时如果网络不稳定,使用本地代理(询问用户代理端口):
https_proxy=http://127.0.0.1:<port> http_proxy=http://127.0.0.1:<port> gh release download ...
gh release view <tag> --json url,publishedAt,assets --jq '{url: .url, publishedAt: .publishedAt, assetCount: (.assets | length)}'
输出发布链接和 assets 数量供用户确认。
⚠️ 【必须】严格遵循以下规则输出
- 版本、状态、链接、发布内容、Full Changelog 不可省略
✨ 新功能 / 🐛 修复 / 🔧 改进作为标准样板保留,但实际输出时空分组可忽略
📦 Release 发布完成!
版本: v2.3.7
状态: ✅ 已发布
链接: https://github.com/BenedictKing/ccx/releases/tag/v2.3.7
已清理的 Draft: v2.3.5, v2.3.6(已合并到 v2.3.7 发布公告)
发布内容:
---
### ✨ 新功能
- 功能点
### 🐛 修复
- 修复点
### 🔧 改进
- 改进点
---
**Full Changelog**: https://github.com/BenedictKing/ccx/compare/v2.3.5...v2.3.7
---
gh CLI 已登录并有仓库权限Release 发布成功后,自动调用 store-update 技能:
/store-update
此操作会: