mcpField
C
create-pr

create-pr

github.com/tartinerlabs开发8402 次安装今天更新
代码仓库

关于 create-pr

用于推送当前分支并创建 GitHub 拉取请求或 GitLab 合并请求的开发技能。它会先检查分支和迁移状态,再根据近期提交拟定标题与描述。

主要功能

  1. 01检查分支和工作区状态
  2. 02执行迁移漂移预检
  3. 03将分支推送到远程仓库
  4. 04创建 GitHub PR 或 GitLab MR
  5. 05遵循标题和描述规则

适用场景

  1. 01针对指定基分支提交热修复 PR
  2. 02提交已完成的代码变更
  3. 03为分层分支创建依赖 PR

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/tartinerlabs/skills --skill create-pr

安装后在 Claude Code 中输入/create-pr确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

rules/
migration-drift.md
pr-description.md
pr-title.md

详细介绍

推送分支并创建拉取请求/合并请求。

规则概览

规则影响文件
PR 标题HIGHrules/pr-title.md
迁移漂移HIGHrules/migration-drift.md
PR 描述MEDIUMrules/pr-description.md

工作流

  1. 检查当前 git 状态和分支,并确定基准分支:用户指定的分支(例如热修复对应的发布分支);否则使用默认分支
    • 如果当前位于基准分支,先通过 create-branch 技能创建分支
    • 如果有未提交的更改,通过 commit 技能提交,切勿在此处直接使用原始 git commit。只有在某些更改看起来与其余更改无关时,才先询问
  2. 按照 rules/migration-drift.md 执行迁移漂移预检。如果架构发生变化但没有对应迁移,则停止并在推送前询问
  3. 将当前分支推送到远程(必要时使用 -u 标志)
  4. 分析近期提交,生成 PR 标题和描述
  5. 通过 git remote get-url origin 检测远程主机(github.com → gh;gitlab.com → glab;默认使用 GitHub),并使用相应 CLI 创建 PR/MR。正文仅使用简洁的项目符号(不要使用 ## Summary、## Test Plan、检查清单或其他标题段落):
    • GitHub:gh pr create --assignee @me(@me 会解析为已通过身份验证的用户)。
      • 基准分支选择:使用第 1 步确定的基准分支。如果该分支是从一个非默认分支切出的,且该分支本身有未关闭的 PR(检查 merge base,然后运行 gh pr list --head <parent>),则使用 --base <parent-branch> 创建 PR——这样差异范围仅限于当前层,GitHub 也会自动将 PR 链接成堆叠结构(公开预览)。堆叠结构仅适用于同一仓库;对于尚未推出该预览功能的仓库,这会退化为普通的依赖 PR,而这仍是正确的基准分支。
      • 如果已安装 gh stack 扩展(gh extension list),可用它进行堆叠导航和本地级联变基。不要安装该扩展;堆叠管理(变基顺序、合并各层)应交由它处理,不要手动重新指定分支目标——较低层合并后,GitHub 会自行变基并重新指定较高层的目标。
      • gh stack submit 创建的 PR 带有自动生成的标题和正文,不符合规则。提交后,仅使用 gh pr edit <number> --title "..." --body "..." 重写本次提交刚创建的 PR,并遵循 rules/pr-title.md 和 rules/pr-description.md;每个标题和描述都应仅针对该层的差异(该层相对于其基准分支的提交),而不是整个堆叠结构。不要改动已有层——submit 不会重新生成它们的内容,而且它们可能已在审查中被修改。
    • GitLab:@me 是列表筛选器,不能用于创建 MR——先通过 glab api user --jq .username 获取用户名,然后使用第 1 步确定的基准分支运行 glab mr create --assignee <username> --target-branch <base>。

自动分配给当前用户。如果分配失败(用户不是协作者/成员),仍会创建 PR/MR,但不分配负责人。

评论

支持 Markdown