
Pull requests empilhados organizam contribuições de IA no GitHub
O blog oficial do GitHub publicou um guia sobre como usar stacked pull requests (PRs empilhados) para lidar com um problema crescente: agentes de código gerando PRs gigantes, impossíveis de revisar.
O problema
Quando um agente de código implementa uma feature completa, o resultado típico é um único PR com mais de 1.000 linhas de diff - modelo de dados, API, lógica de cliente e UI tudo junto. Isso torna a revisão superficial, o feedback demora e o merge se arrasta. A alternativa tradicional (dividir manualmente em PRs menores) funciona, mas exige sincronização manual e gera conflitos constantes.
A solução: stacked pull requests
O GitHub agora oferece suporte nativo a PRs empilhados. A ideia é decompor a feature em camadas logicamente ordenadas, cada uma com escopo único e pequena o suficiente para ser revisada de forma independente.
No exemplo do artigo (adicionar busca de produtos a um assistente de compras), a feature é dividida em quatro camadas:
- L1 (feat/catalog-data): modelo de dados com seed, validação e módulo de acesso
- L2 (feat/search-api): endpoint /api/products/search validado
- L3 (feat/chat-grounding): chat consome a API e responde com dados reais
- L4 (feat/grounded-ui): cards de produto com estados de loading, vazio e erro
Cada camada depende da anterior, formando uma cadeia. Diferentes revisores podem ser alocados por camada (dono de dados revisa L1, dono de UI revisa L4).
Ferramentas
O fluxo é gerenciado pela extensão CLI gh-stack:
gh stack init- cria a pilha e define a basegh stack add- adiciona uma nova camadagh stack push/gh stack submit- envia e cria os PRs no GitHubgh stack rebase- faz rebase em cascata após mudanças na basegh stack sync- propaga alterações para todas as camadas acima
Para agentes, existe o comando gh skill install github/gh-stack, que ensina os agentes a trabalhar com stacks.
Fluxo de revisão
O revisor lê de cima para baixo (para entender o objetivo final) e revisa de baixo para cima (camada por camada). Quando uma mudança é feita na base da pilha, o GitHub sinaliza que as camadas superiores precisam de rebase. O artigo alerta que o botão de rebase na interface web reseta o committer e não assina commits - o caminho mais seguro é usar gh stack rebase no terminal.
Integração com agentes
O artigo mostra como atribuir agentes especializados a cada camada (data modeler, backend, frontend), mantendo disciplina de escopo e permitindo revisão humana direcionada por camada.