关于 manage-pr
用于通过 `gh` 创建、更新和协调 GitHub PR 的技能,也涵盖堆叠 PR 工作流。它遵循仓库约定、记录实际验证结果,并将合并留给用户。
主要功能
- 01检查提交、差异和 PR 状态
- 02拟定标题及模板化正文
- 03将分支推送到主远程端
- 04协调堆叠 PR 的变基
- 05由用户执行合并
适用场景
- 01完成分支后创建 PR
- 02按仓库约定更新现有 PR
- 03PR 合并后推进堆叠流程
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ klausborges/ workflow-skills --skill manage-pr安装后在 Claude Code 中输入/manage-pr确认已加载。
附带文件agents/openai.yamlskill.toml
详细介绍
管理 PR
标题、风格和远程命名遵循 git-conventions 技能。PR 位于仓库的主要远程仓库;此技能通过 gh 支持 GitHub。若仓库有明确约定(PR 模板、标题检查、贡献指南),则以该约定为准,而非以下默认规则。
创建或更新
- 先检查:
git log <base>..HEAD --oneline、git diff <base>...HEAD --stat,以及通过gh pr view查看现有 PR 状态。 - 标题:
type(scope): description。 - 使用下方模板编写正文,并通过
--body-file传入;显式传入标志,确保gh不会提示输入。 - 先将分支推送到主要远程仓库(
git push -u <primary> <branch>;仓库通常有两个远程仓库,未设置上游会导致gh提示输入)。 - 创建一个已准备好供审查的 PR,并将自己设为指派人:
gh pr create --assignee @me --base <base> --title <title> --body-file <file>。 - “验证”部分只填写实际运行过的命令及其结果。
模板(内容为空时省略“备注”):
## Summary
- 用 2-5 条普通项目符号说明做了哪些更改及原因。
- 基于 #N。(仅限堆叠 PR)
## Verification
- 运行的命令及其结果。
## Notes
- 风险、迁移顺序或审查提示。
堆叠 PR
当工作涉及多个 PR 时,按自下而上的顺序串联分支:第一个 PR 以默认分支为基准,后续每个 PR 以上一个分支为基准。确保每个 PR 都能独立通过,并按论证顺序排列整个堆栈。
合并循环
当用户说“让我们合并这些 PR”时,自下而上梳理堆栈,记录每个分支当前的最新提交,将最底部 PR 的链接发回,然后等待。每当用户说“已合并 #N”(采用任何合并方式,通常是 squash)时:
- 获取主要远程仓库,并将本地默认分支快进到最新状态。
- 使用记录的提交,将下一个分支变基到最新的默认分支上:
git rebase --onto <default> <old-base-tip> <branch>。然后以相同方式将其余每个分支变基到变基后的父分支上:git rebase --onto <parent> <old-parent-tip> <branch>。记录新的最新提交。 - 若发生冲突,停止并报告;尚未完全解决的变基绝不能推送。
- 确认每个分支的内容都已保留:
git range-diff <old-base-tip>..<old-tip> <new-base>..<branch>应只显示基准变更。仅在此之后使用--force-with-lease推送。 - 调整下一个 PR 的目标分支(
gh pr edit <next> --base <default>),回复其链接,然后等待下一个“已合并 #N”。即使合并方式不是 squash,也要按此方式重新同步。最后一个 PR 合并后,确认堆栈已完成,并提出清理本地分支(在 worktree 中检出的分支需要先运行git worktree remove)。
防护规则
- 合并由用户执行;此技能绝不合并。
- 按名称确定主要远程仓库;这些仓库中不存在名为
origin的远程仓库。 - 标题和正文中不要包含计划及里程碑相关内容。
输出
PR URL;或者在合并循环期间,输出下一个 PR 的链接及剩余堆栈。
评论
支持 Markdown