关于 pr
用于为当前分支创建或更新拉取请求的技能,涵盖分支检查、变更分析、标题与正文准备及 PR 操作,并避免暂存或提交更改。
主要功能
- 01检查基准分支和提交状态
- 02分析分支差异与提交记录
- 03使用 gh 创建或更新 PR
- 04查找并套用 PR 模板
- 05不暂存或提交更改
适用场景
- 01为功能分支创建 PR
- 02更新现有分支的 PR
- 03根据仓库变更准备 PR 正文
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ derogab/ agent-kit --skill pr安装后在 Claude Code 中输入/pr确认已加载。
附带文件agents/openai.yaml
详细介绍
上下文
- 当前分支:!
git branch --show-current - 默认分支候选项:!
git branch -r | grep -E 'origin/(main|master)' - 此分支的 PR:!
gh pr view --json number,title,url 2>/dev/null || echo "NO_PR"
你的任务
为当前分支创建或更新拉取请求。
预检
- 运行以下命令检测基础分支:
git rev-parse --verify origin/main >/dev/null 2>&1 && echo main || echo master。将结果用作<base>。 - 如果当前分支是基础分支,则停止并告知用户先切换到功能分支。不要执行其他操作。
- 运行
git log <base>..HEAD --oneline。如果领先于基础分支的提交数为零,则停止并告知用户先提交更改。不要执行其他操作。 - 切勿运行
git add或git commit。只管理 PR。
分析
- 运行
git diff <base>...HEAD,获取此分支上所有更改的完整差异。 - 运行
git log <base>..HEAD --format="%h %s",获取所有提交信息。 - 确定主要主题,并按逻辑归类具体更改。
决定:创建或更新
- 如果上方的 PR 上下文显示
NO_PR→ 创建新的 PR。 - 如果找到当前分支对应的 PR → 更新该 PR。
PR 标题
遵循 Conventional Commits 格式:<type>: <description>。
类型: feat、fix、docs、refactor、test、chore、build、perf、ci。对于破坏性更改,追加 !。
更新时,保留现有标题,除非标题过于笼统(例如“Update”)、已过时或不符合 Conventional Commits 格式。
PR 正文格式
首先,检查仓库是否有 PR 模板。按以下顺序查找文件:
- 仓库根目录中的
pull_request_template.md .github/pull_request_template.md.github/PULL_REQUEST_TEMPLATE/*.md
如果 .github/PULL_REQUEST_TEMPLATE/ 中有多个模板:
- 读取该目录中的所有模板文件
- 分析当前更改(修改的文件类型及更改性质)
- 选择文件名和内容最符合这些更改的模板(例如,缺陷修复使用
bugfix.md,新功能使用feature.md,文档更改使用docs.md)
如果找到模板:
- 使用模板内容作为 PR 正文
- 将任何占位变量(例如
{{description}}、{{summary}})替换为根据更改得出的实际内容 - 如果模板包含检查清单,只勾选确已完成且已验证的项目。相关工作尚未完成、尚未验证或验证失败的项目保持未勾选。
- 如果可以合理执行检查来验证某个检查清单项目(例如阅读差异、检查文件或运行可用的验证命令),请先执行检查,再决定是否勾选该项目。
如果没有找到模板,请使用以下默认格式:
## Summary
<1-2 sentence high-level description of what this PR does and why>
## Changes
<bulleted list of all meaningful changes, grouped logically>
## Test plan
<bulleted checklist of how to verify these changes>
执行
创建流程:
- 将分支推送到 origin:
git push -u origin <branch>。 - 创建 PR:
gh pr create --title "<title>" --body "$(cat <<'EOF' <body> EOF )"
更新流程:
- 更新 PR:
gh pr edit --title "<title>" --body "$(cat <<'EOF' <body> EOF )"
规则
- 使用通俗易懂的英文撰写摘要,重点说明原因和内容。
- 用简洁的项目符号列出更改。如果 PR 涉及多个方面,请用子标题归类相关内容。
- 测试计划应包含与更改相关、可执行的验证步骤。如果某项检查已运行并通过,请标记为已完成。
- 如果 PR 正文包含来自模板的检查清单,切勿自动勾选所有项目。每个已勾选项目都必须对应实际完成且已确认的工作。
- 如果可以利用现有证据或命令验证检查清单项目,请进行验证,不要猜测。
- 除工具调用外,不要发送任何文本。
评论
支持 Markdown