بنقرة واحدة
changelog-collect
收集 ant-design 两个版本之间的 PR 信息并整理 changelog 草稿,更新到 CHANGELOG.zh-CN.md 和 CHANGELOG.en-US.md 时使用。适用于收集 changelog、生成 changelog、更新 changelog、版本对比等场景。
القائمة
收集 ant-design 两个版本之间的 PR 信息并整理 changelog 草稿,更新到 CHANGELOG.zh-CN.md 和 CHANGELOG.en-US.md 时使用。适用于收集 changelog、生成 changelog、更新 changelog、版本对比等场景。
Help maintainers reply to Ant Design GitHub issues following official guidelines. Use this skill when the user asks to handle issues, reply to issues, process issues, check issues, or manage issues for ant-design/ant-design repository. Also use when the user mentions "issue" in the context of antd, Ant Design, or GitHub issue management. This skill provides guidelines for classifying issues (Bug vs Feature Request), handling dosubot replies, using proper labels, writing polite responses, and knowing when to close issues.
ant-design 仓库的版本发布工作流。在用户提到发版、准备 release PR、升级发布版本号、执行正式 npm publish、或处理 release 分支与发布校验时使用。它不负责收集或生成 changelog;涉及 changelog 收集、整理、改写时应使用 changelog-collect。
Look up Ant Design React component documentation, props, and usage examples. Use when working with Ant Design (antd) components and needing API details, default values, or usage patterns.
Migrate between Ant Design major versions. Use when upgrading from antd v4 to v5 or addressing breaking changes in component APIs.
Customize Ant Design theme using Design Tokens and ConfigProvider. Use when adjusting visual styles, colors, spacing, or other theme properties in an Ant Design project.
审查 ant-design 测试用例是否值得保留。在用户要求验证测试 case、review 测试质量、判断测试是否合理、是否“用 A 证明 A”、是否重复、是否锁定实现细节,或决定测试应删除、保留还是改写时使用。
| name | changelog-collect |
| description | 收集 ant-design 两个版本之间的 PR 信息并整理 changelog 草稿,更新到 CHANGELOG.zh-CN.md 和 CHANGELOG.en-US.md 时使用。适用于收集 changelog、生成 changelog、更新 changelog、版本对比等场景。 |
帮助开发者收集 Ant Design 两个版本之间的 Changelog,处理临时文件并更新到官方 CHANGELOG.zh-CN.md 和 CHANGELOG.en-US.md 文件中。
当用户提到以下关键词时使用此 skill:
使用 GitHub CLI 直接收集两个版本/分支之间的 PR 信息。
执行 git fetch --tags 确保最新,然后获取所有 tags:
git tag --list | grep -v -E '(experimental|alpha|resource)' | sort -V | tail -20
过滤规则:
experimental、alpha、resource 的 tag交互式询问用户:
🏷 请选择起始版本(tag):
- [列表显示最近的 tag]
- [自定义输入]
🔀 请选择目标分支:
- master
- feature
- 自定义输入
重要:在开始收集 PR 信息之前,必须先确定版本号并写入 ~changelog.md 的头部。
根据起始版本自动计算新版本(默认按 minor 升级):
当前选择: 6.3.1 → master
请确认版本号:
- [minor] 升级到 6.4.0(次版本号)
- [patch] 升级到 6.3.2(修订版本号)
- [自定义] 输入具体版本号
用户确认后,立即初始化 ~changelog.md 文件,写入版本信息:
# Changelog Temp File
# Version: 6.4.0
# Generated: 2026-03-09T...
---
这样在后续收集 PR 信息时,每次追加写入都能保证 ~changelog.md 是完整可用的。
git log <from-tag>..<to-branch> --oneline
解析每个 commit,提取 PR 编号(匹配 #12345 格式)。
使用并行 subagent 同时获取所有 PR 详情,而不是顺序逐个请求。
将所有 PR 编号分批(每批最多 10 个),为每批 dispatch 一个 subagent,并行执行:
[主流程]
├── subagent-1: gh pr view 56001 56002 56003 ... 56010
├── subagent-2: gh pr view 56011 56012 56013 ... 56020
└── subagent-3: gh pr view 56021 56022 ...
每个 subagent 执行的命令:
gh pr view <pr-number> --json title,body,author,number
返回字段:
title: PR 标题body: PR 描述(可能包含中英文 changelog)author: 提交者number: PR 编号所有 subagent 返回后,汇总结果,再统一进行描述提取和写入。
每处理完一个 PR 后,立即追加写入 ~changelog.md。
追加写入内容:
## abc1234
- PR: 56976
- Committer: zombieJ
- Commit: fix: Select height issue
- Category: Select
- English: Fix Select incorrect height when value is empty
- Chinese: 修复 Select value 为空时高度不正确的问题
PR body 中的 changelog 作为参考,以实际改动为准。 PR 作者的描述可能不准确,需结合实际改动判断,必要时重新撰写。
PR body 中提取 changelog 的模式:
🇺🇸 English
- Fix Select incorrect height when value is empty
🇨🇳 Chinese
- 修复 Select value 为空时高度不正确的问题
或者:
English:
- Fix Select incorrect height when value is empty
Chinese:
- 修复 Select value 为空时高度不正确的问题
提取规则:
🇺🇸 English 或 English: 标记后的 - 行作为英文描述🇨🇳 Chinese 或 Chinese: 标记后的 - 行作为中文描述提取后必须按照 antd changelog 规范进行校验,不合规则改写(见下方"Changelog 合规校验")。
如果 PR body 中没有 changelog 内容,则根据 PR title、body 描述和 commit 信息自动生成符合规范的描述(见下方"无 changelog 时自动生成")。
以下改动不应出现在 changelog 中(用户无感知):
遇到上述类型,在 ~changelog.md 中标记 Skip: true,最终写入时过滤掉。
对从 PR body 提取的描述,逐条检查以下规范,不符合的必须改写:
| 规则 | 正确示例 | 错误示例 |
|---|---|---|
| Emoji 必须在行首 | 🐞 Fix Select height | Fix Select height 🐞 |
| 必须以动作动词开头(Emoji 之后) | 🐞 修复 Select ... / 🆕 新增 Button ... | Select 修复... |
| 正文必须包含组件名 | 🐞 Fix Select height issue | 🐞 Fix height issue |
| 组件名不加反引号 | Fix Select height | Fix \Select` height` |
| 属性名/API 用反引号 | Fix Select \value` prop` | Fix Select value prop |
| 组件名后不加冒号 | 🐞 Fix Select height | 🐞 Fix Select: height |
| 中文与英文/数字之间保留空格 | 修复 Select 在暗色主题的问题 | 修复Select在暗色主题的问题 |
| 每条只选一个 Emoji,不叠加 | 🐞 Fix Select ... | 🐞🆕 Fix Select ... |
| 描述开发者影响,不描述实现细节 | Fix Select height when empty | Remove minHeight CSS property |
| 新组件必须描述功能用途 | 🔥 Add BorderBeam component for animated border beam effect along container edges. | 🔥 Add BorderBeam component. |
| 新属性必须说明用途或效果 | 🆕 Add Input \allowClear.disabled` prop to disable the clear button while keeping it visible.` | 🆕 Add Input \allowClear.disabled` support.` |
Emoji 规范(完整版,从 CLAUDE.md 同步):
| Emoji | 用途 |
|---|---|
| 🐞 | 修复 Bug |
| 💄 | 样式更新或 token 更新 |
| 🆕 | 新增特性 / 新增属性 |
| 🔥 | 极其值得关注的新增特性 |
| 🇺🇸🇨🇳🇬🇧 | 国际化改动 |
| 📖 📝 | 文档或网站改进 |
| ✅ | 新增或更新测试用例 |
| 🛎 | 更新警告/提示信息 |
| ⌨️ ♿ | 可访问性增强 |
| 🗑 | 废弃或移除 |
| 🛠 | 重构或工具链优化 |
| ⚡️ | 性能提升 |
commit 类型 → Emoji / 动词 映射:
| commit 前缀 | 中文动词 | 英文动词 | Emoji |
|---|---|---|---|
fix: / bug: | 修复 | Fix | 🐞 |
feat: / feature: | 新增 | Add | 🆕 |
style: / ui: | 优化 | Improve | 💄 |
refactor: | 重构 | Refactor | 🛠 |
perf: | 提升性能 | Improve performance | ⚡️ |
docs: | 更新文档 | Update docs | 📝 |
i18n: / locale: | 更新国际化 | Update i18n | 🇺🇸 |
deprecate: | 废弃 | Deprecate | 🗑 |
chore: / test: / ci: | — | — | 跳过,不写入 |
当 PR body 中没有 changelog 内容(无 English/Chinese 标记)时,根据以下信息生成:
git show <hash> 的 diff 内容辅助理解改动生成规则:
Emoji 动词 组件名 改动描述(中英文各一条)示例:
PR title: fix(Select): fix height issue when value is empty
↓ 自动生成
English: 🐞 Fix Select incorrect height when value is empty
Chinese: 🐞 修复 Select value 为空时高度不正确的问题
从 PR title 和 body 中识别组件名:
const componentNames = [
'Button',
'Checkbox',
'Radio',
'Switch',
'Input',
'Select',
'TreeSelect',
'Cascader',
'DatePicker',
'TimePicker',
'Calendar',
'Upload',
'Modal',
'Drawer',
'Message',
'Notification',
'Popconfirm',
'Tooltip',
'Popover',
'Table',
'List',
'Tree',
'Tabs',
'Steps',
'Progress',
'Spin',
'Avatar',
'Badge',
'Tag',
'Card',
'Collapse',
'Carousel',
'Breadcrumb',
'Pagination',
'Menu',
'Dropdown',
'Form',
'Descriptions',
'Skeleton',
'Empty',
'Result',
'Alert',
'Typography',
'Layout',
'Grid',
'Space',
'Flex',
'ConfigProvider',
'App',
'Watermark',
'ColorPicker',
'QRCode',
'Segmented',
];
匹配规则:大小写不敏感,包含匹配。
读取 ~changelog.md 后,按以下规范处理:
临时文件格式:
# Changelog Temp File
# Version: 6.4.0
# Generated: 2026-03-09T...
---
## abc1234
- PR: 56976
- Committer: zombieJ
- Commit: fix: Select height issue
- Category: Select
- English: Fix Select incorrect height when value is empty
- Chinese: 修复 Select value 为空时高度不正确的问题
**CLAUDE.md 规范引用:**参考项目根目录 CLAUDE.md 中的 Changelog 规范(核心原则、格式规范、Emoji 规范、句式规范)。
根据规范,对 ~changelog.md 中的条目进行过滤、分组、格式检查,并在必要时进行交互式确认和修改。
chore:、test:、ci:、build: 类型的 commit- 组件名 作为分类标题,改动条目缩进列在其下- 组件名 分组行示例(多条):
- Select
- 🐞 Fix Select incorrect height when value is empty. [#56976](https://github.com/ant-design/ant-design/pull/56976) [@zombieJ](https://github.com/zombieJ)
- 💄 Improve Select dropdown animation. [#56980](https://github.com/ant-design/ant-design/pull/56980) [@afc163](https://github.com/afc163)
- 🐞 Fix Button style in Safari. [#56901](https://github.com/ant-design/ant-design/pull/56901) [@li](https://github.com/li)
[#56976](https://github.com/ant-design/ant-design/pull/56976) [@username](https://github.com/username)),不区分是否团队成员在 --- front matter 之后、第一个版本标题之前插入新内容:
--- 之后的位置同样流程处理 CHANGELOG.en-US.md
写入后必须运行 lint 校验:
npm run lint:changelog
如果 lint 报错,根据错误信息修正对应的 changelog 条目,重新写入,直到 lint 通过。常见错误类型:
版本号已在阶段一确定。如需更新 package.json,在写入 changelog 前询问:
是否需要同步更新 package.json 中的版本号?
当前版本: 6.3.1 → changelog 版本: 6.4.0
选项:
- [更新] 执行 npm version minor/patch
- [跳过] 保持 package.json 不变
预览确认:
请确认以下内容即将写入 CHANGELOG.zh-CN.md 和 CHANGELOG.en-US.md:
版本: 6.4.0
日期: 2026-03-09
条目数: 12
[预览完整内容] [直接写入] [取消]
1. 获取可用 tags,选择起始版本
↓
2. 选择目标分支(master/feature/自定义)
↓
3. **立即确定版本号**(minor/patch/自定义)
↓
4. 初始化 ~changelog.md 头部(写入版本信息)
↓
5. git log 获取两个版本间的 commits,提取所有 PR 编号
↓
6. **并行 dispatch subagents** 批量获取 PR 详情(每批最多 10 个)
↓
7. 汇总所有 PR 结果,逐条处理:
├── 有 changelog → 提取 → **校验合规性** → 不合规则改写
└── 无 changelog → 根据 PR title/body/diff **自动生成**符合规范的描述
↓
8. 识别组件 category
↓
9. 追加写入 ~changelog.md
↓
10. 过滤无效 commit(交互确认)
↓
11. 分组处理(按组件名)
↓
12. 检查描述规范性(交互确认)
↓
13. 重新生成不符合规范的描述(如需要)
↓
14. 预览确认(交互确认)
↓
15. 可选:更新 package.json 版本(npm version)
↓
16. 写入 CHANGELOG.zh-CN.md 和 CHANGELOG.en-US.md
↓
17. **运行 `npm run lint:changelog` 校验,有报错则修正并重新写入**
↓
18. 清理临时文件 ~changelog.md
↓
19. (可选)创建发布 PR,PR body 中直接包含完整的中英文 changelog 内容
此 skill 需要以下命令可用:
git tag --list - 获取版本标签git log <from>..<to> --oneline - 获取版本间 commitsgh pr view <pr-number> --json title,body,author,number - 获取 PR 详情git show <hash> - 查看 commit 详情(用于无 changelog 时辅助生成描述)npm version minor - 升级次版本号(6.3.1 → 6.4.0)npm version patch - 升级修订版本号(6.3.1 → 6.3.2)cat >> ~changelog.md 或 Node.js fs.appendFileSync - 追加写入npm run lint:changelog - 校验 changelog 格式(写入后必须运行)gh auth login)修复 Select ...、Fix Select ...)