<?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>DEV Community: Wescley Serrão Ribeiro Pinto</title>
    <description>The latest articles on DEV Community by Wescley Serrão Ribeiro Pinto (@wescleysp).</description>
    <link>https://dev.to/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>DEV Community: Wescley Serrão Ribeiro Pinto</title>
      <link>https://dev.to/wescleysp</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/wescleysp"/>
    <language>en</language>
    <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://dev.to/wescleysp/como-estou-reestruturando-um-ecossistema-inteiro-de-aplicacoes-com-agentes-de-ia-especializados-5e5a</link>
      <guid>https://dev.to/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>
