{"id":14342,"date":"2026-05-27T14:52:48","date_gmt":"2026-05-27T14:52:48","guid":{"rendered":"https:\/\/cheesecakelabs.com\/blog\/harness-engineering-quando-esta-realmente-pronto\/"},"modified":"2026-08-15T06:57:50","modified_gmt":"2026-08-15T06:57:50","slug":"harness-engineering-quando-esta-realmente-pronto","status":"publish","type":"post","link":"https:\/\/cheesecakelabs.com\/blog\/br\/harness-engineering-quando-esta-realmente-pronto\/","title":{"rendered":"Harness Engineering: por que &#8220;pronto&#8221; n\u00e3o \u00e9 o agente dizer que est\u00e1 pronto"},"content":{"rendered":"\n<p>Em novembro de 2025, Justin Young, da Anthropic, publicou um <a href=\"https:\/\/www.anthropic.com\/engineering\/effective-harnesses-for-long-running-agents\" target=\"_blank\" rel=\"noreferrer noopener\">post<\/a> sobre o que a empresa aprendeu rodando coding agents de longa dura\u00e7\u00e3o. Uma observa\u00e7\u00e3o daquele texto ficou na minha cabe\u00e7a. Ele descreveu um modo de falha em que o Claude, depois de avan\u00e7ar um pouco em um projeto, olhava para o estado do trabalho, via que algumas coisas tinham sido constru\u00eddas e declarava a tarefa conclu\u00edda. O verbo era &#8220;declarar&#8221;. O agente rodava um curl, recebia um 200 de volta, dava a integra\u00e7\u00e3o por encerrada e seguia em frente.<\/p>\n\n\n\n<p>Cinco meses depois, Birgitta B\u00f6ckeler, da Thoughtworks, publicou o texto mais claro que j\u00e1 li sobre <a href=\"https:\/\/martinfowler.com\/articles\/harness-engineering.html\" target=\"_blank\" rel=\"noreferrer noopener\">o que devemos construir em volta do modelo<\/a> para evitar exatamente isso. Ela chamou essa camada de harness e a dividiu em duas metades: <strong>guides<\/strong> (controles feed-forward que antecipam o comportamento do agente e o direcionam antes de ele agir) e <strong>sensors<\/strong> (controles de feedback que observam o resultado e ajudam o agente a se corrigir).<\/p>\n\n\n\n<p>Dois meses antes do texto de B\u00f6ckeler, Kief Morris j\u00e1 havia publicado o framework de loops que deu a essa camada o seu formato estrat\u00e9gico.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">O que o harness \u00e9 de verdade<\/h2>\n\n\n\n<p>Se voc\u00ea falar &#8220;harness&#8221; para a maioria dos engenheiros em 2026, eles v\u00e3o concordar com a cabe\u00e7a e dizer que j\u00e1 fazem isso. A\u00ed voc\u00ea pergunta o que eles querem dizer com isso e recebe uma lista de tr\u00eas itens: linters, testes, CI. Isso n\u00e3o \u00e9 um harness. \u00c9 uma fatia pequena da camada de sensors, sem nenhum guide e sem nenhum julgamento.<\/p>\n\n\n\n<p>O enquadramento de B\u00f6ckeler \u00e9 o que adotei internamente na Cheesecake Labs. O harness tem duas metades.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Guides s\u00e3o feed-forward<\/h3>\n\n\n\n<p>Eles moldam o que o agente faz antes de ele agir. O arquivo CLAUDE.md na raiz do projeto, o template de PR que o agente l\u00ea antes de abrir um pull request, a spec que ele precisa implementar, a skill que codifica como aquele time faz migrations de banco de dados, as conven\u00e7\u00f5es de arquitetura escritas em texto corrido que o agente l\u00ea a cada sess\u00e3o.<\/p>\n\n\n\n<p>Guides s\u00e3o baratos e acumulam valor com o tempo. S\u00e3o tamb\u00e9m a parte do harness em que a maioria dos times menos investe, porque nada disso entrega uma feature sozinho.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Sensors s\u00e3o feedback<\/h3>\n\n\n\n<p>Os sensors observam o que o agente fez e dizem a ele se aquilo funcionou. Linters e type checkers, claro, mas tamb\u00e9m su\u00edtes de teste que realmente rodam, agentes de code review separados que leem o diff, checagens de fidelidade que comparam a implementa\u00e7\u00e3o com a spec, hooks no commit e na abertura do PR e o judge model que avalia o trabalho contra os crit\u00e9rios de aceita\u00e7\u00e3o. Os sensors s\u00e3o como o agente descobre que errou.<\/p>\n\n\n\n<p><strong>O ponto mais afiado de B\u00f6ckeler \u00e9 que voc\u00ea precisa dos dois. <\/strong>S\u00f3 com sensors, voc\u00ea fica com um agente que repete o mesmo erro, porque nada informou a regra certa l\u00e1 no in\u00edcio. S\u00f3 com guides, voc\u00ea fica com um agente que segue as regras, mas nunca descobre se elas produziram o resultado certo. Um harness de verdade \u00e9 o loop fechado entre os dois.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Leia mais: <\/strong><a href=\"https:\/\/cheesecakelabs.com\/blog\/spec-driven-development-capturar-intencao\/\" target=\"_blank\" rel=\"noreferrer noopener\">Spec-Driven Development: como capturar a inten\u00e7\u00e3o antes de queimar tokens<\/a><\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">A escada de maturidade. Onde a maioria dos times est\u00e1.<\/h2>\n\n\n\n<p>O enquadramento de Morris, com as posi\u00e7\u00f5es in \/ on \/ out of the loop, \u00e9 a ferramenta de diagn\u00f3stico mais \u00fatil que tenho hoje para conversar com l\u00edderes de engenharia. Eu pergunto onde o time deles est\u00e1 e a resposta j\u00e1 me diz no que investir em seguida.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">In the loop<\/h3>\n\n\n\n<p>O engenheiro revisa cada linha que o agente produz. Ele \u00e9 o gatekeeper do loop mais interno, onde o c\u00f3digo \u00e9 gerado. Nas palavras de Morris: &#8220;o desafio, quando insistimos em nos envolver de forma pr\u00f3xima demais no processo, \u00e9 que nos tornamos um gargalo&#8221;.<\/p>\n\n\n\n<p><strong>A maioria dos times que eu vejo mora aqui: <\/strong>usam Claude Code, entregam features e t\u00eam engenheiros seniores gastando metade do dia revisando na m\u00e3o diffs gerados por IA. O agente ficou mais r\u00e1pido e o revisor virou a restri\u00e7\u00e3o.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">On the loop<\/h3>\n\n\n\n<p>O engenheiro projeta e mant\u00e9m os mecanismos que produzem e validam o trabalho do agente. Morris de novo: &#8220;em vez de inspecionar pessoalmente o que os agentes produzem, podemos fazer com que eles produzam melhor&#8221;.<\/p>\n\n\n\n<p>\u00c9 aqui que harness engineering vira uma categoria de trabalho de verdade. Voc\u00ea para de corrigir PRs ruins um a um e passa a corrigir o sistema que os produziu. O trabalho do engenheiro s\u00eanior deixa de ser revisar linhas e passa a ser construir o harness.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Out of the loop<\/h3>\n\n\n\n<p>O harness est\u00e1 maduro o suficiente para o agente rodar de forma majoritariamente aut\u00f4noma, enquanto a pessoa audita resultados agregados. Morris chama esse est\u00e1gio de casa natural do que muita gente chama vagamente de &#8220;vibe coding&#8221;, mas s\u00f3 quando o harness \u00e9 forte o bastante<strong> para manter seguro o c\u00f3digo<\/strong> escrito assim. Sem esse harness, &#8220;out of the loop&#8221; \u00e9 s\u00f3 entregar bugs mais r\u00e1pido.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Flywheel<\/h3>\n\n\n\n<p>Existe um quarto degrau que B\u00f6ckeler sugere, mas n\u00e3o nomeia: o harness melhorando a partir dos pr\u00f3prios resultados. Gates que falham viram atualiza\u00e7\u00f5es no CLAUDE.md, PRs rejeitados viram novos testes e o harness vai se acumulando. \u00c9 aqui que est\u00e1 a alavancagem.<\/p>\n\n\n\n<p>O salto de in para on \u00e9 a maior jogada de carreira dos pr\u00f3ximos dois anos para engenheiros seniores e a maior jogada de arquitetura para l\u00edderes de engenharia. O salto seguinte, de on para out, exige que o harness seja realmente bom.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Completion gates. A cascata.<\/h2>\n\n\n\n<p>Esta \u00e9 a parte do harness que a maioria dos times n\u00e3o construiu e mais precisa. A premissa \u00e9 simples: &#8220;pronto&#8221; n\u00e3o \u00e9 o agente dizer que est\u00e1 pronto, \u00e9 o sistema provar que est\u00e1. Uma tarefa passa por uma cascata de checagens, com os filtros mais baratos primeiro, antes de ser aceita. Cada gate captura um modo de falha espec\u00edfico e, quando reprova, devolve um motivo classificado e uma corre\u00e7\u00e3o acion\u00e1vel.<\/p>\n\n\n\n<p>A cascata que eu rodo na Cheesecake Labs tem cinco gates. Nenhum deles \u00e9 in\u00e9dito isoladamente. A ordem e o enquadramento s\u00e3o meus, constru\u00eddos em cima do modelo de guides e sensors de B\u00f6ckeler e da taxonomia de modos de falha da Anthropic.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Gate 1: estrutural<\/h3>\n\n\n\n<p>Lint, typecheck, testes unit\u00e1rios. Barato e determin\u00edstico. Pega o que a Anthropic chama de falha de &#8220;marcar como conclu\u00eddo sem verifica\u00e7\u00e3o&#8221;: o agente rodou um curl, recebeu um 200 e declarou a integra\u00e7\u00e3o funcionando. Na minha experi\u00eancia, esse gate reprova algo entre 30 e 50% dos PRs de primeira tentativa do agente. \u00c9 um sinal saud\u00e1vel. Significa que o gate est\u00e1 fazendo o trabalho dele.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Gate 2: integridade de arquivos<\/h3>\n\n\n\n<p>Arquivos cr\u00edticos intocados. O agente apagou testes silenciosamente para eles passarem? Reescreveu um contrato de API em vez de se adequar a ele? Alterou um arquivo de configura\u00e7\u00e3o fora do escopo da mudan\u00e7a? S\u00e3o essas as falhas que chegam \u00e0 produ\u00e7\u00e3o como regress\u00f5es silenciosas. Uma allow-list simples com os arquivos que cada tarefa pode tocar pega a maior parte delas. A corre\u00e7\u00e3o cabe em uma linha de YAML. Poucos times t\u00eam isso.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Gate 3: sufici\u00eancia<\/h3>\n\n\n\n<p>O diff realmente cobre o <a href=\"https:\/\/cheesecakelabs.com\/blog\/spec-driven-development-capturar-intencao\/\" target=\"_blank\" rel=\"noreferrer noopener\">escopo da spec<\/a>? Um agente que entrega metade da feature e declara o resto como &#8220;trabalho de follow-up&#8221; \u00e9 o modo de falha mais comum que vejo em fluxos com <a href=\"https:\/\/cheesecakelabs.com\/blog\/plan-mode-claude-code-tokens\/\" id=\"13797\" target=\"_blank\" rel=\"noreferrer noopener\">plan mode<\/a>. A corre\u00e7\u00e3o \u00e9 mec\u00e2nica: cada tarefa no tasks.md tem crit\u00e9rios de aceita\u00e7\u00e3o, cada PR corresponde a uma tarefa e o gate verifica se o diff tocou aquilo que a tarefa dizia que ia tocar.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Gate 4: fidelidade<\/h3>\n\n\n\n<p>A implementa\u00e7\u00e3o realmente faz o que o design dizia que ela faria? Este \u00e9 o gate que a maioria dos times pula. A mec\u00e2nica \u00e9 emprestada de ferramentas de avalia\u00e7\u00e3o de RAG, como o RAGAS, e adaptada: calcular a similaridade sem\u00e2ntica entre o diff e o markdown de design. Barato, baseado em embeddings, roda em segundos. \u00c9 um filtro, n\u00e3o um veredicto. Se a similaridade fica abaixo de um limite, o PR reprova antes de custar um judge model.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Gate 5: judge LLM<\/h3>\n\n\n\n<p>Um modelo separado, de prefer\u00eancia um modelo diferente, l\u00ea a spec, o design, os testes e o diff e produz um aceite ou uma rejei\u00e7\u00e3o expl\u00edcita, com motivos. Zheng et al. (2023) mostraram que LLMs fortes atuando como ju\u00edzes concordam com humanos em mais de 80% das vezes, &#8220;o mesmo n\u00edvel de concord\u00e2ncia que existe entre humanos&#8221;.<\/p>\n\n\n\n<p>O <strong>trabalho de Agent-as-a-Judge <\/strong>da Meta, de 2024, estendeu a ideia especificamente para coding agents e concluiu que a abordagem &#8220;supera drasticamente o LLM-as-a-Judge e \u00e9 t\u00e3o confi\u00e1vel quanto o nosso baseline de avalia\u00e7\u00e3o humana&#8221;. O judge roda apenas em PRs que j\u00e1 passaram pelos gates 1 a 4, ent\u00e3o \u00e9 o gate mais caro, mas tamb\u00e9m o que voc\u00ea paga com menos frequ\u00eancia.<\/p>\n\n\n\n<p>A ordem importa porque o judge \u00e9 caro em tokens e em lat\u00eancia. Voc\u00ea s\u00f3 paga por ele nos PRs que j\u00e1 passaram pelas checagens de estrutura, integridade, sufici\u00eancia e fidelidade. Quando o judge entra, ele est\u00e1 avaliando um trabalho plausivelmente correto, n\u00e3o um trabalho que j\u00e1 tinha falhado no lint.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Leia mais: <\/strong><a href=\"https:\/\/cheesecakelabs.com\/blog\/as-tres-eras-do-software\/\" id=\"13791\" target=\"_blank\" rel=\"noreferrer noopener\">As tr\u00eas eras do software: do autocomplete ao desenvolvimento ag\u00eantico<\/a><\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">LLM-as-Judge. Nunca deixe o executor avaliar a si mesmo.<\/h2>\n\n\n\n<p>Quero sublinhar o argumento estrutural aqui, porque essa \u00e9 a mudan\u00e7a que os times mais resistem em fazer.<\/p>\n\n\n\n<p>O agente que implementou a feature n\u00e3o \u00e9 quem decide se ela est\u00e1 pronta. \u00c9 o mesmo conflito de interesse de um desenvolvedor revisando o pr\u00f3prio PR. O agente executor tem um incentivo (embutido no jeito como o prompt dele foi escrito) para convergir em &#8220;conclu\u00eddo&#8221;. Se voc\u00ea deixar que ele avalie a si mesmo, a avalia\u00e7\u00e3o vai ser generosa. A \u00fanica corre\u00e7\u00e3o \u00e9 ter um avaliador separado.<\/p>\n\n\n\n<p>Na pr\u00e1tica, isso significa dois agentes, de prefer\u00eancia dois modelos diferentes. Na Cheesecake Labs, rodamos Sonnet 4.6 para implementa\u00e7\u00e3o e Opus 4.7 para julgamento. O judge v\u00ea apenas a spec, o design, os testes e o diff. Ele n\u00e3o v\u00ea o racioc\u00ednio do executor. N\u00e3o v\u00ea o hist\u00f3rico de conversa. E produz um veredicto estruturado: aceitar, rejeitar (com motivos classificados) ou pedir esclarecimento (com perguntas espec\u00edficas).<\/p>\n\n\n\n<p>A taxa de rejei\u00e7\u00e3o na primeira passada fica entre <strong>15 e 25%, dependendo do time e da qualidade da spec. <\/strong>Isso n\u00e3o \u00e9 sinal de que o executor \u00e9 ruim. \u00c9 sinal de que o judge est\u00e1 fazendo o trabalho dele. Sem o judge, esses 15 a 25% do trabalho seguiriam adiante marcados como &#8220;pronto&#8221; e s\u00f3 apareceriam mais tarde: no QA, na sprint seguinte ou em produ\u00e7\u00e3o.<\/p>\n\n\n\n<p>O <a href=\"https:\/\/cloud.google.com\/resources\/content\/2025-dora-ai-assisted-software-development-report\" target=\"_blank\" rel=\"noreferrer noopener\">relat\u00f3rio DORA 2025 Accelerate State of DevOps<\/a> coloca o ponto mais amplo de forma direta: &#8220;a IA n\u00e3o conserta um time. Ela amplifica o que j\u00e1 est\u00e1 l\u00e1&#8221;. Se a sua defini\u00e7\u00e3o de &#8220;pronto&#8221; j\u00e1 era frouxa, a IA vai entregar mais trabalho frouxo e mais r\u00e1pido. O judge aperta essa defini\u00e7\u00e3o.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Onde o harness aprende<\/h2>\n\n\n\n<p>O quarto degrau, o flywheel, \u00e9 onde esse trabalho se acumula. A maioria dos times nunca chega l\u00e1 porque trata cada PR rejeitado como um caso isolado. O PR \u00e9 corrigido, mergeado e esquecido.<\/p>\n\n\n\n<p>O padr\u00e3o que leva voc\u00ea at\u00e9 o flywheel \u00e9 mec\u00e2nico e nada glamouroso. <strong>Todo PR rejeitado gera um registro: <\/strong>o que falhou, por qu\u00ea e qual foi a corre\u00e7\u00e3o. Toda semana, o time revisa esses registros e faz uma \u00fanica pergunta. Existe um guide que a gente poderia adicionar e que teria evitado isso? Uma entrada no <strong>CLAUDE.md<\/strong>, uma skill, um novo gate, um novo teste. Se sim, adicione. Fa\u00e7a o commit. Agora o pr\u00f3ximo PR n\u00e3o consegue falhar da mesma forma.<\/p>\n\n\n\n<p>Rode uma retro semanal de trinta minutos sobre o harness nos projetos em que ele j\u00e1 est\u00e1 maduro o suficiente para sustentar isso. No primeiro m\u00eas, parece burocracia. No terceiro, parece os trinta minutos mais alavancados da agenda. O custo de construir o harness \u00e9 pago pelo pr\u00f3prio harness.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Para fechar<\/h2>\n\n\n\n<p>O debate sobre agentic coding est\u00e1 convergindo r\u00e1pido. O post da Anthropic sobre harness, <a href=\"https:\/\/martinfowler.com\/articles\/harness-engineering.html\" target=\"_blank\" rel=\"noreferrer noopener\">os guides e sensors de Birgitta B\u00f6ckeler<\/a>, <a href=\"https:\/\/martinfowler.com\/articles\/exploring-gen-ai\/humans-and-agents.html\" target=\"_blank\" rel=\"noreferrer noopener\">as posi\u00e7\u00f5es de loop de Kief Morris<\/a>, o gap do SWE-Bench Pro, a conclus\u00e3o do DORA 2025. O enquadramento est\u00e1 se assentando. O modelo n\u00e3o \u00e9 o gargalo. O harness \u00e9.<\/p>\n\n\n\n<p><strong>On the loop \u00e9 onde voc\u00ea muda o harness que produziu o artefato.<\/strong> Essa \u00e9 a frase do texto de Morris \u00e0 qual eu sempre volto. O engenheiro s\u00eanior que era o gargalo no mundo In-the-loop vira a pessoa mais alavancada da empresa no mundo On-the-loop.<\/p>\n\n\n\n<p>A descri\u00e7\u00e3o do cargo muda. O output de um \u00f3timo engenheiro s\u00eanior n\u00e3o \u00e9 mais c\u00f3digo. \u00c9 o sistema que faz as pr\u00f3ximas cem features sa\u00edrem corretas consumindo muito menos do tempo dele.<\/p>\n\n\n\n<p>Na Cheesecake Labs, ajudamos organiza\u00e7\u00f5es de engenharia a sair do &#8220;a gente usa Claude Code&#8221; para o &#8220;a gente construiu o harness que nos permite confiar no Claude Code&#8221;. Gates, judges, logs de falha classificados: a infraestrutura sem glamour que transforma agentic coding em um sistema de entrega.<\/p>\n\n\n\n<p>Se os seus engenheiros seniores est\u00e3o passando a maior parte da semana revisando diffs de agentes na m\u00e3o, <a href=\"https:\/\/cheesecakelabs.com\/contact\/\" target=\"_blank\" rel=\"noreferrer noopener\">fale com a gente<\/a>. A corre\u00e7\u00e3o quase sempre \u00e9 uma corre\u00e7\u00e3o de harness, e ela se paga em semanas.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"http:\/\/cheesecakelabs.com\/services\" target=\"_blank\" rel=\" noreferrer noopener\"><img decoding=\"async\" width=\"1200\" height=\"409\" src=\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2023\/06\/legacy-app-ckl-1200x409.jpg\" alt=\"Banner da Cheesecake Labs sobre moderniza\u00e7\u00e3o de aplica\u00e7\u00f5es legadas\" class=\"wp-image-13491\" srcset=\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2023\/06\/legacy-app-ckl-1200x409.jpg 1200w, https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2023\/06\/legacy-app-ckl-600x205.jpg 600w, https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2023\/06\/legacy-app-ckl-768x262.jpg 768w, https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2023\/06\/legacy-app-ckl-1536x524.jpg 1536w, https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2023\/06\/legacy-app-ckl-760x259.jpg 760w, https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2023\/06\/legacy-app-ckl.jpg 1920w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/a><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Coding agents declaram tarefas como conclu\u00eddas o tempo todo, mesmo quando n\u00e3o est\u00e3o. O harness (guides, sensors e uma cascata de completion gates) \u00e9 o que transforma esse &#8220;pronto&#8221; em algo que o sistema consegue provar.<\/p>\n","protected":false},"author":92,"featured_media":13833,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_yoast_wpseo_focuskw":"harness engineering","_yoast_wpseo_title":"Harness engineering: quando o c\u00f3digo est\u00e1 pronto de verdade","_yoast_wpseo_metadesc":"Harness engineering explica por que pronto n\u00e3o \u00e9 o agente dizer que terminou. Veja a escada de maturidade e os completion gates que faltam.","_yoast_wpseo_meta-robots-noindex":"","_yoast_wpseo_canonical":"","footnotes":"","ckl_wpml_lang":"br","ckl_wpml_source_id":13828,"ckl_wpml_status":"ok: lang=br trid=55128 source=13828 at 2026-08-14 15:42:55"},"categories":[432,471],"tags":[1399,1395,1400],"class_list":["post-14342","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-engineering","category-engenharia","tag-agents","tag-ai-agent","tag-harness"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Harness engineering: quando o c\u00f3digo est\u00e1 pronto de verdade<\/title>\n<meta name=\"description\" content=\"Harness engineering explica por que pronto n\u00e3o \u00e9 o agente dizer que terminou. Veja a escada de maturidade e os completion gates que faltam.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cheesecakelabs.com\/blog\/br\/harness-engineering-quando-esta-realmente-pronto\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Harness engineering: quando o c\u00f3digo est\u00e1 pronto de verdade\" \/>\n<meta property=\"og:description\" content=\"Harness engineering explica por que pronto n\u00e3o \u00e9 o agente dizer que terminou. Veja a escada de maturidade e os completion gates que faltam.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cheesecakelabs.com\/blog\/br\/harness-engineering-quando-esta-realmente-pronto\/\" \/>\n<meta property=\"og:site_name\" content=\"Cheesecake Labs\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/cheesecakelabs\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-27T14:52:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-15T06:57:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/harness-cover.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1536\" \/>\n\t<meta property=\"og:image:height\" content=\"689\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Cheesecake Labs\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@cheesecakelabs\" \/>\n<meta name=\"twitter:site\" content=\"@cheesecakelabs\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/br\/harness-engineering-quando-esta-realmente-pronto\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/br\/harness-engineering-quando-esta-realmente-pronto\/\"},\"author\":{\"name\":\"Diana Martins\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/br\/#\/schema\/person\/37fa2f0fa5f8d3cbaeb21b973fa5c4b9\"},\"headline\":\"Harness Engineering: por que &#8220;pronto&#8221; n\u00e3o \u00e9 o agente dizer que est\u00e1 pronto\",\"datePublished\":\"2026-05-27T14:52:48+00:00\",\"dateModified\":\"2026-08-15T06:57:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/br\/harness-engineering-quando-esta-realmente-pronto\/\"},\"wordCount\":2287,\"publisher\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/br\/#organization\"},\"image\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/br\/harness-engineering-quando-esta-realmente-pronto\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/harness-cover.jpg\",\"keywords\":[\"agents\",\"AI agent\",\"harness\"],\"articleSection\":[\"Engineering\",\"Engenharia\"],\"inLanguage\":\"pt-BR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/br\/harness-engineering-quando-esta-realmente-pronto\/\",\"url\":\"https:\/\/cheesecakelabs.com\/blog\/br\/harness-engineering-quando-esta-realmente-pronto\/\",\"name\":\"Harness engineering: quando o c\u00f3digo est\u00e1 pronto de verdade\",\"isPartOf\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/br\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/br\/harness-engineering-quando-esta-realmente-pronto\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/br\/harness-engineering-quando-esta-realmente-pronto\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/harness-cover.jpg\",\"datePublished\":\"2026-05-27T14:52:48+00:00\",\"dateModified\":\"2026-08-15T06:57:50+00:00\",\"description\":\"Harness engineering explica por que pronto n\u00e3o \u00e9 o agente dizer que terminou. Veja a escada de maturidade e os completion gates que faltam.\",\"breadcrumb\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/br\/harness-engineering-quando-esta-realmente-pronto\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cheesecakelabs.com\/blog\/br\/harness-engineering-quando-esta-realmente-pronto\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/br\/harness-engineering-quando-esta-realmente-pronto\/#primaryimage\",\"url\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/harness-cover.jpg\",\"contentUrl\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/harness-cover.jpg\",\"width\":1536,\"height\":689,\"caption\":\"harness cover | | Cheesecake Labs\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/br\/harness-engineering-quando-esta-realmente-pronto\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cheesecakelabs.com\/blog\/br\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Harness Engineering: por que &#8220;pronto&#8221; n\u00e3o \u00e9 o agente dizer que est\u00e1 pronto\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/br\/#website\",\"url\":\"https:\/\/cheesecakelabs.com\/blog\/br\/\",\"name\":\"Cheesecake Labs\",\"description\":\"Empresa de desenvolvimento e design de aplicativos mobile &amp; web que est\u00e1 reinventando o desenvolvimento de produtos com times remotos. N\u00f3s desenvolvemos aplicativos iOS, Android e aplica\u00e7\u00f5es Web com as melhores empresas dos EUA, do Brasil e do mundo.\",\"publisher\":{\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/br\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cheesecakelabs.com\/blog\/br\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/br\/#organization\",\"name\":\"Cheesecake Labs\",\"alternateName\":\"Cheesecake Labs Inc\",\"url\":\"https:\/\/cheesecakelabs.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/cheesecakelabs.com\/#logo\",\"url\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2022\/06\/cheesecake-labs-1.png\",\"contentUrl\":\"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2022\/06\/cheesecake-labs-1.png\",\"caption\":\"Cheesecake Labs\",\"inLanguage\":\"br\"},\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/cheesecakelabs.com\/#primary-image\",\"url\":\"https:\/\/ckl-website-v4-strapi-prod.s3.us-east-2.amazonaws.com\/ai_software_development_company_83fb512983.webp\",\"contentUrl\":\"https:\/\/ckl-website-v4-strapi-prod.s3.us-east-2.amazonaws.com\/ai_software_development_company_83fb512983.webp\",\"width\":1920,\"height\":1080,\"caption\":\"Cheesecake Labs \u2014 AI, Data & Blockchain software development services\",\"inLanguage\":\"br\"},\"sameAs\":[\"https:\/\/www.facebook.com\/cheesecakelabs\",\"https:\/\/x.com\/cheesecakelabs\",\"https:\/\/www.instagram.com\/cheesecakelabs\/\",\"https:\/\/www.linkedin.com\/company\/cheesecake-labs\/\",\"https:\/\/www.youtube.com\/channel\/UCdGEQ5AHJcmIlaOaI5fGGVA\",\"https:\/\/clutch.co\/profile\/cheesecake-labs\",\"https:\/\/www.behance.net\/cheesecakelabs\",\"https:\/\/dribbble.com\/cheesecakelabs\",\"https:\/\/www.designrush.com\/agency\/profile\/cheesecake-labs\",\"https:\/\/www.g2.com\/products\/cheesecake-labs\/reviews\"],\"description\":\"Cheesecake Labs is a software development studio that designs and builds custom digital products \u2014 web, mobile, and platforms \u2014 combining product design and high-performance engineering.\",\"foundingDate\":\"2013\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/br\/#\/schema\/person\/37fa2f0fa5f8d3cbaeb21b973fa5c4b9\",\"name\":\"Diana Martins\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/cheesecakelabs.com\/blog\/br\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d074fb633a22723051c9d98ffc13065a28f0b52bd30a4c0a832ee19820caa4ba?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d074fb633a22723051c9d98ffc13065a28f0b52bd30a4c0a832ee19820caa4ba?s=96&d=mm&r=g\",\"caption\":\"Diana Martins\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Harness engineering: quando o c\u00f3digo est\u00e1 pronto de verdade","description":"Harness engineering explica por que pronto n\u00e3o \u00e9 o agente dizer que terminou. Veja a escada de maturidade e os completion gates que faltam.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cheesecakelabs.com\/blog\/br\/harness-engineering-quando-esta-realmente-pronto\/","og_locale":"pt_BR","og_type":"article","og_title":"Harness engineering: quando o c\u00f3digo est\u00e1 pronto de verdade","og_description":"Harness engineering explica por que pronto n\u00e3o \u00e9 o agente dizer que terminou. Veja a escada de maturidade e os completion gates que faltam.","og_url":"https:\/\/cheesecakelabs.com\/blog\/br\/harness-engineering-quando-esta-realmente-pronto\/","og_site_name":"Cheesecake Labs","article_publisher":"https:\/\/www.facebook.com\/cheesecakelabs","article_published_time":"2026-05-27T14:52:48+00:00","article_modified_time":"2026-08-15T06:57:50+00:00","og_image":[{"width":1536,"height":689,"url":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/harness-cover.jpg","type":"image\/jpeg"}],"author":"Cheesecake Labs","twitter_card":"summary_large_image","twitter_creator":"@cheesecakelabs","twitter_site":"@cheesecakelabs","twitter_misc":{"Escrito por":null,"Est. tempo de leitura":"11 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cheesecakelabs.com\/blog\/br\/harness-engineering-quando-esta-realmente-pronto\/#article","isPartOf":{"@id":"https:\/\/cheesecakelabs.com\/blog\/br\/harness-engineering-quando-esta-realmente-pronto\/"},"author":{"name":"Diana Martins","@id":"https:\/\/cheesecakelabs.com\/blog\/br\/#\/schema\/person\/37fa2f0fa5f8d3cbaeb21b973fa5c4b9"},"headline":"Harness Engineering: por que &#8220;pronto&#8221; n\u00e3o \u00e9 o agente dizer que est\u00e1 pronto","datePublished":"2026-05-27T14:52:48+00:00","dateModified":"2026-08-15T06:57:50+00:00","mainEntityOfPage":{"@id":"https:\/\/cheesecakelabs.com\/blog\/br\/harness-engineering-quando-esta-realmente-pronto\/"},"wordCount":2287,"publisher":{"@id":"https:\/\/cheesecakelabs.com\/blog\/br\/#organization"},"image":{"@id":"https:\/\/cheesecakelabs.com\/blog\/br\/harness-engineering-quando-esta-realmente-pronto\/#primaryimage"},"thumbnailUrl":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/harness-cover.jpg","keywords":["agents","AI agent","harness"],"articleSection":["Engineering","Engenharia"],"inLanguage":"pt-BR"},{"@type":"WebPage","@id":"https:\/\/cheesecakelabs.com\/blog\/br\/harness-engineering-quando-esta-realmente-pronto\/","url":"https:\/\/cheesecakelabs.com\/blog\/br\/harness-engineering-quando-esta-realmente-pronto\/","name":"Harness engineering: quando o c\u00f3digo est\u00e1 pronto de verdade","isPartOf":{"@id":"https:\/\/cheesecakelabs.com\/blog\/br\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cheesecakelabs.com\/blog\/br\/harness-engineering-quando-esta-realmente-pronto\/#primaryimage"},"image":{"@id":"https:\/\/cheesecakelabs.com\/blog\/br\/harness-engineering-quando-esta-realmente-pronto\/#primaryimage"},"thumbnailUrl":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/harness-cover.jpg","datePublished":"2026-05-27T14:52:48+00:00","dateModified":"2026-08-15T06:57:50+00:00","description":"Harness engineering explica por que pronto n\u00e3o \u00e9 o agente dizer que terminou. Veja a escada de maturidade e os completion gates que faltam.","breadcrumb":{"@id":"https:\/\/cheesecakelabs.com\/blog\/br\/harness-engineering-quando-esta-realmente-pronto\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cheesecakelabs.com\/blog\/br\/harness-engineering-quando-esta-realmente-pronto\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/cheesecakelabs.com\/blog\/br\/harness-engineering-quando-esta-realmente-pronto\/#primaryimage","url":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/harness-cover.jpg","contentUrl":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2026\/05\/harness-cover.jpg","width":1536,"height":689,"caption":"harness cover | | Cheesecake Labs"},{"@type":"BreadcrumbList","@id":"https:\/\/cheesecakelabs.com\/blog\/br\/harness-engineering-quando-esta-realmente-pronto\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cheesecakelabs.com\/blog\/br\/blog\/"},{"@type":"ListItem","position":2,"name":"Harness Engineering: por que &#8220;pronto&#8221; n\u00e3o \u00e9 o agente dizer que est\u00e1 pronto"}]},{"@type":"WebSite","@id":"https:\/\/cheesecakelabs.com\/blog\/br\/#website","url":"https:\/\/cheesecakelabs.com\/blog\/br\/","name":"Cheesecake Labs","description":"Empresa de desenvolvimento e design de aplicativos mobile &amp; web que est\u00e1 reinventando o desenvolvimento de produtos com times remotos. N\u00f3s desenvolvemos aplicativos iOS, Android e aplica\u00e7\u00f5es Web com as melhores empresas dos EUA, do Brasil e do mundo.","publisher":{"@id":"https:\/\/cheesecakelabs.com\/blog\/br\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cheesecakelabs.com\/blog\/br\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/cheesecakelabs.com\/blog\/br\/#organization","name":"Cheesecake Labs","alternateName":"Cheesecake Labs Inc","url":"https:\/\/cheesecakelabs.com\/","logo":{"@type":"ImageObject","@id":"https:\/\/cheesecakelabs.com\/#logo","url":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2022\/06\/cheesecake-labs-1.png","contentUrl":"https:\/\/ckl-website-static.s3.amazonaws.com\/wp-content\/uploads\/2022\/06\/cheesecake-labs-1.png","caption":"Cheesecake Labs","inLanguage":"br"},"image":{"@type":"ImageObject","@id":"https:\/\/cheesecakelabs.com\/#primary-image","url":"https:\/\/ckl-website-v4-strapi-prod.s3.us-east-2.amazonaws.com\/ai_software_development_company_83fb512983.webp","contentUrl":"https:\/\/ckl-website-v4-strapi-prod.s3.us-east-2.amazonaws.com\/ai_software_development_company_83fb512983.webp","width":1920,"height":1080,"caption":"Cheesecake Labs \u2014 AI, Data & Blockchain software development services","inLanguage":"br"},"sameAs":["https:\/\/www.facebook.com\/cheesecakelabs","https:\/\/x.com\/cheesecakelabs","https:\/\/www.instagram.com\/cheesecakelabs\/","https:\/\/www.linkedin.com\/company\/cheesecake-labs\/","https:\/\/www.youtube.com\/channel\/UCdGEQ5AHJcmIlaOaI5fGGVA","https:\/\/clutch.co\/profile\/cheesecake-labs","https:\/\/www.behance.net\/cheesecakelabs","https:\/\/dribbble.com\/cheesecakelabs","https:\/\/www.designrush.com\/agency\/profile\/cheesecake-labs","https:\/\/www.g2.com\/products\/cheesecake-labs\/reviews"],"description":"Cheesecake Labs is a software development studio that designs and builds custom digital products \u2014 web, mobile, and platforms \u2014 combining product design and high-performance engineering.","foundingDate":"2013"},{"@type":"Person","@id":"https:\/\/cheesecakelabs.com\/blog\/br\/#\/schema\/person\/37fa2f0fa5f8d3cbaeb21b973fa5c4b9","name":"Diana Martins","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/cheesecakelabs.com\/blog\/br\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d074fb633a22723051c9d98ffc13065a28f0b52bd30a4c0a832ee19820caa4ba?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d074fb633a22723051c9d98ffc13065a28f0b52bd30a4c0a832ee19820caa4ba?s=96&d=mm&r=g","caption":"Diana Martins"}}]}},"_links":{"self":[{"href":"https:\/\/cheesecakelabs.com\/blog\/br\/wp-json\/wp\/v2\/posts\/14342","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cheesecakelabs.com\/blog\/br\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cheesecakelabs.com\/blog\/br\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cheesecakelabs.com\/blog\/br\/wp-json\/wp\/v2\/users\/92"}],"replies":[{"embeddable":true,"href":"https:\/\/cheesecakelabs.com\/blog\/br\/wp-json\/wp\/v2\/comments?post=14342"}],"version-history":[{"count":3,"href":"https:\/\/cheesecakelabs.com\/blog\/br\/wp-json\/wp\/v2\/posts\/14342\/revisions"}],"predecessor-version":[{"id":15022,"href":"https:\/\/cheesecakelabs.com\/blog\/br\/wp-json\/wp\/v2\/posts\/14342\/revisions\/15022"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cheesecakelabs.com\/blog\/br\/wp-json\/wp\/v2\/media\/13833"}],"wp:attachment":[{"href":"https:\/\/cheesecakelabs.com\/blog\/br\/wp-json\/wp\/v2\/media?parent=14342"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cheesecakelabs.com\/blog\/br\/wp-json\/wp\/v2\/categories?post=14342"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cheesecakelabs.com\/blog\/br\/wp-json\/wp\/v2\/tags?post=14342"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}