mcpField
P
pr

pr

github.com/derogab开发4364 次安装6 天前更新
代码仓库

关于 pr

用于为当前分支创建或更新拉取请求的技能,涵盖分支检查、变更分析、标题与正文准备及 PR 操作,并避免暂存或提交更改。

主要功能

  1. 01检查基准分支和提交状态
  2. 02分析分支差异与提交记录
  3. 03使用 gh 创建或更新 PR
  4. 04查找并套用 PR 模板
  5. 05不暂存或提交更改

适用场景

  1. 01为功能分支创建 PR
  2. 02更新现有分支的 PR
  3. 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"

你的任务

为当前分支创建或更新拉取请求。

预检
  1. 运行以下命令检测基础分支:git rev-parse --verify origin/main >/dev/null 2>&1 && echo main || echo master。将结果用作 <base>。
  2. 如果当前分支是基础分支,则停止并告知用户先切换到功能分支。不要执行其他操作。
  3. 运行 git log <base>..HEAD --oneline。如果领先于基础分支的提交数为零,则停止并告知用户先提交更改。不要执行其他操作。
  4. 切勿运行 git add 或 git commit。只管理 PR。
分析
  1. 运行 git diff <base>...HEAD,获取此分支上所有更改的完整差异。
  2. 运行 git log <base>..HEAD --format="%h %s",获取所有提交信息。
  3. 确定主要主题,并按逻辑归类具体更改。
决定:创建或更新
  • 如果上方的 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 模板。按以下顺序查找文件:

  1. 仓库根目录中的 pull_request_template.md
  2. .github/pull_request_template.md
  3. .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>
执行

创建流程:

  1. 将分支推送到 origin:git push -u origin <branch>。
  2. 创建 PR:
    gh pr create --title "<title>" --body "$(cat <<'EOF'
    <body>
    EOF
    )"
    

更新流程:

  1. 更新 PR:
    gh pr edit --title "<title>" --body "$(cat <<'EOF'
    <body>
    EOF
    )"
    
规则
  • 使用通俗易懂的英文撰写摘要,重点说明原因和内容。
  • 用简洁的项目符号列出更改。如果 PR 涉及多个方面,请用子标题归类相关内容。
  • 测试计划应包含与更改相关、可执行的验证步骤。如果某项检查已运行并通过,请标记为已完成。
  • 如果 PR 正文包含来自模板的检查清单,切勿自动勾选所有项目。每个已勾选项目都必须对应实际完成且已确认的工作。
  • 如果可以利用现有证据或命令验证检查清单项目,请进行验证,不要猜测。
  • 除工具调用外,不要发送任何文本。

评论

支持 Markdown