tag-release
/install tag-release
tag-release
把“按分支给一个或多个服务打远程 release tag”的流程交给固定脚本处理;不要让模型自己临时拼 git 命令批量打 tag。
当前默认行为:打 tag 时,同时创建同名 GitHub Release。
何时使用
只有默认行为:
- 打 release tag
- 同时创建同名 GitHub Release
- 按需返回 tag / release / PR 信息
以下情况不要触发本 skill:
- 只是讨论发版流程
- 只是查询当前 tag
- 只是要求部署,但没有要求打 tag
- 只是让你看 tag 脚本或评审实现
模型职责
模型只做这些事:
- 判断用户是不是在明确要求“打 tag”
- 提取服务列表
- 判断目标分支
- 判断是否要按日期生成 tag,还是使用指定 tag 名
- 若用户给了 release 描述,则作为 tag message 传入;没给则自动用最新 PR 信息生成描述
- 默认同时创建 同名 GitHub Release,标题与 tag 名一致
- 需要预演时加
--dry-run - 调用固定脚本
- 汇报结果
模型不要:
- 自己循环执行 git tag / git push
- 自己手写 tag 命名规则
- 跳过脚本直接对多个仓库执行危险命令
执行方式
脚本路径:scripts/tag_release.py
基础调用:
python3 \x3Cskill_dir>/scripts/tag_release.py \
--services cloud-device cloud-data \
--branch master
指定日期:
python3 \x3Cskill_dir>/scripts/tag_release.py \
--services cloud-device \
--branch master \
--date 2026-05-18
指定完整 tag:
python3 \x3Cskill_dir>/scripts/tag_release.py \
--services cloud-device \
--branch master \
--tag release-2.5.18
指定 release 描述:
python3 \x3Cskill_dir>/scripts/tag_release.py \
--services cloud-device \
--branch master \
--message '修复设备分页和版本展示'
预演:
python3 \x3Cskill_dir>/scripts/tag_release.py \
--services cloud-device cloud-data \
--branch master \
--dry-run
参数整理规则
--services:直接使用 config.json 里的仓库键名;如果用户只说了模糊服务名,可先做一次合理匹配,但匹配到多个时要报错--branch:优先使用用户指定分支;未指定时固定使用master--date:格式必须是YYYY-MM-DD;未指定时默认今天--tag:若用户明确给出完整 tag,则直接使用,不再按日期规则生成--message:若用户明确给了 release 描述,则直接作为 annotated tag message;未给时自动用最新 PR 信息生成描述;若 PR 信息也拿不到,则回退为tag from origin/\x3Cbranch>--dry-run:当用户说“先看看/先预览/别真的打”时使用- 如果用户只说“打 release tag”但没给服务范围,脚本默认会对 config.json 中全部 repos 生效;这种场景下最好先确认一次,避免误打全量
输出说明
成功时重点汇报:
- 实际处理了哪些服务
- 基于哪个分支打 tag
- 使用了哪个 tag 名
- 哪些服务成功创建/推送
- 哪些服务因 tag 已存在而跳过
- 是否只是 dry-run
- 最新合入 PR(如果能拿到)
- PR 提交人信息(如果能拿到)
- Tag 链接
- Release 链接
- Tag 描述 / tag message
失败时直接汇报失败服务和原因,例如:
- 远程分支不存在
- tag 已存在但指向不同 commit
- git push 失败
- repo 目录不存在
额外返回信息
脚本执行成功后,回复里应尽量补充以下信息:
- 最新合入 PR 编号与标题(若 GitHub API 可获取)
- PR 提交人 / 作者
- Tag 链接
- Release 链接
- Tag 描述 / tag message
- 分支信息
如果 GitHub API 查询失败,不要因此阻塞打 tag 主流程;应明确说明“tag 已完成,但 PR 信息获取失败”。
tag 规则说明
默认 tag 规则由脚本内置:
release-{year_index}.{month}.{day:02d}
其中:
year_index = year - base_year- 默认
base_year = 2024
例如:
- 2025-05-18 →
release-1.5.18 - 2026-05-18 →
release-2.5.18
资源说明
- 脚本:
scripts/tag_release.py - 配置:
assets/config.json
安全说明
- 该脚本会对远程仓库创建并 push tag,属于真实写操作
- 当用户未明确说明服务范围时,不要默认全量执行,先确认一次
- 当前 skill 使用的
github_token允许用于这条固定链路:查询目标分支 commit、查询最新合入 PR、检查远程 tag / release、创建 annotated tag、创建 tag ref、创建 release - 禁止把这个 token 挪作他用,例如:通用 GitHub 浏览、PR 批量操作、issue 操作、仓库管理、权限变更、任意 GitHub API 探测
- 如果任务超出“为服务打 release tag”范围,即使能复用这个 token,也不要使用;应改走别的 skill / 别的凭据
- 不要在聊天里复述 token、仓库凭据等敏感信息
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install tag-release - After installation, invoke the skill by name or use
/tag-release - Provide required inputs per the skill's parameter spec and get structured output
What is tag-release?
按日期规则为一个或多个微服务基于指定分支创建并推送远程 release tag。适用于用户明确要求打 release tag、批量打 tag、按日期生成 tag、或基于 test/master 等分支给服务发布 tag 的场景。模型只负责整理服务、分支、日期或 tag 名,实际执行必须调用本 skill 自带脚本。 It is an AI Agent Skill for Claude Code / OpenClaw, with 45 downloads so far.
How do I install tag-release?
Run "/install tag-release" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is tag-release free?
Yes, tag-release is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does tag-release support?
tag-release is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created tag-release?
It is built and maintained by sunyang777 (@sunyang777); the current version is v1.0.1.