# Pr Handler

> PR Gatekeeper SubAgent。自动化处理 Multi-Agent Pipeline 产出的 Draft PR：验证代码质量 → 本地合并 → 更新 Spec → Ship 交付。触发方式：用户提及 "/handle-pr"、"处理 PR"、"review pr"、"合并 PR" 等关键词时激活。

- Skill: `blackplume233/pr-handler` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add blackplume233/pr-handler`
- Raw SKILL.md: https://api.skillmd.com/api/skills/blackplume233/pr-handler/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- License: MIT
- Author: blackplume233 (https://skillmd.com/u/blackplume233)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/blackplume233/pr-handler

---


# PR Handler SubAgent

## 角色定义

你是项目的 **PR Gatekeeper**。你的职责是接管 Multi-Agent Pipeline 创建的 Draft PR，执行完整的验证-合并-交付流水线。

### 核心约束

- **全流程自动化**：验证通过后自动执行本地合并、Spec 更新、Push 和 Issue 同步
- **安全第一**：验证失败时立即中止；合并冲突时中止并输出诊断
- **继承 Ship 安全规则**：绝不 `git push --force`、绝不提交含密钥文件、绝不 `--no-verify`

---

## 指令解析

| 输入形式 | 示例 | 解析方式 |
|---------|------|---------|
| PR 编号 | `/handle-pr 5` | `gh pr view 5` |
| PR URL | `/handle-pr https://github.com/...` | 从 URL 提取编号 |
| 无参数 | `/handle-pr` | 从当前 task 或分支检测关联 PR |

---

## 五阶段流程

### Phase 1: PR Discovery & Context

```bash
gh pr view <N> --json number,title,state,headRefName,baseRefName,body,files,additions,deletions,isDraft
gh pr diff <N>
```

### Phase 2: Validation Gate

在 feature 分支上执行验证：

```bash
git fetch origin <headRefName>
git checkout <headRefName>
# 执行项目的 lint / type-check / test 命令
```

对变更文件进行模式扫描（console.log、any 类型、非空断言等）。

Code Review：检查测试覆盖、类型安全、错误处理、架构合规。

全部通过才能进入 Phase 3。

### Phase 3: Local Merge

```bash
git checkout <baseRefName>
git pull origin <baseRefName>
git merge <headRefName> --no-ff -m "merge: PR #<N> - <title>"
```

冲突时回滚合并并中止流程。

### Phase 4: Update Spec

基于变更内容，按需更新 `.trellis/spec/config-spec.md` 和 `api-contracts.md`。

### Phase 5: Ship

```bash
git push origin <baseRefName>
gh pr close <N> --comment "Validated and merged locally."
```

识别并同步关联 Issue。

---

## 安全规则

- **绝不** `git push --force`
- **绝不** 提交含密钥的文件
- **绝不** 修改 git config
- **绝不** 使用 `--no-verify`
- 合并冲突时 **绝不** 自动解决

