/generate-plan "refatorar módulo de pagamentos para suportar múltiplos gateways"
O Octto abre um campo de texto livre no browser como primeira ação:
+-------------------------------------------------------------+
| |
| Descreva com detalhes o que voce quer planejar. |
| Inclua contexto, motivacao, restricoes e qualquer |
| informacao relevante. |
| |
| +-------------------------------------------------------+ |
| | | |
| | O modulo de pagamentos atual esta fortemente | |
| | acoplado ao PagSeguro. Precisamos suportar o | |
| | Stripe tambem para atender clientes internacionais. | |
| | O prazo e de 2 sprints. Nao podemos quebrar | |
| | integracoes existentes. O time de financas | |
| | precisa validar antes do deploy. | |
| | | |
| +-------------------------------------------------------+ |
| |
| [ ENVIAR ] |
| |
+-------------------------------------------------------------+
Com o contexto já coletado, o browser exibe perguntas estruturadas em branches:
+-------------------------------------------------------------+
| OCTTO - Brainstorm |
| |
| +-------------------------------------------------------+ |
| | BRANCH: Motivacao & Objetivos | |
| | | |
| | . Por que a mudanca e necessaria agora? | |
| | [___________________________________________] | |
| | | |
| | . Quais gateways precisam ser suportados? | |
| | [___________________________________________] | |
| +-------------------------------------------------------+ |
| |
| +-------------------------------------------------------+ |
| | BRANCH: Requisitos & Restricoes | |
| | | |
| | . Quais funcionalidades sao criticas? | |
| | [___________________________________________] | |
| | | |
| | . Ha requisitos de performance? | |
| | [___________________________________________] | |
| +-------------------------------------------------------+ |
| |
| +-------------------------------------------------------+ |
| | BRANCH: Riscos & Dependencias | |
| | | |
| | . Quais sao os maiores riscos tecnicos? | |
| | [___________________________________________] | |
| | | |
| | . Quais sistemas serao impactados? | |
| | [___________________________________________] | |
| +-------------------------------------------------------+ |
| |
| [ ENVIAR RESPOSTAS ] |
| |
+-------------------------------------------------------------+
Arquivo criado: docs/plans/2026-03-08-refatorar-modulo-pagamentos.md.
# Refatoração do Módulo de Pagamentos
## Contexto
O módulo atual está acoplado ao PagSeguro.
Precisamos suportar múltiplos gateways (Stripe, PagSeguro, futuro: PIX).
## Objetivos
- Abstrair interface de gateway
- Permitir troca via configuração
- Manter retrocompatibilidade
## Requisitos
### Funcionais
- Suportar Stripe e PagSeguro
- Configuração por ambiente
### Não-funcionais
- Latência < 500ms
- 99.9% disponibilidade
## Restrições
- 2 sprints de prazo
- Não quebrar integrações existentes
## Riscos Identificados
- Diferenças nas APIs dos gateways
- Migração de dados de transações
## Próximos Passos
- Definir interface abstrata
- Implementar adapter PagSeguro
- Implementar adapter Stripe
O /refine-plan faz duas rodadas de perguntas no chat e expande o plano com arquitetura e diagramas:
## Arquitetura Proposta
### Diagrama de Componentes
+--------------------------------------------------+
| PaymentService |
| |
| +--------------------------------------------+ |
| | PaymentGatewayInterface | |
| | | |
| | + processPayment(amount, card): Result | |
| | + refund(transactionId): RefundResult | |
| | + getStatus(transactionId): Status | |
| +--------------------------------------------+ |
| ^ |
| | |
| +----------+----------+ |
| | | | |
| +-------+----+ +---+------+ +-+--------+ |
| | PagSeguro | | Stripe | | PIX | |
| | Adapter | | Adapter | | Adapter | |
| +------------+ +----------+ +----------+ |
| |
+--------------------------------------------------+
### Fluxo de Pagamento
+----------+ +--------------+ +-------------+
| Checkout |-->| PaymentSvc |-->| Gateway |
+----------+ +------+-------+ | Interface |
| +------+------+
| |
| +------+------+
| | Resolve |
| | Adapter |
| +------+------+
| |
| +------v------+
| | PagSeguro |
| | ou |
| | Stripe |
| +------+------+
| |
|<-----------------+
v
+-------------+
| Resultado |
+-------------+
## Decisões Técnicas
### Por que Strategy Pattern?
- **Problema:** Código acoplado a um gateway específico
- **Solução:** Interface abstrata + adapters
- **Alternativas consideradas:**
- Factory simples (rejeitado: menos flexível)
- Service Locator (rejeitado: anti-pattern)
- **Impacto:** Novo gateway = novo adapter, zero mudança no core
O Plannotator abre a interface de revisão:
+-------------------------------------------------------------+
| PLANNOTATOR - Revisao |
| |
| +-------------------------------------------------------+ |
| | # Refatoracao do Modulo de Pagamentos | |
| | | |
| | ## Contexto [+ Anotar] | |
| | O modulo atual esta acoplado ao PagSeguro... | |
| | | |
| | ## Arquitetura Proposta [+ Anotar] | |
| | [Diagrama de componentes...] | |
| | | |
| | ## Decisoes Tecnicas [+ Anotar] | |
| | ### Por que Strategy Pattern? | |
| | [Justificativas...] | |
| | | |
| +-------------------------------------------------------+ |
| |
| +-------------------------------------------------------+ |
| | ANOTACOES: | |
| | | |
| | . Arquitetura: "Considerar tambem webhooks" | |
| | | |
| +-------------------------------------------------------+ |
| |
| [ APROVAR ] [ SOLICITAR MUDANCAS ] |
| |
+-------------------------------------------------------------+
Após aprovação, o plano está completo e documentado em:
docs/plans/2026-03-08-refatorar-modulo-pagamentos.md