用途
app-store-changelog 用于从 git 历史生成面向用户的 App Store 更新说明(What's New 文本)。当用户要求根据 git 历史撰写 App Store 发布说明,或需要把原始提交转换为简洁的用户可读发布要点时,可使用该技能。
主要能力
- 从最近一个标签之后的 git 提交中收集变更,并汇总涉及的改动文件。
- 支持指定标签或引用范围;若仓库中不存在标签,则回退到完整历史。
- 对提交做用户影响分级,识别用户可见的改动。
- 按主题对变更进行分组(新增、改进、修复),并对重叠内容去重。
- 剔除仅内部相关的工作,例如构建脚本、重构、依赖升级、CI 等。
- 将提交内容翻译为以收益为导向、面向用户的简短要点。
- 对结果做校验:确认每条要点都对应变更范围内的真实改动,检查重复与过度技术化的措辞,遇到含糊或可能仅内部相关的改动时请求澄清。
使用方式
- 收集变更:在仓库根目录运行 scripts/collect_release_changes.sh,收集提交与涉及的文件。如有需要,可传入特定标签或引用,例如 scripts/collect_release_changes.sh v1.2.3 HEAD。若无标签,脚本回退到完整历史。
- 按用户影响分级:扫描提交与文件,识别用户可见的改动;按主题分组(新增、改进、修复)并对重叠内容去重;丢弃仅内部相关的改动(构建脚本、重构、依赖升级、CI)。
- 起草 App Store 说明:为每条用户可见改动写一句以收益为中心的简短要点;使用清晰的动词和平实语言,避免内部术语;除非用户另有要求长度,一般写 5 到 10 条。
- 校验:确保每条要点都能对应变更范围内的真实改动;检查重复与过度技术化的措辞;若某项改动含糊或可能仅内部相关,先请求澄清。
提交到要点的转换示例
- fix(auth): resolve token refresh race condition on iOS 17 → 修复了可能导致部分用户意外退出的登录问题。
- feat(search): add voice input to search bar → 通过新的语音输入选项,无需动手即可搜索你的资料库。
- perf(timeline): lazy-load images to reduce scroll jank → 浏览时间线现在更加流畅快速。
被丢弃的仅内部相关提交示例(无用户影响):
- chore: upgrade fastlane to 2.219
- refactor(network): extract URLSession wrapper into module
- ci: add nightly build job
输出格式
- 标题(可选):「What's New」或产品名 + 版本号。
- 仅输出要点列表,每条要点一句话。
- 若用户提供了字数或长度限制,则遵守该限制。
示例输出
What's New in Version 3.4
• Search your library hands-free with the new voice input option. • Scrolling through your timeline is now smoother and faster. • Fixed a login issue that could leave some users unexpectedly signed out. • Added dark-mode support to the settings screen. • Improved load times when opening large photo albums.
资源
- scripts/collect_release_changes.sh:收集自上一个标签以来的提交与涉及的文件。
- references/release-notes-guidelines.md:App Store 说明的语言、过滤与质检规则。
限制
- 仅在任务明确符合上述范围时使用该技能。
- 不应将输出视为环境专属验证、测试或专家评审的替代品。
- 若缺少必要输入、权限、安全边界或成功标准,应停止并请求澄清。