with one click
create-pr
创建 Pull Request 到目标分支。 当变更已提交、需要发起 Pull Request 评审时使用。
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
创建 Pull Request 到目标分支。 当变更已提交、需要发起 Pull Request 评审时使用。
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
| name | create-pr |
| description | 创建 Pull Request 到目标分支。 当变更已提交、需要发起 Pull Request 评审时使用。 |
创建 Pull Request,并在与任务关联时立即补齐核心元数据和 reviewer 摘要。
版本戳规则:创建或更新 task.md frontmatter 时,先读取 .agents/rules/version-stamp.md,并写入或刷新 agent_infra_version。
如果
{task-id}入参匹配^[#]?[0-9]+$(裸数字或带#前缀),先读取.agents/rules/task-short-id.md的「SKILL 入参解析」段执行解析;后续命令视{task-id}为解析后的全长TASK-YYYYMMDD-HHMMSS形式。
通过前置门控、确认前置条件后、本步骤第一个产出动作之前,向 task.md ## 活动日志 追加一条 started 标记(与本步骤 done 条目同基名 + [started] 后缀,note 用 started)。仅当存在关联 {task-id} / task.md 时写入:
- {YYYY-MM-DD HH:mm:ss±HH:MM} — **Create PR [started]** by {agent} — started
ai task log 会把它与完成时写入的 done 条目配对成一行(进行中 → 已完成)。约定见 .agents/rules/task-management.md 的「Activity Log started / done 双标记约定」。
门控读取(项目级 PR 流程策略):在执行编号步骤前,读取 .agents/.airc.json 的 prFlow 字段(三态:字段缺省 = 默认推荐 PR、允许跳过;"required" = 强制 PR;"disabled" = 强制无 PR)。
按读取结果分支:
"required" → 继续到下方第 1 步"disabled" → 输出以下消息后立即停止,不要执行任何后续编号步骤、不要触发任何 PR 创建命令、不要修改 task.md 的 pr_number / pr_status、不要发布 PR 摘要评论:当前项目未启用 PR 流程(`.agents/.airc.json` 中 `prFlow: "disabled"`)。
无需创建 Pull Request,请直接运行:
- Claude Code / OpenCode:/complete-task {task-ref}
- Gemini CLI:/agent-infra:complete-task {task-ref}
- Codex CLI:$complete-task {task-ref}
从命令参数中识别:
TASK-{yyyyMMdd-HHmmss} 格式的参数 -> {task-id}{target-branch}如果提供了 {task-id},读取 .agents/workspace/active/{task-id}/task.md 获取任务信息(例如 issue_number、type 等)。
如果未提供,可从当前 session 上下文获取;仍无法确定 {task-id} 时,后续步骤中的任务关联逻辑跳过。
如果用户显式提供参数就直接使用;否则根据 Git 历史和分支拓扑自动推断。
详细分支判断规则见
reference/branch-strategy.md。自动推断 base 分支前,先读取reference/branch-strategy.md。
通过 .agents/rules/issue-pr-commands.md 读取 PR 模板,参考最近合并的 PR 风格,并收集 <target-branch> 到 HEAD 的全部提交。
模板处理、HEREDOC 正文生成和
Generated with AI assistance要求见reference/pr-body-template.md。编写正文前先读取reference/pr-body-template.md。
确认当前分支是否已有 upstream;必要时执行 git push -u origin <current-branch>。
先检查当前分支是否已经存在 PR;如果已存在,直接告知用户 PR URL 并结束,不要重复执行元数据同步或摘要发布。
执行前先读取 .agents/rules/issue-pr-commands.md,并按其中的前置步骤完成认证和代码托管平台检测;随后按其中的 “创建 PR” 命令创建 PR。
如果获取到 {task-id} 且对应任务提供了 issue_number,必须在 PR 正文中保留 Closes #{issue-number}。
对获取到 {task-id} 的 PR,立即同步这些核心元数据:
.agents/rules/issue-pr-commands.md 查询标准 label / Issue / PR 元数据.agents/rules/issue-pr-commands.md 的 PR 更新命令和权限降级规则处理 type labelin: labels 复制到 PR(不重新计算,不反向更新 Issue).agents/rules/milestone-inference.md 的「阶段 3:create-pr」及其权限规则复用 Issue milestoneCloses #{issue-number} 保持 Development 关联读取最新的上下文产物:plan.md / plan-r{N}.md、review-plan.md / review-plan-r{N}.md、code.md / code-r{N}.md、review-code.md / review-code-r{N}.md(存在时)。
基于这些产物聚合 reviewer 摘要,并使用隐藏标记维护唯一且幂等的摘要评论。
隐藏标记、幂等 summary 评论更新、review history 格式,以及评论创建/更新规则见
reference/comment-publish.md(其内联引用.agents/rules/pr-sync.md)。发布摘要前先读取reference/comment-publish.md。Shell 安全规则(发布评论前必读):
{comment-body}必须替换为实际的内联文本。先读取文件,再将全文粘贴到 heredoc body 中。禁止在<<'EOF'内部使用$(cat ...)、$(< ...)、$(...)、${...}。- 构造含
<!-- -->的字符串时,禁止使用echo。统一使用cat <<'EOF'heredoc 或printf '%s\n'构造。- 同样的安全约束已在
.agents/rules/pr-sync.md中重述,调用该 rule 后无需重复补充另一份模板规则。
获取当前时间:
date "+%Y-%m-%d %H:%M:%S%z" | sed 's/\([+-][0-9][0-9]\)\([0-9][0-9]\)$/\1:\2/'
如果获取到了 {task-id},更新 task.md 的 pr_number、pr_status(设为 created)、updated_at、agent_infra_version,并追加 Create PR 的 Activity Log,记录元数据同步和摘要发布结果。
如果本次操作关联了 {task-id},运行完成校验,确认任务元数据和同步状态符合规范;如果没有任务上下文,跳过本步骤。
node .agents/scripts/validate-artifact.js gate create-pr .agents/workspace/active/{task-id} --format text
处理结果:
将校验输出保留在回复中作为当次验证输出。没有当次校验输出,不得声明完成。
仅在校验通过后执行本步骤。
重要:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果
.agents/.airc.json中配置了自定义 TUI(customTUIs),读取每个工具的name和invoke,按同样格式补充对应命令行(${skillName}替换为技能名,${projectName}替换为项目名)。 渲染最终输出前,先读取.agents/rules/next-step-output.md并落实其两类规则:(1) 「下一步」命令把{task-ref}渲染为短号#NN(未分配/已释放时回退完整 TASK-id);(2) 在面向用户输出的绝对最后一行追加Completed at收尾行(成功、错误、早退等任何面向用户输出都适用,不限于校验通过的成功态)。
说明 PR URL、元数据同步结果、摘要评论结果,并推荐下一步进入 PR 监控(按 .agents/rules/next-step-output.md 把 {task-ref} 渲染为短号 #NN):
下一步 - 监控 PR 检查(required checks 全绿前自动自愈):
- Claude Code / OpenCode:/watch-pr {task-ref}
- Gemini CLI:/agent-infra:watch-pr {task-ref}
- Codex CLI:$watch-pr {task-ref}
或者,若想跳过 CI 监控、直接归档任务,改用 complete-task:
下一步(备选)- 跳过监控、直接归档任务:
- Claude Code / OpenCode:/complete-task {task-ref}
- Gemini CLI:/agent-infra:complete-task {task-ref}
- Codex CLI:$complete-task {task-ref}
watch-pr 为主路径,全绿后会再引导 complete-task {task-ref};上面的 complete-task 备选块仅用于跳过 CI 监控、直接归档——两者并不等价。
create-pr 不能把 type label 映射委托给其他技能,必须在获取到 {task-id} 时于本技能内内联处理.agents/rules/pr-sync.md 中定义的 PR 摘要评论标记,以兼容已有 PR 评论{target} 与 HEAD 之间没有可提交内容git pull --rebase{task-id}:调用 node .agents/scripts/workflow-warnings.js add .agents/workspace/active/{task-id} --step create-pr --severity ACTION_REQUIRED --code PR_CREATE_FAILED --target pr --message "{reason}" --action "修复推送、权限或平台问题后重跑 create-pr",不写 pr_number{task-id}:按 .agents/rules/pr-sync.md 记录 COMMENT_SYNC_FAILED 告警,不回滚已创建 PR标记任务为阻塞状态并记录原因。 当任务因外部阻塞无法推进、需要挂起并记录原因时使用。
取消不再需要的任务并转移。 当某个任务不再需要、应从 active 工作中撤下时使用。
关闭 Code Scanning 告警并记录理由。 当某条 Code Scanning 告警已处理或需按理由关闭时使用。
关闭 Dependabot 安全告警并记录理由。 当某条 Dependabot 安全告警已处理或需按理由关闭时使用。
标记任务完成并归档。 当任务工作已完成并验证、需要收尾归档时使用。
从平台 Issue 评论还原本地任务文件。 当本地任务文件缺失、需要从平台 Issue 评论还原时使用。