releaselisted
Install: claude install-skill xhqing/CapabilityManagerAgent
# Auto Tag & GitHub Release
当用户输入 `release`(或「打 tag 发布」「发版」)时,读取当前项目版本号与 CHANGELOG,**依次执行 `git tag -a` → `git push origin <tag>` → `gh release create`**,打带注释的 git tag、推送到远程、创建 GitHub Release(含 Release notes,并尝试附加构建产物如 vsix)。
## 授权语义(对应「下次不问」)
- 用户主动输入 `/release` 即**明确授权**当次的 `git tag -a` + `git push origin <tag>` + `gh release create`,**直接执行完整流程,无需逐次列命令等确认**。与 `/commit` 同属「用户主动触发的 git 写操作类 skill」,不适用全局「git 写操作逐次确认」规则——用户发 `/release` 就是要一键发布,再问一遍是多余的反 confirm。
- **例外**:下列异常情况**必须暂停询问**用户后再继续(这不属于「标准流程的确认」,而是异常安全阀):
- 该 tag **本地或远程已存在**(尤其指向非 HEAD 的错误 commit 时——需用户确认是否 force push 修正,绝不自行 force push);
- 工作区有**未提交改动**(需用户确认先 commit 还是中止);
- CHANGELOG 中**找不到该版本条目**(需用户确认 notes 来源);
- GitHub **已有同名 Release**(需用户确认编辑还是保持不动);
- 版本号异常(如低于当前最新 tag)。
## 核心定位:一次完成「打 tag + 推送 + 发 Release」
- 本 skill **依次执行 `git tag -a`、`git push origin <tag>`、`gh release create`**:先打 annotated tag,再推送,最后创建 Release。
- tag 必为 **annotated**(`-a`,带注释),message 取自 CHANGELOG;**不用 lightweight tag**。
- Release notes 取自 CHANGELOG 对应版本条目。
- **不 commit、不改动工作区文件**:假定版本号、CHANGELOG、构建产物已就绪。工作区脏则暂停(commit 是 `/commit` 的职责)。
- **严禁** `git push --force`、`git tag -d` 删除远程 tag、删除已发布 Release,**除非**用户在异常分支明确同意。
- **严禁**编辑、删除、格式化项目文件,不改动 `.gitignore`。
## 发布语言:GitHub Release 内容统一全英文
- 发布到 GitHub Release 的**对外可见内容**一律使用**全英文**,不用中文或中英混排。具体包括:Release **title**、Release **notes**、annotated **tag 的 message**。
- **理由**:Release 是面向全球开发者的公开产物,全英文保证最广可读性,也与英文项目 description、topics 的风格一致。
- **CHANGELOG 是中文时需翻译**:CHANGELOG 该版