SuperAPI AI 工具集

create-pr

编程与开发

查看项目

更新于 10-16 04:49

技能介绍

用途

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。

使用方式

该技能的工作流程分为四步:

  1. 分析变更:并行执行以下 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 模式以获得最佳性能。

  2. 确认相关信息(仅 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 关联,同时在最终摘要中呈现这两个选择以便用户更正。
  3. 生成 PR 标题和描述:

    • 标题从变更内容生成(依据变更本质而非分支名),格式为 Conventional Commits。
    • 描述需提供审查者开始代码审查所需的最低前置知识,包含以下章节:概述(2-4 段,说明为何需要此变更、解决了什么、变更摘要与预期效果)、关联 Issue(以 Closes #XXX 格式引用)、变更内容(3-7 条要点,简洁描述改了什么和怎么改)、影响范围(如适用)、检查清单、测试方法、附加信息(设计决策原因、技术说明、未来改进计划,若无则写 n/a)。
  4. 创建 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 命令行工具。
  • 资料未提供关于收费、价格、平台支持范围等其他信息。