{"id":1106,"date":"2026-08-18T04:01:30","date_gmt":"2026-08-18T07:01:30","guid":{"rendered":"https:\/\/adrianosantostreina.com.br\/blog\/spec-driven-development-especificacao-antes-do-codigo-ia\/"},"modified":"2026-08-18T04:01:38","modified_gmt":"2026-08-18T07:01:38","slug":"spec-driven-development-especificacao-antes-do-codigo-ia","status":"publish","type":"post","link":"https:\/\/adrianosantostreina.com.br\/blog\/spec-driven-development-especificacao-antes-do-codigo-ia\/","title":{"rendered":"Especifica\u00e7\u00e3o Antes do C\u00f3digo: Como o Spec Driven Development Evita que a IA Adivinhe o Que Voc\u00ea Quis Dizer"},"content":{"rendered":"<p>Voc\u00ea j\u00e1 recebeu um card de sprint com tr\u00eas linhas de descri\u00e7\u00e3o, pediu para o agente de IA implementar a funcionalidade, e trinta minutos depois estava diante de um c\u00f3digo que compilava, passava nos testes que voc\u00ea mesmo escreveu \u00e0s pressas, mas resolvia o problema errado? O agente n\u00e3o teve culpa: ele fez exatamente o que foi pedido \u2014 o problema \u00e9 que ningu\u00e9m tinha definido, de fato, o que deveria ser pedido. A ambiguidade que um desenvolvedor s\u00eanior absorve intuitivamente, preenchendo lacunas com contexto de anos de dom\u00ednio do sistema, vira terreno f\u00e9rtil para alucina\u00e7\u00e3o quando quem est\u00e1 do outro lado \u00e9 um modelo de linguagem sem mem\u00f3ria institucional.<\/p>\n<p>Esse tipo de retrabalho \u2014 implementar, descobrir que a interpreta\u00e7\u00e3o estava errada, jogar fora, reimplementar \u2014 n\u00e3o \u00e9 exclusivo de IA. Sempre existiu em projetos com requisitos mal escritos. A diferen\u00e7a \u00e9 que, com agentes gerando c\u00f3digo em minutos, o custo de errar a especifica\u00e7\u00e3o se multiplica pela velocidade de execu\u00e7\u00e3o. Voc\u00ea erra mais r\u00e1pido e em maior volume. \u00c9 aqui que o <strong>Spec Driven Development<\/strong> (SDD) deixa de ser um exerc\u00edcio acad\u00eamico de engenharia de requisitos e se torna uma pr\u00e1tica de sobreviv\u00eancia para quem trabalha com IA no fluxo di\u00e1rio de desenvolvimento.<\/p>\n<p>Neste artigo, vamos al\u00e9m da defini\u00e7\u00e3o de dicion\u00e1rio. O objetivo \u00e9 mostrar como estruturar specs que funcionem como contrato execut\u00e1vel entre voc\u00ea, seu time e os agentes de IA, com exemplos de como isso se materializa em ferramentas reais, os erros mais comuns ao adotar SDD e como diagnosticar quando uma spec est\u00e1 mal formulada antes que ela vire c\u00f3digo ruim.<\/p>\n<h2>O que \u00e9 Spec Driven Development, na pr\u00e1tica<\/h2>\n<p>Spec Driven Development \u00e9 uma abordagem em que a especifica\u00e7\u00e3o \u2014 n\u00e3o o c\u00f3digo \u2014 \u00e9 o artefato central do processo de desenvolvimento. Isso n\u00e3o significa voltar ao modelo cascata dos anos 90, com documentos de 80 p\u00e1ginas que ningu\u00e9m l\u00ea. Significa escrever specs estruturadas, versionadas junto ao c\u00f3digo, e suficientemente precisas para que tanto um humano quanto um agente de IA consigam derivar a implementa\u00e7\u00e3o sem precisar adivinhar.<\/p>\n<p>A diferen\u00e7a central em rela\u00e7\u00e3o ao desenvolvimento tradicional orientado a testes (TDD) ou a requisitos em ferramentas como Jira \u00e9 o n\u00edvel de formalidade e a proximidade com o c\u00f3digo. Uma spec em SDD normalmente cont\u00e9m:<\/p>\n<ul>\n<li><strong>Contexto e objetivo:<\/strong> por que essa funcionalidade existe, qual problema de neg\u00f3cio resolve.<\/li>\n<li><strong>Comportamento esperado:<\/strong> descrito de forma test\u00e1vel, muitas vezes em formato Given-When-Then.<\/li>\n<li><strong>Contratos de interface:<\/strong> assinaturas de fun\u00e7\u00e3o, schemas de API, tipos de dados de entrada e sa\u00edda.<\/li>\n<li><strong>Casos de borda expl\u00edcitos:<\/strong> o que acontece quando a entrada \u00e9 nula, vazia, duplicada, fora de faixa.<\/li>\n<li><strong>Crit\u00e9rios de aceite verific\u00e1veis:<\/strong> algo que um teste automatizado consiga confirmar.<\/li>\n<\/ul>\n<p>O ponto crucial \u00e9 que essa spec vive perto do c\u00f3digo \u2014 em um arquivo Markdown no reposit\u00f3rio, em um diret\u00f3rio <code>specs\/<\/code>, ou embutida em ferramentas espec\u00edficas \u2014 e \u00e9 ela que alimenta tanto o desenvolvedor quanto o agente de IA no momento da implementa\u00e7\u00e3o.<\/p>\n<blockquote><p><strong>\ud83d\udca1 Dica do Mestre:<\/strong> o termo Spec Driven Development ganhou tra\u00e7\u00e3o recente tamb\u00e9m por conta de ferramentas como o <a href=\"https:\/\/github.com\/github\/spec-kit\" target=\"_blank\" rel=\"noopener\">Spec Kit do GitHub<\/a>, que prop\u00f5e um fluxo estruturado de especifica\u00e7\u00e3o para uso com agentes de IA, e o conceito de &#8220;Specification by Example&#8221;, de Gojko Adzic, que j\u00e1 defendia specs execut\u00e1veis muito antes da IA generativa existir. Vale a leitura do livro <em>Specification by Example<\/em> para entender as ra\u00edzes dessa pr\u00e1tica.<\/p><\/blockquote>\n<h2>Por que isso importa mais agora, com IA no fluxo<\/h2>\n<p>Antes da IA generativa, uma spec amb\u00edgua gerava uma reuni\u00e3o de esclarecimento com o desenvolvedor. Ele perguntava, voc\u00ea respondia, e o contexto ficava registrado na cabe\u00e7a dele \u2014 talvez em um coment\u00e1rio de c\u00f3digo, talvez em nada. Um agente de IA n\u00e3o pergunta (a menos que voc\u00ea o configure para isso) e n\u00e3o guarda contexto entre sess\u00f5es. Ele preenche a lacuna com a interpreta\u00e7\u00e3o estatisticamente mais prov\u00e1vel, que nem sempre \u00e9 a correta para o seu dom\u00ednio espec\u00edfico.<\/p>\n<p>Isso cria um efeito perverso: o c\u00f3digo gerado parece bom. Ele compila, segue conven\u00e7\u00f5es razo\u00e1veis, \u00e0s vezes at\u00e9 tem testes. Mas resolve uma vers\u00e3o simplificada ou distorcida do problema real. A revis\u00e3o humana, sob press\u00e3o de prazo, tende a aprovar c\u00f3digo que &#8220;parece certo&#8221; \u2014 e aqui mora o risco de que specs fr\u00e1geis se transformem em bugs de produ\u00e7\u00e3o meses depois.<\/p>\n<h3>Um cen\u00e1rio concreto<\/h3>\n<p>Imagine a seguinte instru\u00e7\u00e3o, comum em times que usam Claude Code ou Cursor no dia a dia:<\/p>\n<pre><code>Implemente uma fun\u00e7\u00e3o de c\u00e1lculo de desconto progressivo\npara pedidos acima de R$ 500.<\/code><\/pre>\n<p>Um agente competente vai gerar algo funcional. Mas v\u00e1rias perguntas ficaram sem resposta: o desconto \u00e9 sobre o valor total ou sobre o valor excedente a R$ 500? Existe teto para o desconto? O c\u00e1lculo considera frete? Itens com desconto individual entram na soma? Sem uma spec, o agente escolhe \u2014 e a escolha dele pode n\u00e3o ser a sua.<\/p>\n<h2>Escrevendo uma spec que realmente guia a implementa\u00e7\u00e3o<\/h2>\n<p>Vamos reescrever o exemplo anterior como uma spec estruturada, no formato que normalmente uso em projetos que integram IA ao fluxo de desenvolvimento:<\/p>\n<pre><code>## Spec: C\u00e1lculo de Desconto Progressivo\n\n### Contexto\nPedidos com valor total (soma de itens, sem frete) acima de R$ 500\nrecebem desconto progressivo para incentivar ticket m\u00e9dio maior.\n\n### Regras de neg\u00f3cio\n- Desconto aplica-se apenas sobre o valor que EXCEDE R$ 500,\n  n\u00e3o sobre o total do pedido.\n- Faixas de desconto sobre o valor excedente:\n  - At\u00e9 R$ 500 excedentes: 5%\n  - De R$ 500,01 a R$ 1500 excedentes: 10%\n  - Acima de R$ 1500 excedentes: 15%\n- Frete N\u00c3O entra no c\u00e1lculo do valor eleg\u00edvel a desconto.\n- Itens j\u00e1 com desconto individual (promo\u00e7\u00e3o) S\u00c3O somados\n  normalmente ao valor total do pedido.\n- Desconto m\u00e1ximo por pedido: R$ 300 (teto absoluto).\n\n### Contrato de interface\n```\nfunction calcularDescontoProgressivo(valorTotalItens: number): {\n  valorDesconto: number;\n  percentualEfetivo: number;\n}\n```\n\n### Casos de teste obrigat\u00f3rios\n| Entrada (valorTotalItens) | valorDesconto esperado |\n|---|---|\n| 300  | 0 |\n| 500  | 0 |\n| 700  | 10 (5% de 200) |\n| 1200 | 45 (5% de 500 + 10% de 200) |\n| 5000 | 300 (teto atingido) |\n\n### Casos de borda\n- Valor negativo: lan\u00e7ar erro `ValorInvalidoError`.\n- Valor zero: retornar desconto zero, sem erro.\n<\/code><\/pre>\n<p>Note que essa spec n\u00e3o \u00e9 c\u00f3digo, mas j\u00e1 \u00e9 execut\u00e1vel em esp\u00edrito: qualquer pessoa \u2014 ou agente \u2014 consegue derivar a implementa\u00e7\u00e3o e os testes unit\u00e1rios diretamente dela. N\u00e3o sobra espa\u00e7o para interpreta\u00e7\u00e3o livre nos pontos que importam.<\/p>\n<h3>Passando a spec para o agente de IA<\/h3>\n<p>Com a spec pronta, o prompt para o agente muda de qualidade. Em vez de descrever a inten\u00e7\u00e3o vagamente, voc\u00ea referencia o arquivo da spec e pede a implementa\u00e7\u00e3o com base nela:<\/p>\n<pre><code>Implemente a fun\u00e7\u00e3o descrita em specs\/desconto-progressivo.md.\nGere tamb\u00e9m os testes unit\u00e1rios cobrindo exatamente a tabela\nde casos de teste da spec, usando Jest.\nN\u00e3o adicione regras de neg\u00f3cio que n\u00e3o estejam explicitamente\nna spec \u2014 se algo parecer amb\u00edguo, sinalize antes de implementar.<\/code><\/pre>\n<p>Essa \u00faltima instru\u00e7\u00e3o \u2014 pedir que o agente sinalize ambiguidade em vez de resolver sozinho \u2014 \u00e9 uma das pr\u00e1ticas mais valiosas do SDD aplicado a IA. Ela transforma o agente de &#8220;adivinhador silencioso&#8221; em colaborador que exp\u00f5e as lacunas da spec antes de gerar c\u00f3digo sobre uma base incerta.<\/p>\n<h2>Onde o Spec Driven Development se encaixa no fluxo real<\/h2>\n<p>SDD n\u00e3o substitui TDD, Domain-Driven Design ou revis\u00e3o de c\u00f3digo \u2014 ele \u00e9 complementar e, na pr\u00e1tica, potencializa cada um desses. A sequ\u00eancia que costuma funcionar bem em times que j\u00e1 adotaram IA como parte do fluxo \u00e9:<\/p>\n<ol>\n<li><strong>Escrever a spec<\/strong> a partir da conversa com stakeholder ou an\u00e1lise do problema t\u00e9cnico.<\/li>\n<li><strong>Revisar a spec com o time<\/strong> (ou com voc\u00ea mesmo, em projetos solo) antes de qualquer linha de c\u00f3digo \u2014 \u00e9 muito mais barato corrigir uma spec do que um PR inteiro.<\/li>\n<li><strong>Gerar testes a partir da spec<\/strong>, manualmente ou com IA, antes da implementa\u00e7\u00e3o.<\/li>\n<li><strong>Implementar<\/strong>, com ou sem IA, tendo a spec e os testes como crit\u00e9rio de sucesso objetivo.<\/li>\n<li><strong>Versionar a spec junto ao c\u00f3digo<\/strong>, para que mudan\u00e7as futuras de comportamento exijam atualiza\u00e7\u00e3o expl\u00edcita da spec \u2014 evitando o efeito &#8220;documenta\u00e7\u00e3o desatualizada&#8221; que discutimos em outros contextos de pipelines de docs.<\/li>\n<\/ol>\n<h3>Exemplo com m\u00faltiplas linguagens<\/h3>\n<p>A vantagem do SDD \u00e9 que a spec \u00e9 agn\u00f3stica de linguagem. A mesma spec de desconto progressivo pode gerar implementa\u00e7\u00f5es em contextos completamente diferentes sem perder consist\u00eancia de comportamento. Em um backend Python com FastAPI:<\/p>\n<pre><code>def calcular_desconto_progressivo(valor_total_itens: float) -&gt; dict:\n    if valor_total_itens  0:\n        primeira_faixa = min(excedente, 500)\n        desconto += primeira_faixa * 0.05\n\n        segunda_faixa = min(max(excedente - 500, 0), 1000)\n        desconto += segunda_faixa * 0.10\n\n        terceira_faixa = max(excedente - 1500, 0)\n        desconto += terceira_faixa * 0.15\n\n    desconto_final = min(desconto, 300.0)\n    percentual_efetivo = (\n        (desconto_final \/ valor_total_itens) * 100\n        if valor_total_itens &gt; 0 else 0\n    )\n\n    return {\n        \"valor_desconto\": round(desconto_final, 2),\n        \"percentual_efetivo\": round(percentual_efetivo, 2),\n    }<\/code><\/pre>\n<p>E em Delphi, para quem mant\u00e9m sistemas corporativos legados com regras de neg\u00f3cio semelhantes:<\/p>\n<pre><code>function CalcularDescontoProgressivo(ValorTotalItens: Currency): TDescontoResultado;\nvar\n  Excedente, Desconto, PrimeiraFaixa, SegundaFaixa, TerceiraFaixa: Currency;\nbegin\n  if ValorTotalItens  0 then\n  begin\n    PrimeiraFaixa := Min(Excedente, 500);\n    Desconto := Desconto + (PrimeiraFaixa * 0.05);\n\n    SegundaFaixa := Min(Max(Excedente - 500, 0), 1000);\n    Desconto := Desconto + (SegundaFaixa * 0.10);\n\n    TerceiraFaixa := Max(Excedente - 1500, 0);\n    Desconto := Desconto + (TerceiraFaixa * 0.15);\n  end;\n\n  Result.ValorDesconto := Min(Desconto, 300);\n  if ValorTotalItens &gt; 0 then\n    Result.PercentualEfetivo := (Result.ValorDesconto \/ ValorTotalItens) * 100\n  else\n    Result.PercentualEfetivo := 0;\nend;<\/code><\/pre>\n<p>A spec permanece a mesma; apenas a sintaxe muda. Isso \u00e9 particularmente valioso em times poliglotas ou em migra\u00e7\u00f5es de stack, onde a l\u00f3gica de neg\u00f3cio precisa ser preservada com fidelidade entre implementa\u00e7\u00f5es diferentes.<\/p>\n<h2>Erros comuns ao adotar Spec Driven Development<\/h2>\n<h3>1. Specs longas demais, que ningu\u00e9m mant\u00e9m atualizadas<\/h3>\n<p>O erro mais frequente \u00e9 achar que &#8220;mais detalhe \u00e9 sempre melhor&#8221;. Specs de dez p\u00e1ginas para uma fun\u00e7\u00e3o de c\u00e1lculo de desconto s\u00e3o t\u00e3o in\u00fateis quanto a aus\u00eancia de spec \u2014 ningu\u00e9m as l\u00ea, ningu\u00e9m as atualiza, e elas se tornam fic\u00e7\u00e3o corporativa. A regra pr\u00e1tica: a spec deve ser exaustiva nos pontos amb\u00edguos e minimalista no resto. Se o comportamento \u00e9 \u00f3bvio, n\u00e3o precisa de spec \u2014 precisa de c\u00f3digo limpo e um teste.<\/p>\n<h3>2. Tratar a spec como imut\u00e1vel<\/h3>\n<p>Specs n\u00e3o s\u00e3o pedra. Durante a implementa\u00e7\u00e3o, \u00e9 comum descobrir que um caso de borda n\u00e3o foi previsto. O fluxo saud\u00e1vel \u00e9 atualizar a spec no mesmo commit que ajusta o c\u00f3digo \u2014 nunca deixar o c\u00f3digo divergir silenciosamente do que est\u00e1 documentado. Isso \u00e9 o mesmo princ\u00edpio de &#8220;documenta\u00e7\u00e3o viva&#8221; aplicado \u00e0 camada de requisitos.<\/p>\n<h3>3. Confiar cegamente na implementa\u00e7\u00e3o do agente sem validar contra a spec<\/h3>\n<p>Ter uma spec n\u00e3o elimina a necessidade de revis\u00e3o \u2014 ela apenas torna a revis\u00e3o objetiva. Ao revisar um PR gerado com apoio de IA, o checklist deveria ser: cada regra de neg\u00f3cio da spec tem um teste correspondente? Os casos de borda listados foram tratados? Existe alguma regra implementada que n\u00e3o est\u00e1 na spec (sinal de que o agente &#8220;inventou&#8221; comportamento)?<\/p>\n<h3>4. Escrever specs sem crit\u00e9rios verific\u00e1veis<\/h3>\n<p>Frases como &#8220;o sistema deve ser r\u00e1pido&#8221; ou &#8220;a interface deve ser intuitiva&#8221; n\u00e3o s\u00e3o specs \u2014 s\u00e3o inten\u00e7\u00f5es vagas travestidas de requisito. Uma spec de qualidade sempre permite a pergunta: &#8220;como eu comprovo, com um teste automatizado ou uma m\u00e9trica, que isso foi atendido?&#8221;. Se a resposta n\u00e3o existir, a spec precisa ser reescrita.<\/p>\n<blockquote><p><strong>\ud83d\udca1 Dica do Mestre:<\/strong> a linguagem Gherkin (Given-When-Then), popularizada pelo <a href=\"https:\/\/cucumber.io\/docs\/gherkin\/\" target=\"_blank\" rel=\"noopener\">Cucumber<\/a>, \u00e9 uma ferramenta \u00fatil para for\u00e7ar clareza em specs comportamentais, mesmo que voc\u00ea n\u00e3o use BDD como framework de testes. O formato obriga a explicitar pr\u00e9-condi\u00e7\u00e3o, a\u00e7\u00e3o e resultado esperado \u2014 exatamente o que falta na maioria dos requisitos escritos \u00e0s pressas.<\/p><\/blockquote>\n<h2>Como depurar uma spec malformulada antes que vire c\u00f3digo ruim<\/h2>\n<p>Um sinal claro de que a spec est\u00e1 fraca \u00e9 quando voc\u00ea pede para um agente de IA implement\u00e1-la e ele come\u00e7a a fazer perguntas \u2014 ou, pior, come\u00e7a a preencher lacunas silenciosamente com suposi\u00e7\u00f5es razo\u00e1veis, mas potencialmente erradas. Algumas perguntas que ajudam a testar a robustez de uma spec antes de liber\u00e1-la para implementa\u00e7\u00e3o:<\/p>\n<ul>\n<li>Um desenvolvedor que nunca viu esse sistema conseguiria implementar isso sem me perguntar nada?<\/li>\n<li>Todos os valores num\u00e9ricos (limites, percentuais, tetos) est\u00e3o expl\u00edcitos, e n\u00e3o impl\u00edcitos em &#8220;regras de neg\u00f3cio conhecidas&#8221;?<\/li>\n<li>Os casos de borda (nulo, vazio, negativo, zero, limite exato de faixa) foram listados individualmente?<\/li>\n<li>Existe pelo menos um exemplo concreto de entrada e sa\u00edda para cada regra?<\/li>\n<\/ul>\n<p>Se a resposta para qualquer uma dessas perguntas for &#8220;n\u00e3o&#8221;, a spec ainda n\u00e3o est\u00e1 pronta para virar prompt de IA nem para virar c\u00f3digo escrito \u00e0 m\u00e3o.<\/p>\n<h2>Ferramentas que apoiam Spec Driven Development hoje<\/h2>\n<p>O ecossistema ao redor de SDD amadureceu rapidamente com a populariza\u00e7\u00e3o de agentes de IA no desenvolvimento. Vale conhecer:<\/p>\n<ul>\n<li><strong><a href=\"https:\/\/github.com\/github\/spec-kit\" target=\"_blank\" rel=\"noopener\">GitHub Spec Kit<\/a><\/strong>: ferramenta open source que estrutura o fluxo de cria\u00e7\u00e3o de specs para uso com agentes como Claude Code, GitHub Copilot e outros, incluindo templates de spec, plano de implementa\u00e7\u00e3o e tarefas derivadas.<\/li>\n<li><strong><a href=\"https:\/\/docs.claude.com\/en\/docs\/claude-code\/overview\" target=\"_blank\" rel=\"noopener\">Claude Code<\/a><\/strong>: permite referenciar arquivos de spec diretamente no diret\u00f3rio do projeto e us\u00e1-los como contexto persistente para m\u00faltiplas sess\u00f5es de trabalho.<\/li>\n<li><strong><a href=\"https:\/\/openapis.org\/\" target=\"_blank\" rel=\"noopener\">OpenAPI Specification<\/a><\/strong>: para APIs, a especifica\u00e7\u00e3o OpenAPI j\u00e1 \u00e9, na pr\u00e1tica, uma forma madura de SDD aplicada a contratos de interface \u2014 vale us\u00e1-la como spec viva mesmo fora de projetos que adotam SDD formalmente.<\/li>\n<\/ul>\n<h2>Junte-se \u00e0 Comunidade Dev&#8217;s AI<\/h2>\n<p>Se voc\u00ea quer discutir Spec Driven Development, trocar templates de specs que funcionam na pr\u00e1tica e ver como outros desenvolvedores est\u00e3o integrando essa disciplina ao fluxo com Claude Code, Cursor e outros agentes, venha para a <a href=\"https:\/\/adrianosantos.link\/ComunidadeDevAI\" target=\"_blank\" rel=\"noopener\">Comunidade Dev&#8217;s AI<\/a>. \u00c9 um espa\u00e7o para quem j\u00e1 programa e quer ir al\u00e9m do b\u00e1sico na integra\u00e7\u00e3o entre desenvolvimento de software e intelig\u00eancia artificial \u2014 sem enrola\u00e7\u00e3o, com exemplos reais de projetos em produ\u00e7\u00e3o.<\/p>\n<h2>Conclus\u00e3o<\/h2>\n<p>Spec Driven Development n\u00e3o \u00e9 burocracia disfar\u00e7ada nem retorno a processos pesados do passado. \u00c9 a resposta natural a um problema muito concreto: agentes de IA s\u00e3o r\u00e1pidos, mas n\u00e3o s\u00e3o telep\u00e1ticos. Eles preenchem lacunas com a interpreta\u00e7\u00e3o mais prov\u00e1vel, e essa interpreta\u00e7\u00e3o nem sempre coincide com a sua inten\u00e7\u00e3o real. Investir tempo em escrever specs precisas, test\u00e1veis e versionadas junto ao c\u00f3digo n\u00e3o \u00e9 overhead \u2014 \u00e9 a forma mais eficiente de transformar velocidade de gera\u00e7\u00e3o de c\u00f3digo em velocidade de entrega de valor correto.<\/p>\n<p>A pr\u00e1tica pede disciplina, mas essa disciplina se paga rapidamente: menos ciclos de retrabalho, revis\u00f5es de c\u00f3digo mais objetivas, e agentes de IA que finalmente colaboram com precis\u00e3o em vez de adivinhar. Da pr\u00f3xima vez que abrir um prompt para pedir uma implementa\u00e7\u00e3o, pergunte-se antes: existe uma spec por tr\u00e1s disso, ou voc\u00ea est\u00e1 prestes a descobrir, c\u00f3digo pronto, que pediu a coisa errada?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voc\u00ea j\u00e1 recebeu um card de sprint com tr\u00eas linhas de descri\u00e7\u00e3o, pediu para o agente de IA implementar a funcionalidade, e trinta minutos depois estava diante de um c\u00f3digo que compilava, passava nos testes que voc\u00ea mesmo escreveu \u00e0s pressas, mas resolvia o problema errado? O agente n\u00e3o teve culpa: ele fez exatamente o [&hellip;]<\/p>\n","protected":false},"author":127,"featured_media":1107,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1106","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"_links":{"self":[{"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/posts\/1106","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/users\/127"}],"replies":[{"embeddable":true,"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/comments?post=1106"}],"version-history":[{"count":1,"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/posts\/1106\/revisions"}],"predecessor-version":[{"id":1108,"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/posts\/1106\/revisions\/1108"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/media\/1107"}],"wp:attachment":[{"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/media?parent=1106"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/categories?post=1106"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/adrianosantostreina.com.br\/blog\/wp-json\/wp\/v2\/tags?post=1106"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}