create-prlisted
Install: claude install-skill fitlab-ai/agent-infra
# 创建 Pull Request
创建 Pull Request,并在与任务关联时立即补齐核心元数据和 reviewer 摘要。
## 行为边界 / 关键规则
版本戳规则:创建或更新 `task.md` frontmatter 时,先读取 `.agents/rules/version-stamp.md`,并写入或刷新 `agent_infra_version`。
## 执行流程
### 前置门控:项目级 PR 流程检查
**门控读取(项目级 PR 流程策略)**:在执行编号步骤前,读取 `.agents/.airc.json` 的 `requiresPullRequest` 字段;当字段缺失或为 `true` 时视为「启用 PR 流程」(默认),仅当显式为 `false` 时视为「关闭 PR 流程」。
按读取结果分支:
- 缺失 / `true` → 继续到下方第 1 步
- 显式 `false` → 输出以下消息后**立即停止**,不要执行任何后续编号步骤、不要触发任何 PR 创建命令、不要修改 `task.md` 的 `pr_number`、不要发布 PR 摘要评论:
```
当前项目未启用 PR 流程(`.agents/.airc.json` 中 `requiresPullRequest: false`)。
无需创建 Pull Request,请直接运行:
- Claude Code / OpenCode:/complete-task {task-id}
- Gemini CLI:/agent-infra:complete-task {task-id}
- Codex CLI:$complete-task {task-id}
```
### 1. 解析命令参数
从命令参数中识别:
- 匹配 `TASK-{yyyyMMdd-HHmmss}` 格式的参数 -> `{task-id}`
- 其余参数 -> `{target-branch}`
如果提供了 `{task-id}`,读取 `.agents/workspace/active/{task-id}/task.md` 获取任务信息(例如 `issue_number`、`type` 等)。
如果未提供,可从当前 session 上下文获取;仍无法确定 `{task-id}` 时,后续步骤中的任务关联逻辑跳过。
### 2. 确定目标分支
如果用户显式提供参数就直接使用;否则根据 Git 历史和分支拓扑自动推断。
> 详细分支判断规则见 `reference/branch-strategy.md`。自动推断 base 分支前,先读取 `reference/branch-strategy.md`。
### 3. 准备 PR 正文
通过 `.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`。
### 4. 检查远程分支状态
确认当前分支是否已有 upstream;必要时执行 `git push -u origin <current-branch>`。
##