Claude Skill

git-publish-release

当用户明确要求"发布项目到 GitHub"、"创建 GitHub Release"或"生成 Release Notes"时使用。智能分析 tag 间历史变化,生成专业且吸引人的 Release Notes,自动创建 GitHub Release。支持首次发布、常规版本、预发布版本(alpha/beta/rc),自动识别 prerelease 标记。

LLM Mart · 0 points · 17 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download huangwb8-skills-skills_alpha_git-publish-release-dd1fab8.zip · 20 KB
Part of huangwb8/skills — 22 skills

Install

skills CLI npx skills add https://github.com/huangwb8/skills/tree/main/skills/alpha/git-publish-release
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install huangwb8-skills@llmmart
Git git clone https://github.com/huangwb8/skills.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole huangwb8/skills collection as a plugin from our marketplace. Git is the plain clone.

README

GitHub Release 发布

智能分析项目历史变化并生成吸引人的 Release Notes;明确要求发布/创建 Release 时发布到 GitHub,单独请求 notes 或历史总结时仅生成预览,除非随后确认发布。

✨ 特性

  • 🤖 智能分析:AI 驱动的 commit 历史分析,自动提炼核心价值
  • 📝 专业模板:生成简洁、有效、有煽动性的 Release Notes
  • 🚀 一键发布:明确要求发布/创建 Release 时自动创建 GitHub Release
  • 🎯 分类清晰:自动分类新功能、Bug 修复、性能优化等
  • 🌐 联网验证:与 GitHub API 集成,获取最新 release 信息

📋 使用场景

当你需要:

  • 发布新版本到 GitHub
  • 创建 GitHub Release 并生成 Release Notes
  • 推送 tag 并自动创建 release
  • 总结版本间的历史变化

🚀 快速开始

前置要求

  1. GitHub CLI:需要安装并认证 gh CLI

  2. Git 仓库:项目必须是 Git 仓库,且有 GitHub remote

使用方式

在 Claude Code 中使用以下任一方式触发:

"帮我发布 v3.0.0 到 GitHub"
"创建一个 GitHub Release,tag 是 v2.5.0"
"发布当前项目到 GitHub,版本 v1.0.0"
"我要 release v4.0.0-beta.1"

明确要求发布/创建 Release 时,技能会自动:

  1. 确认项目路径和 tag
  2. 获取最新 release 信息
  3. 分析历史变化
  4. 生成专业的 Release Notes
  5. 发布到 GitHub

如果只要求生成 Release Notes 或总结历史变化,技能只输出文案预览,不调用 gh release create;需要发布时再明确确认。

📖 使用示例

示例 1:首次发布

你:发布 v1.0.0 到 GitHub

技能:检测到这是首次发布,将创建项目第一个 Release。
[生成首次发布专用 Release Notes]
✅ Release 发布成功!

示例 2:常规版本发布

你:发布 v2.3.0

技能:将比较 v2.2.0 和 v2.3.0 之间的变化...
[分析 23 个 commits,生成分类 Release Notes]
✅ Release 发布成功!

示例 3:预发布版本

你:发布 v3.0.0-beta.1

技能:检测到这是预发布版本(beta),将标记为 prerelease。
[生成 Pre-release 专用 Release Notes]
✅ Release 发布成功!

示例 4:指定项目路径

你:为 /path/to/project 发布 v1.5.0

技能:正在处理 /path/to/project...
[在该项目下执行发布流程]
✅ Release 发布成功!

🎨 Release Notes 风格

生成的 Release Notes 具有以下特点:

结构清晰

🎉 版本号 - 吸引人的标题
一句话价值定位

🚀 核心亮点
• 亮点1
• 亮点2

✨ 主要更新(分类)
• 更新内容
• 更新内容

📋 完整变更日志
[链接]

语言风格

  • 简洁有力:每个要点不超过一行
  • 价值导向:强调"为什么"而非仅仅"是什么"
  • 情感化表达:使用"革命性"、"突破性"等词汇
  • 数字量化:用具体数字说明改进幅度
  • 用户视角:用用户能理解的语言

自动分类

类别 图标 关键词
新功能 ✨ feat, feature, add, new
Bug 修复 🐛 fix, bugfix, resolve
性能优化 ⚡ perf, performance, optimize
技术改进 🔧 refactor, improve
文档更新 📝 docs, document, readme
安全更新 🔐 security, fix vulnerability

⚙️ 配置选项

认证

通过 gh auth login 管理,无需手动配置 token。运行以下命令检查认证状态:

gh auth status

Git Remote 格式支持

  • HTTPS: https://github.com/owner/repo.git
  • SSH: git@github.com:owner/repo.git

🛠️ 故障排查

问题:gh 未认证

解决方案:

gh auth login

问题:Tag 不存在

解决方案:先创建 tag

git tag v1.0.0
git push origin v1.0.0

问题:权限不足

解决方案:运行 gh auth status 检查认证状态及仓库权限

问题:Release 已存在

解决方案:技能会询问是否覆盖,选择更新现有 release

📚 相关资源

WHICHMODEL - 模型选择最佳实践

最后更新:2026-01-25

披露信息

  • 覆盖厂商:Anthropic, OpenAI(2/6 = 33%)
  • 来源构成:社区 70%, 官方 20%, 技术博客 10%
  • 数据时效:2024-10 至 2026-01
  • 局限性:未覆盖国产模型,未独立测试 Release Notes 生成质量

场景化建议

场景 1:标准版本发布(最常见)

触发条件:常规版本发布,需要生成 Release Notes

项目 建议
推荐模型 Claude Haiku 4.5 或 Sonnet 4.5
推理强度 low-medium
预期成本 ~$0.005-0.05/次

理由:

  • Release Notes 生成主要是文本处理和模式匹配任务
  • Haiku 成本最低,适合简单版本发布
  • Sonnet 在 commit 分类和内容整理上表现更好
  • 社区反馈 显示 Haiku 在简单任务中表现优异

避免:复杂大规模版本(100+ commits)建议用 Sonnet

来源:Haiku System Card + Reddit 社区讨论


场景 2:大规模版本发布

触发条件:

  • 大规模版本(100+ commits)
  • 跨越多个功能模块
  • 需要深度理解业务价值
项目 建议
推荐模型 Claude Sonnet 4.5
推理强度 medium
预期成本 ~$0.03-0.15/次

理由:

  • Sonnet 在代码分析和内容整理上表现出色
  • 更适合需要"中等复杂度理解"的场景
  • 社区对比 显示 Sonnet 在复杂场景下的优势
  • 大规模 commit 历史分析需要一定的推理能力

避免:简单版本(<20 commits)不需要 Sonnet,用 Haiku 即可

来源:社区对比讨论 + 官方模型选择指南


场景 3:首次发布

触发条件:

  • 项目首次发布(v1.0.0)
  • 需要生成完整的初始介绍
  • 需要创造性撰写项目定位
项目 建议
推荐模型 Claude Sonnet 4.5
推理强度 medium
预期成本 ~$0.05-0.20/次

理由:

  • 首次发布需要理解和总结整个项目
  • 需要创造性撰写吸引人的标题和价值定位
  • Sonnet 在内容组织和语言表达上更有优势
  • 首次发布是项目的"第一印象",值得投入更多资源

避免:如果不是首次发布,优先使用 Haiku

来源:社区反馈 + 官方文档


对比总结

模型 最适合 最不适合 相对成本 相对速度 推荐度
Haiku 4.5 小版本发布、常规版本 大规模版本、首次发布 $ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐
Sonnet 4.5 大规模版本、首次发布 小版本(浪费) $$$ ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐
Opus 4.5 不推荐 所有场景 \($\) ⭐⭐ ⭐

说明:

  • Haiku 覆盖 80% 的版本发布场景(小版本、常规版本)
  • Sonnet 用于大规模版本(100+ commits)和首次发布
  • Opus 对此任务完全不必要,成本过高且无性能提升

通用原则

  1. 默认从 Haiku 开始:80% 的版本发布任务 Haiku 足够,无需升级
  2. 复杂度判断:根据 commit 数量选择模型
    • <20 commits:Haiku
    • 20-100 commits:Haiku 或 Sonnet
    • 100 commits:Sonnet

    • 首次发布:Sonnet
  3. 成本敏感:版本发布是高频操作,Haiku 的成本优势明显
  4. 速度优先:Haiku 的 <1 秒响应时间明显优于 Sonnet 的 3-5 秒
  5. 避免过度设计:Release Notes 生成主要是模式匹配和文本整理,Haiku 完全胜任

⚠️ 争议点

Haiku vs Sonnet:Release Notes 生成真的可以用 Haiku 吗?

观点 支持者 理由
Haiku 足够 Reddit 社区 Release Notes 生成是简单任务,Haiku 在文本处理任务中表现稳定
Sonnet 更保险 部分开发者 担心 Haiku 在大规模版本分析时出错

数据支持:

  • 某用户测试:Haiku 在编码任务中匹配 Sonnet 能力,成本降低 80%
  • 官方文档:Haiku 专为"高吞吐量、低延迟"场景设计

建议:

  • 默认使用 Haiku:小版本和常规版本发布,Haiku 完全胜任
  • 仅在以下情况升级 Sonnet:
    • 大规模版本(>100 commits)
    • 首次发布(需要项目理解和创造性撰写)
    • 跨多个功能模块的复杂版本
    • Haiku 出现理解错误时(极少见)

更新记录

  • 2026-01-25:首次调研,覆盖 Anthropic/OpenAI
  • 建议:2026-07 重新调研(6 个月后)

来源链接

官方文档:

社区讨论:

技术博客:


🤝 贡献

欢迎反馈和改进建议!请提交 issue 或 PR。

📄 许可

MIT License

Skill manifest

GitHub Release

目标

当用户明确要求"发布项目到 GitHub"、"创建 GitHub Release"或"生成 Release Notes"时使用。智能分析 tag 间历史变化并生成专业的 Release Notes;明确发布/创建请求时自动创建 GitHub Release,单独的 notes/历史总结请求仅生成预览,除非用户随后确认发布。支持首次发布、常规版本、预发布版本(alpha/beta/rc),自动识别 prerelease 标记。

流程

输入

触发条件

用户需要:

  • 发布项目的新版本到 GitHub
  • 创建 GitHub Release 并自动生成 Release Notes
  • 推送某个 tag 到 GitHub 并创建 release
  • 总结版本间的历史变化

你需要确认的输入

  1. 目标 tag(如 v3.0.0)

    • 如未指定,列出最近 tags 供选择
  2. 项目路径(可选,默认当前工作目录)

  3. 任务输出目录(宿主可设置 TASK_OUTPUT_DIR,指向本轮已声明的 ./.bensz-api/task-.../git-publish-release/output/;未设置时临时 notes 使用 OS 临时目录并立即清理)

认证通过 gh auth login 管理,无需手动配置 token。

明确要求“发布项目到 GitHub”或“创建 GitHub Release”时,按配置执行远程发布;仅要求“生成 Release Notes”或“总结版本间的历史变化”时只生成文案/预览,不调用 gh release create,除非用户随后明确确认发布。release.require_confirmation 的含义是:明确发布/创建请求可作为本次授权,覆盖已有 Release 仍按下方错误处理规则询问;不得把文案生成请求视为远程发布授权。

执行步骤

工作流程

确认项目信息
# 获取 owner/repo
REPO=$(gh repo view --json nameWithOwner -q .nameWithOwner)
获取最新 Release 信息
# 获取最近一次 release 的 tag
PREVIOUS_TAG=$(gh release list --limit 1 --json tagName -q '.[0].tagName')
  • 如果存在历史 release,比较范围为:PREVIOUS_TAG..TARGET_TAG
  • 如果是首个 release,比较范围为:从初始 commit 到 TARGET_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
生成 Release Notes

根据 commit 历史和项目特点,智能生成 Release Notes。

Release Notes 结构
🎉 [版本号] - [吸引人的标题]
[一句话总结本次发布的核心价值/意义]

🚀 核心亮点:
• [亮点1]
• [亮点2]
• [亮点3]

✨ 主要更新:
[类别1]
• 更新内容1
• 更新内容2

[类别2]
• 更新内容3
• 更新内容4

🔧 技术改进:
• 技术改进1
• 技术改进2

📋 完整变更日志:
[简略说明获取方式或列出主要 commits]
标题撰写原则
  • 情感化表达:使用"革命性"、"突破性"、"里程碑"等词汇
  • 场景化描述:说明这个版本解决什么问题、带来什么价值
  • 时效性关联:如"为 2026 年就绪"、"拥抱新范式"
内容分类原则

根据 commit 信息自动分类:

类别图标 类别名称 Commit 关键词示例
🚀 核心亮点 breakthrough, major, feature
✨ 新功能 add, new, feature
🐛 Bug 修复 fix, bugfix, resolve
🔧 技术改进 refactor, optimize, improve
📝 文档更新 docs, readme, guide
🔐 安全更新 security, fix vulnerability
💥 破坏性变更 breaking, deprecate
语言风格
  • 简洁有力:每个要点不超过一行
  • 价值导向:强调"为什么"而非仅仅"是什么"
  • 用户视角:用用户能理解的语言,避免技术术语堆砌
  • 适当煽动:使用感叹号、emoji 营造氛围,但不过度
判断是否为 Prerelease

根据 tag 名称自动判断:

  • 包含 alpha, beta, rc, pre 等标识 → prerelease: true
  • 否则 → prerelease: false
按授权创建 GitHub Release

仅在用户明确要求发布/创建 Release,或在预览后明确确认发布时执行以下命令;单独的 Release Notes/历史总结请求不得执行此步骤。

# 将 Release Notes 写入临时文件(避免 shell 转义问题)
# TASK_OUTPUT_DIR 可由宿主设置为本次任务已声明的
# ./.bensz-api/task-.../git-publish-release/output/ 目录;未注入时仅使用
# 一次性的 OS 临时目录,并在流程结束后清理,不把它当作任务产物。
NOTES_DIR="${TASK_OUTPUT_DIR:-${TMPDIR:-/tmp}}"
mkdir -p "$NOTES_DIR"
NOTES_FILE=$(mktemp "$NOTES_DIR/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]

如果用户只要求 Release Notes 或历史总结,输出文案预览及对应的历史范围,不报告 Release URL,也不宣称已发布。

输出管理

BenszAPI 任务工作区

校验

前置检查

确认 gh CLI 已安装并已认证:

gh auth status

如未认证,提示用户运行:

gh auth login

失败与恢复

错误处理

场景 处理方式
gh 未安装 提示安装:brew install gh 或访问 https://cli.github.com
gh 未认证 提示运行 gh auth login
Tag 不存在 提示用户可用的 tags 列表
网络请求失败 重试 3 次,仍失败则报错并给出手动创建指南
权限不足 提示检查 gh auth status 及仓库权限
Release 已存在 询问用户是否覆盖(使用 gh release edit)

实现注意事项

  1. 跨平台兼容:始终使用正斜杠 / 处理路径
  2. Notes 转义:使用 --notes-file 传递临时文件,避免 shell 特殊字符转义问题
  3. Git 远程解析:gh repo view 自动处理 HTTPS 和 SSH 两种 remote URL 格式
  4. 认证管理:gh CLI 使用系统 keychain 或 ~/.config/gh/hosts.yml 存储凭证,无需手动管理 token

约束

公共硬约束

本块由 docs/templates/skill-common-constraints.md 统一维护;每个 SKILL.md 的 ## 约束 必须逐字同步本块,不得在副本中改写公共规则。

  • 任务需要落盘时,使用唯一的 ./.bensz-api/task-{yyyymmdd-hhmm}-{简短描述}/ 根目录;共享材料放入 shared/,Skill 专属材料放入该 Skill 的 input/、output/、log/。
  • 正式交付物、源代码和正式计划按项目约定保存,不写入任务工作区;未经授权不覆盖、删除、迁移或远程写入。
  • 项目维护变更检查 BAC 可用性并记录需求、AI 产出、工具结果、文件改动和验证摘要;BAC 只做过程审计,不替代署名、责任或合规判断。
  • 不记录 API Key、访问令牌、密码、Cookie、环境/凭据文件、私有 Prompt、身份信息、本地用户名、主机名或不必要的大体积原始数据。
  • 文件路径必须规范化并限制在授权项目范围内;外部 URL、子进程和网络访问遵循最小权限,防止路径遍历、SSRF 和命令注入。
  • Skill 版本唯一记录在自身 config.yaml:skill_info.version;公开 API、协议、目录或配置变更同步文档与 CHANGELOG.md。
  • bensz-collect-bugs 是一个 Agent Skill;仅将 Bensz Agent Skill 或 Bensz 基础设施本身的设计缺陷交给它。先脱敏写入 ~/.bensz-skills/bugs/,当前任务不中断,只有用户明确要求才公开上报,禁止直接修改用户已安装的 Skill 源码。
Files (skills)
  • references
    • release-notes-strategy.md 6.2 KB
      # Release Notes 生成策略
      
      ## 核心原则
      
      ### 1. 价值导向,非变更罗列
      
      Release Notes 不是 changelog,而是**价值传达**。
      
      | ❌ 错误示例 | ✅ 正确示例 |
      |-----------|-----------|
      | 修复了 3 个 bug,新增了 2 个功能 | 彻底解决长文档渲染卡顿问题,性能提升 300% |
      | 更新了依赖版本 | 全面拥抱最新技术栈,兼容性与安全性双重升级 |
      | 重构了代码结构 | 代码库全面模块化,维护效率显著提升 |
      
      ### 2. 情感化表达,营造氛围
      
      使用情感化的词汇,让用户感受到产品的活力和进步。
      
      **常用词汇库**:
      
      | 类别 | 词汇 |
      |------|------|
      | **革命性** | 革命性、突破性、里程碑、重塑、重新定义 |
      | **速度/效率** | 极速、显著提升、大幅优化、飞跃式进步 |
      | **稳定性** | 稳如磐石、企业级、生产就绪、全面加固 |
      | **易用性** | 零门槛、开箱即用、丝滑体验、人性化 |
      | **前瞻性** | 面向未来、拥抱新范式、为 X 年就绪 |
      
      ### 3. 结构化组织,层次分明
      
      使用清晰的层级结构,让读者快速抓住重点。
      
      ```
      🎉 标题(版本 + 核心)
      ├── 一句话总结
      ├── 🚀 核心亮点(3-5 个)
      ├── ✨ 主要更新(分类)
      └── 📋 完整变更日志
      ```
      
      ## 分类策略
      
      ### 自动分类规则
      
      根据 commit message 的前缀和关键词自动分类:
      
      | 前缀 | 分类 | 图标 | 示例 |
      |------|------|------|------|
      | `feat:`, `feature:` | 新功能 | ✨ | ✨ 新增 AI 辅助写作功能 |
      | `fix:`, `bugfix:` | Bug 修复 | 🐛 | 🐛 修复 PDF 导出格式错误 |
      | `perf:`, `performance:` | 性能优化 | ⚡ | ⚡ 启动速度提升 50% |
      | `refactor:`, `refactor` | 重构 | 🔧 | 🔧 重构数据层架构 |
      | `docs:`, `document:` | 文档 | 📝 | 📝 完善快速入门指南 |
      | `test:`, `testing:` | 测试 | ✅ | ✅ 新增 100+ 单元测试 |
      | `style:`, `format:` | 样式 | 💄 | 💄 统一代码风格 |
      | `chore:`, `build:` | 构建/工具 | 🔨 | 🔨 升级构建工具链 |
      | `security:`, `sec:` | 安全 | 🔐 | 🔐 修复 XSS 漏洞 |
      | `breaking:` | 破坏性变更 | 💥 | 💥 移除旧版 API |
      
      ### 语义分组
      
      对于无法从前缀判断的 commit,使用关键词语义分析:
      
      **新功能组**:add, new, create, introduce
      **改进组**:improve, optimize, enhance, update
      **修复组**:fix, resolve, handle, catch
      
      ## 标题撰写策略
      
      ### 公式
      
      ```
      🎉 [版本号] - [情感化标题]
      [价值定位句]
      ```
      
      ### 标题模板库
      
      | 场景 | 模板 | 示例 |
      |------|------|------|
      | **重大更新** | 🎉 v{version} - {核心能力} 革命性发布 | 🎉 v3.0.0 - Vibe Writing 革命性发布 |
      | **性能飞跃** | 🚀 v{version} - 性能飞跃,{具体提升} | 🚀 v2.5.0 - 性能飞跃,响应速度提升 300% |
      | **稳定性** | 🛡️ v{version} - 企业级稳定性,生产就绪 | 🛡️ v1.8.0 - 企业级稳定性,生产就绪 |
      | **用户体验** | ✨ v{version} - 极致体验,零门槛上手 | ✨ v2.0.0 - 极致体验,零门槛上手 |
      | **里程碑** | 🏆 v{version} - {里程碑} 重要里程碑 | 🏆 v4.0.0 - 10 万+ 用户重要里程碑 |
      | **年度就绪** | 🎯 v{version} - 为 {年份} 全面就绪 | 🎯 v5.0.0 - 为 2026 年全面就绪 |
      
      ### 价值定位句模板
      
      | 类型 | 模板 | 示例 |
      |------|------|------|
      | **问题解决** | 彻底解决{痛点},{价值} | 彻底解决长文档渲染卡顿,体验丝般顺滑 |
      | **范式转变** | 拥抱{新范式},{愿景} | 拥抱 AI 驱动科研写作新范式 |
      | **能力提升** | {核心能力}全面升级,{价值} | Skills 体系全面升级,兼容性与扩展性双重飞跃 |
      | **时间节点** | 为{时间}就绪,{准备内容} | 为 2026 国自然全面就绪,AI 辅助写作全栈就绪 |
      
      ## 内容润色技巧
      
      ### 1. 数字化表达
      
      | ❌ 平淡表达 | ✅ 数字化表达 |
      |-----------|-------------|
      | 性能提升了 | 性能提升 300% |
      | 新增了很多功能 | 新增 15+ 核心功能 |
      | 修复了一些 bug | 修复 23 个用户反馈问题 |
      | 支持更多平台 | 支持 5 大主流平台 |
      
      ### 2. 对比法
      
      | ❌ 平淡表达 | ✅ 对比表达 |
      |-----------|-------------|
      | 性能更好 | 相比上一代,性能提升 3 倍 |
      | 更稳定 | 99.9% 可用性,企业级稳定 |
      | 更快 | 从 30s 缩短到 2s,提速 15 倍 |
      
      ### 3. 场景化
      
      | ❌ 技术语言 | ✅ 场景化语言 |
      |-----------|-------------|
      | 新增异步处理机制 | 再也不用等待,后台静默处理 |
      | 优化内存占用 | 即使处理超大文件,内存占用依然很低 |
      | 新增缓存层 | 第二次打开,瞬间呈现 |
      
      ### 4. 用户视角
      
      | ❌ 开发者视角 | ✅ 用户视角 |
      |-------------|-------------|
      | 重构了 API 层 | 更强大的功能,更简单的调用 |
      | 优化了数据库查询 | 查找速度提升 10 倍,告别等待 |
      | 新增日志系统 | 遇到问题?一键诊断,快速解决 |
      
      ## 长度控制
      
      | 版本类型 | 建议长度 | 核心亮点数量 | 主要更新数量 |
      |---------|---------|------------|------------|
      | **Major (x.0.0)** | 详尽版 | 5-7 个 | 8-12 个 |
      | **Minor (x.y.0)** | 标准版 | 3-5 个 | 5-8 个 |
      | **Patch (x.y.z)** | 精简版 | 2-3 个 | 3-5 个 |
      
      ## 特殊场景处理
      
      ### 首次发布 (v1.0.0)
      
      ```
      🎉 v1.0.0 - {项目名称} 正式发布!
      
      经过 {时间} 的精心打磨,{项目名称} 终于和大家见面了!
      
      🌟 为什么选择 {项目名称}?
      • {核心价值1}
      • {核心价值2}
      • {核心价值3}
      
      🚀 核心功能:
      • {功能1}
      • {功能2}
      • {功能3}
      
      🎯 适用场景:
      • {场景1}
      • {场景2}
      
      🙏 致谢
      感谢所有参与测试和反馈的用户!
      
      📚 快速开始
      {快速开始链接或简短说明}
      ```
      
      ### Pre-release (alpha/beta/rc)
      
      在标题和内容中明确标识测试版本:
      
      ```
      🧪 v2.0.0-beta.1 - 测试版本,诚邀体验!
      
      注意:这是一个预发布版本,可能存在不稳定因素。
      
      ✨ 新功能预览:
      • {新功能1}
      • {新功能2}
      
      🐛 已知问题:
      • {已知问题1}
      
      📢 反馈渠道
      {反馈方式}
      ```
      
      ### 紧急修复
      
      ```
      🚨 v1.2.1 - 紧急修复
      
      修复了一个影响 {影响范围} 的严重问题。
      
      🐛 问题修复:
      • {问题描述}
      • {影响范围}
      • {修复方式}
      
      建议所有用户立即升级!
      ```
      
    • release-templates.md 9.1 KB
      # Release Notes 模板示例
      
      ## 模板 1:重大版本发布(革命性)
      
      ```
      🎉 v3.0.0 - Vibe Writing 革命性发布
      为 2026 年国自然全面就绪!拥抱 AI 驱动的科研写作新范式!
      
      🚀 核心亮点:
      • Vibe Coding 范式重构:AI 驱动、模块化技能、人机协作,为科研写作树立新标杆
      • 2026 国自然模板就绪:青年基金 ✅ | 面上项目 ✅ | 地区基金 ⏸️
      • 强大 Skills 体系:3 个稳定 AI 技能,兼容 Claude Code 和 OpenAI Codex CLI
      • AI 辅助写作技能:立项依据生成、研究内容规划、可行性分析、特色与创新提炼
      • 完美工具链:VS Code + LaTeX Workshop + Claude Code/Codex CLI
      
      ✨ 主要更新:
      📋 模板与规范
      • 青年基金标书模板:2026 最新规范,开箱即用
      • 面上项目标书模板:结构完整,内容详实
      • 智能章节导航:快速定位,高效写作
      • 格式自动检查:避免常见格式错误
      
      🤖 AI Skills 体系
      • make_latex_model:自动生成 LaTeX 项目模型
      • transfer_old_latex_to_new:旧项目平滑迁移
      • complete_example:完整示例快速上手
      
      🔧 技术改进
      • 模块化架构:技能独立开发、测试、部署
      • 跨平台兼容:Windows/macOS/Linux 全面支持
      • 性能优化:大型项目编译速度提升 200%
      
      📚 文档与支持
      • 快速入门指南:5 分钟上手
      • 最佳实践:来自一线科研人员的经验总结
      • 问题排查:常见问题快速解决
      
      📋 完整变更日志:
      https://github.com/username/repo/compare/v2.0.0...v3.0.0
      ```
      
      ---
      
      ## 模板 2:性能飞跃版
      
      ```
      🚀 v2.5.0 - 性能飞跃,体验重塑
      响应速度提升 300%,内存占用降低 50%,享受丝般顺滑的写作体验!
      
      ⚡ 性能革命:
      • 启动速度提升 5 倍:从 8s 缩短到 1.5s
      • 文档渲染提速 300%:即使是 100+ 页文档,依然流畅滚动
      • 内存占用减半:多文档并行编辑不再卡顿
      • 自动保存优化:静默后台处理,不打断写作思路
      
      ✨ 主要更新:
      🎨 用户体验
      • 全新界面设计:更清爽、更专注
      • 智能补全升级:预测更准确,输入更流畅
      • 快捷键重构:常用操作一键直达
      • 深色模式优化:夜间写作更舒适
      
      🔧 技术改进
      • 全面异步化:告别界面卡顿
      • 智能缓存机制:二次打开瞬间呈现
      • 增量渲染:只重绘变化部分
      • 资源按需加载:启动更轻量
      
      🐛 问题修复:
      • 修复大文档可能导致崩溃的问题
      • 修复特殊字符显示异常
      • 修复导出 PDF 格式错乱
      
      📋 完整变更日志:
      https://github.com/username/repo/compare/v2.4.0...v2.5.0
      ```
      
      ---
      
      ## 模板 3:功能增强版
      
      ```
      ✨ v2.3.0 - 功能大升级,创作更自由
      新增 10+ 强大功能,让你的创作事半功倍!
      
      🌟 功能亮点:
      • AI 辅助写作:智能续写、润色、翻译,创作效率提升 10 倍
      • 多格式导出:PDF、Word、HTML、Markdown 一键转换
      • 云端同步:跨设备无缝协作,随时随地创作
      • 协作编辑:多人实时协作,团队效率倍增
      • 版本历史:随时回溯,再也不怕误操作
      
      ✨ 主要更新:
      🤖 AI 能力
      • 智能续写:根据上下文自动生成内容
      • 一键润色:提升文字表达质量
      • 多语言翻译:支持 20+ 语言互译
      • 语法检查:自动发现并修正语法错误
      
      📤 导出与同步
      • 多格式导出:PDF/Word/HTML/Markdown
      • 云端同步:Google Drive、Dropbox、OneDrive
      • 协作编辑:多人同时编辑,实时同步
      • 评论功能:精准反馈,高效沟通
      
      🎨 界面优化
      • 全新图标设计:视觉更统一
      • 自定义主题:多种配色方案
      • 响应式布局:适配各种屏幕尺寸
      • 快捷操作栏:常用功能一键访问
      
      📋 完整变更日志:
      https://github.com/username/repo/compare/v2.2.0...v2.3.0
      ```
      
      ---
      
      ## 模板 4:稳定性增强版
      
      ```
      🛡️ v1.8.0 - 稳如磐石,企业级可靠性
      99.9% 可用性保证,通过 1000+ 严格测试,生产环境就绪!
      
      🔒 稳定性升级:
      • 崩溃率降低 95%:经过压力测试验证
      • 内存泄漏修复:长时间使用依然稳定
      • 异常处理增强:优雅降级,不会意外退出
      • 数据完整性保护:自动备份,防止数据丢失
      
      ✨ 主要更新:
      🐛 问题修复:
      • 修复导入大文件可能崩溃的问题
      • 修复特殊字符导致保存失败
      • 修复网络中断时数据丢失
      • 修复多语言环境下显示异常
      
      🔐 数据安全:
      • 自动备份:每 5 分钟自动保存
      • 数据恢复:意外关闭后可恢复
      • 加密存储:敏感数据加密保护
      • 导入验证:防止损坏文件导入
      
      🧪 质量保证:
      • 单元测试覆盖率达到 90%
      • 集成测试覆盖核心流程
      • 压力测试验证 10 万+ 文档
      • 安全测试通过独立审计
      
      📋 完整变更日志:
      https://github.com/username/repo/compare/v1.7.0...v1.8.0
      ```
      
      ---
      
      ## 模板 5:精简修复版(Patch)
      
      ```
      🐛 v1.2.3 - 紧急修复
      修复一个导致数据丢失的严重问题,建议立即升级!
      
      🔥 关键修复:
      • 修复自动保存可能失败导致数据丢失
      • 修复导出 PDF 时图片丢失
      • 修复撤销/重做可能错乱
      
      ⚡ 其他改进:
      • 性能小幅优化
      • 改进错误提示信息
      
      建议所有用户立即升级!
      
      📋 完整变更日志:
      https://github.com/username/repo/compare/v1.2.2...v1.2.3
      ```
      
      ---
      
      ## 模板 6:首次发布
      
      ```
      🎉 v1.0.0 - 正式发布
      经过 6 个月的精心打磨,ProjectName 终于和大家见面了!
      
      🌟 为什么选择 ProjectName?
      
      • 🚀 极速高效:相比传统工具,效率提升 10 倍
      • 🎨 简单优雅:零学习成本,开箱即用
      • 🔒 安全可靠:企业级安全保障,数据无忧
      • 🌍 跨平台支持:Windows、macOS、Linux 全覆盖
      
      🚀 核心功能:
      
      ✓ 功能一:描述功能一的核心价值
      ✓ 功能二:描述功能二的核心价值
      ✓ 功能三:描述功能三的核心价值
      ✓ 功能四:描述功能四的核心价值
      
      🎯 适用场景:
      
      • 场景一:描述适用场景
      • 场景二:描述适用场景
      • 场景三:描述适用场景
      
      📚 快速开始:
      
      1. 安装:`npm install projectname`
      2. 初始化:`projectname init`
      3. 开始使用:`projectname start`
      
      详细文档:https://docs.projectname.com
      
      🙏 致谢:
      
      感谢所有参与 Alpha 和 Beta 测试的用户,你们的反馈让这个产品变得更好!
      
      📢 关注我们:
      
      • GitHub: https://github.com/username/projectname
      • Twitter: @projectname
      • 官网: https://projectname.com
      ```
      
      ---
      
      ## 模板 7:Pre-release
      
      ```
      🧪 v2.0.0-beta.1 - 诚邀体验
      全新一代架构,性能飞跃!诚邀勇敢者体验测试版!
      
      ⚠️ 注意:这是预发布版本,可能存在不稳定因素。生产环境请使用稳定版。
      
      ✨ 新功能预览:
      
      • 🚀 全新架构:性能提升 5 倍
      • 🎨 全新界面:更现代、更直观
      • 🤖 AI 集成:智能辅助,如虎添翼
      • 📦 插件系统:无限扩展可能
      
      🐛 已知问题:
      
      • [已知问题 1]
      • [已知问题 2]
      
      📢 反馈渠道:
      
      发现问题?请在 GitHub 提 issue:
      https://github.com/username/repo/issues
      
      期待你的反馈,帮助我们做得更好!
      
      📋 完整变更日志:
      https://github.com/username/repo/compare/v1.9.0...v2.0.0-beta.1
      ```
      
      ---
      
      ## 模板 8:年度就绪版
      
      ```
      🎯 v5.0.0 - 为 2026 全面就绪
      拥抱未来,抢占先机!
      
      🚀 2026 核心能力:
      
      • AI 原生架构:深度集成最新 AI 能力
      • 云端协同:跨设备无缝协作
      • 安全合规:符合最新数据保护法规
      • 性能旗舰:处理能力提升 10 倍
      
      ✨ 主要更新:
      
      📅 2026 新规适配
      • 新规一:适配描述
      • 新规二:适配描述
      
      🤖 AI 能力升级
      • AI 功能一
      • AI 功能二
      
      ☁️ 云端能力
      • 云功能一
      • 云功能二
      
      为 2026 做好准备,现在就升级!
      
      📋 完整变更日志:
      https://github.com/username/repo/compare/v4.0.0...v5.0.0
      ```
      
      ---
      
      ## Emoji 使用指南
      
      ### 常用 Emoji 及其语义
      
      | Emoji | 语义 | 使用场景 |
      |-------|------|---------|
      | 🎉 | 庆祝 | 版本发布标题 |
      | 🚀 | 速度/启动 | 性能提升、新功能启动 |
      | ✨ | 闪耀/新意 | 新功能、新特性 |
      | 🐛 | 虫子 | Bug 修复 |
      | 🔧 | 工具 | 技术改进、重构 |
      | ⚡ | 闪电 | 性能优化、速度提升 |
      | 🛡️ | 盾牌 | 安全、稳定性 |
      | 🌟 | 星星 | 亮点、推荐 |
      | 🎯 | 靶心 | 目标、就绪 |
      | 🧪 | 试管 | 实验、测试版 |
      | 🚨 | 警报 | 紧急修复 |
      | 🔒 | 锁 | 安全、加密 |
      | 📋 | 剪贴板 | 清单、日志 |
      | 📚 | 书籍 | 文档、学习 |
      | 💄 | 口红 | 样式、UI |
      | 🔐 | 密钥 | 安全、认证 |
      | 💥 | 爆炸 | 破坏性变更 |
      | 🎨 | 调色板 | 设计、界面 |
      | 🤖 | 机器人 | AI、自动化 |
      | ☁️ | 云 | 云服务、同步 |
      
      ### Emoji 使用原则
      
      1. **适度使用**:标题和一级分类使用,不在详细描述中滥用
      2. **语义一致**:同一类型的变更使用相同 emoji
      3. **视觉平衡**:每类 emoji 数量保持均衡
      4. **避免过度**:不要让 emoji 成为干扰,而是辅助理解
      
  • scripts
    • get-github-token.sh 3.2 KB
      #!/usr/bin/env bash
      # git-publish-release 环境管理脚本
      # 功能:确保 .env 文件存在且被 .gitignore 忽略,读取 GH_TOKEN
      
      set -euo pipefail
      
      # 项目根目录(当前工作目录)
      PROJECT_ROOT="${PROJECT_ROOT:-.}"
      
      # .env 文件路径
      ENV_FILE="$PROJECT_ROOT/.env"
      
      # .gitignore 文件路径
      GITIGNORE_FILE="$PROJECT_ROOT/.gitignore"
      
      # 颜色输出
      RED='\033[0;31m'
      GREEN='\033[0;32m'
      YELLOW='\033[1;33m'
      NC='\033[0m' # No Color
      
      # 日志函数
      log_info() {
          echo -e "${GREEN}[INFO]${NC} $1"
      }
      
      log_warn() {
          echo -e "${YELLOW}[WARN]${NC} $1"
      }
      
      log_error() {
          echo -e "${RED}[ERROR]${NC} $1"
      }
      
      # 确保 .env 文件存在
      ensure_env_file() {
          if [[ ! -f "$ENV_FILE" ]]; then
              log_info ".env 文件不存在,正在创建..."
              cat > "$ENV_FILE" << 'EOF'
      # GitHub Token for git-publish-release
      # 获取方式:https://github.com/settings/tokens
      # 需要的权限:repo (完整仓库访问权限)
      GH_TOKEN=your_token_here
      EOF
              log_warn ".env 文件已创建,请在里面添加你的 GitHub Token"
              return 1
          fi
          return 0
      }
      
      # 确保 .env 在 .gitignore 中
      ensure_gitignore() {
          local env_entry=".env"
      
          # 如果 .gitignore 不存在,创建它
          if [[ ! -f "$GITIGNORE_FILE" ]]; then
              log_info ".gitignore 文件不存在,正在创建..."
              echo "$env_entry" > "$GITIGNORE_FILE"
              log_info ".gitignore 已创建并添加了 .env"
              return 0
          fi
      
          # 检查 .env 是否已在 .gitignore 中
          if grep -qx "$env_entry" "$GITIGNORE_FILE" 2>/dev/null; then
              return 0
          fi
      
          # 添加 .env 到 .gitignore
          log_info "将 .env 添加到 .gitignore..."
          echo "$env_entry" >> "$GITIGNORE_FILE"
          log_info ".env 已添加到 .gitignore"
          return 0
      }
      
      # 从 .env 文件读取 GH_TOKEN
      read_gh_token() {
          if [[ ! -f "$ENV_FILE" ]]; then
              return 1
          fi
      
          # 读取 GH_TOKEN(支持带引号和不带引号)
          while IFS='=' read -r key value; do
              # 跳过注释和空行
              [[ "$key" =~ ^#.*$ || -z "$key" ]] && continue
              # 去除 key 的空格
              key=$(echo "$key" | tr -d ' ')
              # 匹配 GH_TOKEN
              if [[ "$key" == "GH_TOKEN" ]]; then
                  # 去除 value 的引号和空格
                  value=$(echo "$value" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e "s/^'//" -e "s/'$//" -e 's/^"//' -e 's/"$//')
                  if [[ -n "$value" && "$value" != "your_token_here" ]]; then
                      echo "$value"
                      return 0
                  fi
              fi
          done < "$ENV_FILE"
      
          return 1
      }
      
      # 主函数
      main() {
          # 1. 确保 .gitignore 存在且包含 .env
          ensure_gitignore
      
          # 2. 确保 .env 文件存在
          if ! ensure_env_file; then
              log_error "请在 .env 文件中设置 GH_TOKEN 后重试"
              exit 1
          fi
      
          # 3. 读取并输出 GH_TOKEN
          local token
          token=$(read_gh_token) || {
              log_error "无法从 .env 文件读取有效的 GH_TOKEN"
              log_warn "请在 $ENV_FILE 中设置 GH_TOKEN=your_actual_token"
              exit 1
          }
      
          # 输出 token(供调用方使用)
          echo "$token"
      }
      
      # 如果直接执行脚本,运行主函数
      if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
          main "$@"
      fi
      
  • CHANGELOG.md 571 B
    # Changelog
    
    该 Skill 的变更记录遵循 Keep a Changelog 与语义化版本。
    
    ## [Unreleased]
    
    ### Changed(变更)
    - 规范化 `SKILL.md` 正文骨架,补齐输入、输出、校验、失败恢复和安全边界;发布行为与 CLI 参数保持不变。
    - 明确单独生成 Release Notes/历史总结仅输出预览,只有明确发布/创建请求或后续确认才执行远程发布;既有发布流程和 CLI 参数不变。
    
    ## [0.1.0] - 2026-09-05
    
    ### Added(新增)
    - 初始化 GitHub Release 与 Release Notes 生成 Skill 治理元数据。
    
  • config.yaml 585 B
    skill_info:
      name: git-publish-release
      version: "0.1.0"
      description: "当用户明确要求发布项目到 GitHub、创建 GitHub Release 或生成 Release Notes 时使用;明确发布/创建请求才执行远程发布,单独的 notes/历史总结请求仅生成预览,除非随后确认。"
      author: "Bensz Conan"
      category: 发布管理
    
    release:
      default_prerelease: false
      # 明确的“发布项目/创建 Release”请求即视为确认;仅覆盖已有 Release 时再询问。
      require_confirmation: true
      notes_reference: references/release-notes-strategy.md
    
  • README.md 10.5 KB
    # GitHub Release 发布
    
    智能分析项目历史变化并生成吸引人的 Release Notes;明确要求发布/创建 Release 时发布到 GitHub,单独请求 notes 或历史总结时仅生成预览,除非随后确认发布。
    
    ## ✨ 特性
    
    - 🤖 **智能分析**:AI 驱动的 commit 历史分析,自动提炼核心价值
    - 📝 **专业模板**:生成简洁、有效、有煽动性的 Release Notes
    - 🚀 **一键发布**:明确要求发布/创建 Release 时自动创建 GitHub Release
    - 🎯 **分类清晰**:自动分类新功能、Bug 修复、性能优化等
    - 🌐 **联网验证**:与 GitHub API 集成,获取最新 release 信息
    
    ## 📋 使用场景
    
    当你需要:
    - 发布新版本到 GitHub
    - 创建 GitHub Release 并生成 Release Notes
    - 推送 tag 并自动创建 release
    - 总结版本间的历史变化
    
    ## 🚀 快速开始
    
    ### 前置要求
    
    1. **GitHub CLI**:需要安装并认证 `gh` CLI
       - 安装:`brew install gh`(macOS)或访问 https://cli.github.com
       - 认证:`gh auth login`
    
    2. **Git 仓库**:项目必须是 Git 仓库,且有 GitHub remote
    
    ### 使用方式
    
    在 Claude Code 中使用以下任一方式触发:
    
    ```
    "帮我发布 v3.0.0 到 GitHub"
    "创建一个 GitHub Release,tag 是 v2.5.0"
    "发布当前项目到 GitHub,版本 v1.0.0"
    "我要 release v4.0.0-beta.1"
    ```
    
    明确要求发布/创建 Release 时,技能会自动:
    1. 确认项目路径和 tag
    2. 获取最新 release 信息
    3. 分析历史变化
    4. 生成专业的 Release Notes
    5. 发布到 GitHub
    
    如果只要求生成 Release Notes 或总结历史变化,技能只输出文案预览,不调用 `gh release create`;需要发布时再明确确认。
    
    ## 📖 使用示例
    
    ### 示例 1:首次发布
    
    ```
    你:发布 v1.0.0 到 GitHub
    
    技能:检测到这是首次发布,将创建项目第一个 Release。
    [生成首次发布专用 Release Notes]
    ✅ Release 发布成功!
    ```
    
    ### 示例 2:常规版本发布
    
    ```
    你:发布 v2.3.0
    
    技能:将比较 v2.2.0 和 v2.3.0 之间的变化...
    [分析 23 个 commits,生成分类 Release Notes]
    ✅ Release 发布成功!
    ```
    
    ### 示例 3:预发布版本
    
    ```
    你:发布 v3.0.0-beta.1
    
    技能:检测到这是预发布版本(beta),将标记为 prerelease。
    [生成 Pre-release 专用 Release Notes]
    ✅ Release 发布成功!
    ```
    
    ### 示例 4:指定项目路径
    
    ```
    你:为 /path/to/project 发布 v1.5.0
    
    技能:正在处理 /path/to/project...
    [在该项目下执行发布流程]
    ✅ Release 发布成功!
    ```
    
    ## 🎨 Release Notes 风格
    
    生成的 Release Notes 具有以下特点:
    
    ### 结构清晰
    
    ```
    🎉 版本号 - 吸引人的标题
    一句话价值定位
    
    🚀 核心亮点
    • 亮点1
    • 亮点2
    
    ✨ 主要更新(分类)
    • 更新内容
    • 更新内容
    
    📋 完整变更日志
    [链接]
    ```
    
    ### 语言风格
    
    - **简洁有力**:每个要点不超过一行
    - **价值导向**:强调"为什么"而非仅仅"是什么"
    - **情感化表达**:使用"革命性"、"突破性"等词汇
    - **数字量化**:用具体数字说明改进幅度
    - **用户视角**:用用户能理解的语言
    
    ### 自动分类
    
    | 类别 | 图标 | 关键词 |
    |------|------|--------|
    | 新功能 | ✨ | feat, feature, add, new |
    | Bug 修复 | 🐛 | fix, bugfix, resolve |
    | 性能优化 | ⚡ | perf, performance, optimize |
    | 技术改进 | 🔧 | refactor, improve |
    | 文档更新 | 📝 | docs, document, readme |
    | 安全更新 | 🔐 | security, fix vulnerability |
    
    ## ⚙️ 配置选项
    
    ### 认证
    
    通过 `gh auth login` 管理,无需手动配置 token。运行以下命令检查认证状态:
    
    ```bash
    gh auth status
    ```
    
    ### Git Remote 格式支持
    
    - HTTPS: `https://github.com/owner/repo.git`
    - SSH: `git@github.com:owner/repo.git`
    
    ## 🛠️ 故障排查
    
    ### 问题:gh 未认证
    
    **解决方案**:
    ```bash
    gh auth login
    ```
    
    ### 问题:Tag 不存在
    
    **解决方案**:先创建 tag
    ```bash
    git tag v1.0.0
    git push origin v1.0.0
    ```
    
    ### 问题:权限不足
    
    **解决方案**:运行 `gh auth status` 检查认证状态及仓库权限
    
    ### 问题:Release 已存在
    
    **解决方案**:技能会询问是否覆盖,选择更新现有 release
    
    ## 📚 相关资源
    
    - [SKILL.md](SKILL.md) - 技能核心逻辑
    - [Release Notes 生成策略](references/release-notes-strategy.md)
    - [Release Notes 模板示例](references/release-templates.md)
    - [GitHub CLI 文档](https://cli.github.com/manual/gh_release_create)
    
    ## WHICHMODEL - 模型选择最佳实践
    
    **最后更新**:2026-01-25
    
    ### 披露信息
    
    - **覆盖厂商**:Anthropic, OpenAI(2/6 = 33%)
    - **来源构成**:社区 70%, 官方 20%, 技术博客 10%
    - **数据时效**:2024-10 至 2026-01
    - **局限性**:未覆盖国产模型,未独立测试 Release Notes 生成质量
    
    ---
    
    ### 场景化建议
    
    #### 场景 1:标准版本发布(最常见)
    
    **触发条件**:常规版本发布,需要生成 Release Notes
    
    | 项目 | 建议 |
    |------|------|
    | **推荐模型** | Claude Haiku 4.5 或 Sonnet 4.5 |
    | **推理强度** | low-medium |
    | **预期成本** | ~$0.005-0.05/次 |
    
    **理由**:
    - Release Notes 生成主要是文本处理和模式匹配任务
    - Haiku 成本最低,适合简单版本发布
    - Sonnet 在 commit 分类和内容整理上表现更好
    - [社区反馈](https://www.reddit.com/r/ClaudeAI/comments/1ocpoye/haiku_45_better_than_sonnet/) 显示 Haiku 在简单任务中表现优异
    
    **避免**:复杂大规模版本(100+ commits)建议用 Sonnet
    
    **来源**:[Haiku System Card](https://www.anthropic.com/claude-haiku-4-5-system-card) + Reddit 社区讨论
    
    ---
    
    #### 场景 2:大规模版本发布
    
    **触发条件**:
    - 大规模版本(100+ commits)
    - 跨越多个功能模块
    - 需要深度理解业务价值
    
    | 项目 | 建议 |
    |------|------|
    | **推荐模型** | Claude Sonnet 4.5 |
    | **推理强度** | medium |
    | **预期成本** | ~$0.03-0.15/次 |
    
    **理由**:
    - Sonnet 在代码分析和内容整理上表现出色
    - 更适合需要"中等复杂度理解"的场景
    - [社区对比](https://medium.com/@ayaanhaider.dev/sonnet-4-5-vs-haiku-4-5-vs-opus-4-1-which-claude-model-actually-works-best-in-real-projects-7183c0dc2249) 显示 Sonnet 在复杂场景下的优势
    - **大规模 commit 历史分析需要一定的推理能力**
    
    **避免**:简单版本(<20 commits)不需要 Sonnet,用 Haiku 即可
    
    **来源**:社区对比讨论 + 官方模型选择指南
    
    ---
    
    #### 场景 3:首次发布
    
    **触发条件**:
    - 项目首次发布(v1.0.0)
    - 需要生成完整的初始介绍
    - 需要创造性撰写项目定位
    
    | 项目 | 建议 |
    |------|------|
    | **推荐模型** | Claude Sonnet 4.5 |
    | **推理强度** | medium |
    | **预期成本** | ~$0.05-0.20/次 |
    
    **理由**:
    - 首次发布需要理解和总结整个项目
    - 需要创造性撰写吸引人的标题和价值定位
    - Sonnet 在内容组织和语言表达上更有优势
    - **首次发布是项目的"第一印象",值得投入更多资源**
    
    **避免**:如果不是首次发布,优先使用 Haiku
    
    **来源**:社区反馈 + 官方文档
    
    ---
    
    ### 对比总结
    
    | 模型 | 最适合 | 最不适合 | 相对成本 | 相对速度 | 推荐度 |
    |------|-------|---------|---------|---------|-------|
    | **Haiku 4.5** | 小版本发布、常规版本 | 大规模版本、首次发布 | $ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
    | **Sonnet 4.5** | 大规模版本、首次发布 | 小版本(浪费) | $$$ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
    | **Opus 4.5** | **不推荐** | 所有场景 | $$$$$ | ⭐⭐ | ⭐ |
    
    **说明**:
    - Haiku 覆盖 80% 的版本发布场景(小版本、常规版本)
    - Sonnet 用于大规模版本(100+ commits)和首次发布
    - Opus 对此任务**完全不必要**,成本过高且无性能提升
    
    ---
    
    ### 通用原则
    
    1. **默认从 Haiku 开始**:80% 的版本发布任务 Haiku 足够,无需升级
    2. **复杂度判断**:根据 commit 数量选择模型
       - <20 commits:Haiku
       - 20-100 commits:Haiku 或 Sonnet
       - >100 commits:Sonnet
       - 首次发布:Sonnet
    3. **成本敏感**:版本发布是高频操作,Haiku 的成本优势明显
    4. **速度优先**:Haiku 的 <1 秒响应时间明显优于 Sonnet 的 3-5 秒
    5. **避免过度设计**:Release Notes 生成主要是模式匹配和文本整理,Haiku 完全胜任
    
    ---
    
    ### ⚠️ 争议点
    
    #### Haiku vs Sonnet:Release Notes 生成真的可以用 Haiku 吗?
    
    | 观点 | 支持者 | 理由 |
    |------|-------|------|
    | **Haiku 足够** | Reddit 社区 | Release Notes 生成是简单任务,Haiku 在文本处理任务中表现稳定 |
    | **Sonnet 更保险** | 部分开发者 | 担心 Haiku 在大规模版本分析时出错 |
    
    **数据支持**:
    - [某用户测试](https://medium.com/@cognidownunder/claude-haiku-4-5-matches-sonnets-coding-skills-at-80-less-cost-changes-everything-297f4b163d4e):Haiku 在编码任务中匹配 Sonnet 能力,成本降低 80%
    - [官方文档](https://platform.claude.com/docs/en/about-claude/models/choosing-a-model):Haiku 专为"高吞吐量、低延迟"场景设计
    
    **建议**:
    - **默认使用 Haiku**:小版本和常规版本发布,Haiku 完全胜任
    - **仅在以下情况升级 Sonnet**:
      - 大规模版本(>100 commits)
      - 首次发布(需要项目理解和创造性撰写)
      - 跨多个功能模块的复杂版本
      - Haiku 出现理解错误时(极少见)
    
    ---
    
    ### 更新记录
    
    - 2026-01-25:首次调研,覆盖 Anthropic/OpenAI
    - 建议:2026-07 重新调研(6 个月后)
    
    ---
    
    ### 来源链接
    
    **官方文档**:
    - [Claude Tool Use Documentation](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview)
    - [Choosing the right model](https://platform.claude.com/docs/en/about-claude/models/choosing-a-model)
    - [Claude Haiku 4.5 System Card](https://www.anthropic.com/claude-haiku-4-5-system-card)
    
    **社区讨论**:
    - [Sonnet 4.5 vs Haiku 4.5 vs Opus 4.1](https://medium.com/@ayaanhaider.dev/sonnet-4-5-vs-haiku-4-5-vs-opus-4-1-which-claude-model-actually-works-best-in-real-projects-7183c0dc2249)
    - [Haiku 4.5 better than Sonnet? (Reddit)](https://www.reddit.com/r/ClaudeAI/comments/1ocpoye/haiku_45_better_than_sonnet/)
    - [Claude Haiku 4.5: Features, Testing Results, and Use Cases](https://www.datacamp.com/fr/blog/anthropic-claude-haiku-4-5)
    
    **技术博客**:
    - [Top Use Cases for Claude Haiku 4.5](https://chatlyai.app/blog/claude-haiku-4-5-use-cases)
    - [Claude Haiku 4.5 matches Sonnet's coding skills at 80% less cost](https://medium.com/@cognidownunder/claude-haiku-4-5-matches-sonnets-coding-skills-at-80-less-cost-changes-everything-297f4b163d4e)
    
    ---
    
    ## 🤝 贡献
    
    欢迎反馈和改进建议!请提交 issue 或 PR。
    
    ## 📄 许可
    
    MIT License
    
  • SKILL.md 9.1 KB
    ---
    name: git-publish-release
    description: 当用户明确要求发布项目到 GitHub、创建 GitHub Release 或生成 Release Notes 时使用。根据版本历史整理发布说明;仅要求预览时不执行发布。
    
    metadata:
      author: Bensz Conan
      short-description: GitHub Release 发布与 Release Notes 生成(按请求区分预览/发布)
      keywords:
        - git-publish-release
        - GitHub Release
        - release notes
        - version publish
    ---
    
    # GitHub Release
    
    ## 目标
    
    当用户明确要求"发布项目到 GitHub"、"创建 GitHub Release"或"生成 Release Notes"时使用。智能分析 tag 间历史变化并生成专业的 Release Notes;明确发布/创建请求时自动创建 GitHub Release,单独的 notes/历史总结请求仅生成预览,除非用户随后确认发布。支持首次发布、常规版本、预发布版本(alpha/beta/rc),自动识别 prerelease 标记。
    
    ## 流程
    
    ### 输入
    
    #### 触发条件
    
    用户需要:
    - 发布项目的新版本到 GitHub
    - 创建 GitHub Release 并自动生成 Release Notes
    - 推送某个 tag 到 GitHub 并创建 release
    - 总结版本间的历史变化
    
    #### 你需要确认的输入
    
    1. **目标 tag**(如 `v3.0.0`)
       - 如未指定,列出最近 tags 供选择
    2. **项目路径**(可选,默认当前工作目录)
    
    3. **任务输出目录**(宿主可设置 `TASK_OUTPUT_DIR`,指向本轮已声明的
       `./.bensz-api/task-.../git-publish-release/output/`;未设置时临时 notes 使用 OS 临时目录并立即清理)
    
    > 认证通过 `gh auth login` 管理,无需手动配置 token。
    
    明确要求“发布项目到 GitHub”或“创建 GitHub Release”时,按配置执行远程发布;仅要求“生成 Release Notes”或“总结版本间的历史变化”时只生成文案/预览,不调用 `gh release create`,除非用户随后明确确认发布。`release.require_confirmation` 的含义是:明确发布/创建请求可作为本次授权,覆盖已有 Release 仍按下方错误处理规则询问;不得把文案生成请求视为远程发布授权。
    
    ### 执行步骤
    
    #### 工作流程
    
    ##### 确认项目信息
    
    ```bash
    # 获取 owner/repo
    REPO=$(gh repo view --json nameWithOwner -q .nameWithOwner)
    ```
    
    ##### 获取最新 Release 信息
    
    ```bash
    # 获取最近一次 release 的 tag
    PREVIOUS_TAG=$(gh release list --limit 1 --json tagName -q '.[0].tagName')
    ```
    
    - 如果存在历史 release,比较范围为:`PREVIOUS_TAG..TARGET_TAG`
    - 如果是首个 release,比较范围为:从初始 commit 到 `TARGET_TAG`
    
    ##### 分析历史变化
    
    获取两个版本之间的 commit 历史:
    
    ```bash
    # 如果有历史 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
    ```
    
    ##### 生成 Release Notes
    
    根据 commit 历史和项目特点,智能生成 Release Notes。
    
    ###### Release Notes 结构
    
    ```
    🎉 [版本号] - [吸引人的标题]
    [一句话总结本次发布的核心价值/意义]
    
    🚀 核心亮点:
    • [亮点1]
    • [亮点2]
    • [亮点3]
    
    ✨ 主要更新:
    [类别1]
    • 更新内容1
    • 更新内容2
    
    [类别2]
    • 更新内容3
    • 更新内容4
    
    🔧 技术改进:
    • 技术改进1
    • 技术改进2
    
    📋 完整变更日志:
    [简略说明获取方式或列出主要 commits]
    ```
    
    ###### 标题撰写原则
    
    - **情感化表达**:使用"革命性"、"突破性"、"里程碑"等词汇
    - **场景化描述**:说明这个版本解决什么问题、带来什么价值
    - **时效性关联**:如"为 2026 年就绪"、"拥抱新范式"
    
    ###### 内容分类原则
    
    根据 commit 信息自动分类:
    
    | 类别图标 | 类别名称 | Commit 关键词示例 |
    |---------|---------|-----------------|
    | 🚀 | 核心亮点 | breakthrough, major, feature |
    | ✨ | 新功能 | add, new, feature |
    | 🐛 | Bug 修复 | fix, bugfix, resolve |
    | 🔧 | 技术改进 | refactor, optimize, improve |
    | 📝 | 文档更新 | docs, readme, guide |
    | 🔐 | 安全更新 | security, fix vulnerability |
    | 💥 | 破坏性变更 | breaking, deprecate |
    
    ###### 语言风格
    
    - **简洁有力**:每个要点不超过一行
    - **价值导向**:强调"为什么"而非仅仅"是什么"
    - **用户视角**:用用户能理解的语言,避免技术术语堆砌
    - **适当煽动**:使用感叹号、emoji 营造氛围,但不过度
    
    ##### 判断是否为 Prerelease
    
    根据 tag 名称自动判断:
    - 包含 `alpha`, `beta`, `rc`, `pre` 等标识 → `prerelease: true`
    - 否则 → `prerelease: false`
    
    ##### 按授权创建 GitHub Release
    
    仅在用户明确要求发布/创建 Release,或在预览后明确确认发布时执行以下命令;单独的 Release Notes/历史总结请求不得执行此步骤。
    
    ```bash
    # 将 Release Notes 写入临时文件(避免 shell 转义问题)
    # TASK_OUTPUT_DIR 可由宿主设置为本次任务已声明的
    # ./.bensz-api/task-.../git-publish-release/output/ 目录;未注入时仅使用
    # 一次性的 OS 临时目录,并在流程结束后清理,不把它当作任务产物。
    NOTES_DIR="${TASK_OUTPUT_DIR:-${TMPDIR:-/tmp}}"
    mkdir -p "$NOTES_DIR"
    NOTES_FILE=$(mktemp "$NOTES_DIR/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 Notes 生成策略:[references/release-notes-strategy.md](references/release-notes-strategy.md)
    - Release Notes 示例模板:[references/release-templates.md](references/release-templates.md)
    - GitHub CLI 文档:https://cli.github.com/manual/gh_release_create
    
    ### 输出
    
    #### 输出格式
    
    完成发布后,向用户输出:
    
    ```
    ✅ Release 发布成功!
    
    📍 Release URL: [release 链接]
    🏷️ Tag: [tag 名称]
    📅 发布时间: [时间]
    
    📝 Release Notes 预览:
    [生成的前 10 行 notes]
    ```
    
    如果用户只要求 Release Notes 或历史总结,输出文案预览及对应的历史范围,不报告 Release URL,也不宣称已发布。
    
    ### 输出管理
    
    #### BenszAPI 任务工作区
    
    
    ### 校验
    
    #### 前置检查
    
    确认 `gh` CLI 已安装并已认证:
    
    ```bash
    gh auth status
    ```
    
    如未认证,提示用户运行:
    
    ```bash
    gh auth login
    ```
    
    ### 失败与恢复
    
    #### 错误处理
    
    | 场景 | 处理方式 |
    |------|---------|
    | `gh` 未安装 | 提示安装:`brew install gh` 或访问 https://cli.github.com |
    | `gh` 未认证 | 提示运行 `gh auth login` |
    | Tag 不存在 | 提示用户可用的 tags 列表 |
    | 网络请求失败 | 重试 3 次,仍失败则报错并给出手动创建指南 |
    | 权限不足 | 提示检查 `gh auth status` 及仓库权限 |
    | Release 已存在 | 询问用户是否覆盖(使用 `gh release edit`) |
    
    #### 实现注意事项
    
    1. **跨平台兼容**:始终使用正斜杠 `/` 处理路径
    2. **Notes 转义**:使用 `--notes-file` 传递临时文件,避免 shell 特殊字符转义问题
    3. **Git 远程解析**:`gh repo view` 自动处理 HTTPS 和 SSH 两种 remote URL 格式
    4. **认证管理**:`gh` CLI 使用系统 keychain 或 `~/.config/gh/hosts.yml` 存储凭证,无需手动管理 token
    
    
    ## 约束
    
    <!-- BEGIN COMMON CONSTRAINTS -->
    <!-- Source-Hash: sha256:15120201e9e0c7569517261d57ecefb63ac279c26ed13876f8e95b6dc35854d3 -->
    <!-- Template-ID: skill-common-constraints; Template-Version: 1; Sync-Policy: exact-block -->
    
    ### 公共硬约束
    
    本块由 `docs/templates/skill-common-constraints.md` 统一维护;每个 `SKILL.md` 的 `## 约束` 必须逐字同步本块,不得在副本中改写公共规则。
    
    - 任务需要落盘时,使用唯一的 `./.bensz-api/task-{yyyymmdd-hhmm}-{简短描述}/` 根目录;共享材料放入 `shared/`,Skill 专属材料放入该 Skill 的 `input/`、`output/`、`log/`。
    - 正式交付物、源代码和正式计划按项目约定保存,不写入任务工作区;未经授权不覆盖、删除、迁移或远程写入。
    - 项目维护变更检查 BAC 可用性并记录需求、AI 产出、工具结果、文件改动和验证摘要;BAC 只做过程审计,不替代署名、责任或合规判断。
    - 不记录 API Key、访问令牌、密码、Cookie、环境/凭据文件、私有 Prompt、身份信息、本地用户名、主机名或不必要的大体积原始数据。
    - 文件路径必须规范化并限制在授权项目范围内;外部 URL、子进程和网络访问遵循最小权限,防止路径遍历、SSRF 和命令注入。
    - Skill 版本唯一记录在自身 `config.yaml:skill_info.version`;公开 API、协议、目录或配置变更同步文档与 `CHANGELOG.md`。
    - `bensz-collect-bugs` 是一个 Agent Skill;仅将 Bensz Agent Skill 或 Bensz 基础设施本身的设计缺陷交给它。先脱敏写入 `~/.bensz-skills/bugs/`,当前任务不中断,只有用户明确要求才公开上报,禁止直接修改用户已安装的 Skill 源码。
    
    <!-- End of canonical common constraints. -->
    <!-- END COMMON CONSTRAINTS -->
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related