mcpField
C
create-pr-from-spec

create-pr-from-spec

github.com/giuseppe-trisciuoglio开发3651.5k 次安装7 周前更新
代码仓库

关于 create-pr-from-spec

create-pr-from-spec 是将已定稿规格转换为 GitHub 拉取请求的技能,适用于使用仓库 PR 模板的团队。它会检查重复项、按模板填写标题和正文,并将 PR 分配给创建者。

主要功能

  1. 01创建草稿拉取请求
  2. 02检查是否存在重复拉取请求
  3. 03根据仓库模板填写标题和正文
  4. 04将 PR 标记为可供审查
  5. 05将 PR 分配给创建者

适用场景

  1. 01提交已定稿规格以供审查
  2. 02根据规格创建符合模板的 PR
  3. 03避免为同一分支重复创建 PR

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/giuseppe-trisciuoglio/developer-kit --skill create-pr-from-spec

安装后在 Claude Code 中输入/create-pr-from-spec确认已加载。

详细介绍

根据规范创建 Pull Request

使用位于 ${workspaceFolder}/.github/pull_request_template.md 的 pull_request_template.md 模板,为规范创建 GitHub Pull Request。

概述

此技能可根据规范自动创建 GitHub Pull Request。它遵循结构化流程:

  1. 分析规范模板要求
  2. 使用目标分支创建草稿 PR
  3. 确认不存在重复 PR
  4. 使用符合模板要求的内容更新 PR 正文和标题
  5. 将 PR 标记为可供审核
  6. 自动指派给创建者
  7. 向用户返回 PR URL

主要优势:

  • ✅ 根据规范自动创建 PR
  • ✅ PR 正文和标题符合模板要求
  • ✅ 防止重复 PR
  • ✅ 自动指派给创建者
  • ✅ 简化从规范到 PR 的工作流

适用场景

在以下情况下使用此技能:

  1. 规范已准备好合并 - 将定稿的规范转换为 PR
  2. 需要自动创建 PR - 避免手动起草 PR
  3. 需要遵循模板 - 确保 PR 符合 pull_request_template.md 的要求
  4. 根据规范创建多个 PR - 批量处理规范并创建 PR
  5. 团队协作 - 将规范作为 PR 分享,以供审核

触发短语:

  • “根据规范创建 pull request”
  • “将规范转换为 PR”
  • “为规范创建 PR”
  • “以 pull request 的形式提交规范”
  • “自动创建 PR”

说明

前提条件

使用此技能前,请确保:

  • 规范文件已定稿并准备好审核
  • 已指定目标分支(例如 main、develop)
  • 仓库中存在 .github/pull_request_template.md
  • 你拥有创建 PR 的写入权限
分步流程

1. 分析规范模板

  • 从 ${workspaceFolder}/.github/pull_request_template.md 提取要求
  • 使用搜索工具解析模板中的章节和占位符

2. 创建 pull request 草稿

  • 使用 create_pull_request 工具,为目标分支创建草稿 PR
  • 首先使用 get_pull_request 确认不存在现有 PR,以防止重复
  • 如果 PR 已存在,则停止操作并告知用户

3. 获取 pull request 更改

  • 使用 get_pull_request_diff 工具分析差异
  • 更新前确认代码更改正确

4. 更新 pull request

  • 使用 update_pull_request 工具填写 PR 正文和标题
  • 纳入第 1 步中的模板章节
  • 确保所有必填字段均已填写

5. 标记为可供审核

  • 使用 update_pull_request 工具,将状态从草稿更改为可供审核
  • 确认 PR 不再处于草稿模式

6. 指派 pull request

  • 使用 get_me 获取当前用户信息
  • 使用 update_issue 工具将 PR 指派给创建者

7. 返回 pull request URL

  • 向用户提供可点击的 PR URL
  • 附上 PR 内容摘要

示例

示例 1:创建基本 PR
Input: Create PR from spec to main branch
Process:
  1. Analyze pull_request_template.md
  2. Create draft PR to main
  3. Check for existing PRs
  4. Update PR title: "feat: [Feature Name from Spec]"
  5. Update PR body with template sections
  6. Mark as ready for review
  7. Assign to creator
Output: https://github.com/user/repo/pull/123
示例 2:创建符合模板要求的 PR
PR Title: feat: Implement user authentication system

PR Body:
## Description
Implements JWT-based authentication with token refresh mechanism

## Related Issue
Closes #456

## Changes
- Added JWT middleware
- Implemented token validation
- Added refresh token endpoint

## Testing
- Unit tests for auth middleware
- Integration tests for token endpoints

## Checklist
- [x] Tests pass
- [x] Documentation updated
- [x] No breaking changes
示例 3:防止重复
Input: Create PR from spec
Check: PR for current branch already exists?
  → Yes: Report error, don't create duplicate
  → No: Proceed with PR creation
Output: "PR already exists at https://github.com/user/repo/pull/789"

要求

  • 为完整规范创建单个 pull request
  • 标题和正文清晰标明规范或功能
  • Pull request 正文遵循 pull_request_template.md 的结构
  • 确认不存在重复的 pull request
  • PR 自动指派给创建者
  • 不留下草稿 PR

成功标准

  • ✅ PR 创建成功且无错误
  • ✅ PR 正文遵循 pull_request_template.md 的结构
  • ✅ PR 标题清晰标明规范或功能
  • ✅ 分支不存在重复 PR
  • ✅ PR 已指派给创建者
  • ✅ 已向用户返回 PR URL
  • ✅ PR 已准备好供审核(不处于草稿状态)

约束和警告

⚠️ 重要:

  • 创建 PR 需要对仓库具有写入权限
  • 创建 PR 前,目标分支必须已存在
  • 模板文件必须位于 .github/pull_request_template.md
  • 没有有效的目标分支时,无法创建 PR
  • 系统会检测并拒绝重复的 PR
  • 分配 PR 时必须指定有效的 GitHub 用户

🚫 限制:

  • 不会自动进行代码审查
  • 不会触发 CI/CD 流水线
  • 不会自动合并 PR
  • 无法修改现有代码,只能修改 PR 元数据

最佳实践

  1. 创建前先核实 - 将规范转换为 PR 前,务必先审查规范
  2. 使用描述性标题 - PR 标题应清晰说明功能或修复的目的
  3. 填写完整模板 - 确保填写模板中的所有必填部分
  4. 关联相关问题 - 在 PR 正文中加入问题引用
  5. 先进行测试 - 创建 PR 前,确保所有测试通过
  6. 团队审查 - 将 PR 标记为准备好接受审查前,先取得团队批准
  7. 保持 Git 历史整洁 - 确保提交记录清晰且有完善的文档

使用的工具

  • search - 分析规范模板要求
  • create_pull_request - 以草稿模式创建新的 PR
  • get_pull_request - 创建前检查是否存在现有 PR
  • get_pull_request_diff - 分析 PR 变更
  • update_pull_request - 更新 PR 标题、正文和状态
  • update_issue - 将 PR 分配给创建者
  • get_me - 获取当前用户信息

评论

支持 Markdown