用途
PR Create 是一个用于在 GitHub 上从当前分支创建新拉取请求(Pull Request)的 Agent 技能。当用户希望创建、打开或发起新的 GitHub PR 时,可以使用此技能,包括类似「open a PR」等表述。
主要能力与硬性规则
该技能定义了一组覆盖一切且无例外(除非用户明确指示)的硬性规则:
- 绝不附加 Claude 署名信息,包括「🤖 Generated with Claude Code」、「Co-Authored-By: Claude …」以及任何「Generated by」页脚。PR 标题与正文中不包含任何将作者标识为 AI 的内容。
- 除非用户当轮明确要求,绝不强制推送;且仅允许
--force-with-lease,绝不使用普通--force。推送前确认 head 分支不是main/master。 - 绝不从
main/master打开 PR。遇到此情况应停止并向用户提示。 - 绝不自动 rebase 或自动合并基础分支。若分支落后,向用户提示并询问。
- 绝不填写未经验证的检查清单项。保持
[ ]未勾选;不要替用户勾选。 - 绝不打开包含机密信息的 PR。若 diff 涉及
.env*、*credentials*、*.pem、*.key或id_rsa*,应停止并向用户提示——即使用户要求继续。公开 PR 会被永久缓存。
使用方式:工作流
该技能按以下五个步骤执行:
步骤 1 — 预检:并行运行检查并在此阶段任何检查失败时停止。检查包括 gh auth status、git rev-parse --abbrev-ref HEAD、git status --porcelain 以及查询当前分支是否已有打开的 PR。失败停止条件涵盖:当前分支为 main 或 master、未通过 gh 认证、该分支已存在 PR、存在未提交更改。随后确定基础分支并检查分支是否与基础分支同步(先执行 fetch)。若落后则向用户提示,不自动 rebase。
步骤 2 — 收集上下文:收集撰写标题与正文所需的材料,包括提交日志、diff 统计、分支名。执行敏感文件扫描,若匹配敏感路径则停止并要求用户重新确认。扫描 issue 引用(#NNN 模式),仅在有明确信号时提升为 Closes #NNN,否则默认使用 Refs #NNN 并向用户标记。检查 PR 模板(GitHub 的多个位置),若存在则作为正文骨架使用。
步骤 3 — 起草标题与正文:标题采用 Conventional Commits 格式 type(scope): subject,其中 type 可为 feat、fix、docs、refactor、test、chore、perf、build、ci。正文默认结构包含 ## Summary(先讲为什么,再讲改了什么)及 Closes #NNN。若存在仓库模板,则按模板原样填写其各部分。绝不编造测试步骤。
步骤 4 — 提交审批:打印完整草稿(完全按将要提交的样子)并等待。若存在任何歧义,以编号澄清项列出。用户可按编号编辑或自由格式更正。编辑后重新渲染草稿并再次确认。未经明确批准不得继续;沉默不视为批准。
步骤 5 — 推送并创建:推送分支(如缺少上游则设置),不使用任何 --force 变体。使用 HEREDOC 创建 PR 以确保正文格式正确,并返回 PR URL。
适用场景
适用于需要从当前分支创建 GitHub 拉取请求的各类开发工作流,尤其是希望遵循 Conventional Commits 规范、使用 PR 模板、并需要防止误操作(如从主分支开 PR、强制推送、泄露机密文件、附加 AI 署名)的场景。
限制与边界情况
该技能处理若干边界情况,包括:未设置上游(使用 git push -u origin HEAD,不提示)、分支落后基础分支(向用户提示,不自动 rebase 或合并)、脏提交历史(在步骤 4 标记为澄清项,建议用户后续自行 squash,而非自动操作)、模板存在但为空或格式错误(回退到默认正文结构并在步骤 4 说明)、多模板仓库(列出可用模板并询问用户适用哪一个)、issue 引用模糊(默认 Refs #NNN 并标记)、用户请求草稿 PR(添加 --draft,其余不变)、用户请求强制推送(仅在此时且仅使用 --force-with-lease,并确认 head 分支不是 main / master)。
关于收费、价格、平台支持范围等信息,资料中暂未提供。