关于 submit-pr
用于根据当前 checkout 中已提交的变更规划、创建或复用 GitHub Pull Request 的 Skill。它支持只读预览、默认交付和 Draft 模式,并检查变更范围及远程 PR 状态。
主要功能
- 01只读规划并预览 PR
- 02创建或复用 GitHub PR
- 03Draft PR 交付模式
- 04验证提交与文件范围
- 05交付后核实远程 PR 信息
适用场景
- 01不写入仓库地预览 PR
- 02根据已提交的任务变更创建 PR
- 03创建 Draft PR 并验证远程状态
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ tisfeng/ skills --skill submit-pr安装后在 Claude Code 中输入/submit-pr确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlassets/pull_request_template.mdreferences/workflow.mdscripts/submit_pr.pytests/test_submit_pr.py详细介绍
来自项目 README提交 GitHub PR
根据当前 Git checkout 的已提交变更,规划、创建或复用 GitHub Pull Request。
<submit-pr-skill-dir> 指实际加载的本 Skill 目录。
PR 正文只使用 Skill 自带的 固定模板;不发现、读取或合并目标
仓库的 GitHub PR 模板。
模式与授权
plan:只读发现仓库拓扑,预览提交范围、标题、正文、base、head 和 push remote; 不 fetch、创建分支、写仓库文件、push 或创建 PR。- 默认:在明确的 PR 交付授权下,fetch 精确 base、推送任务分支、创建或复用正式 PR, 并验证最终远程状态。
draft:与默认模式相同,但创建 Draft PR。
用户未指定时使用默认模式。用户的只读、确认、暂缓和范围限制持续有效。
分支命名依赖完整的 git-commit 技能,须同级安装;命名只使用其
统一规范与工具,不触发提交流程。
只有需要把既有 staged 内容创建为提交时才执行 git-commit 的提交流程。
依赖缺失时可报告已知事实,但在 Git 写入前停止,不复制或另拟规则。
主流程
- 读取 工作流契约,确定英文标题、正文语言、固定正文、Issue 策略、repository 拓扑、base/head 分支与恢复规则。
- 记录 HEAD、当前分支和 staged、unstaged、untracked 边界。若 checkout 处于 detached 状态:
- 根据统一命名规范获取用户明确名称或生成任务候选。
- 使用统一命名工具的
validate校验字面名称,并在本轮preflight、plan与apply都 显式传入--head-branch;调用 Agent 不在 helper 之外创建或切换分支。
- 在创建 staged 提交、fetch 或 apply 前运行 helper
preflight,使用本轮相同的拓扑参数与--head-branch。它只读解析目标 base 和 GitHub default branch。当前分支名与任一分支相同时, 停止并提示用户新建、切换到任务分支后重新运行;即使指定了不同的--head-branch也不得继续。 调用 Agent 不自动创建或切换分支、不在保护分支上提交。已有提交会随新分支保留,无需重复创建 相同提交。显式 head 名称与 base/default 同名时也停止,包括 head 来自 fork 的情况。 plan模式运行 helperplan并展示完整 PR 预览。该模式不 fetch、创建分支、写仓库文件、push 或创建 PR。缺少提交或 cached base 时报告预览缺口,不为使 plan 成功而写入。- 默认或
draft模式要求工作树可安全交付:- 存在 unstaged 或 untracked 内容时停止,不运行
git add。 - 仅 staged 非空时,按宿主交付规则使用
git-commit;工作树干净时复用已有提交。 - 精确 fetch base ref,检查完整
<base-remote>/<base>..HEAD提交与文件范围。 范围为空、来源不明或 HEAD 未包含 base 时停止,不自动修正历史。
- 存在 unstaged 或 untracked 内容时停止,不运行
- 根据真实范围起草 Context、Changes 和 Verification;不读取目标仓库中的
pull_request_template文件或目录。运行 helperplan并展示语言来源和完整预览。 默认模式继续;用户要求确认或暂缓时先停止。 - 使用相同内容运行 helper
apply;draft追加--draft。helper 重新发现并校验本地/远程状态, 精确 push,创建或复用 PR,然后读回验证身份、head SHA、title、body 和 Draft 状态。 - 报告 PR URL、base/head repository 与 branch、head SHA、Draft、分支/push/PR 动作和截图提醒。
本轮创建提交时同时保留
git-commit的完整回执。
安全、完成与停止
- 只支持 GitHub remote;拓扑有歧义时要求显式参数,不创建 fork。
- 不 force push,不 rebase、merge、reset、stash、删除 remote/分支,不切换 checkout 或推送保护分支。
- detached checkout 只在 helper
apply内从冻结 HEAD 创建或复用命名分支 ref;plan不创建 ref,apply后 checkout 仍保持 detached。 - 不自动添加 reviewer、label、milestone 或 project,不 merge PR、评论或关闭 Issue。
- 只有 helper
apply返回成功且pr_verification.status == "passed"时才声称 PR 交付完成。 默认不等待 CI;仅在用户或宿主规则要求时查询或等待 checks。 - 远程实体或已有 PR 与冻结计划不匹配、范围/身份漂移、授权被拒或写后验证失败时, 保留已完成动作并停止;不覆盖维护者编辑、创建第二个 PR 或重复已成功的远程写入。
评论
支持 Markdown