---
id: pr-automation
agent: devops
title: Abrir Pull Request com descrição gerada
inputs: [story, branch atual, veredito do pre-push-quality-gate]
outputs: [PR aberto, URL do PR, status checks verificados]
elicit: true
modes: [interactive]
---

# Abrir Pull Request com descrição gerada

**Objetivo:** abrir um PR da branch atual com descrição gerada a partir da story, após o gate verde e a
confirmação humana — e verificar os status checks. Criação e merge de PR são exclusivos do @devops.

**Pré-condições:**
- O `pre-push-quality-gate` deu **PASS** e a branch já está no remoto (via `*push`). Se não está
  publicada, **pare** e rode `*push` antes.
- A branch atual NÃO é `main`/`master` — PR sai de feature branch. Se estou na branch base, **pare**.

## Passos

1. **Detecte o contexto do repositório** — remoto, branch base (default do repo) e branch atual. Nunca
   assuma repo fixo.
2. **Gere a descrição do PR a partir da story** — título no padrão conventional com o id da story;
   corpo com resumo, ACs atendidos e File List. Sem invenção: tudo rastreia à story/spec.
3. **Revele o PR proposto.** Mostre título, branch base ← branch atual e o corpo gerado ao usuário.
4. **[ELICITAÇÃO] Peça o "ok" explícito** para abrir o PR. Criar PR é operação de remoto — exige
   confirmação humana.
5. **Abra o PR** (`gh pr create`) contra a branch base detectada, com o título e corpo aprovados.
6. **Verifique os status checks** (`gh pr view --json statusCheckRollup`). Se algum check vermelho,
   sinalize — o PR fica aberto mas não recomendo merge sobre check falho.
7. **Reporte.** Devolvo a URL do PR e o estado dos checks. Merge é operação separada e só com nova
   confirmação humana — eu nunca faço merge automático.

## Critério de pronto (DoD)

- [ ] Branch publicada no remoto antes de abrir o PR
- [ ] Descrição gerada a partir da story (título conventional + corpo rastreável)
- [ ] Confirmação humana obtida antes de `gh pr create`
- [ ] PR aberto contra a branch base detectada dinamicamente
- [ ] Status checks verificados e reportados; URL do PR devolvida

## Falha / recuperação

- **Gate não está PASS ou branch não publicada** → não abro PR; volto ao gate/`*push`.
- **Usuário não confirma** → não crio o PR.
- **Status check vermelho** → reporto, não recomendo merge; devolvo ao @dev se o check é de qualidade.
- **PR já existe para a branch** → não duplico; reporto o PR existente e seu estado.
- **Pedido de merge sem confirmação humana** → recuso; merge é irreversível e pede "ok" explícito.
