← ClaudeAtlas

create-release-notelisted

从 PR 和 commit 生成版本发布说明。 当准备发版、需要从 PR 与 commit 汇总发布说明时使用。
fitlab-ai/agent-infra · ★ 83 · AI & Automation · score 80
Install: claude install-skill fitlab-ai/agent-infra
# 创建发布说明 基于已合并的 PR 和提交,为指定版本生成全面的发布说明。 ## 执行流程 ### 1. 解析参数 从参数中提取: - `<version>`:当前发布版本(必需),格式 `X.Y.Z` - `<prev-version>`:上一版本(可选),如未提供则自动检测 ### 2. 确定版本范围 **当前标签**:`v<version>` **上一标签**(如未指定): ```bash git tag --sort=-v:refname ``` 查找 `v<version>` 之前最近的标签。 **验证标签存在**: ```bash git rev-parse v<version> git rev-parse v<prev-version> ``` ### 3. 参考历史发布说明格式与分类 读取一次 typed 发布说明上下文,并参考预定义的完整分类清单: 执行前先读取 `.agents/rules/release-commands.md`。 ```bash agent-infra-internal platform-release-notes context \ --from-tag "v<prev-version>" --to-tag "v<version>" \ --branch "<base-branch>" --history-limit 3 ``` **Part B:完整分类清单** - `🆕 Feature` - `✨ Enhancement` - `✅ Bugfix` - `📚 Documentation` **用途**: - Part A:分析最近 3 条历史发布说明的章节结构、标题风格、emoji 使用、条目格式 - Part B:提供静态完整分类清单,确保后续生成时不遗漏已有分类 - 该静态清单用于确保变更分类时不遗漏已有类别名称;若当前版本无该类变更,仍按步骤 7 的格式规则省略空分类 - 后续步骤 7 生成发布说明时,**必须**同时参考步骤 3 的历史格式风格和完整分类清单,保持版本间的一致性 - 如果没有历史发布说明,则使用步骤 7 中定义的默认格式 ### 4. 收集已合并的 PR 与贡献者 使用步骤 3 返回的 `pullRequests` 与 `commits`。每个 commit 的 `authors` 已按平台事实规范化并包含 git author 与 co-author;技能不读取平台原始字段或邮箱规则。 ### 5. 收集关联 Issue 使用步骤 3 中每个 PR 的 `closingIssues`,不在通用技能中解析平台专有引用语法。 ### 6. 分类变更 **按类型**(从 PR 标题的 Conventional Commit 前缀): - `feat`、`perf`、`refactor`、依赖升级 -> Enhancement - `fix` -> Bugfix - `docs` -> Documentation(如少于 3 项则合并到 Enhancement) **按模块**(从 PR 标题 scope、标签或文件路径): - 从 PR 标题中的方括号 `[module]` 或 Conventional scope `feat(module):` 推断模块 - 兜底:分析变更的文件 ### 7. 生成发布说明 **优先使用步骤 3 中获取的历史格式风格,并确保覆盖步骤 3 列出的所有分类。** 如果存在历史发布说明,严格沿