stamatios
← Voltar ao feed
Pull requests empilhados organizam contribuições de IA no GitHub
Dev & Engenharia

Pull requests empilhados organizam contribuições de IA no GitHub

resumo de ~3 min

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 base
  • gh stack add - adiciona uma nova camada
  • gh stack push / gh stack submit - envia e cria os PRs no GitHub
  • gh stack rebase - faz rebase em cascata após mudanças na base
  • gh 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.