Ant Design의 Git 스테이징된 변경과 최근 커밋을 읽어, 전체 변경 의도를 기존 형식에 맞는 한 줄 커밋 메시지로 정리합니다.
- 스테이징된 변경에 설명을 붙일 때
- 최근 커밋의 작성 형식에 맞출 때
- 여러 파일의 변경을 한 줄로 요약할 때
Ant Design의 지정 태그와 대상 브랜치 사이의 PR을 수집해 사용자에게 영향을 주는 변경을 중국어와 영어 변경 이력으로 정리합니다. 미리 보기, 파일 갱신, 형식 검증을 지원합니다.
收集 ant-design 两个版本之间的 PR 信息并整理 changelog 草稿,更新到 CHANGELOG.zh-CN.md 和 CHANGELOG.en-US.md 时使用。适用于收集 changelog、生成 changelog、更新 changelog、版本对比等场景。
changelog-collect는 Ant Design의 지정 태그와 대상 브랜치 사이의 PR을 수집해 중국어와 영어 변경 이력을 작성합니다. PR 설명과 실제 차이를 바탕으로 사용자에게 영향을 주는 변경을 골라 컴포넌트별로 정리합니다. 설명이 없는 PR의 문안 작성, 릴리스 주요 내용 추출, PR과 작성자 링크 추가도 지원합니다. 필요하면 배포 파일의 크기 변화도 확인합니다.
릴리스를 준비하며 많은 PR을 검토하고 중국어와 영어 내용을 맞출 때 유용합니다. 내부 정리나 테스트만 바꾼 내용을 제외하고 개발자가 확인할 수 있는 기능과 동작의 변화를 설명할 때 활용합니다.
Ant Design용 절차이며 git, 인증된 GitHub CLI, npm을 사용합니다. 대상 프로젝트의 AGENTS.md에 있는 작성 규칙을 참고합니다. 쓰기 전에 미리 보기를 확인하고, CHANGELOG.zh-CN.md와 CHANGELOG.en-US.md를 갱신한 뒤 npm run lint:changelog로 검증합니다.
이 소개문은 공개된 SKILL.md를 바탕으로 AI(OpenAI Codex)가 작성했습니다. 정확한 사양은 아래 원문을 확인하세요.
AI가 SKILL.md의 내용만을 근거로 4가지 관점에서 판정했습니다. 스타 수나 인기도는 판정에 넣지 않았습니다.
총점은 각 항목을 A=25점, B=15점, C=5점으로 더한 값입니다. 2026년 10월 21일 기준으로 AI(OpenAI Codex)가 판정했습니다. 참고용이므로 설치 전에 원문도 확인해 주세요.
설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
帮助开发者收集 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 中(用户无感知):
依赖升级默认跳过,但不能机械按 chore 跳过。遇到 rc-component、@ant-design/icons 或其他运行时依赖升级时,必须额外核查是否带来以下用户可感知影响;如果有,必须保留并解释影响:
遇到上述类型,在 ~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.` |
| 从用户/开发者视角描述效果 | 📖 Improve AI agent support for ant.design. | 📖 Add .well-known metadata. |
| Token 改动列出具体 token | 🆕 Add Collapse \headerPaddingSM` and `contentPaddingSM` tokens.` | 🆕 Add Collapse size tokens. |
文案校验时逐条追问:"用户或开发者看到的变化是什么?" 如果答案只是"传递某配置"、"修改某 runtime"、"增加某 metadata"、"调整内部结构",说明文案仍是实现视角,必须改写为可感知效果。
Emoji 规范(完整版,从 AGENTS.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 为空时高度不正确的问题
**AGENTS.md 规范引用:**参考项目根目录 AGENTS.md 中的 Changelog 规范(核心原则、格式规范、Emoji 规范、句式规范)。
根据规范,对 ~changelog.md 中的条目进行过滤、分组、格式检查,并在必要时进行交互式确认和修改。
chore:、test:、ci:、build: 类型的 commitrc-component、@ant-design/icons 或其他运行时依赖升级如果带来组件能力、运行时行为、可访问性、TypeScript 外露类型或包体积收益,必须保留并写清用户/开发者影响正式发布版本 changelog 不只是 PR 列表,必须先提炼跨版本亮点并放在普通组件条目前面。优先寻找并置顶这些类型:
DESIGN.md、AI 设计工具支持、agent discovery、LLMs/MCP/CLI 能力重点条目可以使用 🔥,但每条仍只能选择一个 Emoji。
当发布版本出现明显 size-limit 变化,或依赖升级可能影响体积时,必须先分析再写 changelog:
antd.min.js、antd-with-locales.min.js 等关键包体积数值。package.json 运行时依赖升级,尤其是 rc-component、@ant-design/icons、picker/select/upload/icon 相关包。- 组件名 分组;最终只有 1 条时,必须输出为顶层单行条目,即使组件名已出现在条目正文中,也不单独写 - 组件名 分组行。示例(多条):
- 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. 核查运行时依赖升级(尤其 rc-component / icons)是否带来能力、类型或体积收益
↓
9. 识别组件 category
↓
10. 追加写入 ~changelog.md
↓
11. 过滤无效 commit(交互确认)
↓
12. 提炼发布重点(DESIGN.md、Icon、包体积、AI agent 支持等跨版本亮点)
↓
13. 如存在明显体积变化,按体积分析流程归因并补充说明
↓
14. 分组处理并排序(按最终有效条目数重算,单条组件拆平)
↓
15. 检查描述规范性(交互确认)
↓
16. 重新生成不符合规范的描述(如需要)
↓
17. 预览确认(交互确认)
↓
18. 可选:更新 package.json 版本(npm version)
↓
19. 写入 CHANGELOG.zh-CN.md 和 CHANGELOG.en-US.md
↓
20. **运行 `npm run lint:changelog` 校验,有报错则修正并重新写入**
↓
21. 清理临时文件 ~changelog.md
↓
22. (可选)创建发布 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 ...)아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Ant Design의 Git 스테이징된 변경과 최근 커밋을 읽어, 전체 변경 의도를 기존 형식에 맞는 한 줄 커밋 메시지로 정리합니다.
Ant Design 공식 문서에서 React 컴포넌트의 설정 항목, 기본값, 사용 예시를 찾습니다. 하위 컴포넌트와 메서드, TypeScript 타입 정의도 확인합니다.
Ant Design 브랜치 전체의 변경을 읽고 공식 템플릿에 맞춰 PR의 영어 제목, 본문, 대상 브랜치를 정리한 뒤 사용자 확인 후 생성합니다.
Ant Design의 GitHub 이슈를 검토해 버그와 기능 요청을 분류하고, 답변 초안과 라벨 변경 및 종료 제안을 정리한 뒤 사용자 확인을 거쳐 처리합니다.
Ant Design을 주로 v4에서 v5로 업데이트하며 호환성 변경을 검토합니다. 사용 중단 속성과 삭제된 컴포넌트를 교체하고 테마 설정을 이전합니다.
Ant Design 테스트가 공개 동작을 보호하는지 정적으로 검토합니다. 구현을 그대로 반복하는 검증과 중복을 찾아 유지, 수정, 삭제 판단과 이유를 제시합니다.