Files
new-api-key-usage/.agents/skills/antdv-next-cli-create-pr/references/template-notes-and-examples.md
T

4.5 KiB
Raw Blame History

PR 类型建议

优先选择最贴近整条分支主结果的一个 type:

  • 新增 CLI、Agent、MCP 或集成能力:feat
  • 修复错误行为:fix
  • 只修改文档或 skill:docs
  • 主要修改测试:test
  • 无外部行为变化的整理:refactor
  • 性能优化:perf
  • 构建或打包配置:build
  • GitHub Actions / CI:ci
  • 依赖或内部维护:chore
  • 版本发布:release

类型判断补充说明

不要因为 diff 里包含逻辑代码就直接判成 fix,先看最终结果。

优先判断:

  1. feat 只用于对外新增能力,不是“代码变多了”
  2. fix 用于修复真实错误行为
  3. 文档、skill、构建和 CI 改动优先使用各自 type
  4. 以用户、CLI 调用方或维护者最终感知到的结果为准

示例:

  • 新增 MCP 查询工具 -> feat(mcp): ...
  • 修复版本 fallback 逻辑 -> fix(version): ...
  • 更新 agent skill -> docs(skills): ...
  • 调整 tsdown 配置 -> build(config): ...
  • 修改 PR title workflow -> ci: ...

有明确 issue 时:

  • Closes #123
  • Fixes #123
  • Refs #123

没有可靠关联时可以不写,或写 None。不要编造 issue 编号。

Summary 写法

推荐使用 2 至 4 个要点,回答:

  1. 原先有什么问题,或为什么需要新能力
  2. 这次改变了什么
  3. 是否影响 CLI 参数、输出格式、配置、MCP API 或包内容
  4. 是否有破坏性变化或迁移要求

英文示例:

## 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。

建议顺序:

  1. 用户明确指定了 base branch -> 直接使用
  2. 查看当前分支是否能从 reflog 看出 checkout 来源
  3. 查看 git branch -vv 的 tracking / upstream 作为辅助线索
  4. 必要时结合 merge-base 比较候选分支
  5. 若仍无法确定,再退回远端默认分支或仓库默认分支

建议命令:

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 tool
  • fix(version): resolve missing patch versions with fallback
  • docs(skills): clarify CLI usage for agents
  • refactor(changelog): move metadata loading into diff utility
  • build(config): optimize tsdown bundle output
  • ci: validate pull request title format
  • chore(package): include skills in published files

不要这样写:

  • 修复版本解析问题
  • Update version resolver
  • fix issues
  • some improvements