with one click
ce-pr
创建 PR 并询问是否合并到主分支
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
创建 PR 并询问是否合并到主分支
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Fork Overlay:Task Bundle 持久化 + Failure FSM 集成。在 ce:work 基础上增加 state.md 读写和状态机转换。使用时机:执行 ce:work 时,如果任务有对应的 Task Bundle(docs/tasks/<id>/),加载此 skill 以启用持久化和状态追踪。
Fork Overlay:Codex-first 外部执行器策略。按任务特征路由到 Claude 或 Codex,Codex-first(非品牌路由)。使用时机:需要决定是否将当前任务派发给 Codex 时加载此 skill。
Fork Overlay:经验分层沉淀升级阶梯。检测是否值得将 solution 升级为 pattern 或 skill。使用时机:ce:compound 完成后手动调用,分析 docs/solutions/ 中的重复模式。(不会自动触发,需主动加载此 skill)
Fork Overlay:外部模型调用前置检查门控。调用 Codex/Gemini 之前运行五项检查,防止调用失败浪费时间。使用时机:任何调用外部模型(Codex [C]、Gemini [G])之前自动运行。
Fork Overlay:ce:work 意图分类门控。在执行前识别任务意图(实现/修复/重构/探索),设定对应的执行策略。使用时机:ce:work Phase 0(环境扫描)之后、Phase 1(Quick Start)之前。
Fork Overlay:Codex Patch Approval 咨询版。当 Codex 返回 patch 时,Claude 审批后才写入文件。使用时机:Codex 以 patch/diff 格式返回代码变更时,由 Claude 作为审批层。
| name | ce:pr |
| description | 创建 PR 并询问是否合并到主分支 |
| argument-hint | [--draft=草稿PR] [--no-merge=仅创建不合并] |
创建 Pull Request 并可选合并到主分支。可在 /ce:work 或 /ce:review 完成后自动触发,也可独立使用。
开始时解析用户参数:
--draft:创建 draft PR--no-merge:创建或定位 PR 后直接结束,不进入合并询问移除已识别参数后,其余内容可作为 PR 标题/描述的额外上下文。
current_branch=$(git branch --show-current)
如果 current_branch 为空(detached HEAD): → 提示用户:"当前处于 detached HEAD 状态,请先切换到功能分支。" → 终止流程
git symbolic-ref refs/remotes/origin/HEAD
如果输出形如 refs/remotes/origin/main,去掉 refs/remotes/origin/ 前缀作为 default_branch。
如果命令失败或输出为空,执行:
git rev-parse --verify origin/main
如果命令成功,使用 main 作为 default_branch;如果失败,使用 master。
如果 current_branch == default_branch:
→ 提示:"当前在主分支 ($default_branch) 上,无法创建 PR。请先切换到功能分支。"
→ 终止流程
git status --porcelain
如果有未提交的更改: → 使用 AskUserQuestion tool 询问:
Question: "检测到未提交的更改。如何处理?"
Options:
Based on selection:
git status --porcelain,按相关变更列出具体文件,使用 git add <file...> 暂存确认后的文件,再执行 git commit -m "feat: [auto-generated message]"existing_pr=$(gh pr list --head "$current_branch" --json number,url --jq '.[0]')
如果已有 PR:
→ 如果 --no-merge 参数存在,显示已有 PR URL 后结束流程。
→ 否则使用 AskUserQuestion tool 询问:
Question: "当前分支已有 PR: $existing_pr_url。如何处理?"
Options:
Based on selection:
gh pr view --webgit ls-remote --exit-code origin "$current_branch"
如果命令失败,执行:
git push -u origin "$current_branch"
如果命令成功,执行:
git push
pr_title=$(echo "$current_branch" | sed 's|/|: |; s|-| |g')
commit_title=$(git log "$default_branch".."$current_branch" --format="%s" --reverse | head -1)
选择更有意义的标题(优先使用 commit 摘要)。
commits=$(git log "$default_branch".."$current_branch" --format="- %s" --reverse)
diff_stat=$(git diff "$default_branch"..."$current_branch" --stat)
gh pr create --title "$pr_title" --body "$pr_body" --base "$default_branch"
如果 --draft 参数存在,执行:
gh pr create --draft --title "$pr_title" --body "$pr_body" --base "$default_branch"
如果 --no-merge 参数存在,显示 PR URL 后结束流程。
使用 AskUserQuestion tool 呈现选项:
Question: "PR 已创建: $pr_url。下一步?"
Options:
Based on selection:
gh pr merge --merge --delete-branch,成功后执行 git checkout "$default_branch",再执行 git pullgh pr view --web,然后再次询问是否合并