git-publish-release — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited git-publish-release (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
bensz-collect-bugs 规范记录到 ~/.bensz-skills/bugs/,不要直接修改用户本地已安装的 skill 源码;若有 workaround,先记 bug,再继续完成任务。gh 上传新增 bug 到 huangwb8/bensz-bugs;不要 pull / clone 整个仓库。智能分析项目历史变化,自动生成吸引人的 Release Notes 并发布到 GitHub。
用户需要:
v3.0.0)认证通过 gh auth login 管理,无需手动配置 token。确认 gh CLI 已安装并已认证:
gh auth status如未认证,提示用户运行:
gh auth login# 获取 owner/repo
REPO=$(gh repo view --json nameWithOwner -q .nameWithOwner)# 获取最近一次 release 的 tag
PREVIOUS_TAG=$(gh release list --limit 1 --json tagName -q '.[0].tagName')PREVIOUS_TAG..TARGET_TAGTARGET_TAG获取两个版本之间的 commit 历史:
# 如果有历史 release
git log ${PREVIOUS_TAG}..${TARGET_TAG} --pretty=format:"%h|%s|%an|%ad" --date=short
# 如果是首个 release
git log ${TARGET_TAG} --pretty=format:"%h|%s|%an|%ad" --date=short根据 commit 历史和项目特点,智能生成 Release Notes。
#### Release Notes 结构
🎉 [版本号] - [吸引人的标题]
[一句话总结本次发布的核心价值/意义]
🚀 核心亮点:
• [亮点1]
• [亮点2]
• [亮点3]
✨ 主要更新:
[类别1]
• 更新内容1
• 更新内容2
[类别2]
• 更新内容3
• 更新内容4
🔧 技术改进:
• 技术改进1
• 技术改进2
📋 完整变更日志:
[简略说明获取方式或列出主要 commits]#### 标题撰写原则
#### 内容分类原则
根据 commit 信息自动分类:
| 类别图标 | 类别名称 | Commit 关键词示例 |
|---|---|---|
| 🚀 | 核心亮点 | breakthrough, major, feature |
| ✨ | 新功能 | add, new, feature |
| 🐛 | Bug 修复 | fix, bugfix, resolve |
| 🔧 | 技术改进 | refactor, optimize, improve |
| 📝 | 文档更新 | docs, readme, guide |
| 🔐 | 安全更新 | security, fix vulnerability |
| 💥 | 破坏性变更 | breaking, deprecate |
#### 语言风格
根据 tag 名称自动判断:
alpha, beta, rc, pre 等标识 → prerelease: trueprerelease: false# 将 Release Notes 写入临时文件(避免 shell 转义问题)
NOTES_FILE=$(mktemp /tmp/release-notes-XXXXXX.md)
cat > "$NOTES_FILE" << 'NOTES_EOF'
[生成的 Release Notes 内容]
NOTES_EOF
# 正式版
gh release create "$TARGET_TAG" \
--title "$TARGET_TAG" \
--notes-file "$NOTES_FILE"
# 预发布版(tag 含 alpha/beta/rc/pre 时)
gh release create "$TARGET_TAG" \
--title "$TARGET_TAG" \
--notes-file "$NOTES_FILE" \
--prerelease
# 清理临时文件
rm -f "$NOTES_FILE"完成发布后,向用户输出:
✅ Release 发布成功!
📍 Release URL: [release 链接]
🏷️ Tag: [tag 名称]
📅 发布时间: [时间]
📝 Release Notes 预览:
[生成的前 10 行 notes]| 场景 | 处理方式 |
|---|---|
gh 未安装 | 提示安装:brew install gh 或访问 https://cli.github.com |
gh 未认证 | 提示运行 gh auth login |
| Tag 不存在 | 提示用户可用的 tags 列表 |
| 网络请求失败 | 重试 3 次,仍失败则报错并给出手动创建指南 |
| 权限不足 | 提示检查 gh auth status 及仓库权限 |
| Release 已存在 | 询问用户是否覆盖(使用 gh release edit) |
/ 处理路径--notes-file 传递临时文件,避免 shell 特殊字符转义问题gh repo view 自动处理 HTTPS 和 SSH 两种 remote URL 格式gh CLI 使用系统 keychain 或 ~/.config/gh/hosts.yml 存储凭证,无需手动管理 token~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.