4.5 KiB
4.5 KiB
PR 类型建议
优先选择最贴近整条分支主结果的一个 type:
- 新增 CLI、Agent、MCP 或集成能力:
feat - 修复错误行为:
fix - 只修改文档或 skill:
docs - 主要修改测试:
test - 无外部行为变化的整理:
refactor - 性能优化:
perf - 构建或打包配置:
build - GitHub Actions / CI:
ci - 依赖或内部维护:
chore - 版本发布:
release
类型判断补充说明
不要因为 diff 里包含逻辑代码就直接判成 fix,先看最终结果。
优先判断:
feat只用于对外新增能力,不是“代码变多了”fix用于修复真实错误行为- 文档、skill、构建和 CI 改动优先使用各自 type
- 以用户、CLI 调用方或维护者最终感知到的结果为准
示例:
- 新增 MCP 查询工具 ->
feat(mcp): ... - 修复版本 fallback 逻辑 ->
fix(version): ... - 更新 agent skill ->
docs(skills): ... - 调整 tsdown 配置 ->
build(config): ... - 修改 PR title workflow ->
ci: ...
Related Issues 写法
有明确 issue 时:
Closes #123Fixes #123Refs #123
没有可靠关联时可以不写,或写 None。不要编造 issue 编号。
Summary 写法
推荐使用 2 至 4 个要点,回答:
- 原先有什么问题,或为什么需要新能力
- 这次改变了什么
- 是否影响 CLI 参数、输出格式、配置、MCP API 或包内容
- 是否有破坏性变化或迁移要求
英文示例:
## Summary
- keep changelog version resolution inside the diff utility
- simplify the command layer to pass resolved versions
- preserve existing CLI output with no public API changes
中文示例:
## Summary
- 将 changelog 版本解析收敛到 diff 工具内部
- 简化命令层,只传递已解析版本
- 保持现有 CLI 输出,不涉及公开 API 变化
Testing 写法
Testing 只记录实际执行并通过的命令,不要根据代码改动猜测结果。
常见验证:
- 所有 PR:
pnpm lint - 修改
src/**或test/**:pnpm build、pnpm test - CLI、MCP、setup、打包或跨模块集成:考虑
pnpm test:all - 通用检查:
git diff --check
示例:
## Testing
- `pnpm lint`
- `pnpm build`
- `pnpm test`
- `git diff --check`
未执行时:
## Testing
- Not run (documentation-only change)
若测试失败,要写明失败命令和原因,不能写成通过。
基线分支判断建议
目标是尽量推断“当前分支实际从哪里切出来”,而不是拍脑袋默认 main。
建议顺序:
- 用户明确指定了
base branch-> 直接使用 - 查看当前分支是否能从
reflog看出 checkout 来源 - 查看
git branch -vv的 tracking / upstream 作为辅助线索 - 必要时结合
merge-base比较候选分支 - 若仍无法确定,再退回远端默认分支或仓库默认分支
建议命令:
git branch --show-current
git branch -vv
git reflog show --date=local $(git branch --show-current)
git remote show origin
git merge-base HEAD <candidate-branch>
注意:
- upstream 不是绝对父分支,只是候选线索
reflog最接近真实答案,但不一定一直存在- 不确定时要明确告诉用户“这是推断值”
创建 PR 前确认话术建议
在真正执行 git push 或 gh pr create 前,先给用户确认版草稿:
我先整理了一版待提交的 PR 草稿,请你确认:
- Target repository: `antdv-next/cli`
- Base branch: `main`
- Head branch: `refactor/changelog-version-loading`
- PR title: `refactor(changelog): move version loading into diff utility`
- Testing: `pnpm lint`, `pnpm test`
如果没问题,我再继续推送并创建 PR;如果你想改 title、base、正文或 Draft 状态,我先更新草稿。
PR 标题示例
antdv-next/cli 的 PR 标题使用英文,并遵循:
<type>: <subject><type>(<scope>): <subject>
subject 必须以小写字符开头,以通过 .github/workflows/validate-pr-title.yml。
推荐示例:
feat(mcp): add component changelog query toolfix(version): resolve missing patch versions with fallbackdocs(skills): clarify CLI usage for agentsrefactor(changelog): move metadata loading into diff utilitybuild(config): optimize tsdown bundle outputci: validate pull request title formatchore(package): include skills in published files
不要这样写:
修复版本解析问题Update version resolverfix issuessome improvements