跳转至

创建拉取请求

PRPs-agentic-eng 的 Wirasm 适配。PRP 工作流系列的一部分。

输入: $ARGUMENTS — 可选。可能包含基础分支名或标记(例如: --draft)。

解析 $ARGUMENTS: - 提取已识别的标记(--draft) - 将剩余的非标记文本作为基础分支名处理 - 如果未指定,基础分支默认为 main


阶段 1 — VALIDATE

检查前提条件:

git branch --show-current
git status --short
git log origin/<base>..HEAD --oneline
检查 条件 失败时的操作
不在基础分支上 当前分支 ≠ base 停止: “请先切换到功能分支。”
干净的工作目录 没有未提交的更改 警告: “存在未提交的更改。请提交或贮藏。使用 /prp-commit 提交。”
存在领先提交 git log origin/<base>..HEAD 非空 停止: “没有领先于 <base> 的提交。没有可创建 PR 的内容。”
没有现有 PR gh pr list --head <branch> --json number 为空 停止: “PR 已存在: #。使用 gh pr view <number> --web 打开。”

如果所有检查通过,则继续。


阶段 2 — DISCOVER

PR 模板

按顺序搜索 PR 模板:

  1. .github/PULL_REQUEST_TEMPLATE/ 目录 — 如果存在,列出文件并让用户选择(或使用 default.md)
  2. .github/PULL_REQUEST_TEMPLATE.md
  3. .github/pull_request_template.md
  4. docs/pull_request_template.md

如果找到,读取它并用于 PR 正文结构。

提交分析

git log origin/<base>..HEAD --format="%h %s" --reverse

分析提交以确定以下内容: - PR 标题: 使用带类型前缀的 conventional commit 格式 — feat: ...、fix: ... 等 - 如果存在多种类型,使用占主导的类型 - 如果是单个提交,直接使用该提交信息 - 变更摘要: 按类型/领域对提交进行分组

文件分析

git diff origin/<base>..HEAD --stat
git diff origin/<base>..HEAD --name-only

将变更文件分类: 源代码、测试、文档、配置、迁移。

PRP 工件

检查相关的 PRP 工件: - .claude/PRPs/reports/ — 实现报告 - .claude/PRPs/plans/ — 已执行的计划 - .claude/PRPs/prds/ — 相关 PRD

如果存在,在 PR 正文中引用。


阶段 3 — PUSH

git push -u origin HEAD

如果由于分叉导致推送失败:

git fetch origin
git rebase origin/<base>
git push -u origin HEAD

如果发生变基冲突,停止并通知用户。


阶段 4 — CREATE

有模板

如果在阶段 2 中找到 PR 模板,使用提交和文件分析填写每个部分。保留模板的所有部分 — 不要删除不适用的部分,将其标记为“N/A”。

无模板

使用此默认格式:

## Summary

<このPRが何をしてなぜかの1-2文の説明>

## Changes

<領域別にグループ化された変更の箇条書きリスト>

## Files Changed

<変更タイプ付きの変更ファイルのテーブルまたはリスト: Added/Modified/Deleted>

## Testing

<変更のテスト方法の説明、または"Needs testing">

## Related Issues

<Closes/Fixes/Relates to #Nでリンクされたイシュー、または"None">

创建 PR

gh pr create \
  --title "<PRタイトル>" \
  --base <base-branch> \
  --body "<PR本文>"
  # $ARGUMENTSから--draftフラグがパースされた場合は--draftを追加

阶段 5 — VERIFY

gh pr view --json number,url,title,state,baseRefName,headRefName,additions,deletions,changedFiles
gh pr checks --json name,status,conclusion 2>/dev/null || true

阶段 6 — OUTPUT

向用户报告:

PR #<number>: <title>
URL: <url>
Branch: <head> → <base>
Changes: +<additions> -<deletions> across <changedFiles> files

CI Checks: <ステータスサマリー or "pending" or "none configured">

Artifacts referenced:
  - <PR本文でリンクされたPRPレポート/計画>

Next steps:
  - gh pr view <number> --web   → ブラウザで開く
  - /code-review <number>       → PRをレビュー
  - gh pr merge <number>        → 準備ができたらマージ

边缘情况

  • 缺少 gh CLI: 停止: “需要 GitHub CLI(gh)。安装: https://cli.github.com/”
  • 未认证: 停止: “请先运行 gh auth login。”
  • 需要强制推送: 如果远程已分叉并执行了变基,使用 git push --force-with-lease(不要使用 --force)。
  • 多个 PR 模板: 如果 .github/PULL_REQUEST_TEMPLATE/ 中有多个文件,列出它们并让用户选择。
  • 大型 PR(超过 20 个文件): 警告 PR 大小。如果变更可以逻辑分离,建议拆分。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC