SuperAPI AI 工具集

open-pr

编程与开发

查看项目

更新于 10-16 05:29

技能介绍

用途

open-pr 是一个用于从当前分支打开拉取请求(PR)的技能,遵循 Storybook 的约定。当用户要求打开 PR、创建拉取请求,或调用 /open-pr 时触发。它创建的是草稿(draft)PR,并始终将 PR 指派给当前用户(@me)。

主要能力

  • 自动收集 git 上下文:并行运行 git status、git diff、git log --oneline <base>...HEAD(在检测基础分支后)、git branch -vv;必要时先执行 git push -u origin HEAD。
  • 自动检测基础分支:通过 git fetch origin 后运行 .agents/skills/open-pr/scripts/detect-base-branch.sh 脚本。检测顺序为:跟踪的上游分支 → reflog 检出源 → 最近的 origin/* 祖先(从分支顶端到 HEAD 提交数最少)。支持基于功能分支的 telescoped/stacked PR,而不仅限于 next/main。会跳过与 HEAD 处于同一提交的分支。平局时优先选择功能分支而非主干分支,其次优先 next 而非 main。最终回退到 next。检测结果会告知用户。
  • 询问标签:使用 AskQuestion 提出三个问题,选项来自 .github/PULL_REQUEST_TEMPLATE.md:
    • CI 标签:ci:normal、ci:merged、ci:daily
    • QA 标签:qa:needed、qa:skip
    • 类型标签:bug、maintenance、dependencies、build、cleanup、documentation、feature request、BREAKING CHANGE、other 并会依据 PR 模板验证可用标签。
  • 起草标题和正文:标题格式为 [Area]: [Description](格式和示例参见 pr 技能)。正文读取 .github/PULL_REQUEST_TEMPLATE.md,原样复制(保留所有 HTML 注释),并填写:关联 issue 时的 Closes #、What I did、测试复选框和强制手动测试步骤(或说明为何不需要)、适用时的文档复选框;维护者检查项保持未勾选。
  • 创建 PR:使用 gh pr create 命令,参数包括 --draft、--base "<detected-base>"、--title "<Area>: <Description>"、--body(填充后的模板)、--assignee @me、--label "<type>,<ci>,<qa>"。
  • 报告并提供 canary:分享 PR URL 后,通过 AskQuestion 询问“是否为此 PR 创建 canary 发布?”选择“是”则遵循 canary 技能,选择“否”则停止。

使用方式

当用户要求打开 PR、创建拉取请求或调用 /open-pr 时使用。技能会按上述工作流自动执行,并在需要时通过 AskQuestion 与用户交互(选择标签、是否创建 canary)。

适用场景

适用于 Storybook 仓库中需要按照项目约定创建草稿 PR 的场景,包括基于功能分支的堆叠 PR。

限制

  • 始终创建草稿 PR,且始终指派 @me。
  • 基础分支检测有特定顺序和回退规则,最终回退到 next。
  • 标签选项受 .github/PULL_REQUEST_TEMPLATE.md 约束。
  • 关于 canary 发布后的详细信息,需参考 canary 技能。
  • 资料中未提供其他平台支持、收费或价格信息。