用途
该技能用于为 OpenSEO 仓库端到端地完成一次发布。交付物包括:package.json 中的版本号提升、新增的 docs/release-notes/v<version>.md 文件,以及针对 origin/main 的标题为 release: v<version> 的 PR。
主要能力
- 提升版本号:读取
package.json;若分支已提升过version,则以其为准不再修改;否则提升 patch 版本(如0.0.19→0.0.20),仅在明确要求时才提升 minor/major。 - 收集自上次发布以来的变更:查找最新 tag(
git tag --sort=-creatordate | head -1),确认分支与origin/main同步;列出提交(git log <last-tag>..HEAD --oneline),也可运行pnpm release:notes获取原始提交清单(仅作候选变更核对表,不作为草稿结构)。对每个提交获取 PR 正文与作者(gh pr view <num> --repo <repo> --json title,body,author),提交主题中的(#NN)可能指向bensenescu/open-seo(origin)或every-app/open-seo(public),需先试 origin 再回退到 public;无(#NN)的提交也可能是外部贡献,可通过gh pr list --repo every-app/open-seo --state merged --author <login>检查,并用git log --format=%an查看作者。当 PR 正文与提交主题冲突时,以最终代码为准。记录每个变更对应的 PR 作者 GitHub 账号以便署名。 - 撰写发布说明:写入
docs/release-notes/v<version>.md。以docs/release-notes/v0.0.24.md为规范风格范例(v0.0.25 及之后同风格;v0.0.23 及更早为旧版冗长风格,不可模仿)。说明是可快速浏览的摘要而非文档,整个文件约 15 行(含标题)应能一屏显示。格式要求:首行为片段式标题,点出本次发布的 2–3 个亮点(如 "GSC UI, improved app layout and beta in app agent."),不用 "This release brings…" 句式;仅设## What's new和## Fixed两个小节,没有 "Improved" 小节;What's new 条目只命名功能不推销,每条一行,最多一个子条目(最有用的细节、要求或预期说明);粗糙功能标注 "(Beta)" 并诚实设定预期;Fixed 为 3–5 条,每条一句平实的话,只写用户可能遇到且能识别的 bug,不写错误码、状态码、schema/基础设施词汇或机制;外部贡献者在顶层条目末尾署名— thanks @handle(维护者bensenescu自己的 PR 不署名),多贡献者写— thanks @a, @b;结尾为Full Changelog: https://github.com/every-app/open-seo/compare/v<prev>...v<version>。 - 筛选原则:只保留产品本身的变更(应用、MCP 工具、OpenSEO 用户实际使用的 SEO 数据/功能),判断标准是自托管用户在使用产品时是否会注意到。不提及营销网站(
web/)变更、定价/套餐/订阅/计费、仅引导流程变更、托管应用内部与元信息(分析、specs/ADR、CI、重构、依赖升级)、用户不可见的工作(安全加固、提升上限、稳定性/内存/性能修复、数据库/后端选项与迁移)。犹豫时选择删减;绝不编造功能,每条声明须可追溯到提交;条目中的数字通常是推销,应删减,若确有关键数字则引用保守的典型值。 - 评审与验证:启动评审子代理,提供草稿、上述指南、逐提交事实与仓库访问权限,返回编号评审意见并指出违反的指南(包括冗长问题:推销而非命名的条目、第二个子条目、含机制词汇的 Fixed 条目、超出单屏的内容);对每条实质性意见并行启动验证子代理,对抗性核对意见与实际提交/代码,给出 APPLY / APPLY-MODIFIED / REJECT 裁决;仅应用已验证的意见。
- 提交 PR:在名为
claude/v<version>的分支上提交版本提升、发布说明及任何技能变更(若当前分支已符合该模式则直接使用);推送到origin并针对main提交标题恰为release: v<version>的 PR,PR 正文为发布说明内容。不要打 tag 或发布 GitHub release——那在合并后进行。合并后运行pnpm release:publish,它从package.json读取版本并将匹配的docs/release-notes/v<version>.md发布到every-app/open-seo。等效命令为:
gh release create v<version> \
--repo every-app/open-seo \
--title v<version> \
--notes-file docs/release-notes/v<version>.md
适用场景
当用户要求准备一次发布、提升版本号或撰写发布说明时使用。
限制
该技能针对 OpenSEO 仓库的发布流程;依赖 git、gh、pnpm 等工具与仓库访问权限。发布说明的撰写有严格风格与筛选约束,需遵循指定范例文件。