Da ideia
ao deploy.
Um único caminho, sem ambiguidade, desde que uma ideia nasce até rodar em produção: qual documento se escreve em cada etapa, onde vive a tarefa, como o código se move e quem — humano ou agente — revisa o quê.
01POC
É viável? Teste rápido e descartável antes de comprometer o time.
02PRD
Qual problema resolvemos e para quem? Alinhamento de negócio e produto.
03SPEC
Como se constrói tecnicamente? Contrato entre o PRD e o código.
04Gestão
Um único sistema de tarefas: de ideia a tarefa executável, sem duplicar fontes.
05Git flow
Uma issue, uma branch, um PR. Rastreabilidade total do ticket até o commit.
06Agente IA
Primeiro revisor automático: valida cenários, checklist e critérios de aceite.
07Governança IA
Qual ferramenta usar para quê, o que não entra num prompt, e níveis de risco — sem burocracia.
Nenhum código é escrito sem um SPEC, nenhum SPEC existe sem um PRD, e nenhum PRD é aprovado sem validar a ideia com um POC (quando aplicável). Documentar não é burocracia: é a forma como o time — e os agentes de IA que o auxiliam — compartilham o mesmo contexto.
POC
Proof of Concept — teste de viabilidade técnica. Responde a uma única pergunta: isso é possível com o esforço e as ferramentas que temos? Não busca qualidade de produção, busca evidência.
Quando fazer um POC?
- Há incerteza técnica real: uma integração nunca testada (ex. Evolution Go + Odoo), um fornecedor novo, um modelo de IA aplicado a um caso específico.
- O custo de errar no PRD é alto — melhor investir 1–3 dias validando antes de comprometer uma sprint inteira.
- Não é necessário se o padrão já existe em outro projeto do time (ex. outro módulo de loyalty já resolvido no Hipermais).
O que contém
| Campo | Conteúdo |
|---|---|
| Pergunta a validar | Uma única pergunta fechada. "Conseguimos ler o cardápio a partir de imagem com >90% de precisão nos campos-chave?" |
| Escopo | O mínimo para responder a pergunta. Sem UI, sem tratamento de erros completo, sem testes. |
| Prazo limite | Time-boxed: 1 a 3 dias no máximo. Se estourar, é sinal de que o problema é maior do que se pensava. |
| Resultado | Sim / Não / Com condições — e evidência (código, capturas de tela, métricas). |
| Descarte | O código do POC não é mergeado. Vive numa branch spike/ e o aprendizado é documentado no PRD. |
Um POC que não termina com um "sim, é assim que vamos fazer" ou um "não, descartado por X" é um POC mal fechado. A conclusão sempre é documentada, mesmo que o resultado seja negativo.
PRD
Product Requirements Document — o porquê e o quê, em linguagem de negócio. É escrito ou revisado pelo PO, e lido por todo o time antes de tocar em código.
Estrutura padrão
| Seção | Responde |
|---|---|
| Contexto / Problema | Que dor existe hoje? Com dados, se houver. |
| Objetivo | O que muda se isso funcionar? Métrica de sucesso concreta. |
| Usuários / Personas | Quem usa? (cliente final, operador de loja, time de Martech...) |
| Escopo | O que essa versão INCLUI e o que explicitamente NÃO inclui. |
| Histórias de usuário | Formato "Como [papel], quero [ação], para [benefício]". |
| Critérios de aceite | Lista verificável, sem ambiguidade — é o que o Agente revisor e o QA usam para validar. |
| Referências a POC | Se houve POC anterior, link e conclusão. |
| Fora de escopo / riscos | O que se decide adiar e por quê. |
Quem aprova
O PRD é aprovado pelo PO/stakeholder de negócio antes de criar a tarefa de SPEC no sistema de gestão que você usar. Sem aprovação, o SPEC não é gerado — evita retrabalho quando o negócio muda de ideia no meio da implementação.
SPEC
Technical Specification — traduz o PRD em decisões técnicas concretas. É escrito pelo Tech Lead ou um dev sênior, com ou sem ajuda de IA, mas sempre revisado por um humano antes de virar issues.
Estrutura padrão
| Seção | Conteúdo |
|---|---|
| Resumo técnico | Abordagem escolhida em 3–5 linhas. |
| Arquitetura / Diagrama | Componentes afetados, serviços, integrações (ex. Supabase, Keycloak, n8n). |
| Modelo de dados | Tabelas/entidades novas ou modificadas, migrações. |
| Contratos de API | Endpoints, payloads, eventos, webhooks. |
| Cenários (Gherkin) | Given / When / Then para cada critério de aceite do PRD — é isso que o Agente e o Playwright usam. |
| Plano de rollout | Feature flag, migração de dados, estratégia de deploy. |
| Desdobramento em issues | Lista de tarefas técnicas, cada uma futura branch/PR. |
Exemplo de cenário em Gherkin
# Critério de aceite PRD-14: resgate de pontos Scenario: Cliente resgata pontos suficientes Given o cliente tem 500 pontos acumulados And o prêmio custa 300 pontos When o cliente confirma o resgate Then o sistema desconta 300 pontos And é gerado um cupom válido por 30 dias And o evento é registrado em purchase_history
Esses cenários são copiados tal como estão para a issue do GitHub e referenciados no PR — são o critério objetivo que o Agente revisor usa para aprovar ou pedir mudanças.
Gestão de projeto
Seu sistema de gestão de tarefas — seja uma ferramenta paga (ClickUp, Jira, Linear, Azure DevOps...) ou um sistema interno — é a única fonte de verdade do status. Não importa qual você use: o que importa é que o SPEC fique documentado e que cada issue do GitHub corresponda 1:1 a uma tarefa.
Estados do quadro
Convenções da tarefa
Essas regras valem independentemente da ferramenta usada para gerenciar tarefas:
| Elemento | Regra |
|---|---|
| ID da tarefa | Prefixo por projeto, ex. HIP-142, CON-88. Esse ID vai no nome da branch e do PR. |
| Documento SPEC | Anexado como documento no sistema de gestão (doc nativo, wiki, Confluence...), linkado a partir da tarefa pai. |
| Subtarefas | Cada subtarefa = uma issue do GitHub = uma branch = um PR. Não se agrupam várias branches numa única tarefa. |
| Campo "AI-assisted" | Checkbox ou tag que reflete a mesma flag do PR — visibilidade para o time de quanto se apoiou em IA. |
Fluxo Git / GitHub
Uma issue, uma branch, um PR, dois ambientes. A rastreabilidade vai da tarefa no sistema de gestão até o commit em main — sempre passando por homologação.
Ambientes
| Branch | Ambiente | Como se chega |
|---|---|---|
| feat/*, fix/* | Temporária — sem ambiente próprio (ou preview, se o stack suportar) | Criada a partir de staging ao abrir a issue |
| staging | Homologação / QA | Merge de PR de feature — exige Agente + CI verde + 1 aprovação |
| main | Produção | PR de promoção a partir de staging — exige QA validado em homologação + aprovação final |
main e staging são branches permanentes e nunca recebem push direto; tudo o mais é temporário e é apagado ao ser mergeado.
Nomenclatura de branches
| Prefixo | Uso | Exemplo |
|---|---|---|
| feat/ | Funcionalidade nova do SPEC | feat/142-resgate-pontos |
| fix/ | Correção de bug | fix/150-desconto-duplo |
| chore/ | Manutenção, deps, config | chore/upgrade-nestjs-10 |
| spike/ | Código de um POC — nunca é mergeado | spike/cardapio-vision-ocr |
Commits (Conventional Commits + rastreabilidade de IA)
feat(loyalty): adicionar validação de pontos suficientes Implementa o cenário "Cliente resgata pontos suficientes" do SPEC #142. Valida saldo antes de gerar o cupom. [ai-assisted: claude-sonnet] Refs: #142
Issues
- São criadas a partir do desdobramento do SPEC, uma por subtarefa do sistema de gestão — nunca se escreve uma issue sem ter passado pelo SPEC (exceto bugs de produção).
- Título com o ID da tarefa: [142] Validar pontos suficientes antes do resgate.
- Descrição inclui o cenário Gherkin correspondente, copiado do SPEC.
Pull Requests
Template obrigatório — o Agente revisor o usa como checklist automático:
## O que resolve Closes #142 ## Cenário(s) cobertos - [ ] Cliente resgata pontos suficientes - [ ] Cliente tenta resgatar com saldo insuficiente ## Uso de IA - [ ] Código gerado/assistido por IA - [ ] Modelo: ___ - [ ] Revisado linha por linha pelo autor humano ## Checklist - [ ] Testes unitários adicionados - [ ] Sem segredos ou credenciais no diff - [ ] Migrações testadas em local
Feature → staging: exige ✅ CI verde, ✅ o Agente revisor sem comentários bloqueantes, ✅ pelo menos 1 aprovação humana.
Staging → main: exige que o que foi mergeado em staging tenha sido validado em homologação (QA ou o próprio PO) — nunca se promove para produção algo que não foi testado ali antes.
GitHub Actions / CI-CD
Todo push a um PR contra staging dispara o mesmo pipeline. Nada chega a main sem antes passar por homologação.
name: PR para Staging on: pull_request: branches: [staging] jobs: lint-test-build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: { node-version: 20 } - run: npm ci - run: npm run lint - run: npm run test -- --coverage - run: npm run build agent-review: needs: lint-test-build runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Executar revisor de IA run: node ./scripts/agent-review.js env: ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} PR_NUMBER: ${{ github.event.pull_request.number }} deploy-staging: needs: [lint-test-build, agent-review] if: github.event.pull_request.merged == true runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - run: ./deploy.sh staging
name: Promover para Produção on: pull_request: branches: [main] jobs: deploy-prod: # só roda se o PR vier de staging (evita saltos diretos) if: github.event.pull_request.merged == true && github.head_ref == 'staging' runs-on: ubuntu-latest environment: production # exige aprovação manual configurada no GitHub steps: - uses: actions/checkout@v4 - run: ./deploy.sh production
Agente revisor
Um job de CI que roda um agente de IA em cada PR. Não substitui o revisor humano — filtra o óbvio para que o humano revise o que importa.
O que o Agente revisa
- Que cada cenário Gherkin do SPEC tenha um teste correspondente no diff.
- Que o PR marque corretamente o checkbox de uso de IA e o modelo usado.
- Convenções do projeto: nomenclatura, estrutura de pastas, padrões já usados no repo (lê o CLAUDE.md da raiz).
- Riscos evidentes: falta de tratamento de erros, queries N+1, segredos hardcoded.
- Consistência entre o PRD/SPEC referenciado e o que foi realmente implementado.
O que NÃO faz
- Não aprova de forma final nem faz merge — só deixa comentários e um status de check no PR.
- Não decide escopo nem prioridade — isso vive no PRD e no sistema de gestão.
- Não substitui o QA manual em fluxos críticos (pagamentos, resgate de pontos, autenticação).
Prompt base do agente (resumo)
Você é o revisor técnico automático do time. Você tem: o SPEC do ticket, os cenários Gherkin, o diff completo do PR e o CLAUDE.md do repo. Devolva APENAS: 1. Cenários sem cobertura de teste (lista) 2. Riscos de segurança ou performance (lista, com linha) 3. Desvios entre o SPEC e a implementação 4. Veredito: APROVADO | MUDANCAS_SOLICITADAS Não opine sobre estilo se o linter já cobre isso.
Governança de IA
Regras mínimas para usar Claude Code, Codex, Gemini ou qualquer outro LLM de forma consistente no time — pensadas para 3–6 devs, não para um comitê de compliance.
O relatório 2025 da DORA (Google Cloud) é claro: a IA não conserta um time, ela amplifica o que ele já faz. Um time com controle de versão sólido, PRs pequenos e padrões claros fica mais rápido com IA. Um time desorganizado, com IA, gera caos mais rápido. Essas regras existem para que a velocidade não coma a qualidade.
Qual ferramenta usar para quê
Não importa a marca do modelo — importa que o critério esteja escrito e que todo o time o siga. Parametrize esta tabela de acordo com o que você tiver contratado:
| Tipo de tarefa | Complexidade | Ferramenta sugerida | Por quê |
|---|---|---|---|
| Boilerplate, DTOs, docs, copy | Baixa | Modelo econômico (ex. Gemini Flash) | Tier gratuito/barato generoso para tarefas repetitivas |
| Autocomplete e snippets no editor | Baixa | Copilot / Codex / integrado à IDE | Feedback imediato, não quebra o fluxo |
| Lógica de negócio, refactors multi-arquivo | Média/Alta | Claude Code / modelo de raciocínio forte | Melhor manejo de contexto amplo, segue o CLAUDE.md |
| Arquitetura, segurança, criptografia | Alta | IA só como apoio — nunca decide sozinha | Alto impacto, margem de erro baixa; a decisão é assinada por um humano |
O que não entra num prompt
- Credenciais, API keys, tokens ou strings de conexão — nem mesmo "de teste".
- Dados pessoais de clientes sem anonimizar (nomes, telefones, endereços, histórico de compra real).
- Código ou documentos sob NDA de outro cliente, caso o time trabalhe para vários.
- Segredos de infraestrutura (certificados, chaves de Traefik/Cloudflare, backups de banco de dados).
Se você não colaria isso num canal público do Slack, não cole num prompt. E se o agente lê conteúdo externo não confiável antes de gerar código — um PDF de um fornecedor, um ticket de suporte, uma página web — trate esse conteúdo como dado, nunca como instrução: ele pode trazer texto voltado a manipular o modelo.
Níveis de risco
| Nível | Exemplo | Revisão exigida |
|---|---|---|
| Baixo | Docs, copy, chores, config sem impacto em runtime | Agente revisor + 1 aprovação humana |
| Médio | Features de negócio novas, endpoints não críticos | Agente revisor + 1 aprovação + testes E2E se tocar um fluxo compartilhado |
| Alto | Pagamentos, autenticação, dados pessoais, migrações destrutivas | Agente revisor + 2 aprovações + QA manual em staging + feature flag obrigatória |
Feature flags e rollback
- Toda mudança de risco médio ou alto é implantada atrás de uma feature flag — desligá-la não deveria exigir um novo deploy.
- Commits e PRs pequenos: além de mais fáceis de reverter, um diff enxuto é onde o Agente e o modelo rendem melhor — eles têm mais dificuldade de raciocinar bem sobre mudanças enormes.
- Meta: de "detectamos o problema em prod" a "revertido" em menos de 10 minutos.
Métricas mínimas do Agente
Não precisa de dashboard. Basta revisar, uma vez por mês, o campo "Veredito do Agente" dos últimos PRs:
- Se ele pede mudanças em menos de 10% dos PRs, provavelmente está sendo permissivo demais — revise o prompt dele.
- Se ele pede mudanças em mais de 50% e a maioria são falsos positivos (ruído, não problemas reais), também é preciso ajustar o prompt — está gastando tempo do time sem agregar.
- O ponto saudável está no meio: poucos comentários, mas os que ele faz são reais.
Onboarding de um dev novo
- Lê o CLAUDE.md do repo antes de tocar em código.
- Lê esta metodologia completa (30 minutos, uma única vez).
- Seu primeiro PR é pequeno, de risco baixo, e guiado por um dev sênior.
- Tem acesso configurado às ferramentas de IA aprovadas pelo time — não usa contas pessoais para código do projeto.
Cenário completo
Um caso real, de ponta a ponta, seguindo a metodologia: adicionar resgate de pontos por cupom no Clube Hipermais.
| Passo | O que acontece | Onde vive |
|---|---|---|
| 1. Ideia | A Diretoria propõe resgate de pontos por cupom de desconto. | Reunião / Slack |
| 2. POC | Valida-se que o motor de cupons existente suporta expiração de 30 dias sem mudanças de esquema. | Branch spike/cupom-expira, 1 dia |
| 3. PRD | PO escreve objetivo, histórias de usuário e critérios de aceite. | Doc no sistema de gestão, projeto Hipermais |
| 4. SPEC | Tech Lead define modelo de dados, endpoint POST /redeem e 2 cenários Gherkin. | Doc anexado à tarefa #142 |
| 5. Issues | São criadas 2 issues no GitHub a partir do desdobramento do SPEC. | GitHub Issues #142, #143 |
| 6. Branch + código | Dev cria feat/142-resgate-pontos a partir de staging, implementa com ajuda do Claude Sonnet. | Repo server-loyalty |
| 7. PR para staging | Abre o PR #58 contra staging, preenche o template, marca uso de IA. | GitHub |
| 8. CI + Agente | Pipeline roda lint/tests/build; Agente revisa cobertura de cenários — pede para adicionar um teste de saldo insuficiente. | GitHub Actions |
| 9. Revisão humana | O Tech Leader aprova após o ajuste pedido pelo Agente; merge para staging e deploy automático para homologação. | GitHub PR review |
| 10. QA em homologação | QA valida o fluxo completo de resgate no ambiente de staging. | Ambiente staging |
| 11. Promoção para main | Abre-se um PR de promoção staging → main; após aprovação, deploy para produção. | GitHub Actions → prod |
| 12. Fechamento | A tarefa passa para Done no sistema de gestão, automaticamente ou manualmente, dependendo da integração disponível. | Sistema de gestão de tarefas |