<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Wescley Serrão Ribeiro Pinto</title>
    <description>The latest articles on Forem by Wescley Serrão Ribeiro Pinto (@wescleysp).</description>
    <link>https://forem.com/wescleysp</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1834987%2F71453b2f-f82b-4d05-927e-58d448d6f877.jpg</url>
      <title>Forem: Wescley Serrão Ribeiro Pinto</title>
      <link>https://forem.com/wescleysp</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/wescleysp"/>
    <language>en</language>
    <item>
      <title>Como Construí um Sistema de Sustentação com IA para um Ecossistema Multi-Serviço usando Claude Code</title>
      <dc:creator>Wescley Serrão Ribeiro Pinto</dc:creator>
      <pubDate>Fri, 17 Apr 2026 13:55:46 +0000</pubDate>
      <link>https://forem.com/wescleysp/como-construi-um-sistema-de-sustentacao-com-ia-para-um-ecossistema-multi-servico-usando-claude-code-511m</link>
      <guid>https://forem.com/wescleysp/como-construi-um-sistema-de-sustentacao-com-ia-para-um-ecossistema-multi-servico-usando-claude-code-511m</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;De horas de investigação manual em 8 repositórios à resolução automatizada de bugs em menos de 20 minutos.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  O Problema
&lt;/h2&gt;

&lt;p&gt;Se você já trabalhou em um produto que cresceu de um monolito para uma constelação de microsserviços, conhece a sensação: um bug é reportado e, antes mesmo de pensar em corrigi-lo, você precisa descobrir &lt;em&gt;onde&lt;/em&gt; no ecossistema ele vive.&lt;/p&gt;

&lt;p&gt;Um ecossistema multi-repo com 8 serviços independentes, cada um com sua própria stack, banco de dados e pipeline de deploy:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Regra central&lt;/strong&gt;: o app mobile &lt;em&gt;nunca&lt;/em&gt; chama microserviços diretamente — tudo passa pelo API Gateway (proxy pattern). Isso é ótimo para a arquitetura, mas significa que um único bug na ponta do usuário pode atravessar 3 ou 4 serviços.&lt;/p&gt;

&lt;p&gt;Um cenário típico de sustentação costumava ser assim:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Bug chega: "usuário não consegue completar uma recarga de saldo"&lt;/li&gt;
&lt;li&gt;É o app mobile? O API Gateway? O serviço de pagamentos? O processador de saldo? Um webhook de gateway de pagamento externo?&lt;/li&gt;
&lt;li&gt;Abrir cada repo, navegar na estrutura de pastas, rastrear o fluxo, ler o código&lt;/li&gt;
&lt;li&gt;Encontrar a causa raiz 45 minutos depois&lt;/li&gt;
&lt;li&gt;Corrigir, mas quebrar acidentalmente o contrato com o próximo serviço downstream&lt;/li&gt;
&lt;li&gt;Descobrir isso na sexta à tarde&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Eu precisava de um sistema que fizesse o que um engenheiro sênior com conhecimento profundo do ecossistema faz — mas em minutos, não horas. E precisava ser &lt;em&gt;confiável&lt;/em&gt;, não um autocomplete glorificado.&lt;/p&gt;




&lt;h2&gt;
  
  
  A Solução: Agentes de IA Especializados Orquestrados pelo Claude Code
&lt;/h2&gt;

&lt;p&gt;Em vez de jogar uma IA de propósito geral no codebase e torcer pelo melhor, construí um sistema de sustentação estruturado em quatro camadas:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fge6ll8cm1jkg8ikeohwk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fge6ll8cm1jkg8ikeohwk.png" alt=" " width="800" height="839"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Codebase Maps&lt;/strong&gt; — Documentação detalhada para cada serviço&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ecosystem Overview&lt;/strong&gt; — Fluxos de integração entre todos os serviços&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agentes Especializados&lt;/strong&gt; — Cada um com uma única responsabilidade&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Skills &amp;amp; Convenções&lt;/strong&gt; — Conhecimento reutilizável sobre os padrões de cada stack&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Vou percorrer cada uma.&lt;/p&gt;




&lt;h2&gt;
  
  
  Camada 1: Codebase Maps
&lt;/h2&gt;

&lt;p&gt;Essa é a fundação. Sem ela, nada mais funciona.&lt;/p&gt;

&lt;p&gt;Para cada serviço, escrevi um documento dedicado que cobre:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Estrutura de pastas&lt;/strong&gt; com o propósito de cada diretório&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Arquivos-chave&lt;/strong&gt; — os 10-20 arquivos onde 80% dos bugs vão ser encontrados&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Padrões&lt;/strong&gt; — quais design patterns o serviço usa (Strategy, Factory, Provider, etc.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pontos de integração&lt;/strong&gt; — como ele conversa com outros serviços, como são os contratos&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mecanismo de auth&lt;/strong&gt; — JWT, Keycloak, API tokens ou endpoints públicos&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;"Onde Procurar por Bugs"&lt;/strong&gt; — uma seção curada mapeando categorias de sintomas a caminhos específicos de arquivos&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Essa última seção é a mais valiosa. Em vez de dizer à IA "se vira", eu entrego os mesmos atalhos mentais que um desenvolvedor sênior constrói depois de meses no projeto.&lt;/p&gt;

&lt;p&gt;Veja como uma seção "Onde Procurar por Bugs" se parece na prática:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gu"&gt;### Onde Procurar por Bugs&lt;/span&gt;

| Sintoma | Comece Aqui |
|---------|-------------|
| Falhas de login | auth/strategies/, services/api.ts (interceptors) |
| Pagamento não finaliza | contexts/payment.tsx, services/api.ts (gateway instance) |
| Tela não carrega dados | screens/{feature}/, hooks/usePartnerFeatures.ts |
| Dados errados por tipo de usuário | utils/featureFlags.ts (check titular vs dependente) |
| Erros de agendamento | contexts/appointment.tsx, services/api.ts (appointment instance) |
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mantenho 6 codebase maps cobrindo todos os 8 serviços. Eles variam de 200 a 500 linhas cada — detalhados o suficiente para dar contexto real à IA, concisos o suficiente para caber em uma única leitura de janela de contexto.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Insight chave&lt;/strong&gt;: esses documentos NÃO são gerados a partir do código. Eles capturam &lt;em&gt;conhecimento que não está no código&lt;/em&gt; — o "porquê", as pegadinhas, o conhecimento tribal. Coisas como "esse endpoint de webhook não tem auth de propósito porque gateways de pagamento externos o chamam" ou "valores estão em centavos nesse serviço mas em reais nas APIs legadas — sempre dividir por 100".&lt;/p&gt;




&lt;h2&gt;
  
  
  Camada 2: Ecosystem Overview
&lt;/h2&gt;

&lt;p&gt;Enquanto os codebase maps são profundos (verticais), o ecosystem overview é amplo (horizontal). Ele mapeia cada fluxo de integração de ponta a ponta.&lt;/p&gt;

&lt;p&gt;Esse documento também contém tabelas de referência transversais:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Auth por serviço&lt;/strong&gt; — qual tipo de token, qual mecanismo, quais roles&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bancos de dados&lt;/strong&gt; — qual serviço é dono de quais tabelas&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Filas SQS&lt;/strong&gt; — FIFO vs Standard, produtor, consumidor, propósito&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Serviços externos&lt;/strong&gt; — gateways de pagamento, provedores de telemedicina, APIs de endereço&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Glossário de conceitos-chave&lt;/strong&gt; — os termos específicos do domínio que conectam tudo&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O overview é carregado automaticamente em cada sessão de IA. Os codebase maps são carregados sob demanda quando um serviço específico precisa de investigação. Isso equilibra uso de contexto com profundidade de conhecimento.&lt;/p&gt;




&lt;h2&gt;
  
  
  Camada 3: Agentes Especializados
&lt;/h2&gt;

&lt;p&gt;Aqui é onde fica interessante. Em vez de um agente de IA "faz tudo", construí quatro com separação estrita de papéis:&lt;/p&gt;

&lt;h3&gt;
  
  
  Bug Hunter (Apenas Análise)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Papel&lt;/strong&gt;: Investigar a causa raiz. Nunca escrever código.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Como funciona&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Lê o ecosystem overview para entender qual fluxo de integração está envolvido&lt;/li&gt;
&lt;li&gt;Identifica qual(is) serviço(s) são afetados&lt;/li&gt;
&lt;li&gt;Lê o(s) codebase map(s) específico(s) — usa a seção "Onde Procurar por Bugs"&lt;/li&gt;
&lt;li&gt;Navega até os arquivos-fonte reais para confirmar a hipótese&lt;/li&gt;
&lt;li&gt;Produz um diagnóstico estruturado&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Formato de saída&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;- Serviço(s) afetado(s): [quais serviços]
- Fluxo impactado: [Login, Pagamento, Agendamento, etc.]
- Causa raiz provável: [descrição técnica]
- Arquivo(s) suspeito(s): [caminho exato + linha aproximada]
- Classificação: frontend | backend | integração
- Evidências: [trechos de código que confirmam a análise]
- Recomendação de fix: [o que precisa mudar, sem implementar]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Por que é read-only&lt;/strong&gt;: Separar análise de implementação previne o modo de falha comum onde uma IA "corrige" um bug adicionando optional chaining em tudo sem entender por que o valor está null em primeiro lugar.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dev Front (Implementação Frontend)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Papel&lt;/strong&gt;: Implementar fixes no app mobile (React Native + Expo) e no dashboard admin (React + Refine).&lt;/p&gt;

&lt;p&gt;Recebe o diagnóstico do Bug Hunter, lê o codebase map relevante, lê todos os arquivos que vai modificar &lt;em&gt;antes&lt;/em&gt; de editar, implementa o fix mínimo e roda validação de TypeScript.&lt;/p&gt;

&lt;p&gt;Conhece as convenções de cada frontend: Zustand para state persistido vs Context API para state de fluxo no app mobile, hooks do Refine com o data provider correto no dashboard admin, as 4 diferentes instâncias do Axios para grupos diferentes de serviços, etc.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dev Back (Implementação Backend)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Papel&lt;/strong&gt;: Implementar fixes em todos os 6 serviços backend.&lt;/p&gt;

&lt;p&gt;Mesmo workflow do Dev Front, mas cobrindo Express.js (JavaScript legado, sem TypeScript), Hono com decorators e Prisma, AdonisJS com Lucid ORM, funções Lambda com SQS e endpoints serverless.&lt;/p&gt;

&lt;p&gt;Ele respeita os padrões muito diferentes entre serviços: factory pattern com &lt;code&gt;makeController()&lt;/code&gt; no API Gateway, roteamento baseado em decorators (&lt;code&gt;@Route&lt;/code&gt;, &lt;code&gt;@Get&lt;/code&gt;, &lt;code&gt;@Guard&lt;/code&gt;) no serviço de agendamentos, soft-delete com &lt;code&gt;deleted_at&lt;/code&gt; no serviço de pagamentos, checagens de idempotência no processador de saldo.&lt;/p&gt;

&lt;h3&gt;
  
  
  QA Reviewer (Apenas Validação)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Papel&lt;/strong&gt;: Revisar o fix. Nunca escrever código. Máximo 3 ciclos de revisão por bug.&lt;/p&gt;

&lt;p&gt;Esse é o agente mais importante. Ele executa um checklist estruturado:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Corretude&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O fix endereça a causa raiz (não apenas o sintoma)?&lt;/li&gt;
&lt;li&gt;Há edge cases não cobertos?&lt;/li&gt;
&lt;li&gt;Funciona para ambos os tipos de usuário? (nosso sistema distingue entre titulares primários e dependentes com conjuntos de features diferentes)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Regressões&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Arquivos relacionados foram impactados negativamente?&lt;/li&gt;
&lt;li&gt;O contrato de request/response da API foi preservado?&lt;/li&gt;
&lt;li&gt;O middleware de auth está intacto?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Caça a Silent Failures&lt;/strong&gt; (esse é o diferencial):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Catch blocks adicionados: têm logging E feedback ao usuário?&lt;/li&gt;
&lt;li&gt;Fallbacks adicionados: são explícitos com logging quando ativados?&lt;/li&gt;
&lt;li&gt;Condicionais adicionadas: o branch else trata a falha?&lt;/li&gt;
&lt;li&gt;Optional chaining adicionado: resolve o crash mas esconde a causa raiz?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cada achado é classificado:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Fix correto, sem novas silent failures&lt;/li&gt;
&lt;li&gt;⚠️ Correto mas frágil (não bloqueante)&lt;/li&gt;
&lt;li&gt;❌ Fix introduz silent failure (BLOQUEANTE — volta para o dev)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Por que o agente de QA importa mais&lt;/strong&gt;: Sem ele, os agentes dev tendem a produzir fixes "tecnicamente funcionam" que mascaram problemas. Um catch block sem logging? O erro some silenciosamente. Optional chaining em um valor que nunca deveria ser null? Você escondeu um problema de dados. O agente de QA pega esses padrões sistematicamente.&lt;/p&gt;




&lt;h2&gt;
  
  
  Camada 4: Skills &amp;amp; Convenções
&lt;/h2&gt;

&lt;p&gt;Skills são módulos de conhecimento reutilizáveis que os agentes consultam proativamente. Tenho três:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ecosystem Knowledge&lt;/strong&gt;: Referência rápida para mapeamento de serviços, fluxos de integração e conceitos de domínio. Cada agente carrega essa primeiro.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Frontend Conventions&lt;/strong&gt;: Padrões para cada frontend — como estruturar componentes, qual abordagem de state management usar, como lidar com chamadas de API, anti-patterns a evitar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Backend Conventions&lt;/strong&gt;: Padrões específicos por stack — como escrever rotas em cada framework, convenções de ORM, posicionamento de middleware de auth, padrões de formato de resposta.&lt;/p&gt;

&lt;p&gt;Essas skills previnem que os agentes "reinventem" padrões a cada bug. Em vez de adivinhar como adicionar uma nova rota no serviço de agendamentos, o agente dev sabe usar decorators &lt;code&gt;@Route&lt;/code&gt; + &lt;code&gt;@Get&lt;/code&gt; + &lt;code&gt;@Guard('ROLE')&lt;/code&gt; porque a skill de convenções diz isso.&lt;/p&gt;




&lt;h2&gt;
  
  
  O Pipeline em Ação
&lt;/h2&gt;

&lt;p&gt;Veja o que acontece quando um bug é reportado:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Reporte de bug → Bug Hunter (2-3 min)
                    ↓ diagnóstico
               Dev Front e/ou Dev Back (3-5 min)
                    ↓ fix implementado
               QA Reviewer (1-2 min)
                    ↓
               APROVADO → pronto
               REPROVADO → volta para o Dev (máx 3 ciclos)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Tempo total para um ciclo completo&lt;/strong&gt;: menos de 10 minutos.&lt;/p&gt;

&lt;p&gt;Vou percorrer um exemplo real (anonimizado):&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reporte de bug&lt;/strong&gt;: "Usuários do plano tipo B não conseguem ver a tela de recarga de saldo"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Análise do Bug Hunter&lt;/strong&gt; (2 minutos):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identificou a checagem de feature flag do app mobile: estava lendo &lt;code&gt;partner.features&lt;/code&gt; para todos os usuários, mas usuários do plano tipo B são dependentes que precisam de &lt;code&gt;partner.dependent_features&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Rastreou o fluxo: o componente da tela chamava &lt;code&gt;checkIsEnabledFeature('reload')&lt;/code&gt;, que internamente consultava o conjunto errado de features para usuários dependentes&lt;/li&gt;
&lt;li&gt;Classificado como: &lt;code&gt;frontend&lt;/code&gt; — o backend estava retornando dados corretos, o app mobile estava lendo o campo errado&lt;/li&gt;
&lt;li&gt;Apontou: &lt;code&gt;utils/featureFlags.ts:47&lt;/code&gt; e &lt;code&gt;screens/Payment/Reload/index.tsx:23&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Fix do Dev Front&lt;/strong&gt; (3 minutos):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Leu ambos os arquivos + o contexto que fornece a flag do tipo de usuário&lt;/li&gt;
&lt;li&gt;Modificou o utilitário de checagem de feature para ramificar em &lt;code&gt;isDependent&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Rodou &lt;code&gt;tsc --noEmit&lt;/code&gt; — passou&lt;/li&gt;
&lt;li&gt;Reportou o fix com diff exato&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Revisão do QA&lt;/strong&gt; (1 minuto):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Confirmou: fix endereça a causa raiz, não o sintoma&lt;/li&gt;
&lt;li&gt;Confirmou: funciona para titulares E dependentes&lt;/li&gt;
&lt;li&gt;Confirmou: nenhuma silent failure introduzida (sem catch blocks, sem optional chaining — branch condicional limpo)&lt;/li&gt;
&lt;li&gt;Resultado: &lt;strong&gt;APROVADO&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Antes desse sistema, esse bug teria levado 30-60 minutos de investigação manual em múltiplos repos, mais tempo de revisão.&lt;/p&gt;




&lt;h2&gt;
  
  
  Os Guardrails
&lt;/h2&gt;

&lt;p&gt;IA autônoma escrevendo código no seu codebase precisa de redes de segurança. Eis o que coloquei em prática:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hooks de proteção de arquivos&lt;/strong&gt;: Certos arquivos são bloqueados para edição por IA — configs de ambiente, Docker Compose, schemas de banco. Esses arquivos requerem mãos humanas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nenhuma operação destrutiva&lt;/strong&gt;: Agentes nunca podem fazer &lt;code&gt;git push&lt;/code&gt;, &lt;code&gt;git reset --hard&lt;/code&gt; ou disparar deploys. Eles trabalham localmente, e um humano revisa antes de qualquer coisa chegar em um branch remoto.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Princípio do fix mínimo&lt;/strong&gt;: As diretrizes de dev declaram explicitamente: "fix mínimo — não refatore código adjacente, não adicione comentários desnecessários." Isso previne scope creep onde a IA "melhora" código que funciona e introduz regressões.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Validação mandatória&lt;/strong&gt;: Todo fix precisa passar pela compilação de TypeScript (&lt;code&gt;tsc --noEmit&lt;/code&gt;) antes do agente dev considerá-lo feito. A única exceção é o API Gateway legado em JavaScript.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output estruturado&lt;/strong&gt;: Cada agente produz saída em um formato mandatório. O Bug Hunter deve fornecer classificação e evidências. Os agentes Dev devem documentar serviços impactados. O agente de QA deve rodar o checklist completo. Sem mão-de-obra.&lt;/p&gt;




&lt;h2&gt;
  
  
  O Que Aprendi
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. A qualidade da documentação é o multiplicador
&lt;/h3&gt;

&lt;p&gt;Gastei mais tempo escrevendo codebase maps do que configurando agentes. Esse investimento se paga todos os dias. Um mapa de serviço bem documentado com seções "Onde Procurar por Bugs" dá à IA a mesma intuição que um desenvolvedor sênior tem — sem os meses de construção de contexto.&lt;/p&gt;

&lt;p&gt;Se sua ferramenta de IA para codar está produzindo resultados genéricos ou errados, o problema quase certamente é contexto, não o modelo.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Separação de responsabilidades se aplica a agentes de IA também
&lt;/h3&gt;

&lt;p&gt;Um agente que analisa, implementa E revisa o próprio trabalho é como um desenvolvedor que escreve código, revisa o próprio PR e faz deploy para produção. O loop de feedback é apertado demais, e os erros se acumulam.&lt;/p&gt;

&lt;p&gt;O Bug Hunter não pode mascarar uma causa raiz escrevendo um fix rápido. Os agentes Dev não podem aprovar o próprio trabalho. O agente de QA não pode ajustar silenciosamente o código em vez de sinalizar um problema. Cada restrição torna o sistema geral mais confiável.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. O agente de QA é a peça mais valiosa
&lt;/h3&gt;

&lt;p&gt;Sem caça explícita a silent failures, fixes gerados por IA tendem a padrões "fazer o erro sumir": catch blocks vazios, optional chaining generalizado, valores default que escondem problemas de dados. O checklist estruturado do agente de QA pega exatamente esses padrões.&lt;/p&gt;

&lt;p&gt;O sistema de classificação (correto / frágil / introduz silent failure) força julgamento explícito em vez de "parece bom pra mim".&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Skills previnem deriva de padrões
&lt;/h3&gt;

&lt;p&gt;Sem documentos de convenções reutilizáveis, cada fix de bug reinventa como as coisas deveriam ser estruturadas. O agente dev pode usar um padrão de state management diferente do que existe no codebase, ou adicionar uma rota em um estilo que não casa com as convenções do serviço.&lt;/p&gt;

&lt;p&gt;Skills ancoram os agentes aos padrões reais do projeto, não aos padrões de treinamento do modelo.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. O mapa do ecossistema importa mais que os docs de serviço individuais
&lt;/h3&gt;

&lt;p&gt;Bugs cross-service são os mais difíceis. Saber que valores estão em centavos no serviço de pagamentos mas em reais nas APIs legadas, que webhooks de gateways externos intencionalmente não têm auth, que o processador de saldo checa histórico de transações para idempotência antes de creditar — essas são as pegadinhas que causam investigações de 2 horas.&lt;/p&gt;

&lt;p&gt;O ecosystem overview captura esse conhecimento de integração em um só lugar. Sem ele, agentes podem "corrigir" um bug adicionando auth em um webhook que sistemas externos chamam, quebrando o fluxo de pagamento inteiro.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. O limite de 3 ciclos no QA previne loops infinitos
&lt;/h3&gt;

&lt;p&gt;Sem ele, o agente de QA e o agente dev podem ficar em ping-pong: QA reprova, dev corrige, QA encontra um novo problema no fix, dev corrige, QA encontra outro. Três ciclos é o ponto certo — se um fix não consegue passar em revisão em 3 tentativas, precisa de atenção humana.&lt;/p&gt;




&lt;h2&gt;
  
  
  O Setup em Números
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Métrica&lt;/th&gt;
&lt;th&gt;Valor&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Serviços cobertos&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Codebase maps&lt;/td&gt;
&lt;td&gt;6 documentos (200-500 linhas cada)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fluxos de integração documentados&lt;/td&gt;
&lt;td&gt;7 fluxos ponta a ponta&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agentes especializados&lt;/td&gt;
&lt;td&gt;4 (análise, frontend, backend, QA)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Skills reutilizáveis&lt;/td&gt;
&lt;td&gt;3 (ecosystem, frontend, backend conventions)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Análise média de causa raiz&lt;/td&gt;
&lt;td&gt;5-10 minutos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Implementação média de fix&lt;/td&gt;
&lt;td&gt;2-8 minutos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Revisão média de QA&lt;/td&gt;
&lt;td&gt;1-2 minutos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ciclo completo (análise → fix → aprovado)&lt;/td&gt;
&lt;td&gt;&amp;lt; 20 minutos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tempo anterior de investigação manual&lt;/td&gt;
&lt;td&gt;30-90 minutos&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Como Replicar Isso
&lt;/h2&gt;

&lt;p&gt;Se você está lidando com um ecossistema multi-serviço similar e quer construir algo assim:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comece pela documentação, não pelos agentes&lt;/strong&gt;. Escreva codebase maps para seus serviços mais críticos primeiro. Inclua a seção "Onde Procurar por Bugs" — é a peça de documentação de maior ROI que você já vai escrever.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mapeie seus fluxos de integração&lt;/strong&gt;. Mesmo antes da IA entrar em cena, ter um único documento que rastreia dados através dos serviços economiza um tempo enorme de investigação para desenvolvedores humanos também.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Separe análise de implementação&lt;/strong&gt;. Mesmo que você construa apenas dois agentes, faça um que seja read-only e outro que escreve. O analista read-only produz diagnósticos melhores porque não pode encurtar a investigação pulando para um fix.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Invista na camada de QA&lt;/strong&gt;. Caça a silent failures é o diferencial entre "IA que produz código" e "IA que produz código confiável". Construa um checklist específico para os padrões comuns de falha do seu codebase.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Codifique suas convenções&lt;/strong&gt;. Se seu time tem regras não escritas sobre como estruturar código em cada serviço, escreva-as. Elas se tornam as skills que mantêm a saída da IA consistente com seus padrões existentes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Estabeleça limites rígidos&lt;/strong&gt;. Arquivos protegidos, nenhuma operação git destrutiva, validação TypeScript mandatória, formatos de output estruturados. Esses guardrails não são opcionais — são o que torna o sistema confiável o suficiente para uso diário.&lt;/p&gt;




&lt;h2&gt;
  
  
  Considerações Finais
&lt;/h2&gt;

&lt;p&gt;Isso não é sobre substituir desenvolvedores. É sobre construir um sistema que lida com o overhead investigativo de ecossistemas multi-serviço — o context-switching entre repos, o rastreamento de fluxos de dados através de fronteiras, a caça por causas raiz em codebases desconhecidos.&lt;/p&gt;

&lt;p&gt;A IA não precisa ser perfeita. Precisa ser &lt;em&gt;estruturada&lt;/em&gt;, &lt;em&gt;restrita&lt;/em&gt; e &lt;em&gt;revisável&lt;/em&gt;. Quatro agentes especializados com limites claros produzem resultados dramaticamente melhores do que um agente de propósito geral com escopo ilimitado.&lt;/p&gt;

&lt;p&gt;O trabalho real estava na documentação e no design do sistema, não em prompt engineering. Se o conhecimento do seu ecossistema vive apenas na cabeça das pessoas, comece a escrever. Esse é o pré-requisito — tudo o mais constrói em cima disso.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Construído com &lt;a href="https://claude.ai/code" rel="noopener noreferrer"&gt;Claude Code&lt;/a&gt;. As definições de agente, skills, codebase maps e pipeline descritos nesse artigo são todos configurados usando os recursos nativos do Claude Code: agentes customizados, skills, rules e hooks.&lt;/em&gt;&lt;/p&gt;




</description>
      <category>ai</category>
      <category>productivity</category>
      <category>programming</category>
      <category>automation</category>
    </item>
    <item>
      <title>Como estou reestruturando um ecossistema inteiro de aplicações com agentes de IA especializados, Spec-Driven Development e TDD automatizado.</title>
      <dc:creator>Wescley Serrão Ribeiro Pinto</dc:creator>
      <pubDate>Tue, 07 Apr 2026 11:55:12 +0000</pubDate>
      <link>https://forem.com/wescleysp/como-estou-reestruturando-um-ecossistema-inteiro-de-aplicacoes-com-agentes-de-ia-especializados-5e5a</link>
      <guid>https://forem.com/wescleysp/como-estou-reestruturando-um-ecossistema-inteiro-de-aplicacoes-com-agentes-de-ia-especializados-5e5a</guid>
      <description>&lt;p&gt;A algum tempo comecei a analisar o ecossistema que eu e minha equipe trabalhamos no dia a dia e os problemas que enfrentávamos por falta de uma arquitetura coesa e eficiente. Redesenhei o ecossistema cobrindo várias das necessidades e escala que os serviços precisavam, e era o mundo ideal que precisávamos, mas então como tirar do papel?&lt;/p&gt;

&lt;p&gt;Como conciliar sprints e reestruturação? talvez mais devs? Mas e a rampagem desses devs novos? Talvez separar alguns devs existentes e começar um longo trabalho, talvez até um ano para isso. Esse tipo de trabalho de longo prazo muitas vezes não convence ou cabe em negócio que já está funcionando/faturando.&lt;/p&gt;

&lt;p&gt;Como já estava trabalhando com o &lt;strong&gt;Claude Code&lt;/strong&gt; (Commands, subagentes, skills, plugins e guidelines) e workflows no cotidiano de desenvolvimento, pensei como estruturar um setup para os agentes possam entender as features do legado, compreender a nova arquitetura e serviços e então desenvolver a reestruturação que precisamos em um tempo interessante e com qualidade.&lt;/p&gt;

&lt;p&gt;Nos últimos meses, venho construindo um setup de orquestração com Claude Code que transformou a maneira como migramos e desenvolvemos features no ecossistema.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 O Desafio e a Solução
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;O desafio:&lt;/strong&gt; migrar um app (React Native) legado (130+ telas, 65+ endpoints, ~7000 LOC de lógica de negócio (Back-end) em JavaScript puro) para uma arquitetura moderna — e fazer isso com qualidade, rastreabilidade e testes obrigatórios em cada etapa.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A solução:&lt;/strong&gt; utilização de SDD (Spec-Driven Development), TDD (MCP's: Playwright e Maestro), agentes especializados colaboram em um pipeline estruturado, cada um com responsabilidade única, skills de domínio e guardrails rígidos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A ideia principal&lt;/strong&gt; é ter um workflow de trabalho onde um agente especializado (&lt;strong&gt;readonly&lt;/strong&gt;) munido com docs (&lt;code&gt;legacy-knowledge&lt;/code&gt;), conhecendo assim o legado, a partir disso traga os insights para um outra agente especializado em escrever docs para SDD (&lt;strong&gt;Opus - raciocínio profundo&lt;/strong&gt;) munidos de docs para a nova arquitetura e novos serviços, produzindo assim documento eficientes e assertivos. O trabalho a seguir fica mais “fácil”, uma equipe de agentes que vai primeiro escrever testes, desenvolvimento (subagentes por domínio) que devem passar no teste, revisores de código, por fim revisão humana e aprovação funcional por QA humano.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vamos ao detalhes...&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Diagram do Workflow
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4w7iww0q44li7w08dc19.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4w7iww0q44li7w08dc19.png" alt="Workflow AI Dev" width="718" height="1025"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🏗️ Nova arquitetura em um Monorepo
&lt;/h2&gt;

&lt;p&gt;Trabalhamos em um Monorepo para features inteiras de back e front utilizando &lt;strong&gt;Turborepo + pnpm workspaces&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;&lt;a class="mentioned-user" href="https://dev.to/mobile"&gt;@mobile&lt;/a&gt;&lt;/strong&gt; — App cliente multiplataforma (Expo SDK 54 + Gluestack UI V3 + Zustand) — Web, Android, iOS&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;@api&lt;/strong&gt; — BFF principal (NestJS + Prisma + Zod)&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;@backoffice&lt;/strong&gt; — Painel administrativo (React + Vite + shadcn/ui + TanStack)&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;@backoffice-api&lt;/strong&gt; — BFF do backoffice (Serverless + Hono.js + Zod OpenAPI)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Packages compartilhados:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;@types&lt;/strong&gt; — Entidades de domínio (interfaces TypeScript)&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;@contracts&lt;/strong&gt; — Schemas Zod e DTOs (contratos de API)&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;@utils&lt;/strong&gt; — Funções utilitárias&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Regra de ouro:&lt;/strong&gt; tipos vivem em @types, contratos em @contracts. Nunca duplicar entre apps.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🚀 O Pipeline em Detalhes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  FASE 1 — O Discovery do Legado
&lt;/h3&gt;

&lt;p&gt;Tudo começa com o comando &lt;code&gt;/spec-write --legacy [descrição da feature]&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;A flag &lt;code&gt;--legacy&lt;/code&gt; ativa o agente &lt;strong&gt;Legacy Discoverer&lt;/strong&gt; — um especialista read-only em engenharia reversa que analisa dois repositórios legados:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Frontend legado:&lt;/strong&gt; 130+ telas, Context API, 4 instâncias Axios diferentes, Design system próprio, tipos em &lt;code&gt;src/@types/&lt;/code&gt;, helpers, enums, hooks.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Backend legado:&lt;/strong&gt; 41 classes JavaScript agregadas via &lt;code&gt;Object.assign&lt;/code&gt; (~7000 LOC) no Domain, 65+ endpoints em um único arquivo de rotas de 1383 linhas, Auth via JWT middleware, Queries Knex em 3 databases.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;O Legacy Discoverer executa em 5 fases:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Absorve contexto&lt;/strong&gt; — lê a skill &lt;code&gt;legacy-knowledge&lt;/code&gt;, que contém: glossário de domínio, code hints, overview do projeto e mapa completo dos 65+ endpoints.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Identifica escopo&lt;/strong&gt; — busca telas, contextos, tipos, enums, API calls no frontend E endpoints, handlers, services, repositories no backend via Glob/Grep.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Traça code flows completos&lt;/strong&gt; — da tela até o banco de dados: Tela → Context/Hook → API Service → Endpoint backend → Handler do Domain → Repository → Response → UI.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Mapeia para o monorepo&lt;/strong&gt; — cada item legado recebe um destino: Context API → Zustand store, Screen → apps/platform/, Domain handler → apps/api/, etc.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Gera o Legacy Discovery Report&lt;/strong&gt; — documento estruturado com todo o diagnóstico e mapeamento para o spec-writer.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  FASE 2 — Especificação com Spec Writer (Modelo Opus)
&lt;/h3&gt;

&lt;p&gt;O Legacy Discovery Report é passado para o agente &lt;strong&gt;Spec Writer&lt;/strong&gt; (Modelo Opus), que executa em 7 fases e produz documentos em 2 etapas com aprovação humana:&lt;/p&gt;

&lt;h4&gt;
  
  
  Etapa 1 — spec.md (Negocio):
&lt;/h4&gt;

&lt;p&gt;Gera o documento de NEGÓCIO após absorver as skills &lt;code&gt;project-brain&lt;/code&gt; e &lt;code&gt;integration-contracts&lt;/code&gt;. Contém:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Objetivo, Personas, Regras de negócio numeradas e testáveis.&lt;/li&gt;
&lt;li&gt;  Cenários de aceitação BDD (Given/When/Then).&lt;/li&gt;
&lt;li&gt;  Mapeamento de migração do legado e decisões pendentes &lt;code&gt;[DECISÃO NECESSÁRIA]&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Quality Gate — Spec Reviewer:&lt;/strong&gt; Valida a spec contra 9 checks (S1-S9): linguagem de negócio pura, regras testáveis, cenários BDD completos, etc. Se houver issues ALTA, o Spec Writer corrige antes da aprovação humana.&lt;/p&gt;

&lt;h4&gt;
  
  
  Etapa 2 — plan-{stack}.md (Técnico):
&lt;/h4&gt;

&lt;p&gt;Gera planos autocontidos para cada stack (NestJS, Expo, Hono, React, Packages) com:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Decisões arquiteturais justificadas.&lt;/li&gt;
&lt;li&gt;  Design de componentes e fluxo de dados end-to-end.&lt;/li&gt;
&lt;li&gt;  Anti-patterns ("NÃO FAZER") e especificações de testes unitários (min 3/service, 2/entity, 2/componente).&lt;/li&gt;
&lt;li&gt;  Gera o &lt;code&gt;tasks.md&lt;/code&gt; (checklist de implementação).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Quality Gate — Spec Reviewer (modo PLAN):&lt;/strong&gt; Valida cada plan contra 13 checks (P1-P13) e 6 checks de consistência cross-documento (X1-X6).&lt;/p&gt;




&lt;h3&gt;
  
  
  FASE 3 — Implementação com TDD Automatizado
&lt;/h3&gt;

&lt;p&gt;O comando &lt;code&gt;/run-feature FEAT-XXX&lt;/code&gt; coordena agentes especializados:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Setup:&lt;/strong&gt; Cria branch e worktree isolado (&lt;code&gt;.worktrees/&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Contracts/Types primeiro:&lt;/strong&gt; Regra: contratos ANTES de backend, backend ANTES de frontend.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Backend TDD (Red → Green → Review → Verify):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Red:&lt;/strong&gt; O Backend Test Writer escreve testes que DEVEM falhar.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Green:&lt;/strong&gt; O agente dev especializado (API Dev ou Serverless Dev) implementa até ficar verde.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Review:&lt;/strong&gt; O Backend Reviewer analisa aderência, TypeScript estrito e performance.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Verify:&lt;/strong&gt; O Test Runner garante servidor rodando e executa unit tests + funcionais via curl.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Frontend TDD:&lt;/strong&gt; Mesma lógica com &lt;strong&gt;Playwright&lt;/strong&gt; (web) e &lt;strong&gt;Maestro&lt;/strong&gt; via MCP (mobile).&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  FASE 4 — Validação Humana e Commits
&lt;/h3&gt;

&lt;p&gt;Nenhum commit acontece antes da validação humana.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Builds:&lt;/strong&gt; Verifica compilação e type-check global.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Apresentação:&lt;/strong&gt; Lista mudanças com diff, resultados de testes e status dos builds.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Aprovação:&lt;/strong&gt; Aprovar (commitar), revisar (indicar correções) ou cancelar (zero commits).&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Learnings:&lt;/strong&gt; Aprendizagens extraídas para o futuro.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🤖 O Ecossistema de Agentes
&lt;/h2&gt;

&lt;p&gt;No total, são &lt;strong&gt;14 agentes especializados&lt;/strong&gt; coordenados:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Agente&lt;/th&gt;
&lt;th&gt;Modelo&lt;/th&gt;
&lt;th&gt;Função&lt;/th&gt;
&lt;th&gt;Read-only?&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Legacy Discoverer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Sonnet&lt;/td&gt;
&lt;td&gt;Engenharia reversa do app legado&lt;/td&gt;
&lt;td&gt;Sim&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Spec Writer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Opus&lt;/td&gt;
&lt;td&gt;Decisões arquiteturais e specs&lt;/td&gt;
&lt;td&gt;Sim&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Spec Reviewer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Sonnet&lt;/td&gt;
&lt;td&gt;Quality gate de specs e plans&lt;/td&gt;
&lt;td&gt;Sim&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Backend Test Writer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Sonnet&lt;/td&gt;
&lt;td&gt;Red phase TDD backend&lt;/td&gt;
&lt;td&gt;Não&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Frontend Test Writer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Sonnet&lt;/td&gt;
&lt;td&gt;Red phase TDD frontend&lt;/td&gt;
&lt;td&gt;Não&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;API Dev&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Sonnet&lt;/td&gt;
&lt;td&gt;NestJS + Prisma + Zod&lt;/td&gt;
&lt;td&gt;Não&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Serverless Dev&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Sonnet&lt;/td&gt;
&lt;td&gt;Hono.js + Zod OpenAPI&lt;/td&gt;
&lt;td&gt;Não&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Platform Dev&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Sonnet&lt;/td&gt;
&lt;td&gt;Expo + Gluestack + Zustand&lt;/td&gt;
&lt;td&gt;Não&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Backoffice Dev&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Sonnet&lt;/td&gt;
&lt;td&gt;React + shadcn/ui + TanStack&lt;/td&gt;
&lt;td&gt;Não&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Backend Reviewer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Sonnet&lt;/td&gt;
&lt;td&gt;Revisão de código backend&lt;/td&gt;
&lt;td&gt;Sim&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Frontend Reviewer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Sonnet&lt;/td&gt;
&lt;td&gt;Revisão de código frontend&lt;/td&gt;
&lt;td&gt;Sim&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Test Runner&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Sonnet&lt;/td&gt;
&lt;td&gt;Execução de testes (unit + E2E)&lt;/td&gt;
&lt;td&gt;Sim&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Validation Gate&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Sonnet&lt;/td&gt;
&lt;td&gt;Builds, typechecks, contratos&lt;/td&gt;
&lt;td&gt;Sim&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;QA Reviewer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Sonnet&lt;/td&gt;
&lt;td&gt;Valida fixes de bugs&lt;/td&gt;
&lt;td&gt;Sim&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Skills e Workflows
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;6 Skills de domínio:&lt;/strong&gt; &lt;code&gt;project-brain&lt;/code&gt;, &lt;code&gt;legacy-knowledge&lt;/code&gt;, &lt;code&gt;integration-contracts&lt;/code&gt;, &lt;code&gt;backend-conventions&lt;/code&gt;, &lt;code&gt;frontend-conventions&lt;/code&gt; e &lt;code&gt;learnings&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;5 Commands/Workflows:&lt;/strong&gt; &lt;code&gt;/spec-write&lt;/code&gt;, &lt;code&gt;/run-feature&lt;/code&gt;, &lt;code&gt;/validate&lt;/code&gt;, &lt;code&gt;/health-check&lt;/code&gt;, &lt;code&gt;/jira&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;7 Rules:&lt;/strong&gt; Garantem consistência de style e patterns.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  💡 O que muda na prática?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Rastreabilidade total:&lt;/strong&gt; Cada decisão é documentada e justificada.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Testes obrigatórios:&lt;/strong&gt; Red phase ANTES da implementação.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Conhecimento persistente:&lt;/strong&gt; Skills acumulam o domínio e evitam repetir erros.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Humano no controle:&lt;/strong&gt; Aprovação da spec, do plano e do código — zero commits automáticos.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Não é sobre substituir desenvolvedores por IA. É sobre criar um sistema onde agentes especializados lidam com o trabalho repetitivo e cognitivamente caro enquanto humanos focam no que importa: decisões de negócio, arquitetura e validação final.&lt;/p&gt;

&lt;p&gt;O código continua sendo responsabilidade humana. Os agentes são ferramentas — ferramentas muito boas, com contexto, guardrails e accountability.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>typescript</category>
    </item>
  </channel>
</rss>
