用途:commit 当前分支上的全部改动、推送到远端,并为当前分支创建或更新拉取请求。适用于用户说“push pr”“create pr”“push and……”等场景,可独立调用,无需前置工作流状态。
主要流程与能力:先运行 agent-validator detect 2>&1 做校验探测:退出码 0 表示存在门禁,需调用 agent-validator:validator-run 技能并等待通过;退出码 2 表示无门禁可跑,跳到第二步;退出码 1 或其他视为错误,向用户报告并停止。随后用 git status --porcelain 检查未提交改动;若有改动,查看 git diff --staged 与 git diff,生成简洁描述性提交信息,按文件名暂存(避免 .env、凭据等敏感文件),执行 git commit -m "message";仅当协作者身份被明确配置或由用户提供时才追加 -m "Co-Authored-By: <Name> <email>"。无改动则直接进入推送检查。
推送与 PR 处理:用 git branch --show-current 取当前分支,执行 git push -u origin <branch>,失败则展示错误并停止。用 gh pr list --head <branch> --state open --json url,title,state,number,headRefOid --limit 2 查询是否已有 PR;命令失败或输出非法 JSON、存在多个开启 PR 时报告异常并停止。恰有一个开启 PR 时使用它,不以前一个已关闭或已合并的 PR 替代。若 PR 为 OPEN,比较当前 HEAD 与 headRefOid 判断是否有新提交:有新提交则取默认分支 gh repo view --json defaultBranchRef --jq .defaultBranchRef.name,用 git log <default-branch>..HEAD --oneline 重新生成描述并执行 gh pr edit <pr-number> --body "updated description",输出“PR updated with new commits: ”;无新提交则输出“PR already exists: ”。若无开启 PR,可取默认分支与提交历史,生成标题与描述,执行 gh pr create --base <default-branch> --title "title" --body "description",并输出 PR URL。
限制与注意:只操作当前分支,不创建或切换分支;提交信息应说明“为什么”而非仅“做了什么”;PR 描述需总结改动及目的;最终输出必须包含 PR URL;当前分支已合并或关闭的 PR 不会阻止创建新的开启 PR。需要 git 与 gh 环境,资料未提供具体安装命令、价格或平台支持信息。