用途
create-pr 用于在当前分支上创建 Pull Request。它会分析当前分支与 main 分支之间的差异,生成合适的 PR 标题和描述,并遵循 Conventional Commits 格式,为审查者提供足够的上下文以开始代码审查。
主要能力
- 分析当前分支与 main 分支之间的差异,包括变更文件列表、变更统计、提交历史和详细 diff。
- 根据变更文件模式、提交信息内容和 diff 细节生成 PR 标题与描述。
- PR 标题采用 Conventional Commits 格式,支持 feat、fix、refactor、test、docs、chore 等类型。
- PR 描述包含概述、关联 Issue、变更内容、影响范围、检查清单、测试方法和附加信息等章节。
- 在 Claude Code 环境中,通过 AskUserQuestion 工具确认关联的 GitHub Issue 编号和目标基础分支。
- 自动检查远程分支是否存在,必要时推送分支,并使用 gh pr create 创建 PR。
使用方式
该技能的工作流程分为四步:
-
分析变更:并行执行以下 4 条无依赖的 git 命令,相比顺序执行可降低约 75% 的延迟:
git diff main...HEAD --name-only:变更文件列表git diff main...HEAD --stat:变更统计git log main..HEAD --pretty=format:"- %s":提交历史git diff main...HEAD --unified=3:详细 diff
资料特别提示 AI 代理:这些命令应在单个请求中作为并行工具调用,而非顺序执行,遵循 Google ADK Parallel Fan-Out 模式以获得最佳性能。
-
确认相关信息(仅 Claude Code):在生成 PR 内容前,使用 AskUserQuestion 工具确认:
- 关联 Issue:询问是否有相关 GitHub Issue,可选择输入 Issue 编号或选择无关联 Issue。若输入编号,将在 PR 描述中以
Closes #XXX格式引用。 - 基础分支:仅当当前分支名不能清晰表明目标分支时才询问。例如 release/v1.2 → main、hotfix/auth-bug → main、develop/feature-x → develop 可跳过询问;而 feat/oauth-google、fix/parsing、chore/upgrade-deps 等临时主题分支则需要询问。选项包括 main(推荐)和 develop,用户也可通过 Other 指定其他分支。
- 非 Claude Code 环境(如 Codex、Gemini CLI、普通终端):若 AskUserQuestion 不可用,不阻塞流程,默认以 main 为基础分支,并在用户未提供 Issue 编号时跳过 Issue 关联,同时在最终摘要中呈现这两个选择以便用户更正。
- 关联 Issue:询问是否有相关 GitHub Issue,可选择输入 Issue 编号或选择无关联 Issue。若输入编号,将在 PR 描述中以
-
生成 PR 标题和描述:
- 标题从变更内容生成(依据变更本质而非分支名),格式为 Conventional Commits。
- 描述需提供审查者开始代码审查所需的最低前置知识,包含以下章节:概述(2-4 段,说明为何需要此变更、解决了什么、变更摘要与预期效果)、关联 Issue(以
Closes #XXX格式引用)、变更内容(3-7 条要点,简洁描述改了什么和怎么改)、影响范围(如适用)、检查清单、测试方法、附加信息(设计决策原因、技术说明、未来改进计划,若无则写 n/a)。
-
创建 PR:
- 执行
git fetch origin main验证 main 分支为最新。 - 检查当前分支是否已推送到远程,若未推送则执行
git push -u origin "$CURRENT_BRANCH"。 - 使用
gh pr create --base main --title "<generated title>" --body "$(cat <<'EOF' ... EOF)"创建 PR。
- 执行
适用场景
- 需要从当前分支创建 Pull Request 时。
- 希望自动生成符合 Conventional Commits 规范的 PR 标题和描述时。
- 希望为代码审查者提供结构化上下文时。
限制
- 关联 Issue 和目标基础分支的交互式确认仅在 Claude Code 环境中可用;其他环境默认使用 main 作为基础分支并跳过 Issue 关联。
- 依赖 git 和 gh 命令行工具。
- 资料未提供关于收费、价格、平台支持范围等其他信息。