关于 make-pr
make-pr 是一项根据锁定的 Git 差异创建或更新 PR 的技能,面向开发者。它涵盖发布前检查、可追溯的 PR 文案、推送及远程状态核验。
主要功能
- 01检查分支与 PR 状态
- 02根据差异拟定标题和正文
- 03推送并创建或更新 PR
- 04对照记录核验远程状态
适用场景
- 01检查分支状态后创建 PR
- 02更新现有 PR 并保留其设置
- 03差异或上游状态变化时阻止发布
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ prathamdby/ skills --skill make-pr安装后在 Claude Code 中输入/make-pr确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
REFERENCE.mdreferences/body-hygiene.mdviews.md详细介绍
创建 PR
选项
默认值:目标分支为 main、不关联工单/议题、标题采用祈使句式的句首字母大写格式、非草稿
创建。“Target ”用于选择目标分支;“draft PR”用于创建草稿。
除非用户明确要求转换,否则更新时保留现有草稿状态。“Ticket ” / “prefix []”仅提供该确切前缀。
“Issue N” / “fixes #N” / “closes #N”授权每个议题添加一个 Closes #N。
议题 URL 仅从 /issues/N 提取 N;PR URL 不会。单独的 #N、缺失值或冲突选项都会阻止操作。不得从其他上下文推断工单/议题。
“Conventional title”会加载 ../commit/REFERENCE.md 中的格式和拒绝规则;请先确认该依赖存在。
1. 预检
确定分支、目标、状态、上游和开放的 PR。使用已配置的推送远程或 origin;比较前先获取。
遇到分离 HEAD、目标与当前分支相同、目标缺失、获取失败、上游落后/分叉、
工作区有改动/未跟踪文件、存在多个开放的 PR,或已有 PR 的目标分支不同,则阻止操作。
忽略已关闭的 PR。记录
branch/base | remote | diff hash | PR | draft | title/body/depth | mutation | terminal。
完成条件:分支干净、目标分支已确定,且已知要创建还是更新。
2. 根据锁定的差异起草
仅读取并哈希 git diff <target>...HEAD;为空 → NO_CHANGES。
默认标题采用祈使句式的句首字母大写格式,最多 60 个字符,不含类型或句号。
Conventional 标题遵循 50 个字符的限制。明确指定的工单前缀不受长度限制,也不会被工单拒绝规则拦截,但不能作为工单声明属实的证明。
对于非空差异,应用 REFERENCE.md 中的正文、深度和风格规则。
只有在主题需要围栏视图时才使用 references/views.md。
追溯标题中的每个短语、正文中的每一行、说明文字和视觉标签,确保其对应差异块;
只有明确授权的 Closes 页脚可免于此要求。
完成条件:格式、深度、确切的议题集合和无上下文追溯检查均通过。
3. 发布
重新检查状态和差异哈希;若有变动,则返回预检。正常推送缺失/超前的上游,绝不强制推送;获取并确认上游等于本地 HEAD。 创建时明确指定目标分支/源分支和所需的草稿状态,或更新内容,同时保留草稿状态、审核者、标签、指派人员和项目。只有明确要求转换草稿状态时,才可更改该状态。 记录每项成功的变更;若操作中断,应重新预检,而不是重复已成功的推送/创建。在工作开始时,如有主机的 PR 链接工具,则用其登记 URL,包括已有 PR。 完成条件:已有 PR URL 或已捕获的变更错误。
4. 回读
对照记录验证 URL、目标分支/源分支、标题/正文、草稿状态和保留字段。
若 API 返回结果不完整或非正文内容不匹配,允许回读后重试一次变更;之后以字段差异标记为 BLOCKED。对于追加的正文或页脚,应用 references/body-hygiene.md。
确认正文包含三个标题、Why 部分为一个句子、Special 边界,以及确切的 Closes 集合。认证/速率限制/获取/推送/平台错误均会阻止操作。
只有在匹配后才报告创建/更新、推送、URL、深度、正文剥离和追溯结果。
完成条件:远程状态与记录一致。
终态:SUCCESS、NO_CHANGES、BLOCKED。此流程不执行提交、强制推送、重新打开已关闭的 PR、构建或测试。