关于 writing-pr
为贡献者提供撰写 PR 标题和正文的规范,强调先说明变更结果,并用图表、代码和验证证据辅助审阅。
主要功能
- 01遵循 Conventional Commits 标题格式
- 02以变更结果而非操作命名
- 03用要点说明改动与原因
- 04按需加入图表、代码和视觉证据
- 05规定每个 PR 的验证信息
适用场景
- 01整理便于审阅的 PR 标题和正文
- 02记录含流程或状态变更的架构图
- 03为修复提交前后对照证据
- 04编写符合仓库要求的验证部分
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ tester-army/ e2e --skill writing-pr安装后在 Claude Code 中输入/writing-pr确认已加载。
详细介绍
编写 PR 标题和正文
评审者通常会快速浏览。先在首屏说明变更的大致内容,再用图表和代码呈现细节。
标题
- 使用 Conventional Commits,格式与
git log一致:fix(playwright): provision the browser in a runner-side prepare hook。 PR 会以 squash merge 合并,并在标题后附加编号,因此标题就是提交信息。 - 如果规范或 API 有破坏性变更,用
!标记(feat(config)!: ...),与提交信息一致。 - 写明结果,而不是活动。“使用 appPath 选项构建安装包”,而不是“agent-device 变更”。
正文
不要写长篇大论。用几个要点说明改了什么、为什么改,然后提供证据。
- 正文说明使用项目符号,每个要点只讲一件事。
- 对于包含流程或状态的内容,使用 mermaid 图表:运行器阶段、引擎钩子、回放路径、变更前后的架构。
- 代码示例:新 API、测试文件中的示例用法,或关键内部代码片段。使用带语言标签的围栏代码块。
- 使用代码引用(
packages/e2e/src/run/execute.ts:42、GitHub 永久链接),不要改写代码内容。 - 对于直接或间接的视觉变更(CLI 输出、报告器输出、文档页面),提供包含上传图片或视频的前后对比表。
- 提供基准测试:使用前后对比表。基准是目标分支,候选项是 PR。
- 对于规范变更,在同一个要点中写明章节、架构和
suiteVersion更新,方便评审者一并核对。 - 如果 PR 解决了问题,添加
## Issue章节并写上Fixes #123。 社区提交的fix、chore、test、perf、ci、build和revert类型 PR 必须添加此章节(CONTRIBUTING.md,Pull requests)。 - 每个 PR 都必须添加
## Verified章节:- 第一行写:
Ran it locally: yes,或Ran it locally: no - <原因>(文档笔误、仅限 CI、没有相应设备)。 - 如果写
yes:说明 verify 范围、运行的命令、观察到的结果,以及能证明功能正常的 CLI 输出、截图或视频。 - 如果是
fixPR 且写了yes,还要在| main | this branch |表格中并列展示问题和修复结果。 - 使用
gh2.99+ 的--attach上传媒体:在正文中以 Markdown 引用图片(),并将每个文件作为--attach参数传入;gh会上传文件并重写这些路径。不要在正文中写视频路径:附加的视频会追加到末尾,并以播放器形式呈现。
- 第一行写:
不要写
- “我运行了 lint/tests”之类的列表。CI 会报告这些内容;
## Verified用于说明 CI 无法检查的内容。 - 中间过程。将 6k 行压缩成 1k 行、重构两次、中途重命名:这些都不会进入最终结果。最终只会有一个 squash merge 提交,因此只需说明该提交的内容。
- 逐行复述差异内容。
- 无人要求的检查清单、签署声明和填充内容。
模板
视觉内容的前后对比:
| Before | After |
| --- | --- |
|  |  |
修复的验证内容(本地图片路径会通过 --attach 转为已上传的资源):
## Verified
Ran it locally: yes
- testbed, `e2e run tests/scroll.e2e.ts --video`: the new test fails on main
and passes here
| main | this branch |
| --- | --- |
|  |  |
gh pr edit <pr> --body-file body.md --attach ./main.png --attach ./branch.png --attach ./video.webm
基准测试:
| Scenario | main | this PR | delta |
| --- | --- | --- | --- |
| testbed default suite | 41s | 23s | -44% |
流程:
```mermaid
flowchart LR
A[collect] --> B[schedule]
B --> C{cache hit?}
C -- yes --> D[replay]
C -- no --> E[act]
```
大型变更
对于真正令人瞩目、难度高、风险高或范围广的变更,可以将正文写成技术博客:介绍背景、问题、方案、代码示例、图表、前后对比和图片。在这里讲故事也可以。但仍须遵守以上规则:运行结果只能作为 ## Verified 证据,不要写中间过程。
语气
发布前,对最终文本执行 unslop 检查。 需要注意的 PR 特征:
- “This PR introduces...”、“comprehensive”、“robust”、“seamless”、“ensures”、“leverages”、“enhances”。
- 用粗体标签列出内容,却只是重复该行的意思(
**Performance:** Performance...)。 - 使用长破折号。改用逗号、冒号或另起一句。
- 为了凑三个而补足到三个的项目符号。
- 可以原封不动贴到其他代码仓库 PR 中的摘要。
评论
支持 Markdown