用途
pr-create 用于把当前工作区中的提交和/或本地改动整理成一个 Pull Request。它会评估当前 Git 状态、确定基础分支、在需要时创建主题分支、提交改动、推送分支,并通过 GitHub CLI 打开 PR。
主要能力
- 评估当前状态:并行执行 git status、git log --oneline -10、git branch --show-current、git remote -v,判断当前分支名、是否存在未提交改动(已暂存、未暂存或未跟踪)、是否存在未推送的提交。
- 检查符号链接仓库:扫描 external/ 目录中解析为独立 git 仓库且存在改动的符号链接目录,为这些仓库创建匹配分支、提交、推送并打开配套 PR。非符号链接的真实目录(如 external/ag-shared)会被忽略。
- 识别基础分支:默认基础为 latest;若分支明确派生自 bX.Y.Z 发布分支且非 latest,则使用该发布分支;若存在歧义,会询问用户。
- 确保主题分支:若当前位于 latest 或 bX.Y.Z 分支,则创建新主题分支。分支命名遵循 git-conventions:若参数含 JIRA 工单(如 AG-12345),使用 ag-12345/<descriptive-slug>;否则使用 <initials>/<descriptive-slug>。
- 提交改动:审查 git diff、git diff --staged、git status,优先暂存具体文件而非 git add -A,并按 git-conventions 编写提交信息。若无未提交改动且无未推送提交,则告知用户无内容可提交并停止。
- 推送分支:使用 git push -u origin <branch-name> 设置上游。
- 创建 PR:使用 gh pr create --base <BASE_BRANCH> --title "<title>" --body "...",遵循 git-conventions;若关联 JIRA,在正文中包含 "Fix #AG-XXXX"。
- 报告结果:输出 PR URL 与简要摘要;若创建了符号链接仓库的配套 PR,一并列出。
使用方式
该技能通过命令 /pr-create 调用,可附带参数 ${ARGUMENTS}:
- JIRA 工单号(如 AG-12345):用于分支命名、提交前缀和 PR 标题。
- 改动描述:用于分支 slug、提交信息和 PR 标题。
- --base <branch>:覆盖基础分支检测。
示例:
- /pr-create:从当前状态和改动推断一切。
- /pr-create AG-12345 Add tooltip delay support:关联 JIRA 的 PR。
- /pr-create Fix axis label overlap for long text:无 JIRA 的 PR。
- /pr-create --base b13.0.0:指定目标发布分支。
若用户提供 help 命令选项,则解释如何使用该命令,并立即退出,不继续执行后续步骤。
前置条件
- 必须可用 Git CLI 与 GitHub CLI(gh)。
- 用户必须已通过 gh 认证(gh auth status)。
- 仓库必须存在名为 origin 的远程。
工作流程
- 评估当前状态:并行收集上下文,确定当前分支、未提交改动、未推送提交。
- 检查符号链接仓库:扫描 external/ 下的符号链接目录,对存在未提交或未推送改动的仓库创建匹配分支、提交、推送并打开 PR,记录 PR URL。若尚无主题分支,可推迟到第 4 步之后、第 5 步之前执行;关键要求是符号链接仓库的 PR 在外层仓库 PR 之前创建。
- 识别基础分支:检查当前分支是否派生自 bX.Y.Z 发布分支,默认基础为 latest,歧义时询问用户,结果存为 BASE_BRANCH。
- 确保主题分支:若在 latest 或 bX.Y.Z 分支上,则按 git-conventions 创建并切换到新主题分支;若已在主题分支上则继续使用。
- 提交改动(如有):审查改动,暂存相关文件,按 git-conventions 编写提交信息并提交。若无改动且无未推送提交,告知用户并停止。
- 推送分支:git push -u origin <branch-name>。
- 创建 PR:使用 gh pr create,指定基础分支、标题和正文,遵循 git-conventions;若关联 JIRA,正文包含 "Fix #AG-XXXX"。
- 报告结果:输出 PR URL 与摘要,并列出符号链接仓库的配套 PR。
适用场景
- 需要从当前本地改动快速创建 PR 的日常开发流程。
- 涉及多个符号链接仓库、需要同时创建配套 PR 的复杂改动。
- 需要按 JIRA 工单或描述自动生成分支名、提交信息和 PR 标题的团队规范场景。
- 需要指定发布分支作为基础分支的 PR。
限制
- 依赖 Git CLI 与 GitHub CLI(gh),且用户必须已通过 gh 认证。
- 仓库必须存在名为 origin 的远程。
- 符号链接仓库处理仅针对 external/ 目录下的符号链接目录,非符号链接的真实目录会被忽略。
- 基础分支识别在歧义时需要用户确认。
- 若无未提交改动且无未推送提交,则不会创建 PR。
- 具体 git-conventions 内容需参考 .rulesync/skills/git-conventions/SKILL.md,本资料未提供其细节。