用途:把本地改动整理成针对上游仓库(非本人所有)的规范 PR,处理 fork → 分支 → 提交 → 推送 → 开 PR 全流程;当改动跨越不相关关注点时,拆分为多个 PR。
适用场景:想给无写权限的开源项目贡献;已有本地改动需上游提交;用户要求“fork 该仓库并发 PR”;改动混合(如文档+功能+重构)需合理拆分。
主要能力:识别目标仓库(URL、owner/repo 或 git remote -v,必要时用 gh repo view --json parent 找上游);读取 CONTRIBUTING.md、CODE_OF_CONDUCT.md 与 PR 模板,提取提交信息格式、DCO/CLA、分支命名等约束;用 git status/diff 梳理改动并按关注点、子系统、依赖关系分组;用 AskUserQuestion 提出单 PR 或拆分为 N 个 PR 的方案并等待确认;幂等 fork 并配置 fork remote;按 PR 从最新默认分支建分支、选择性应用文件、按上游风格提交(DCO 时 git commit -s);推送并 gh pr create 开 PR,多 PR 时互相交叉链接;最后输出紧凑结果摘要。
使用方式:依赖 gh CLI 与 git,无 Python 依赖。安装 gh:brew install gh;一次性登录:gh auth login。流程强制按步骤执行且不跳过确认。
限制:不编写代码改动,假定工作区已有目标修改;不审查项目自身 PR;仅支持 GitHub,不支持 GitLab/Gitea 镜像;禁止直接改上游默认分支、禁止推送到上游、禁止在未获明确许可时对已有评审评论的分支强推、禁止绕过钩子或跳过签名、禁止把不相关改动硬塞进一个 PR、禁止编造 PR 正文。拆分建议:改动服务单一结果、diff 小于约 300 行且不超过 5 个文件时倾向单 PR;文档与代码并存、重构+功能、触及不相关子系统、一部分显然正确另一部分需讨论时倾向拆分;不确定时询问用户。