O que Redator de Descrição de PR faz?
Leia o diff do branch atual e escreva uma descrição completa de pull request do GitHub. Crie ou atualize o PR com um único comando.
Estilo de Escrita
Aplicar a todas as descrições de PR geradas:
- Voz ativa. "Adiciona X" não "X foi adicionado."
- Presente para resumo ("Adiciona camada de cache"), passado para contexto ("A abordagem antiga causava N requisições por renderização")
- Frases curtas, uma ideia por bullet point
- Sem travessões — use vírgula ou ponto final
- Sem palavras de preenchimento: "este PR", "este commit", "conforme a discussão"
- Especificidades vencem generalidades: "reduz latência p95 de 800ms para 90ms" vence "melhora desempenho"
Etapa 1: Verificar Configuração
Confirme que o gh está autenticado:
gh auth status
Se não estiver autenticado: gh auth login e siga as instruções.
Confirme que o diretório atual é um repositório git com um branch ativo:
git branch --show-current
Se estiver em detached HEAD ou sem branch, pare e pergunte ao usuário qual branch ele deseja descrever.
Etapa 2: Coletar Contexto do Diff
Execute os três comandos para construir contexto:
Resumo de arquivos (o que mudou):
git diff main...HEAD --stat
Mensagens de commit (por que mudou):
git log main...HEAD --oneline
Diff completo (como mudou):
Use origin/main primeiro (sempre atualizado), fallback para main local e depois master:
if git rev-parse origin/main &>/dev/null 2>&1; then
BASE=origin/main
elif git rev-parse main &>/dev/null 2>&1; then
BASE=main
else
BASE=master
fi
git diff $BASE...HEAD
Se o diff for muito grande (mais de 500 linhas), leia apenas o resumo --stat e as mensagens de commit. Leia também as primeiras 200 linhas do diff para entender as principais alterações sem processar toda a saída.
Verifique também se há um PR existente e leia seu título/corpo atual:
gh pr view --json title,body,baseRefName 2>/dev/null
Etapa 3: Ler o Guia de Formatação
Leia references/pr-format-guide.md por completo antes de escrever qualquer coisa. Internalize:
- Seções exigidas e sua ordem
- Como escrever cada seção
- O que incluir vs. omitir
- O formato da seção de testes
Etapa 4: Gerar a Descrição
Escreva a descrição do PR usando o formato de references/pr-format-guide.md.
Regras:
- Cada bullet na seção de Alterações deve ter correspondência no diff
- Não invente etapas de teste que não sejam implícitas pelas alterações de código
- Se uma seção não tiver conteúdo relevante, omita-a completamente (não escreva "N/A" ou deixe vazia)
- Seção de capturas de tela: inclua apenas se houver alterações visíveis de UI no diff
- Se as mensagens de commit explicam o "porquê", use esse contexto no Resumo
Checkpoint de QA: Antes de apresentar, verifique:
- Resumo tem 1-2 frases, voz ativa, sem palavras de preenchimento
- Cada bullet de alteração é específico e tem correspondência no diff
- Nenhuma métrica ou resultado inventado
- Etapas de teste são acionáveis (alguém poderia segui-las)
- Nenhum travessão em nenhuma linha
Etapa 5: Criar ou Atualizar o PR
Apresente a descrição ao usuário e pergunte: "Pronto para criar o PR, atualizar o existente ou apenas exibir?"
Criar um novo PR:
Passe o corpo via stdin para lidar com acentos graves, aspas e quebras de linha com segurança:
gh pr create --title "TITULO_AQUI" --body-file - << 'EOF'
CORPO_AQUI
EOF
Sugira um título baseado nas mensagens de commit e no resumo do diff. O título deve estar no modo imperativo, com menos de 72 caracteres: "Adiciona cache Redis para buscas de sessão de usuário" não "Cache adicionado".
Atualizar um PR existente:
gh pr edit --body-file - << 'EOF'
CORPO_AQUI
EOF
Apenas exibir: Apresente o título e o corpo em um bloco de código para copiar e colar manualmente.
Após criar ou atualizar, confirme: "Descrição do PR atualizada. Veja em: [URL]"