SuperAPI AI 工具集

pr-description-writer

编程与开发

查看项目

更新于 10-16 02:24

技能介绍

用途

PR Description Writer 用于为当前 Git 分支自动撰写 GitHub Pull Request 描述。当用户要求编写、起草、生成或更新当前分支的 PR 描述时使用。它会读取分支 diff 和提交信息,生成完整描述,并支持一条命令创建或更新 PR。

写作风格要求

适用于所有生成的 PR 描述:

  • 使用主动语态,例如 "Adds X" 而非 "X has been added"。
  • 摘要使用现在时("Adds caching layer"),背景说明使用过去时("The old approach caused N requests per render")。
  • 句子简短,每条要点只表达一个想法。
  • 不使用破折号,改用逗号或句号。
  • 不使用填充词,如 "this PR"、"this commit"、"as per the discussion"。
  • 具体优于笼统,例如 "reduces p95 latency from 800ms to 90ms" 优于 "improves performance"。

使用方式

第 1 步:检查环境

确认 gh 已认证:

gh auth status

若未认证,运行 gh auth login 并按提示操作。

确认当前目录是 Git 仓库且处于活动分支:

git branch --show-current

若处于 detached HEAD 或无分支,停止并询问用户想描述哪个分支。

第 2 步:收集 diff 上下文

运行以下三条命令构建上下文。

文件摘要(改了什么):

git diff main...HEAD --stat

提交信息(为什么改):

git log main...HEAD --oneline

完整 diff(怎么改的):

优先使用 origin/main(始终最新),其次本地 main,再次 master:

if git rev-parse origin/main &>/dev/null 2>&1; then
  BASE=origin/main
elif git rev-parse main &>/dev/null 2>&1; then
  BASE=main
else
  BASE=master
fi
git diff $BASE...HEAD

若 diff 非常大(超过 500 行),只读取 --stat 摘要和提交信息,并读取 diff 的前 200 行以理解主要改动,无需处理全部输出。

同时检查是否已有 PR 并读取其当前标题与正文:

gh pr view --json title,body,baseRefName 2>/dev/null

第 3 步:阅读格式指南

在撰写任何内容前,完整阅读 references/pr-format-guide.md,掌握:必需章节及其顺序、各章节写法、应包含与应省略的内容、测试章节格式。

第 4 步:生成描述

按 references/pr-format-guide.md 的格式撰写 PR 描述。规则:

  • Changes 章节的每条要点都必须能追溯到 diff 中的内容。
  • 不要编造代码改动未暗示的测试步骤。
  • 若某章节没有相关内容,完全省略(不要写 "N/A" 或留空)。
  • Screenshots 章节仅在 diff 中存在可见 UI 改动时包含。
  • 若提交信息解释了 "为什么",在 Summary 中使用该背景。

QA 检查点,在呈现前验证:

  • Summary 为 1 至 2 句,主动语态,无填充词。
  • 每条改动要点具体且可追溯到 diff。
  • 没有编造的指标或结果。
  • 测试步骤可操作(他人可照做)。
  • 任何一行都没有破折号。

第 5 步:创建或更新 PR

向用户呈现描述并询问:"Ready to create the PR, update the existing one, or output only?"

创建新 PR,通过 stdin 传递正文以安全处理反引号、引号与换行:

gh pr create --title "TITLE_HERE" --body-file - << 'EOF'
BODY_HERE
EOF

根据提交信息和 diff 摘要建议标题。标题使用祈使语气,不超过 72 个字符,例如 "Add Redis caching for user session lookups" 而非 "Added caching"。

更新已有 PR:

gh pr edit --body-file - << 'EOF'
BODY_HERE
EOF

仅输出:将标题和正文放在代码块中供手动复制粘贴。

创建或更新后确认:"PR description updated. View it at: [URL]"。

适用场景

适用于需要为当前分支生成或更新 GitHub PR 描述的开发工作流,尤其是希望描述格式统一、内容可追溯、避免空话与编造数据的团队。

限制

  • 依赖 gh CLI 并需完成认证。
  • 需要当前目录为 Git 仓库且处于活动分支。
  • 描述内容严格基于 diff 与提交信息,不编造测试步骤、指标或结果。
  • 关于收费、价格、平台支持范围等信息,资料中暂未提供。