关于 pr-description-writer
pr-description-writer 根据代码差异、提交列表或备注撰写结构化拉取请求说明,帮助开发者向审阅者交代变更原因、测试步骤和与风险相称的审阅提示。
主要功能
- 01撰写结构化 PR 说明
- 02概述变更及其原因
- 03提供可复现的测试步骤
- 04按风险调整审阅提示
适用场景
- 01根据代码差异撰写说明
- 02将提交汇总为 PR 内容
- 03为审阅者提供测试指引
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mohitagw15856/ pm-claude-skills --skill pr-description-writer安装后在 Claude Code 中输入/pr-description-writer确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/reviewer-empathy.mdworked-example.mdtemplates/pr-template.md详细介绍
PR 描述撰写技能
根据差异、提交列表或非正式笔记,撰写结构清晰、便于审阅的拉取请求描述。涵盖更改内容、原因和审阅方式,让审阅者可以立即开始审阅。
不太符合你的需求? 如果你希望通过 GitHub 连接器读取真实差异,请使用
pr-description-live。
必需输入
如果未提供,请询问以下信息:
- 更改内容(粘贴 git diff、
git log --oneline,或用通俗的语言描述更改) - 更改原因(要解决的问题或要添加的功能)
- 测试方法(审阅者验证功能是否正常所需的具体步骤)
- 风险级别(低 / 中 / 高 — 影响需要提供多少审阅指导)
- PR 类型(功能 / 错误修复 / 重构 / 依赖项升级 / 配置更改 / 热修复)
- 目标分支(例如 main / develop / release/2.4 — 影响风险说明和审阅指导)
- 关联的问题或工单(例如 JIRA-1234、GitHub #567 — 或“无”)
输出格式
标题
使用清晰的祈使语气,且少于 72 个字符:
[type]: [concise description of what changed]
示例:
feat: add rate limiting to the public APIfix: resolve race condition in session expiryrefactor: extract payment logic into PaymentService
摘要
用 2–3 句话说明:
- 此 PR 的作用(更改内容)
- 更改的必要性(问题或目标)
- 采用的方法(概述)
所做更改
列出具体更改,每个逻辑更改对应一条,不要按文件列出:
- 添加 [X] 以处理 [Y]
- 重构 [A] 以减少 [B]
- 移除 [C],因为它已被 [D] 替代
- 更新 [E] 以修复 [F]
截图 / 演示
[如果更改涉及 UI:提供更改前后的截图或屏幕录制] [如果更改涉及 API:提供请求 / 响应示例] [如果没有视觉更改,也没有 API 契约更改:完全省略此部分 — 不要将其留作占位内容]
如何测试
提供审阅者可以遵循的分步说明:
- [如有需要,提供设置步骤]
- [要执行的操作]
- [要验证的内容]
- [要检查的边界情况]
请包含所需的具体命令、测试数据或环境标志。
测试清单
- 已添加 / 更新单元测试
- 已添加 / 更新集成测试
- 已覆盖边界情况
- 已完成手动测试
- 现有测试无回归
审阅者须知
指出任何值得额外关注的事项:
- 欢迎他人提供第二意见的不确定之处
- 有意做出的权衡(及其原因)
- 注意到但未处理的范围外事项
- 对其他 PR 的依赖(请附上链接)
相关事项
- 关闭 #[issue number](如适用)
- 与 #[PR/issue number] 相关
深入资料
此技能附带支持文件 — 如果这些文件可用,请使用:
references/reviewer-empathy.md— 将 PR 描述作为审阅导航。在生成输出时应用其中的指导;该文件包含了此处方法摘要所概括的校准原则和判断要点。templates/pr-template.md— 可填写的交付内容模板,内含质量检查项。如果用户想自己填写文档,而不是让你生成,请提供此模板。
评分标准(0–40)
提交前,为此技能的任何输出评分;32 分以上即可达到交付质量。
| 维度 | 0 | 5 | 10 |
|---|---|---|---|
| 为何优先于做了什么 | 描述只是在复述差异;没有说明动机 | 做了什么很清楚,但为何要做解释得很少或流于笼统(“改进了代码”) | 明确说明了问题、目标和方法;描述补充了差异本身无法传达的背景 |
| 标题与结构 | 只有一段无结构的文字;标题含糊、缺少类型前缀或超过 72 个字符 | 有标题结构,但标题或章节使用不规范(保留了占位章节) | 类型前缀有效,使用祈使语气,少于 72 个字符;章节便于评审者直接找到所需内容 |
| 测试可复现性 | 没有测试步骤 | 有步骤,但默认读者熟悉代码库,或遗漏边界情况 | 不熟悉代码的人员也能复现验证过程——包含命令、测试数据、标志以及至少一个边界情况 |
| 与风险相匹配的评审者指引 | 高风险 PR 没有评审者说明,或说明纯属套话 | 有说明,但没有指出具体权衡、不确定性或范围外事项 | 指引与风险相符:高风险需指出具体关注点和有意为之的权衡;低风险则将说明控制在一行,或省略 |
质量检查
- 标题使用祈使语气,且少于 72 个字符
- 摘要说明了做了什么以及为何要做(不只是做了什么)
- 变更列表描述逻辑上的变更(而非逐个文件列举变更)
- 标题以有效的类型前缀开头(feat / fix / refactor / chore / deps / config / hotfix),且少于 72 个字符
- 不熟悉代码的人员也能复现测试步骤
- 对于高风险 PR,“评审者说明”至少指出一个具体关注点或有意为之的权衡;对于低风险 PR,则省略“评审者说明”或控制在一行
反模式
- 不要只复述变更内容——解释为何进行这项变更
- 不要跳过测试步骤——评审者需要知道如何验证变更是否有效
- 对于高风险 PR,不要省略评审者说明——指出有意为之的权衡和需要仔细审查的领域
- 不要描述差异中一目了然的实现细节——补充差异本身无法传达的背景
- 不要只写一段文字——使用标题组织内容,让评审者能快速找到所需信息
使用示例
- “为这些变更编写 PR 描述” + [粘贴差异或描述]
- “为 [功能] 起草一个拉取请求”
- “我需要一份 PR 描述——这是我的变更”
- “将这些提交总结成一份 PR 描述”
- “为这个分支编写 PR 正文”
评论
支持 Markdown