name: gitcode-pr-create description: | 检查当前分支变更,生成规范 PR 标题(conventional commit)和描述(变更摘要、 测试计划、关联 issue),建议标签和评审人,确认后通过 GitCode CLI 提交 PR。

TRIGGER when: 用户要创建/提交 PR、提 pull request、开 PR、create PR、 submit PR、想合并当前分支、或者代码改完了想提交到远端。只要涉及"把当前分支 变更做成 PR 提交",即应触发。

GitCode PR 创建助手

检查当前分支变更,自动生成规范的 PR 标题和描述,确认后提交。

与现有 skill 的分工

Skill 时机 做什么
gitcode-pr-create(本 skill) 开发完成后 检查变更 → 生成标题描述 → 提交 PR
gitcode-pr-review PR 提交后 多维度代码审查 → 行内评论

核心工作流

第一步:检查当前状态

确认分支和变更情况:

# 当前分支和状态
git status

# 与 base 分支的差异统计
git diff --stat origin/main...HEAD

# 最近的提交(用于生成标题和描述)
git log --oneline origin/main..HEAD

# 远程分支是否已推送
git remote -v

从输出中提取:

  • 当前分支名和 base 分支
  • 变更文件数、新增/删除行数
  • 提交数量和历史
  • 是否已推送到远端
  • 是否有未提交的变更

如果存在未提交的变更,先提醒用户提交或暂存。

第二步:确定 PR 类型和范围

根据 commit 历史和代码变更判断:

类型 适用场景 标题格式
feat 新功能 feat(scope): 描述
fix Bug 修复 fix(scope): 描述
refactor 重构(无功能变更) refactor(scope): 描述
docs 文档更新 docs: 描述
test 测试补充 test(scope): 描述
chore 构建/工具/依赖 chore: 描述

scope 根据变更文件路径推断(如 apicmd/issuepkg/pr)。

第三步:生成 PR 标题

格式:<type>(<scope>): <简短描述>

原则:

  • 描述用中文或英文,与项目现有风格一致
  • 控制在 50 字符以内
  • 如有对应 issue,尾部加 (#issue号)
  • 如多个 commit 涉及不同类型,取最主要变更的类型

使用 --fill 可以直接从最后一个 commit 填充标题作为起点:

gitcode pr create -R <repo> --fill

第四步:生成 PR 描述

根据变更内容生成规范描述。如果项目有 PR 模板(如 .gitcode/PULL_REQUEST_TEMPLATE.md),优先使用模板。

## 变更说明
[简要说明本次 PR 做了什么、为什么这样做]

## 变更内容
- [主要变更点 1]
- [主要变更点 2]
- [主要变更点 3]

## 关联 Issue
- Fixes #<issue_number>
- Related #<issue_number>

## 测试计划
- [ ] 单元测试通过
- [ ] [手动验证点 1]
- [ ] [手动验证点 2]

## 截图/日志
[如有 UI 变更或关键输出,附上截图]

## 风险
[如有破坏性变更、性能影响或需要特别注意的地方]

生成要点

  • 从 commit 历史中提取变更摘要(不要简单复制 commit message)
  • "为什么" 比 "改了什么" 更重要——解释动机和上下文
  • 列出关联 issue(搜索分支名或 commit message 中的 issue 编号)
  • 测试计划要具体,不要写 "已测" 就结束

第五步:建议元数据

  • Draft/WIP 判断:如果用户说 "还在开发中" 或有未完成的标记,建议 --draft
  • 标签建议:基于变更类型和范围
  • Base 分支:默认 main,如果项目有 release 分支策略,询问确认
  • 跨仓库 PR:如果检测到 from fork,用 --fork

第六步:预览确认

组装预览给用户确认:

## PR 预览

**仓库**: <owner/repo>
**分支**: <head> → <base>
**标题**: <title>
**Draft**: yes/no

---
<description body>
---

确认提交?可修改:
- 标题 / 描述 / base 分支
- 或回复 "直接提交" 确认创建

第七步:提交

gitcode pr create -R <owner/repo>  `
  --head <branch>  `
  --base <base>  `
  --title "<title>"  `
  --body-file pr-body.md

# 补打 ai-assisted 标签(pr create 不支持 --labels)
gitcode pr edit <pr-number> -R <owner/repo> --labels ai-assisted

# 如需要 draft 模式
gitcode pr create ... --draft

# 确认无误后打开浏览器查看
gitcode pr create ... --web

提交后展示 PR 链接,后续可触发 gitcode-pr-review 进行代码审查。

注意事项

  • 提交前确认有远端推送权限,必要时先 git push
  • 如果分支与远端不同步,提醒用户先推送
  • 变更统计数字要准确(不夸张不缩小),用于 reviewer 快速判断规模
  • 描述中的 "关联 Issue" 使用 GitHub/GitCode 支持的关键词(Fixes/Closes/Resolves + 编号)实现自动关闭
  • 如果检测到多个 unrelated 变更混在同一个 PR,建议拆分

示例用法

正常提交

我的 bugfix/issue-242 分支已经改完了,帮我创建 PR

快速提交

当前分支推到远端了,直接帮我生成 PR 标题和描述然后创建

Draft PR

我还在开发中,想先建个 draft PR 让团队看看方向

跨仓库

我这个 fork 分支要提 PR 到上游的 main 分支,帮我创建