Introdução: A IA Não Tem Intuição Mas o que acontece depois que a IA lê a previsão? Como garantimos que o código gerado vai se encaixar perfeitamente no restante do sistema sem criar um emaranhado de funções soltas? A resposta é no conceito que Dan Abramov sempre defende: Modelos Mentais . Uma Inteligência Artificial não tem intuição sobre o seu produto; ela apenas reconhece padrões estatísticos. Se você pedir para ela criar um componente ou um serviço do zero sem definir antes as fronteiras dos dados, ela vai inventar estruturas que pareçam corretas isoladamente, mas que quebram o encadeamento lógico do seu aplicativo. No Spec-Driven Development (SDD) , ensinamos a IA a pensar através de Contratos de Dados (Tipos e Esquemas) antes de escrever qualquer lógica de implementação. O Contrato Antecede a Lógica Quando um arquiteto deseja uma casa, ele não começa pintando as paredes; ele define uma planta hidráulica e elétrica. Nenhum software, os contratos de tipos e interfaces são de sua planta. Inspirados nas ideias de referências em design de APIs e arquitetura modular, estabelecemos uma regra de ouro: o código de implementação deve se curvar ao contrato, e nunca o contrário. Quando você diz para IA: “Implementar a função X” , ela pode alucinar parâmetros. Mas quando você diz: “Implementar a função X obedecendo a este contrato de tipos” , a IA se torna uma máquina de execução determinística. Exemplo Prático: Desenhando o Contrato Primeiro Imagine que estamos construindo um módulo de carrinho de compras. Em vez de pedir para a IA “fazer um carrinho”, definimos o contrato de dados ( types.ts) de forma explícita: TypeScript // types.ts - O Contrato Imutável export interface ItemCarrinho { id: string; nome: string; precoUnitario: number; quantidade: number; } export interface CarrinhoDeCompras { itens: ItemCarrinho[]; valorTotal: number; adicionarItem(item: ItemCarrinho): void; removerItem(id: string): void; } Com esse contrato previsto, enviamos a instrução para a IA: