<script data-pm-proxy="intercept"></script><?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Bruno Bertolini]]></title><description><![CDATA[O que passa pela cabeça de um dev senior que constrói, lê, questiona e não para quieto.]]></description><link>https://bertolini.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!1wV0!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faede0b97-7acd-424f-bc89-8c2a842b6984_460x460.png</url><title>Bruno Bertolini</title><link>https://bertolini.substack.com</link></image><generator>Substack</generator><lastBuildDate>Wed, 02 Sep 2026 20:17:48 GMT</lastBuildDate><atom:link href="/__u/bertolini.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Bruno Bertolini]]></copyright><language><![CDATA[pt-br]]></language><webMaster><![CDATA[bertolini@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[bertolini@substack.com]]></itunes:email><itunes:name><![CDATA[Bruno Bertolini]]></itunes:name></itunes:owner><itunes:author><![CDATA[Bruno Bertolini]]></itunes:author><googleplay:owner><![CDATA[bertolini@substack.com]]></googleplay:owner><googleplay:email><![CDATA[bertolini@substack.com]]></googleplay:email><googleplay:author><![CDATA[Bruno Bertolini]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Os quatro jeitos que um agente mente quando você não está olhando]]></title><description><![CDATA[A minha base de conhecimento &#233; o ativo mais importante que eu tenho. Deixei um agente cuidando dela sozinho e vi como se destr&#243;i uma: cada rodada deixa o texto melhor escrito e menos verdadeiro.]]></description><link>https://bertolini.substack.com/p/os-quatro-jeitos-que-um-agente-mente</link><guid isPermaLink="false">https://bertolini.substack.com/p/os-quatro-jeitos-que-um-agente-mente</guid><dc:creator><![CDATA[Bruno Bertolini]]></dc:creator><pubDate>Sun, 16 Aug 2026 18:16:40 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!XWf7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93734af5-dad4-4c49-870e-a98981b77635_1024x687.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!XWf7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93734af5-dad4-4c49-870e-a98981b77635_1024x687.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!XWf7!, /__u/bertolini.substack.com/w_424, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93734af5-dad4-4c49-870e-a98981b77635_1024x687.png 424w, /__u/substackcdn.com/image/fetch/$s_!XWf7!, /__u/bertolini.substack.com/w_848, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93734af5-dad4-4c49-870e-a98981b77635_1024x687.png 848w, /__u/substackcdn.com/image/fetch/$s_!XWf7!, /__u/bertolini.substack.com/w_1272, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93734af5-dad4-4c49-870e-a98981b77635_1024x687.png 1272w, /__u/substackcdn.com/image/fetch/$s_!XWf7!, /__u/bertolini.substack.com/w_1456, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93734af5-dad4-4c49-870e-a98981b77635_1024x687.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!XWf7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93734af5-dad4-4c49-870e-a98981b77635_1024x687.png" width="1024" height="687" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/93734af5-dad4-4c49-870e-a98981b77635_1024x687.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:687,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:760033,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://bertolini.substack.com/i/211417114?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93734af5-dad4-4c49-870e-a98981b77635_1024x687.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!XWf7!, /__u/bertolini.substack.com/w_424, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93734af5-dad4-4c49-870e-a98981b77635_1024x687.png 424w, /__u/substackcdn.com/image/fetch/$s_!XWf7!, /__u/bertolini.substack.com/w_848, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93734af5-dad4-4c49-870e-a98981b77635_1024x687.png 848w, /__u/substackcdn.com/image/fetch/$s_!XWf7!, /__u/bertolini.substack.com/w_1272, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93734af5-dad4-4c49-870e-a98981b77635_1024x687.png 1272w, /__u/substackcdn.com/image/fetch/$s_!XWf7!, /__u/bertolini.substack.com/w_1456, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93734af5-dad4-4c49-870e-a98981b77635_1024x687.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Loop engineering &#233; o nome que ficou pra uma ideia simples: em vez de voc&#234; pedir uma coisa pro assistente e conferir o resultado, voc&#234; deixa ele repetindo o ciclo sozinho. Ele faz, olha o que saiu, tenta de novo, e s&#243; para quando bate uma regra objetiva que voc&#234; escreveu antes.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://bertolini.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Obrigado por ler! Assine gratuitamente para receber novos posts e apoiar meu trabalho.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>A conversa sobre isso nasceu no c&#243;digo, que &#233; onde o padr&#227;o &#233; mais f&#225;cil de aplicar. O Addy Osmani <a href="/__u/addyo.substack.com/p/practical-loop-engineering">publicou sobre o tema</a> essa semana e o time do Claude Code publicou <a href="https://x.com/ClaudeDevs/article/2074208949205881033">a classifica&#231;&#227;o de loops deles</a>. As duas pe&#231;as explicam bem como disparar o ciclo e como declarar a condi&#231;&#227;o que encerra a execu&#231;&#227;o. E c&#243;digo tem uma sorte que quase nenhum outro material tem: existe teste, existe build, existe uma nota de performance. O agente escreve e o mundo responde se est&#225; certo.</p><p>Eu apliquei o mesmo padr&#227;o num material que n&#227;o tem nada disso.</p><h2>o que eu deixei o agente cuidar</h2><p>Eu mantenho um segundo c&#233;rebro, que &#233; o nome bonito pra uma pasta de arquivos de texto onde entra tudo que eu aprendo trabalhando. Toda conversa longa com uma IA que produz alguma conclus&#227;o, toda decis&#227;o de produto, todo erro que me custou dinheiro, tudo isso vira nota, com a fonte anexada e a data em que aconteceu. Faz quatro meses que eu opero assim, e s&#227;o quase mil arquivos hoje, entre as notas de assunto e as conversas que deram origem a elas. Tudo isso conectado em toda LLM que eu uso, seja GPT, Claude, desktop ou CLI.</p><p>Cada nota tem duas partes: em cima, o que eu sei sobre aquele assunto hoje; embaixo, a lista datada das evid&#234;ncias que sustentam isso. A parte de baixo s&#243; cresce e nunca &#233; editada. A parte de cima &#233; reescrita sempre que a de baixo muda.</p><p>Isso virou o ativo mais importante que eu tenho, e a raz&#227;o &#233; o efeito composto. Uma anota&#231;&#227;o solta serve uma vez. Aqui, quando eu vou decidir alguma coisa, eu n&#227;o dependo de lembrar: eu pergunto, e o que volta &#233; o que eu j&#225; conclu&#237; sobre aquilo, com as fontes e com a data. Essa semana me mandaram um artigo sobre um tema que eu achava novo, e em cinco minutos eu vi que o meu pr&#243;prio sistema j&#225; sustentava aquilo com mais evid&#234;ncia do que o artigo trazia. Quatro meses disso &#233; uma vantagem que eu n&#227;o consigo reconstruir se sumir, porque a mat&#233;ria-prima foi conversa e trabalho que j&#225; passaram.</p><p>E a&#237; vem o trabalho chato. A evid&#234;ncia entra toda semana e o resumo l&#225; em cima envelhece, e ningu&#233;m vai reler tudo isso pra descobrir quais notas est&#227;o desatualizadas. Ent&#227;o eu passei o trabalho pro agente, com acesso aos arquivos e permiss&#227;o pra agir sozinho. Sempre que eu abro o terminal na pasta, ele escolhe uma nota que parece estar apodrecendo, reescreve o resumo e tenta gravar a mudan&#231;a.</p><p>Foram 88 rodadas em tr&#234;s semanas. Vinte e uma delas eram outro tipo de decis&#227;o e oito n&#227;o chegaram a produzir mudan&#231;a nenhuma. Sobram 59 tentativas reais de reescrever uma nota, das quais 52 foram reprovadas e 7 passaram.</p><p>Uma taxa dessas parece um sistema quebrado. Eu tamb&#233;m achei, at&#233; sentar pra ler o motivo de cada reprova&#231;&#227;o.</p><h2>o que o agente faz quando erra</h2><p>O primeiro susto foi o formato do erro. Eu esperava alucina&#231;&#227;o grosseira, do tipo citar um estudo que n&#227;o existe, e isso &#233; a minoria. Li as reprova&#231;&#245;es que vieram com o motivo escrito e elas caem em quatro fam&#237;lias, em ordem de dificuldade de detec&#231;&#227;o.</p><p>Vale dizer antes: nada disso &#233; m&#225;-f&#233;. &#201; um modelo otimizando pra deixar o texto bom, e algumas das maneiras de deixar um texto bom passam por afirmar mais do que voc&#234; pode.</p><p><strong>Afirma&#231;&#227;o sem lastro.</strong> O agente insere um fato que n&#227;o estava em nenhuma evid&#234;ncia dispon&#237;vel. Uma nota minha sobre meios de pagamento ganhou uma explica&#231;&#227;o sobre Pix Autom&#225;tico e regras do Banco Central, bem escrita e sem uma linha embaixo que a sustentasse. &#201; a fam&#237;lia f&#225;cil de entender, porque o fato ou tem fonte ou n&#227;o tem.</p><p><strong>Eleva&#231;&#227;o de certeza.</strong> Aqui nenhuma palavra &#233; falsa e mesmo assim a nota ficou mentirosa. A evid&#234;ncia dizia que uma medi&#231;&#227;o &#8220;refor&#231;a&#8221; uma hip&#243;tese e a nova vers&#227;o passou a dizer que ela &#8220;confirma&#8221;. Uma decis&#227;o que estava marcada como proposta virou uma decis&#227;o conclu&#237;da e aplicada. Outra nota ganhou um &#8220;&#233; o pilar com a base emp&#237;rica mais forte&#8221;, ranking que n&#227;o existia em lugar nenhum. Cada rodada dessas apaga um qualificador, e vinte rodadas depois voc&#234; tem um documento que afirma com certeza tudo que entrou como suspeita. &#201; a fam&#237;lia mais comum no meu log e a mais dif&#237;cil de pegar lendo, porque relendo o texto fica melhor.</p><p><strong>Fus&#227;o de categorias.</strong> O agente junta duas coisas que a evid&#234;ncia mantinha separadas. Numa nota sobre desempenho de carrossel eu tinha duas observa&#231;&#245;es distintas: uma sobre o alcance travar num teto, outra sobre a profundidade do conte&#250;do. A reescrita empacotou as duas numa regra fechada s&#243;, que era mais f&#225;cil de ler e dizia algo que nenhuma das duas evid&#234;ncias dizia sozinha.</p><p><strong>Perda de informa&#231;&#227;o.</strong> Ele reescreve melhor e no caminho some com um dado. A vers&#227;o anterior de uma nota dizia que um projeto &#8220;come&#231;ou manual&#8221;, e a vers&#227;o nova, mais bem escrita, simplesmente n&#227;o tinha mais essa informa&#231;&#227;o.</p><p>As duas primeiras qualquer um imagina. As duas &#250;ltimas s&#227;o as que degradam um sistema sem nunca disparar alarme, porque cada passo isolado parece uma melhoria de reda&#231;&#227;o.</p><h2>quem tem autoridade pra dizer n&#227;o</h2><p>Quando o agente termina de reescrever uma nota, ele n&#227;o grava nada. A vers&#227;o nova fica esperando, e precisa passar por tr&#234;s portas antes de virar a nota oficial. Cada porta custa mais caro que a anterior, e &#233; por isso que elas v&#234;m nessa ordem.</p><p><strong>A primeira porta &#233; um script que eu escrevi, e ele n&#227;o entende nada do que est&#225; lendo.</strong> S&#227;o duas regras burras, que rodam de gra&#231;a em toda tentativa, antes de qualquer IA ser consultada.</p><p>A primeira compara a nota velha com a nova e vai atr&#225;s dos n&#250;meros e dos links que existiam antes. Se algum sumiu no caminho, reprovado. O agente tem liberdade total pra reescrever a frase em volta de um dado; o que ele n&#227;o pode &#233; fazer o dado desaparecer. Cinco tentativas morreram a&#237;.</p><p>A segunda cuida das aspas. Toda vez que ele escreve uma frase entre aspas, atribuindo aquilo a algu&#233;m, o script vai na conversa original e procura a frase letra por letra. Se n&#227;o achar do jeitinho que foi escrita, reprovado. Sete tentativas morreram nessa.</p><p>E aqui est&#225; o detalhe que eu n&#227;o esperava. Nas primeiras vezes que essa regra reprovou, a frase entre aspas estava certa. O erro estava na frase em volta dela, que trocava quem tinha dito, ou apresentava um palpite do pr&#243;prio agente como se fosse fala de outra pessoa.</p><p><strong>A segunda porta &#233; outro modelo de IA, e essa &#233; a cara.</strong> Ele recebe pouca coisa de prop&#243;sito: s&#243; o trecho que mudou e a vers&#227;o antiga da nota, com uma pergunta &#250;nica. Essa mudan&#231;a se sustenta na evid&#234;ncia que j&#225; estava aqui? &#201; esse modelo que pega as duas fam&#237;lias que nenhuma regra burra pegaria, a certeza inflada e as categorias fundidas. Trinta e sete reprova&#231;&#245;es vieram daqui, incluindo o Pix Autom&#225;tico e o &#8220;come&#231;ou manual&#8221;.</p><p><strong>A terceira porta ignora o texto e olha o hist&#243;rico.</strong> Duas reprova&#231;&#245;es seguidas encerram a rodada e o agente para por ali. Se a taxa de reprova&#231;&#227;o de uma janela maior explodir, ele desliga sozinho. A l&#243;gica &#233; que uma reprova&#231;&#227;o &#233; um erro comum, e v&#225;rias seguidas significam que o problema saiu do texto e foi parar em quem est&#225; escrevendo.</p><p>A r&#233;gua que decide o que vai pra qual porta &#233; uma s&#243;: <strong>se d&#225; pra responder comparando dois peda&#231;os de texto, vira c&#243;digo.</strong> C&#243;digo custa uma vez e roda pra sempre, ent&#227;o mesmo pegando pouco ele se paga. O modelo caro fica s&#243; com o que exige entender significado, que &#233; onde ele &#233; insubstitu&#237;vel e onde ele tamb&#233;m erra.</p><h2>o crit&#233;rio de parada responde outra pergunta</h2><p>Aqui tem uma confus&#227;o que vale desfazer, e ela aparece na ferramenta que a maioria vai usar.</p><p>O Claude Code, que &#233; o ambiente de programa&#231;&#227;o por terminal da Anthropic, tem um comando chamado <code>/goal</code>. Voc&#234; declara o objetivo e um modelo avaliador confere, toda vez que o agente tenta parar, se o crit&#233;rio que voc&#234; escreveu foi atingido. &#201; comum ler isso como revis&#227;o de qualidade. O que esse avaliador faz &#233; comparar a transcri&#231;&#227;o da conversa com as regras duras que voc&#234; declarou, sem abrir o resultado pra ver se ficou bom. O pr&#243;prio Addy sublinha isso no texto dele.</p><p>Ou seja, s&#227;o dois trabalhos. O crit&#233;rio de parada responde &#8220;j&#225; acabou?&#8221; e o verificador responde &#8220;o que saiu presta?&#8221;. Um loop com crit&#233;rio excelente e sem verificador roda at&#233; o fim e entrega lixo no prazo.</p><p>Isso tamb&#233;m explica por que crit&#233;rio mensur&#225;vel funciona melhor. &#8220;Nota de performance acima de 90 no Lighthouse&#8221;, que &#233; a auditoria do Google que d&#225; nota de zero a cem pra uma p&#225;gina, &#233; uma coisa que o mundo responde. &#8220;At&#233; a p&#225;gina ficar boa&#8221; devolve pro modelo uma decis&#227;o que ele vai tomar a favor dele mesmo.</p><h2>o que isso custa</h2><p>Taxa de aceite baixa &#233; o pre&#231;o de rodar sem supervis&#227;o, e ela deveria ser baixa mesmo. Eu li os motivos das 52 reprova&#231;&#245;es e n&#227;o achei nenhuma que eu quisesse ter deixado passar.</p><p>O custo mais chato &#233; outro: o detector tamb&#233;m erra, e o meu errou feio. No fim de julho a fila de notas suspeitas n&#227;o esvaziava nunca, e o motivo era circular. O sinal que marcava uma nota como &#8220;precisa de revis&#227;o&#8221; era disparado pela pr&#243;pria nota de revis&#227;o que eu tinha acabado de escrever nela. A checagem estava certa e quem estava errado era o protocolo em volta dela. Nove notas presas nesse la&#231;o, e uma noite pra achar.</p><p>S&#243; achei porque cada rodada deixa registro em disco com o motivo por escrito. Se voc&#234; montar um desses, guarde esse log desde o primeiro dia. Ele ensina mais que o resultado aprovado.</p><h2>onde isso n&#227;o serve</h2><p>O padr&#227;o inteiro depende de existir alguma refer&#234;ncia fora do modelo pra decidir se o resultado est&#225; certo: um teste, um n&#250;mero, um comando que roda, ou, no meu caso, a evid&#234;ncia que j&#225; estava embaixo da nota. Onde o &#8220;pronto&#8221; &#233; quest&#227;o de gosto, como dire&#231;&#227;o visual ou escolha editorial, n&#227;o tem verificador pra montar, e o loop vira uma m&#225;quina de gerar varia&#231;&#227;o com aprova&#231;&#227;o autom&#225;tica.</p><p>E se a sua ideia de verificador &#233; pedir pro mesmo agente reler o que ele escreveu, o resultado &#233; conhecido desde 2023 e continua se replicando em pesquisa nova: ele corrige os outros com facilidade e passa a m&#227;o na pr&#243;pria cabe&#231;a. Por isso, no meu sistema, toda mudan&#231;a aceita carrega junto o registro de quem aprovou e com base em qual evid&#234;ncia.</p><p>Esse motor vai virar um app de desktop, que eu estou terminando. Ele monta e mant&#233;m essa base a partir das suas conversas, conectado no assistente que voc&#234; j&#225; usa. Estou fechando a primeira vers&#227;o e n&#227;o vou fazer barulho antes da hora. Se quiser o convite quando abrir, responde esse e-mail com a palavra &#8220;c&#233;rebro&#8221;.</p><p>At&#233; a pr&#243;xima,<br>Bruno</p><p>Nota de processo: o rascunho desse texto foi escrito por um agente lendo o log do sistema que ele descreve, e n&#227;o pela minha mem&#243;ria do que aconteceu. Depois passou por um modelo de outra fam&#237;lia, que achou dois erros meus: a conta dos ciclos n&#227;o fechava, e eu tinha dado o cr&#233;dito de duas capturas pra camada errada. Os dois est&#227;o corrigidos acima. A edi&#231;&#227;o final &#233; minha. &#201; o mesmo desenho do artigo, aplicado nele mesmo.</p><p>P.S. A classifica&#231;&#227;o das falhas e o desenho das tr&#234;s portas est&#227;o aqui de prop&#243;sito, porque &#233; o que eu queria ter lido antes de montar o meu. Montar de verdade, escolher o que vira c&#243;digo, escrever o prompt do verificador e calibrar os limites, &#233; o que eu mostro passo a passo dentro do Protocolo AI, na Codar.me.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://bertolini.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Obrigado por ler! Assine gratuitamente para receber novos posts e apoiar meu trabalho.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[A pasta que vale mais que todo o código que eu já escrevi]]></title><description><![CDATA[O ativo mais valioso que eu constru&#237; nos &#250;ltimos anos &#233; uma pasta de arquivos de texto: uma Wikip&#233;dia particular sobre o meu trabalho, que agentes de IA escrevem e mant&#234;m.]]></description><link>https://bertolini.substack.com/p/a-pasta-que-vale-mais-que-todo-o</link><guid isPermaLink="false">https://bertolini.substack.com/p/a-pasta-que-vale-mais-que-todo-o</guid><dc:creator><![CDATA[Bruno Bertolini]]></dc:creator><pubDate>Tue, 14 Jul 2026 21:25:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!sQhn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e591b56-49bc-4b7d-af7d-851bf91099b8_2816x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!sQhn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e591b56-49bc-4b7d-af7d-851bf91099b8_2816x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!sQhn!, /__u/bertolini.substack.com/w_424, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e591b56-49bc-4b7d-af7d-851bf91099b8_2816x1536.png 424w, /__u/substackcdn.com/image/fetch/$s_!sQhn!, /__u/bertolini.substack.com/w_848, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e591b56-49bc-4b7d-af7d-851bf91099b8_2816x1536.png 848w, /__u/substackcdn.com/image/fetch/$s_!sQhn!, /__u/bertolini.substack.com/w_1272, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e591b56-49bc-4b7d-af7d-851bf91099b8_2816x1536.png 1272w, /__u/substackcdn.com/image/fetch/$s_!sQhn!, /__u/bertolini.substack.com/w_1456, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e591b56-49bc-4b7d-af7d-851bf91099b8_2816x1536.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!sQhn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e591b56-49bc-4b7d-af7d-851bf91099b8_2816x1536.png" width="1456" height="794" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4e591b56-49bc-4b7d-af7d-851bf91099b8_2816x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:794,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2558812,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://bertolini.substack.com/i/207057649?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e591b56-49bc-4b7d-af7d-851bf91099b8_2816x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!sQhn!, /__u/bertolini.substack.com/w_424, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e591b56-49bc-4b7d-af7d-851bf91099b8_2816x1536.png 424w, /__u/substackcdn.com/image/fetch/$s_!sQhn!, /__u/bertolini.substack.com/w_848, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e591b56-49bc-4b7d-af7d-851bf91099b8_2816x1536.png 848w, /__u/substackcdn.com/image/fetch/$s_!sQhn!, /__u/bertolini.substack.com/w_1272, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e591b56-49bc-4b7d-af7d-851bf91099b8_2816x1536.png 1272w, /__u/substackcdn.com/image/fetch/$s_!sQhn!, /__u/bertolini.substack.com/w_1456, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4e591b56-49bc-4b7d-af7d-851bf91099b8_2816x1536.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>O ativo mais valioso que eu constru&#237; nos &#250;ltimos anos &#233; uma pasta de arquivos de texto: uma Wikip&#233;dia particular sobre o meu trabalho, que agentes de IA escrevem e mant&#234;m. Se eu perder ela, perco meses de conhecimento, aprendizado e decis&#245;es, e praticamente tudo que eu produzo hoje nasce de l&#225; (esse email, inclusive).</p><p>Pra voc&#234; entender por que uma pasta de markdown vale tanto, deixa eu come&#231;ar com uma pergunta: quanto do que voc&#234; leu, decidiu e aprendeu nos &#250;ltimos 6 meses voc&#234; lembra hoje?</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://bertolini.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Obrigado por ler! Assine gratuitamente para receber novos posts e apoiar meu trabalho.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Se voc&#234; &#233; como eu era, quase nada. A leitura boa evapora em duas semanas, a decis&#227;o tomada vira d&#250;vida de novo (&#8221;por que mesmo a gente descartou aquela ideia?&#8221;), e o app de notas vira um cemit&#233;rio: voc&#234; escreve, nunca mais abre, e no fim t&#225; sempre recome&#231;ando do zero.</p><p>Eu sei disso porque passei anos tentando resolver com um &#8220;segundo c&#233;rebro&#8221;, que &#233; como se chama um sistema externo que lembra por voc&#234;. Estudei Zettelkasten a fundo, apliquei, cheguei a dar palestra sobre o m&#233;todo, e n&#227;o decolou. Ca&#237; nas evergreen notes e no site do <a href="https://notes.andymatuschak.org">Andy Matuschak</a> (que continua sendo uma das coisas mais bonitas da internet), assisti uma quantidade embara&#231;osa de v&#237;deo sobre m&#233;todos de nota e testei ferramenta atr&#225;s de ferramenta. O gargalo era sempre o mesmo: disciplina pra ingerir as coisas e manter tudo rastreado e atualizado, todo dia, pra sempre.</p><p>Quando conheci o blog do Tiago Forte e o m&#233;todo PARA, achei que tinha encontrado a sa&#237;da. Comprei o livro no lan&#231;amento, devorei em 3 dias, apliquei, e dessa vez come&#231;ou a funcionar. Automatizei um peda&#231;o com o Readwise puxando meus highlights do Kindle direto pro Notion, mas era s&#243; um peda&#231;o, o resto continuava dependendo de eu sentar e processar. Meu segundo c&#233;rebro nunca chegou nem no potencial m&#237;nimo que eu imaginava.</p><p>At&#233; que a IA tirou da minha m&#227;o a parte que eu nunca sustentei: a disciplina.</p><p>Hoje o meu segundo c&#233;rebro &#233; aquela Wikip&#233;dia particular do come&#231;o do texto, e o meu papel encolheu pra uma coisa s&#243;, entregar o material. Terminei uma conversa boa com um LLM, passo pro agente, e <strong>ele extrai o que importa,</strong> arquiva conectado ao que j&#225; existe e marca o quanto d&#225; pra confiar em cada informa&#231;&#227;o (hip&#243;tese fica marcada como hip&#243;tese at&#233; fontes independentes confirmarem). <strong>Artigo que muda algo no meu trabalho</strong> entra do mesmo jeito, <strong>decis&#227;o de produto</strong> fica registrada com o contexto do momento. E a parte que mais gera valor com o tempo s&#227;o os meus n&#227;os: <strong>toda vez que eu recuso uma proposta, o sistema guarda o que foi proposto, que eu recusei e principalmente o porqu&#234;</strong>, porque os sims a gente documenta f&#225;cil, mas s&#227;o os n&#227;os com o porqu&#234; que ensinam o agente a decidir como eu decidiria.</p><p>O efeito &#233; que eu nunca mais comecei do zero. Antes de escrever, o agente consulta o que o sistema j&#225; sabe sobre o tema, antes de uma decis&#227;o ele checa se eu j&#225; vetei algo parecido, e quando eu vou construir qualquer coisa, a primeira consulta &#233; sempre l&#225;: dessa pasta saem projetos, features, aulas e conte&#250;dos. Ele cresce enquanto eu trabalho, aprendo e decido. Ele vai se tornando um clone, pois come&#231;a a entender como eu penso e decido, automatizando decis&#245;es que eu tomaria, e ele acerta muito. Quanto mais informa&#231;&#227;o &#233; ingerida, mais certeiras e automatizadas ficam as pr&#243;ximas decis&#245;es.<br><br>O melhor de tudo &#233; que eu n&#227;o preciso mais copiar nada de um lado pro outro, ou depender de um app. Qualquer LLM, em qualquer lugar, Claude Desktop, Claude Code, Chatgpt, Gemini&#8230; todos eles enxergam meu segundo c&#233;rebro, sabem pesquisar, ingerir infos novas, e f</p><p>azem isso sozinhos muitas vezes.<br></p><p>Parece o setup perfeito, n&#233;? Eu tamb&#233;m achava, at&#233; essa semana, quando descobri uma p&#225;gina com cara de fato que era hip&#243;tese bem escrita, promovida como se tivesse lastro. Peguei o meu pr&#243;prio sistema mentindo pra mim com carimbo de verdade, e precisei de um segundo modelo de IA, de outra empresa, pra ver o tamanho real do problema. Essa hist&#243;ria merece espa&#231;o, ent&#227;o ela fica pra pr&#243;xima edi&#231;&#227;o.</p><p>At&#233; a pr&#243;xima,</p><p>Bruno</p><p>P.S. E voc&#234;, j&#225; tentou montar um segundo c&#233;rebro? Responde me contando como foi (ou por que desistiu), eu leio tudo.</p><p>P.P.S. Esse sistema virou meu laborat&#243;rio de como agentes constroem e mant&#234;m conhecimento confi&#225;vel, e tem coisa saindo dele em breve. Se quiser ser avisado quando sair, uma palavra basta: c&#233;rebro.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://bertolini.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Obrigado por ler! Assine gratuitamente para receber novos posts e apoiar meu trabalho.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Como confiar em código que você não leu]]></title><description><![CDATA[A IA achou dois bugs de pagamento que ela mesma escreveu. Meus testes estavam verdes.]]></description><link>https://bertolini.substack.com/p/como-confiar-em-codigo-que-voce-nao</link><guid isPermaLink="false">https://bertolini.substack.com/p/como-confiar-em-codigo-que-voce-nao</guid><dc:creator><![CDATA[Bruno Bertolini]]></dc:creator><pubDate>Sat, 06 Jun 2026 22:42:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!4cRQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe52ffe8e-09c0-497e-ac3a-78b9baae0b01_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!4cRQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe52ffe8e-09c0-497e-ac3a-78b9baae0b01_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!4cRQ!, /__u/bertolini.substack.com/w_424, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe52ffe8e-09c0-497e-ac3a-78b9baae0b01_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!4cRQ!, /__u/bertolini.substack.com/w_848, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe52ffe8e-09c0-497e-ac3a-78b9baae0b01_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!4cRQ!, /__u/bertolini.substack.com/w_1272, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe52ffe8e-09c0-497e-ac3a-78b9baae0b01_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!4cRQ!, /__u/bertolini.substack.com/w_1456, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe52ffe8e-09c0-497e-ac3a-78b9baae0b01_1672x941.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!4cRQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe52ffe8e-09c0-497e-ac3a-78b9baae0b01_1672x941.png" width="1672" height="941" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e52ffe8e-09c0-497e-ac3a-78b9baae0b01_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:941,&quot;width&quot;:1672,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3261879,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://bertolini.substack.com/i/200892555?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d41caf0-53cf-4fb7-af11-4c4e7ad19839_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!4cRQ!, /__u/bertolini.substack.com/w_424, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe52ffe8e-09c0-497e-ac3a-78b9baae0b01_1672x941.png 424w, /__u/substackcdn.com/image/fetch/$s_!4cRQ!, /__u/bertolini.substack.com/w_848, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe52ffe8e-09c0-497e-ac3a-78b9baae0b01_1672x941.png 848w, /__u/substackcdn.com/image/fetch/$s_!4cRQ!, /__u/bertolini.substack.com/w_1272, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe52ffe8e-09c0-497e-ac3a-78b9baae0b01_1672x941.png 1272w, /__u/substackcdn.com/image/fetch/$s_!4cRQ!, /__u/bertolini.substack.com/w_1456, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe52ffe8e-09c0-497e-ac3a-78b9baae0b01_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Outro dia eu mandei um diff de webhook de pagamento pro meu pipeline de review. Os testes passaram, o lint passou, o build passou, e na maioria dos times isso bastaria pra mergear.</p><p>O meu pipeline n&#227;o para a&#237;. Depois desse gate, o diff cai num grupo de reviewers de IA que leem o c&#243;digo em paralelo, cada um ca&#231;ando um tipo diferente de problema (bug, seguran&#231;a, performance, observabilidade). Foi um desses reviewers que achou uma coisa que nenhum teste cobria. O c&#243;digo tratava bem os erros tempor&#225;rios do banco, mas uma classe de erro tinha ficado fora da lista, e quando ela acontecia o webhook respondia sucesso pro provedor de pagamento sem ter gravado nada. O provedor lia aquele sucesso e parava de reenviar o evento. Pagamento perdido, em sil&#234;ncio, sem alarme.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://bertolini.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Obrigado por ler! Assine gratuitamente para receber novos posts e apoiar meu trabalho.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Pouco depois o mesmo padr&#227;o apareceu disfar&#231;ado num segundo diff, e o reviewer pegou de novo. Duas vezes no mesmo m&#234;s um teste verde quase me custou dinheiro.</p><p>Agora o detalhe que muda a conversa. O modelo que escreveu esses bugs e o modelo que achou esses bugs eram o mesmo. O que mudou entre o erro e a captura foi a estrutura em volta dele.</p><p>Essa estrutura &#233; o assunto desta edi&#231;&#227;o, porque &#233; ela que compra o direito de confiar em c&#243;digo que voc&#234; n&#227;o leu. Sem ela sobram duas op&#231;&#245;es ruins, reler tudo que a IA produz e ficar mais lento do que era sozinho, ou mergear no escuro e descobrir o custo em produ&#231;&#227;o.</p><h2>Essa estrutura tem nome</h2><p>Harness engineering. O termo apareceu em abril de 2026 num artigo da Birgitta B&#246;ckeler, Distinguished Engineer na Thoughtworks e a mesma Birgitta da cr&#237;tica ao Spec Kit que citei na edi&#231;&#227;o de SDD. Ela deu nome pra algo que muita gente j&#225; montava sem vocabul&#225;rio, que &#233; tudo o que cerca o modelo no seu setup de IA. System prompt, rules, skills, hooks, testes, gates e aqueles reviewers do come&#231;o do texto, tudo isso &#233; harness.</p><p>A palavra &#233; mais literal do que parece. Harness &#233; arreio, e um arreio existe pra transformar a for&#231;a bruta do cavalo em trabalho direcionado. Ningu&#233;m ara um campo com cavalo solto.</p><p>O modelo &#233; o cavalo dessa hist&#243;ria. E enquanto o feed elege um cavalo novo por semana, o arreio &#233; a parte do setup que ignora a rota&#231;&#227;o, o que pra mim define fundamento: algo que voc&#234; implanta num time hoje e continua colhendo quando o modelo da moda mudar tr&#234;s vezes.</p><h2>As duas metades</h2><p>Por dentro, todo <strong>harness</strong> se divide em duas metades que trabalham em momentos diferentes. A primeira age antes de o agente tocar no c&#243;digo e existe pra orientar, e &#233; onde vivem as rules, as skills, o CLAUDE.md e o linter que devolve erro antes do commit. A B&#246;ckeler chama essa metade de <strong>guides</strong>. A segunda age depois que o agente terminou e existe pra conferir, e &#233; onde vivem os testes, o type check e os agentes de review. Essa metade s&#227;o os <strong>sensors</strong>.</p><p>Eu demorei pra enxergar que as duas metades formam um fundamento s&#243;. Minha tenta&#231;&#227;o era tratar verifica&#231;&#227;o como coisa separada, do tipo valida o output da IA com testes e reviewers e pronto. S&#243; que validar exige um crit&#233;rio, o crit&#233;rio vem das rules, e as rules viram decora&#231;&#227;o quando ningu&#233;m confere se foram seguidas. Cada metade pressup&#245;e a outra, e a B&#246;ckeler descreve o que acontece quando falta uma delas: s&#243; guides gera agente seguindo manual sem feedback, s&#243; sensors gera agente que trope&#231;a e aprende devagar.</p><p>Um harness funcional tem as duas metades populadas.</p><h2>A regra de ouro: o barato roda primeiro</h2><p>Dentro da metade dos sensors mora a regra mais pr&#225;tica desta edi&#231;&#227;o. Sensors v&#234;m em dois tipos, e a diferen&#231;a entre eles &#233; custo. O <strong>computacional &#233; determin&#237;stico</strong>, roda em segundos e quase de gra&#231;a, como lint, type check, build e testes. O <strong>inferencial pensa em vez de checar, e pensar custa caro</strong>, porque um agente de IA lendo seu diff leva minutos e consome tokens.</p><p>A regra que organiza os dois tipos, a B&#246;ckeler chama de <strong>keep quality left</strong>. O barato roda primeiro, e o caro s&#243; entra se o barato passou, porque gastar review de LLM num diff que nem compila &#233; queimar dinheiro &#224; toa.</p><p>Foi essa cascata que pegou o bug do pagamento l&#225; do come&#231;o. O gate barato aprovou tudo o que sabia checar, e sobrou pra camada cara exatamente o tipo de pergunta que s&#243; leitura sem&#226;ntica responde. Teste verde garante que o c&#243;digo roda. Se ele faz a coisa certa, quem responde &#233; a outra camada.</p><h2>Quatro harnesses, as mesmas escolhas</h2><p>Uma pesquisa da Arize foi olhar o c&#243;digo-fonte de quatro harnesses de mercado (Claude Code, Letta, Pi e OpenClaw) atr&#225;s do que eles tinham em comum, e a pesquisadora, Aparna Dhinakaran, documentou seis padr&#245;es presentes nos quatro, entre eles: 1) um teto fixo de leitura de arquivo, 2) isolamento de subagents, 3) compacta&#231;&#227;o de contexto por threshold e 4) medi&#231;&#227;o cont&#237;nua de press&#227;o de contexto. Quatro times, nenhuma coordena&#231;&#227;o, as mesmas escolhas.<br><br>A frase que fecha o estudo dela merece ficar inteira: </p><blockquote><p>50 anos de computa&#231;&#227;o ensinaram que a melhor memory management &#233; a invis&#237;vel pra camada acima. Agent harnesses est&#227;o indo na mesma dire&#231;&#227;o.</p></blockquote><h2>O teste do fundamento</h2><p>No fim sobra o teste que separa fundamento de ferramenta. Troca o modelo do seu setup amanh&#227; e observa o que sobrevive. As rules continuam dizendo o que &#233; correto, os testes continuam validando, os reviewers continuam lendo diff. O nome dos arquivos muda conforme a ferramenta, de CLAUDE.md pra .cursorrules pra AGENTS.md pra o que mais inventarem, mas externalizar comportamento em artefato versionado sobrevive a todas as trocas (pelo menos por enquanto).</p><div><hr></div><p>Essa edi&#231;&#227;o fecha um trio que come&#231;ou l&#225; atr&#225;s: a da <a href="/__u/bertolini.substack.com/p/por-que-a-ia-ignora-metade-do-que">aten&#231;&#227;o em U era sobre o que o modelo v&#234; </a>(context engineering), <a href="/__u/bertolini.substack.com/p/o-metodo-que-github-google-e-amazon">a do Spec Kit sobre a fonte de verdade</a> (spec-driven development), e essa sobre o que cerca o modelo, a metade que orienta e a metade que valida.</p><p>Na pr&#243;xima edi&#231;&#227;o eu puxo o fio que essa deixou armado: por que eu n&#227;o leio mais c&#243;digo, nem PR, e quando ainda faz sentido ler.</p><p>--</p><p><strong>Bruno Bertolini</strong></p><p>P.S. Se quiser come&#231;ar um harness hoje, come&#231;a pequeno: um arquivo de rules com os 3 n&#237;veis da edi&#231;&#227;o de SDD (Always, Ask First, Never) e um gate que roda lint e teste antes de qualquer review. O resto cresce a partir das falhas, porque toda vez que o agente erra a mesma coisa duas vezes, aquilo vira regra ou vira teste.</p><p>O passo a passo de montar o harness inteiro (rules, skills, pipeline de reviewers) vai dentro do <a href="https://codar.me/protocolo-ai">Protocolo AI</a>, o curso que estou montando na Codar.me. </p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://bertolini.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Obrigado por ler! Assine gratuitamente para receber novos posts e apoiar meu trabalho.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Fiz R$ 100k em 92 dias com um app que a IA escreveu em 3.]]></title><description><![CDATA[A parte que n&#227;o cabe no print: uma fal&#234;ncia, 20 anos de bagagem e o que a IA n&#227;o faz por voc&#234;.]]></description><link>https://bertolini.substack.com/p/fiz-r-100k-em-92-dias-com-um-app</link><guid isPermaLink="false">https://bertolini.substack.com/p/fiz-r-100k-em-92-dias-com-um-app</guid><dc:creator><![CDATA[Bruno Bertolini]]></dc:creator><pubDate>Tue, 02 Jun 2026 11:49:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!OIsy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cae70e2-9dc5-42ba-a028-933ac895b8eb_639x319.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!OIsy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cae70e2-9dc5-42ba-a028-933ac895b8eb_639x319.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!OIsy!, /__u/bertolini.substack.com/w_424, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cae70e2-9dc5-42ba-a028-933ac895b8eb_639x319.png 424w, /__u/substackcdn.com/image/fetch/$s_!OIsy!, /__u/bertolini.substack.com/w_848, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cae70e2-9dc5-42ba-a028-933ac895b8eb_639x319.png 848w, /__u/substackcdn.com/image/fetch/$s_!OIsy!, /__u/bertolini.substack.com/w_1272, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cae70e2-9dc5-42ba-a028-933ac895b8eb_639x319.png 1272w, /__u/substackcdn.com/image/fetch/$s_!OIsy!, /__u/bertolini.substack.com/w_1456, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cae70e2-9dc5-42ba-a028-933ac895b8eb_639x319.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!OIsy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cae70e2-9dc5-42ba-a028-933ac895b8eb_639x319.png" width="727" height="362.93114241001564" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0cae70e2-9dc5-42ba-a028-933ac895b8eb_639x319.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:319,&quot;width&quot;:639,&quot;resizeWidth&quot;:727,&quot;bytes&quot;:26259,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://bertolini.substack.com/i/200210757?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cae70e2-9dc5-42ba-a028-933ac895b8eb_639x319.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!OIsy!, /__u/bertolini.substack.com/w_424, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cae70e2-9dc5-42ba-a028-933ac895b8eb_639x319.png 424w, /__u/substackcdn.com/image/fetch/$s_!OIsy!, /__u/bertolini.substack.com/w_848, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cae70e2-9dc5-42ba-a028-933ac895b8eb_639x319.png 848w, /__u/substackcdn.com/image/fetch/$s_!OIsy!, /__u/bertolini.substack.com/w_1272, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cae70e2-9dc5-42ba-a028-933ac895b8eb_639x319.png 1272w, /__u/substackcdn.com/image/fetch/$s_!OIsy!, /__u/bertolini.substack.com/w_1456, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cae70e2-9dc5-42ba-a028-933ac895b8eb_639x319.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>No come&#231;o deste ano, eu estava falido. Uma s&#233;rie de investimentos malsucedidos me deixaram com 3 meses de reserva de emerg&#234;ncia.</p><p>Mas eu tinha dois planos, e compartilhei os dois no Instagram. O plano A era o &#243;bvio: voltar pro mercado de trabalho. O plano B era construir um SaaS, mesmo sem saber ainda qual.</p><p>Nunca precisei buscar emprego, eles sempre vieram do meu networking ou de indica&#231;&#227;o, famoso QI. Pela primeira vez em 20 anos, fui atr&#225;s de emprego do jeito convencional. Dessa vez eu fui mandar curr&#237;culo como todo mundo. Em parte por vergonha de ter quebrado. Em parte por teimosia de querer empreender de novo e &#8220;n&#227;o querer" arrumar um emprego. Era uma sabotagem, eu sei.</p><p>Foi o plano A que fez o plano B brilhar. Correndo atr&#225;s de vaga, ficou claro o que valia a pena construir. Botei a IA pra trabalhar e em 3 dias o produto estava no ar.</p><p>No dia 03 de fevereiro, a Karvi (na &#233;poca, DevProfile) faturava R$ 0. No dia 92, tinha somado R$ 100k. Bem mais r&#225;pido do que eu esperava. Sozinho, sem s&#243;cio, sem time, sem investidor.</p><p>Eu sei como isso soa: mais um print de &#8220;fiz um SaaS em 3 dias com IA&#8221;. Ent&#227;o deixa eu contar a parte que n&#227;o cabe no print. </p><h2>20 anos em 3 dias</h2><p>Os &#8220;3 dias&#8221; s&#227;o verdade. Mas eles montaram em cima de 20 anos que n&#227;o aparecem no print.</p><p>Eu n&#227;o comecei do zero. A base eu j&#225; tinha de outros produtos meus no ar: login, pagamento, o gateway de IA, tudo testado em produ&#231;&#227;o. Os 3 dias foram pra construir o que era novo, n&#227;o pra refazer o que eu j&#225; tinha resolvido dez vezes.</p><p>Eu sei dirigir a IA. Largada sozinha, ela te entrega um prot&#243;tipo bonito que cai na primeira esquina. Quando ela me dava o caminho complicado, eu jogava fora e mandava simplificar. Quando ela queria sair arquitetando, eu parava e validava com dado real antes. Vinte anos viraram isso: saber o que pedir e farejar quando a resposta veio torta.</p><p>E sei o que n&#227;o construir. Metade da velocidade &#233; cortar. A feature que parece &#243;bvia mas n&#227;o move ponteiro, a integra&#231;&#227;o que todo mundo colaria s&#243; porque d&#225;, o atalho que cobra juros l&#225; na frente: disse n&#227;o pra todas. Isso n&#227;o vem no tutorial, vem de ter errado por muito tempo.</p><p>E mesmo com 20 anos nas costas, os 3 dias foram s&#243; o pontap&#233;. Vieram tr&#234;s meses de caverna, 18 horas por dia, olhando n&#250;mero e ajustando o produto. Sem fim de semana, sem muito descanso.</p><h2>A ideia que eu n&#227;o tive que procurar</h2><p>Eu n&#227;o achei a ideia, eu era o cliente.</p><p>Buscando emprego, esbarrei na minha pr&#243;pria dor: meu LinkedIn estava abandonado. Largado, sem gra&#231;a, sem dizer nada do que eu sabia fazer, bem na hora em que era ele que ia me abrir ou fechar portas.</p><p>A maioria dos devs faz o contr&#225;rio: passa meses ca&#231;ando &#8220;a ideia genial&#8221;, um problema que nem vive. Eu n&#227;o precisei de pesquisa de mercado pra saber que aquilo valia: eu mesmo pagaria pra algu&#233;m resolver se eu n&#227;o soubesse. Eu ajudei, por anos, muitos alunos da Codar.me a resolver isso tamb&#233;m.</p><p>E essa &#233; a parte que a IA n&#227;o faz por voc&#234;. Ela escreve o c&#243;digo em horas. Mas qual problema vale a pena resolver, isso ela n&#227;o sabe, quem sabe &#233; quem t&#225; vivendo ele.</p><h2>Lan&#231;ar feio no dia 3</h2><p>Com a dor certa em m&#227;os, o pr&#243;ximo erro seria sumir seis meses caprichando antes de mostrar pra algu&#233;m. Isso tem nome: Build Trap. Voc&#234; se convence de que falta &#8220;s&#243; mais uma feature&#8221;, e o tempo evapora. No fim, o produto t&#225; lindo e ningu&#233;m usa.</p><p>Lancei no dia 3. Feio, incompleto, com vergonha de mostrar, sem pagamento por pix, s&#243; cart&#227;o. No primeiro dia, entraram R$ 2.500.</p><p>E n&#227;o estava nem perto de pronto. Mas feature n&#227;o &#233; progresso, progresso &#233; algu&#233;m usando seu app e tirando dinheiro do bolso. Cada dia que voc&#234; segura o lan&#231;amento &#233; mais um dia de achismo n&#227;o testado.</p><h2>O mercado corrige o que voc&#234; n&#227;o v&#234;</h2><p>Tem uma frase que eu repito: nenhum projeto sobrevive ao primeiro contato com o usu&#225;rio. Voc&#234; acha que sabe o que as pessoas querem, at&#233; elas botarem a m&#227;o no produto.</p><p>Por isso instrumentei tudo desde os primeiros dias, antes de ter volume pra medir. Eu precisava ver o que as pessoas faziam de verdade no produto. O que eu imaginava sozinho quase nunca batia.</p><p>Foi assim que achei o vazamento. O faturamento total subia e parecia &#243;timo, mas a convers&#227;o por device contava outra hist&#243;ria: no desktop a pessoa convertia bem (16-18%), no mobile bem menos, menos de 5%. Eu calculei que deixei de ganhar R$ 16k nos dois primeiros meses. Eu estava pagando pra trazer gente boa e travando ela na porta.</p><p>Ent&#227;o, arrumei o onboarding no mobile, s&#243; isso. A segunda metade dos R$ 100k entrou na metade do tempo da primeira.</p><h2>O que eu levo dos primeiros 100k</h2><p>Plano B virou plano A. De falido a R$ 100k em 92 dias, sozinho.</p><p>Se voc&#234; &#233; dev e tira uma coisa daqui, que seja essa: a IA n&#227;o escolhe a sua dor, n&#227;o lan&#231;a no seu lugar, e n&#227;o l&#234; o que o mercado te responde.</p><p>Constr&#243;i o que voc&#234; mesmo precisa. Lan&#231;a antes de achar que est&#225; pronto, e deixa o mercado te corrigir, que o resto, a IA acelera.</p><p>Os R$ 100k j&#225; ficaram pra tr&#225;s enquanto eu escrevia isto, e a r&#233;gua j&#225; se moveu de novo.</p><p>Mas tem uma armadilha em deixar a IA preencher os espa&#231;os por voc&#234;: sem os teus fatos, ela n&#227;o trava. Inventa o que &#233; mais prov&#225;vel (essa &#233; a natureza dela) e escreve com a confian&#231;a de um especialista, mesmo errando feio. Foi isso que me fez construir a Karvi de um jeito bem espec&#237;fico. Mas essa hist&#243;ria fica pra pr&#243;xima.</p><p>At&#233; a pr&#243;xima, Bruno</p><p>P.S: T&#225; travado em qual problema resolver, ou com medo de lan&#231;ar antes de estar pronto? Me responde esse e-mail ou comenta aqui a tua d&#250;vida. Eu leio todas, e as melhores podem virar assunto de alguma edi&#231;&#227;o.</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://bertolini.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[A Paciência é Uma Escolha]]></title><description><![CDATA[a parte mais dif&#237;cil da converg&#234;ncia]]></description><link>https://bertolini.substack.com/p/a-paciencia-e-uma-escolha</link><guid isPermaLink="false">https://bertolini.substack.com/p/a-paciencia-e-uma-escolha</guid><dc:creator><![CDATA[Bruno Bertolini]]></dc:creator><pubDate>Fri, 10 Apr 2026 11:53:40 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!dt3O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e7ced5-2267-4998-9615-600666cb6f8d_2752x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!dt3O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e7ced5-2267-4998-9615-600666cb6f8d_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!dt3O!, /__u/bertolini.substack.com/w_424, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e7ced5-2267-4998-9615-600666cb6f8d_2752x1536.png 424w, /__u/substackcdn.com/image/fetch/$s_!dt3O!, /__u/bertolini.substack.com/w_848, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e7ced5-2267-4998-9615-600666cb6f8d_2752x1536.png 848w, /__u/substackcdn.com/image/fetch/$s_!dt3O!, /__u/bertolini.substack.com/w_1272, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e7ced5-2267-4998-9615-600666cb6f8d_2752x1536.png 1272w, /__u/substackcdn.com/image/fetch/$s_!dt3O!, /__u/bertolini.substack.com/w_1456, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e7ced5-2267-4998-9615-600666cb6f8d_2752x1536.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!dt3O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e7ced5-2267-4998-9615-600666cb6f8d_2752x1536.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/00e7ced5-2267-4998-9615-600666cb6f8d_2752x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:8521697,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://bertolini.substack.com/i/193741837?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e7ced5-2267-4998-9615-600666cb6f8d_2752x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!dt3O!, /__u/bertolini.substack.com/w_424, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e7ced5-2267-4998-9615-600666cb6f8d_2752x1536.png 424w, /__u/substackcdn.com/image/fetch/$s_!dt3O!, /__u/bertolini.substack.com/w_848, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e7ced5-2267-4998-9615-600666cb6f8d_2752x1536.png 848w, /__u/substackcdn.com/image/fetch/$s_!dt3O!, /__u/bertolini.substack.com/w_1272, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e7ced5-2267-4998-9615-600666cb6f8d_2752x1536.png 1272w, /__u/substackcdn.com/image/fetch/$s_!dt3O!, /__u/bertolini.substack.com/w_1456, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00e7ced5-2267-4998-9615-600666cb6f8d_2752x1536.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>No texto sobre a <a href="/__u/bertolini.substack.com/p/a-teoria-da-convergencia-cognitiva">Teoria da converg&#234;ncia</a>  eu terminei com uma frase que ficou na minha cabe&#231;a por dias.</p><blockquote><p><em>A converg&#234;ncia &#233; inevit&#225;vel. A paci&#234;ncia com quem ainda n&#227;o convergiu &#233; uma escolha.</em></p></blockquote><p>Escrevi aquilo como fechamento. Ficou bonito, fazia sentido. E segui em frente.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://bertolini.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Obrigado por ler! Assine gratuitamente para receber novos posts e apoiar meu trabalho.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p>Dias depois, a vida resolveu testar a frase.</p><p>Fiz uma pergunta p&#250;blica no X sobre um assunto que eu n&#227;o domino. Uma pergunta simples, sem pretens&#227;o. E a rea&#231;&#227;o de algu&#233;m me lembrou que escrever sobre paci&#234;ncia &#233; f&#225;cil. Praticar, no calor do momento, &#233; outra coisa.</p><p>N&#227;o vou contar o caso. N&#227;o importa quem disse o qu&#234;. O que importa &#233; o que eu senti e o que eu fiz com isso. Porque essa &#233; a parte que ningu&#233;m te ensina.</p><div><hr></div><h2>Quando os mapas se encontram</h2><p>Em <a href="/__u/bertolini.substack.com/p/a-construcao-da-consciencia">A Constru&#231;&#227;o da Conci&#234;ncia</a>, primeiro texto desta s&#233;rie, falei sobre o <em>fog of war.</em> Sobre como o mapa de cada pessoa tem um tamanho diferente, e como a maioria dos conflitos nasce do fato de que <strong>cada um s&#243; enxerga o peda&#231;o que j&#225; descobriu.</strong></p><p>Na Teoria da Converg&#234;ncia Cognitiva, falei sobre a estrada em perspectiva. Sobre como no come&#231;o todo mundo parece distante, e como a converg&#234;ncia s&#243; acontece quando voc&#234; acumula cicatrizes suficientes pra fechar portas suficientes.</p><p>Essa terceira parte &#233; sobre o que acontece no meio. Quando um mapa expandido encontra um que ainda n&#227;o expandiu. Quando a pessoa do outro lado n&#227;o v&#234; o que voc&#234; v&#234;. E quando, em vez de curiosidade, o que vem &#233; hostilidade.</p><p>Isso acontece o tempo todo pra quem constr&#243;i em p&#250;blico. Voc&#234; faz uma pergunta porque n&#227;o sabe algo, e algu&#233;m usa isso como prova de que voc&#234; n&#227;o deveria estar onde est&#225;. Voc&#234; mostra vulnerabilidade, e algu&#233;m interpreta como fraqueza. Voc&#234; pede ajuda, e a resposta &#233; ataque.</p><div><hr></div><h2>O impulso</h2><p>O primeiro impulso &#233; sempre o mesmo. Aquele calor no peito. A vontade de abrir o curr&#237;culo, listar tudo que voc&#234; j&#225; fez, e provar que a pessoa est&#225; errada.</p><p>Eu j&#225; cedi a esse impulso mais de uma vez. Nunca, nenhuma vez, terminou bem.</p><p>E agora eu sei por qu&#234;. Uma meta-an&#225;lise recente com mais de 250 mil participantes analisou a rela&#231;&#227;o entre <strong>regula&#231;&#227;o emocional e agressividade</strong>. A conclus&#227;o: estrat&#233;gias adaptativas (pausar, reinterpretar, escolher a resposta) est&#227;o associadas a menos agress&#227;o. Estrat&#233;gias disfuncionais (reagir de impulso, ruminar) est&#227;o associadas a mais agress&#227;o, e de forma mais intensa. O impulso de revidar n&#227;o &#233; s&#243; ineficaz, ele amplifica o conflito. A parte dif&#237;cil &#233; que no momento do conflito, o impulso vem primeiro, a estrat&#233;gia vem depois, se voc&#234; treinou.</p><p>Ent&#227;o ao longo dos anos eu fui desenvolvendo um reflexo. N&#227;o &#233; natural, preciso praticar toda vez.</p><div><hr></div><h2>Texto n&#227;o transmite emo&#231;&#227;o</h2><p>Primeiro: releio tudo assumindo boa inten&#231;&#227;o. E aqui eu preciso ser honesto, porque essa &#233; uma das partes mais mal compreendidas da comunica&#231;&#227;o digital.</p><p>A gente l&#234; um texto e sente algo (raiva, deboche, arrog&#226;ncia), e assume que quem escreveu estava sentindo aquilo. Mas n&#227;o tem como saber. <strong>Um texto escrito com raiva e um texto escrito com pressa podem ser id&#234;nticos</strong>. A emo&#231;&#227;o que voc&#234; l&#234; n&#227;o &#233; necessariamente a emo&#231;&#227;o que existia do outro lado.</p><p>Um estudo cl&#225;ssico de 2005 mostrou que a gente superestima a capacidade do texto de transmitir nosso tom. Estudos mais recentes mostraram que em ambientes de conflito, quem recebe tende a interpretar de forma mais negativa do que um observador externo faria.</p><p>Ou seja: texto n&#227;o transmite emo&#231;&#227;o, texto transmite palavras. A emo&#231;&#227;o, quem coloca &#233; voc&#234;, na leitura.</p><p>E quando j&#225; existe tens&#227;o, a emo&#231;&#227;o que voc&#234; coloca tende a ser a pior poss&#237;vel.</p><p>Mais um motivo pra pausar.</p><p></p><div class="pullquote"><p><strong>Texto transmite palavras, quem coloca emo&#231;&#227;o &#233; voc&#234;.</strong></p></div><p></p><h2>A gravidade emocional</h2><p>Segundo: eu separo o que &#233; do outro do que &#233; meu. Na Teoria da Converg&#234;ncia, falei sobre a gravidade na engenharia de software. Aqui tem uma gravidade parecida: em todo conflito, a rea&#231;&#227;o do outro puxa voc&#234; pra baixo, e escolha de n&#227;o descer &#233; um ato contra a gravidade. E como todo ato contra a gravidade, exige energia.</p><p>Terceiro: eu lembro por que eu perguntei. Porque eu n&#227;o sei. E n&#227;o saber &#233; o pr&#233;-requisito pra aprender.</p><div><hr></div><h2>O dado que me surpreendeu</h2><p>E aqui tem um dado que me surpreendeu. Pesquisadores de Harvard e Wharton descobriram que pessoas que pedem conselho s&#227;o percebidas como mais competentes, n&#227;o menos. O medo de parecer incompetente ao pedir ajuda existe, mas &#233; infundado, mas tem mais: o efeito &#233; mais forte quando a tarefa &#233; dif&#237;cil e quando voc&#234; pede diretamente a algu&#233;m. Perguntar no vazio da internet pode n&#227;o gerar o mesmo efeito, ainda assim, pedir ajuda, na maioria dos contextos, &#233; percebido como intelig&#234;ncia.</p><p>Isso se conecta com algo maior. O Project Aristotle do Google analisou 180 times e identificou seguran&#231;a psicol&#243;gica como o fator n&#250;mero um que separava equipes de alta performance. N&#227;o era talento, n&#227;o era processo, n&#227;o era experi&#234;ncia. Era a confian&#231;a de que voc&#234; pode falar sem ser punido.</p><p>Quando eu li &#8220;Os 5 Desafios das Equipes&#8221; do Patrick Lencioni, entendi por qu&#234;. Ele coloca a aus&#234;ncia de confian&#231;a como a base de toda disfun&#231;&#227;o de time. Mas n&#227;o qualquer confian&#231;a. Ele fala de confian&#231;a baseada em vulnerabilidade. A confian&#231;a que permite dizer &#8220;eu n&#227;o sei&#8221;, &#8220;errei&#8221;, &#8220;preciso de ajuda&#8221;, sem medo de que isso seja usado contra voc&#234;. Sem essa base, a pir&#226;mide inteira desmorona: o time evita conflito, n&#227;o se compromete, n&#227;o cobra, n&#227;o entrega.</p><p>Dizer &#8220;eu n&#227;o sei&#8221; n&#227;o diminui ningu&#233;m. Cria espa&#231;o pra todo mundo ao redor fazer o mesmo.</p><div><hr></div><h2>O come&#231;o da estrada</h2><p>Lembra da estrada em perspectiva? Quem est&#225; no come&#231;o v&#234; todo mundo longe, v&#234; cada diferen&#231;a, v&#234; cada discord&#226;ncia como pessoal. Quem j&#225; caminhou o suficiente sabe que l&#225; na frente, os pontos se encontram.</p><p>Quando algu&#233;m te ataca por uma pergunta que voc&#234; fez, aquela pessoa est&#225; no come&#231;o da estrada, onde pedir ajuda parece fraqueza, onde experi&#234;ncia deveria significar onisci&#234;ncia, e onde vulnerabilidade &#233; algo a ser explorado, n&#227;o respeitado.</p><p>Eu sei disso porque eu j&#225; estive ali.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!gOHp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb108e480-e912-48a1-a7af-a31bdfab1b88_2816x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!gOHp!, /__u/bertolini.substack.com/w_424, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb108e480-e912-48a1-a7af-a31bdfab1b88_2816x1536.png 424w, /__u/substackcdn.com/image/fetch/$s_!gOHp!, /__u/bertolini.substack.com/w_848, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb108e480-e912-48a1-a7af-a31bdfab1b88_2816x1536.png 848w, /__u/substackcdn.com/image/fetch/$s_!gOHp!, /__u/bertolini.substack.com/w_1272, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb108e480-e912-48a1-a7af-a31bdfab1b88_2816x1536.png 1272w, /__u/substackcdn.com/image/fetch/$s_!gOHp!, /__u/bertolini.substack.com/w_1456, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb108e480-e912-48a1-a7af-a31bdfab1b88_2816x1536.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!gOHp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb108e480-e912-48a1-a7af-a31bdfab1b88_2816x1536.png" width="1456" height="794" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b108e480-e912-48a1-a7af-a31bdfab1b88_2816x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:794,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:8736667,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://bertolini.substack.com/i/193741837?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb108e480-e912-48a1-a7af-a31bdfab1b88_2816x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!gOHp!, /__u/bertolini.substack.com/w_424, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb108e480-e912-48a1-a7af-a31bdfab1b88_2816x1536.png 424w, /__u/substackcdn.com/image/fetch/$s_!gOHp!, /__u/bertolini.substack.com/w_848, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb108e480-e912-48a1-a7af-a31bdfab1b88_2816x1536.png 848w, /__u/substackcdn.com/image/fetch/$s_!gOHp!, /__u/bertolini.substack.com/w_1272, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb108e480-e912-48a1-a7af-a31bdfab1b88_2816x1536.png 1272w, /__u/substackcdn.com/image/fetch/$s_!gOHp!, /__u/bertolini.substack.com/w_1456, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb108e480-e912-48a1-a7af-a31bdfab1b88_2816x1536.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>Intelig&#234;ncia emocional n&#227;o &#233; o que parece</h2><p>Intelig&#234;ncia emocional n&#227;o &#233; ficar zen. N&#227;o &#233; engolir e sorrir. &#201; perceber o que t&#225; acontecendo dentro de voc&#234; e escolher o que fazer com isso antes de reagir.</p><p>&#192;s vezes eu escolho bem,  &#224;s vezes n&#227;o. Mas a dire&#231;&#227;o importa mais que a perfei&#231;&#227;o.</p><p>A converg&#234;ncia &#233; inevit&#225;vel, a paci&#234;ncia com quem ainda n&#227;o convergiu &#233; uma escolha, e intelig&#234;ncia emocional &#233; o que torna essa escolha poss&#237;vel no calor do momento, quando tudo dentro de voc&#234; t&#225; gritando pra reagir.</p><p>Se voc&#234; t&#225; procurando a verdade, buscando melhoria cont&#237;nua, tentando se livrar do ego, vai encontrar gente no come&#231;o da estrada, gente que confunde humildade com incompet&#234;ncia, gente que transforma pergunta em arma.</p><p>A pergunta n&#227;o &#233; se isso vai acontecer.</p><p>&#201; quem voc&#234; vai ser quando acontecer.</p><div><hr></div><p>Eu vou continuar pedindo ajuda, vou continuar n&#227;o sabendo, e vou continuar construindo em p&#250;blico.</p><p>Porque a pergunta mais perigosa n&#227;o &#233; a que te exp&#245;e.</p><p>&#201; a que voc&#234; deixou de fazer por medo do que iam pensar.</p><p>Abra&#231;o, Bruno</p><div><hr></div><p><strong>Refer&#234;ncias citadas nessa edi&#231;&#227;o:</strong></p><ul><li><p>Kruger, Epley, Parker &amp; Ng (2005). <em>Egocentrism over e-mail.</em> Journal of Personality and Social Psychology.</p></li><li><p>Sillars &amp; Zorn (2021). <em>Hypernegative Interpretation of Negatively Perceived Email at Work.</em> Management Communication Quarterly.</p></li><li><p>Brooks, Gino &amp; Schweitzer (2015). <em>Smart People Ask for (My) Advice: Seeking Advice Boosts Perceptions of Competence.</em> Management Science.</p></li><li><p>Meta-an&#225;lise: <em>Emotion Regulation and Aggression.</em> PMC, 2024. N = 252.605.</p></li><li><p>Google Project Aristotle (2015). <em>Re:Work &#8212; Guide: Understand team effectiveness.</em></p><div><hr></div></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://bertolini.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Obrigado por ler! Assine gratuitamente para receber novos posts e apoiar meu trabalho.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[O que Manus AI ensina sobre agentes que não quebram]]></title><description><![CDATA[50 tool calls por tarefa: como Manus faz context engineering]]></description><link>https://bertolini.substack.com/p/o-que-manus-ai-ensina-sobre-agentes</link><guid isPermaLink="false">https://bertolini.substack.com/p/o-que-manus-ai-ensina-sobre-agentes</guid><dc:creator><![CDATA[Bruno Bertolini]]></dc:creator><pubDate>Sun, 05 Apr 2026 17:56:25 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!uWd3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11548220-f137-431f-8667-21036198a433_2816x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!uWd3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11548220-f137-431f-8667-21036198a433_2816x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!uWd3!, /__u/bertolini.substack.com/w_424, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11548220-f137-431f-8667-21036198a433_2816x1536.png 424w, /__u/substackcdn.com/image/fetch/$s_!uWd3!, /__u/bertolini.substack.com/w_848, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11548220-f137-431f-8667-21036198a433_2816x1536.png 848w, /__u/substackcdn.com/image/fetch/$s_!uWd3!, /__u/bertolini.substack.com/w_1272, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11548220-f137-431f-8667-21036198a433_2816x1536.png 1272w, /__u/substackcdn.com/image/fetch/$s_!uWd3!, /__u/bertolini.substack.com/w_1456, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11548220-f137-431f-8667-21036198a433_2816x1536.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!uWd3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11548220-f137-431f-8667-21036198a433_2816x1536.png" width="1456" height="794" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/11548220-f137-431f-8667-21036198a433_2816x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:794,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:8236438,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://bertolini.substack.com/i/193273314?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11548220-f137-431f-8667-21036198a433_2816x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!uWd3!, /__u/bertolini.substack.com/w_424, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11548220-f137-431f-8667-21036198a433_2816x1536.png 424w, /__u/substackcdn.com/image/fetch/$s_!uWd3!, /__u/bertolini.substack.com/w_848, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11548220-f137-431f-8667-21036198a433_2816x1536.png 848w, /__u/substackcdn.com/image/fetch/$s_!uWd3!, /__u/bertolini.substack.com/w_1272, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11548220-f137-431f-8667-21036198a433_2816x1536.png 1272w, /__u/substackcdn.com/image/fetch/$s_!uWd3!, /__u/bertolini.substack.com/w_1456, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11548220-f137-431f-8667-21036198a433_2816x1536.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>A Meta pagou 2 bilh&#245;es de d&#243;lares pelo Manus em dezembro. Um agente de IA que em menos de um ano chegou a $100 milh&#245;es de receita recorrente.</p><p>Mas o que me interessa n&#227;o &#233; o <em>valuation</em>. &#201; o que eles publicaram sobre como fazem o agente funcionar. Porque as t&#233;cnicas que eles usam em escala s&#227;o as mesmas que eu aplico todo dia no Claude Code pra construir meus projetos.</p><p>Uma tarefa m&#233;dia no Manus executa cerca de 50 tool calls. Ratio input/output de 100:1. Sem gerenciamento ativo, isso quebra qualquer modelo.</p><p>E no entanto, funciona.</p><div><hr></div><h2><strong>Mantenha os erros vis&#237;veis</strong></h2><p>Quando um agente falha, o instinto &#233; limpar e tentar de novo. Manus faz o oposto: mant&#233;m stack traces e a&#231;&#245;es falhadas no contexto.</p><p>O modelo usa essas evid&#234;ncias pra ajustar decis&#245;es. Ao ver que tentativa X falhou com erro Y, ele evita abordagens similares. Remover o trace remove a evid&#234;ncia.</p><p>Eu fa&#231;o o mesmo no Claude Code. Quando ele erra, n&#227;o limpo o chat. Mando tentar de novo com o erro ali. A taxa de acerto na segunda tentativa &#233; muito maior do que se eu apagasse tudo e pedisse do zero.</p><div><hr></div><h2><strong>Filesystem como mem&#243;ria</strong></h2><p>LLMs t&#234;m contexto finito, disco n&#227;o.</p><p>Manus salva informa&#231;&#245;es grandes em arquivos e mant&#233;m s&#243; o path no contexto. A compress&#227;o &#233; restaur&#225;vel: se o path t&#225; l&#225;, o agente recupera o conte&#250;do quando precisar. Diferente de sumarizar, que perde informa&#231;&#227;o sem volta.</p><p>&#201; exatamente o que CLAUDE.md e skill files fazem. Voc&#234; n&#227;o enfia tudo no prompt. Coloca num arquivo, o modelo l&#234; quando precisa. Quem usa Claude Code com skills j&#225; t&#225; fazendo context engineering sem saber.</p><div><hr></div><h2><strong>O TODO.md e o custo escondido</strong></h2><p>O Manus criava um TODO.md e ia atualizando conforme avan&#231;ava, e isso parecia organiza&#231;&#227;o. Na real, era manipula&#231;&#227;o de aten&#231;&#227;o: empurrava os objetivos pro final do contexto, onde o modelo presta mais aten&#231;&#227;o.</p><p>Mas custava caro: 30% das a&#231;&#245;es eram gastas s&#243; atualizando a lista. Trocaram por um sub-agente Planner que injeta o plano s&#243; quando necess&#225;rio.</p><p>A li&#231;&#227;o pra quem usa AI no dia a dia: se voc&#234; t&#225; repetindo instru&#231;&#245;es toda hora pro modelo n&#227;o esquecer, o problema n&#227;o &#233; o modelo. &#201; onde a instru&#231;&#227;o t&#225; no contexto. Coloca no final, n&#227;o no meio. Expliquei a ci&#234;ncia por tr&#225;s disso aqui:</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:190060745,&quot;url&quot;:&quot;https://bertolini.substack.com/p/por-que-a-ia-ignora-metade-do-que&quot;,&quot;publication_id&quot;:7779665,&quot;embedding_publication_id&quot;:null,&quot;publication_name&quot;:&quot;Bruno Bertolini&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!1wV0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faede0b97-7acd-424f-bc89-8c2a842b6984_460x460.png&quot;,&quot;title&quot;:&quot;Por que a IA ignora metade do que voc&#234; escreve&quot;,&quot;truncated_body_text&quot;:&quot;Voc&#234; j&#225; montou um prompt caprichado, colocou contexto, explicou o tom, disse o que n&#227;o queria, deu exemplos... e o modelo ignorou exatamente o detalhe que voc&#234; mais se preocupou em especificar?&quot;,&quot;date&quot;:&quot;2026-03-06T12:03:36.199Z&quot;,&quot;like_count&quot;:4,&quot;comment_count&quot;:0,&quot;bylines&quot;:[{&quot;id&quot;:126717789,&quot;name&quot;:&quot;Bruno Bertolini&quot;,&quot;handle&quot;:&quot;brunobertolini&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d5da3408-94f2-4002-a691-3dd3ee8200d4_400x400.jpeg&quot;,&quot;bio&quot;:null,&quot;profile_set_up_at&quot;:&quot;2023-02-01T17:31:07.082Z&quot;,&quot;reader_installed_at&quot;:&quot;2026-02-27T13:02:44.770Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:7938121,&quot;user_id&quot;:126717789,&quot;publication_id&quot;:7779665,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:true,&quot;publication&quot;:{&quot;id&quot;:7779665,&quot;name&quot;:&quot;Bruno Bertolini&quot;,&quot;subdomain&quot;:&quot;bertolini&quot;,&quot;custom_domain&quot;:null,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;O que passa pela cabe&#231;a de um dev senior que constr&#243;i, l&#234;, questiona e n&#227;o para quieto.&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aede0b97-7acd-424f-bc89-8c2a842b6984_460x460.png&quot;,&quot;author_id&quot;:126717789,&quot;primary_user_id&quot;:126717789,&quot;theme_var_background_pop&quot;:&quot;#FF6719&quot;,&quot;created_at&quot;:&quot;2026-01-26T12:27:48.898Z&quot;,&quot;email_from_name&quot;:null,&quot;copyright&quot;:&quot;Bruno Bertolini&quot;,&quot;founding_plan_name&quot;:&quot;Founding Member&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;disabled&quot;,&quot;language&quot;:&quot;pt-br&quot;,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false,&quot;logo_url_wide&quot;:null}}],&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null,&quot;status&quot;:{&quot;bestsellerTier&quot;:null,&quot;subscriberTier&quot;:null,&quot;leaderboard&quot;:null,&quot;vip&quot;:false,&quot;badge&quot;:null,&quot;paidPublicationIds&quot;:[],&quot;subscriber&quot;:null}}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:true,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;,&quot;source&quot;:null}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="/__u/bertolini.substack.com/p/por-que-a-ia-ignora-metade-do-que?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="/__u/substackcdn.com/image/fetch/$s_!1wV0!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faede0b97-7acd-424f-bc89-8c2a842b6984_460x460.png" loading="lazy"><span class="embedded-post-publication-name">Bruno Bertolini</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title">Por que a IA ignora metade do que voc&#234; escreve</div></div><div class="embedded-post-body">Voc&#234; j&#225; montou um prompt caprichado, colocou contexto, explicou o tom, disse o que n&#227;o queria, deu exemplos... e o modelo ignorou exatamente o detalhe que voc&#234; mais se preocupou em especificar&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">6 months ago &#183; 4 likes &#183; Bruno Bertolini</div></a></div><div><hr></div><h2><strong>Context Rot</strong></h2><p>Um modelo pode ter janela de 1 milh&#227;o de tokens. A performance come&#231;a a cair muito antes de encher. O mercado chama isso de &#8216;Context Rot&#8217;. A regra pr&#225;tica que o Manus adotou: comprima o contexto proativamente, n&#227;o espere o modelo come&#231;ar a errar.<br><br>Eu vivi isso na pr&#225;tica. Recentemente criei um sistema de &#8216;auto context&#8217; no meu workflow: a cada 30 tool calls, ou quando chega em 75% do contexto usado, ele gera um checkpoint file com o contexto comprimido. O modelo continua trabalhando com contexto limpo sem perder o hist&#243;rico do que j&#225; fez. Mesma l&#243;gica do Manus, escala menor.</p><div><hr></div><h2><strong>Remover, n&#227;o adicionar</strong></h2><p>O Manus foi refatorado cinco vezes em menos de um ano. Os maiores ganhos n&#227;o vieram de adicionar coisas. Vieram de tirar.</p><p>Tiraram defini&#231;&#245;es complexas de ferramentas. Tiraram &#8220;management agents&#8221;. Tiraram camadas de orquestra&#231;&#227;o que pareciam necess&#225;rias mas limitavam o modelo.</p><p>Boris Cherny, criador do Claude Code, cita a mesma filosofia: construiu a ferramenta pra ser flex&#237;vel, n&#227;o otimizada pro modelo de hoje. Conforme os modelos melhoram, o scaffolding deveria diminuir, n&#227;o aumentar.</p><p>Isso vale pra qualquer pessoa usando AI pra codar. Se seu CLAUDE.md t&#225; ficando mais complexo a cada semana, pare e pergunte: isso t&#225; ajudando ou t&#225; atrapalhando? Fa&#231;a melhoria continua, remova arquivos, comprima rules, sintetize&#8230;<br><br>Esses dias compartilhei isso no X:</p><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://x.com/brunobertolini/status/2040616205514408421&quot;,&quot;full_text&quot;:&quot;voc&#234;s n&#227;o t&#227;o entendendo, isso aqui &#233; lindo cara. \n\nVou dormir e o Buchecha vai ficar trabalhando e me entregar tudo pronto amanh&#227;, j&#225; fiz minhas 18h hj! &quot;,&quot;username&quot;:&quot;brunobertolini&quot;,&quot;name&quot;:&quot;Bruno Bertolini &#8226; awesome.codar.me&quot;,&quot;profile_image_url&quot;:&quot;https://pbs.substack.com/profile_images/1537174614593478658/AFnXmrNs_normal.jpg&quot;,&quot;date&quot;:&quot;2026-04-05T02:23:10.000Z&quot;,&quot;photos&quot;:[{&quot;img_url&quot;:&quot;https://pbs.substack.com/media/HFG5NX8aUAAqk9M.png&quot;,&quot;link_url&quot;:&quot;https://t.co/HDLHrYsJki&quot;}],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:18,&quot;retweet_count&quot;:4,&quot;like_count&quot;:156,&quot;impression_count&quot;:12731,&quot;expanded_url&quot;:null,&quot;video_url&quot;:null,&quot;video_preview_media_key&quot;:null,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><p>Algumas pessoas pensaram ser engenharia de foguete, mas, &#233; um simples <em>skill file</em>, menos de 30 linhas. &#201; o mesmo pensamento que eu sempre tive com rela&#231;&#227;o &#224; programa&#231;&#227;o: simples que funciona. Um bom senior &#233; quem consegue resolver problemas complexos com solu&#231;&#245;es simples.</p><div><hr></div><h2><strong>KV-cache: onde o dinheiro mora</strong></h2><p>Quando o modelo processa tokens que j&#225; viu antes, o custo cai 10x. No Claude Sonnet: $0.30 por milh&#227;o cacheados versus $3.00 n&#227;o cacheados.</p><p>A regra: mantenha o prefixo do prompt est&#225;vel. Um token diferente invalida o cache dali pra frente. Por isso o Manus n&#227;o adiciona nem remove ferramentas dinamicamente, ele mascara as indispon&#237;veis sem mudar a estrutura.</p><p>Na pr&#225;tica: se voc&#234; muda seu system prompt toda hora, t&#225; pagando mais e recebendo menos. Estabilize o que puder.</p><div><hr></div><p>Context engineering n&#227;o &#233; otimiza&#231;&#227;o. &#201; a arquitetura que define se a coisa vai funcionar ou n&#227;o.</p><p>A equipe do Manus resume: o agente &#233; t&#227;o bom quanto o contexto que recebeu.</p><p>A mesma coisa vale pro seu Claude Code, pro seu Cursor, pro qualquer AI que voc&#234; usa. O que entra e sai do contexto &#233; a decis&#227;o mais importante que voc&#234; toma. Todo dia.</p><p>At&#233; a pr&#243;xima, Bruno</p>]]></content:encoded></item><item><title><![CDATA[A Teoria da Convergência Cognitiva]]></title><description><![CDATA[Sua melhor ideia provavelmente j&#225; tem nome dado por outra pessoa, e voc&#234; nem sabe disso ainda.]]></description><link>https://bertolini.substack.com/p/a-teoria-da-convergencia-cognitiva</link><guid isPermaLink="false">https://bertolini.substack.com/p/a-teoria-da-convergencia-cognitiva</guid><dc:creator><![CDATA[Bruno Bertolini]]></dc:creator><pubDate>Thu, 26 Mar 2026 11:08:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Bsn0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb91d0d4-69d5-43c2-81ee-f32407c92322_2752x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!Bsn0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb91d0d4-69d5-43c2-81ee-f32407c92322_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!Bsn0!, /__u/bertolini.substack.com/w_424, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb91d0d4-69d5-43c2-81ee-f32407c92322_2752x1536.png 424w, /__u/substackcdn.com/image/fetch/$s_!Bsn0!, /__u/bertolini.substack.com/w_848, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb91d0d4-69d5-43c2-81ee-f32407c92322_2752x1536.png 848w, /__u/substackcdn.com/image/fetch/$s_!Bsn0!, /__u/bertolini.substack.com/w_1272, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb91d0d4-69d5-43c2-81ee-f32407c92322_2752x1536.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Bsn0!, /__u/bertolini.substack.com/w_1456, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb91d0d4-69d5-43c2-81ee-f32407c92322_2752x1536.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!Bsn0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb91d0d4-69d5-43c2-81ee-f32407c92322_2752x1536.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eb91d0d4-69d5-43c2-81ee-f32407c92322_2752x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:8574364,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://bertolini.substack.com/i/192117578?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb91d0d4-69d5-43c2-81ee-f32407c92322_2752x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!Bsn0!, /__u/bertolini.substack.com/w_424, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb91d0d4-69d5-43c2-81ee-f32407c92322_2752x1536.png 424w, /__u/substackcdn.com/image/fetch/$s_!Bsn0!, /__u/bertolini.substack.com/w_848, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb91d0d4-69d5-43c2-81ee-f32407c92322_2752x1536.png 848w, /__u/substackcdn.com/image/fetch/$s_!Bsn0!, /__u/bertolini.substack.com/w_1272, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb91d0d4-69d5-43c2-81ee-f32407c92322_2752x1536.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Bsn0!, /__u/bertolini.substack.com/w_1456, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb91d0d4-69d5-43c2-81ee-f32407c92322_2752x1536.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Eu passei anos estudando, lendo, quebrando sistemas e reconstruindo. Em algum momento, cheguei numa arquitetura que fazia sentido pra mim. Separa&#231;&#227;o clara de responsabilidades. Regras de neg&#243;cio isoladas. Depend&#234;ncias apontando pra dentro, nunca pra fora. N&#227;o era nada revolucion&#225;rio. Era o que sobrou depois de eliminar tudo que dava problema.</p><p>A&#237; eu descobri um cara chamado Robert C. Martin. E a Clean Architecture dele.</p><p>Quando eu fui estudar, levei um susto. A estrutura era assustadoramente parecida com o que eu j&#225; usava. Obviamente, a dele era muito mais robusta, mais evolu&#237;da, formalmente documentada. A minha ainda era embrion&#225;ria. Mas o esqueleto era o mesmo.</p><p>Eu n&#227;o copiei. Eu n&#227;o tinha lido. Eu cheguei ali sozinho.</p><p>E isso me intrigou por anos. At&#233; eu entender que n&#227;o era coincid&#234;ncia.</p><div><hr></div><h3><strong>Converg&#234;ncia cognitiva</strong></h3><p>Isso tem nome. Converg&#234;ncia cognitiva. &#201; o fen&#244;meno onde indiv&#237;duos com trajet&#243;rias distintas, expostos a desafios parecidos, chegam em padr&#245;es parecidos. N&#227;o porque combinaram. Porque as restri&#231;&#245;es do problema empurram todo mundo na mesma dire&#231;&#227;o.</p><p>Quando voc&#234; enfrenta os mesmos problemas por tempo suficiente, o espa&#231;o de solu&#231;&#245;es vi&#225;veis vai encolhendo. E o que sobra se parece muito com o que sobra pra qualquer outra pessoa que tenha enfrentado os mesmos problemas pelo mesmo tempo.</p><p>Eu vejo isso acontecer o tempo todo. Coloca dois desenvolvedores seniores na mesma sala. Experi&#234;ncias diferentes. Empresas diferentes. Stacks diferentes. Um veio do Java enterprise, o outro do mundo startup com Node. Um passou por banco, o outro por e-commerce.</p><p>Faz uma pergunta sobre arquitetura. Sobre como organizar c&#243;digo. Sobre quando usar um monolito e quando partir pra microsservi&#231;os.</p><p>Eles v&#227;o discordar nos detalhes. V&#227;o usar vocabul&#225;rios diferentes. Mas a ess&#234;ncia da resposta vai ser assustadoramente parecida.</p><div><hr></div><h3><strong>A estrada em perspectiva</strong></h3><p>A melhor forma que eu encontrei de explicar isso &#233; com uma imagem.</p><p>Imagina uma estrada longa em perspectiva. Aquelas que v&#227;o afunilando no horizonte. Se voc&#234; olhar perto de voc&#234;, duas pessoas caminhando, cada uma em um lado da estrada, parecem distantes uma da outra. Mas l&#225; na frente, elas est&#227;o juntas. Quase no mesmo ponto.</p><p>&#201; exatamente isso que acontece com experi&#234;ncia.</p><p>Quando voc&#234; &#233; j&#250;nior, o espa&#231;o de possibilidades parece infinito. Frameworks, padr&#245;es, arquiteturas. Tudo parece vi&#225;vel. Tudo parece quest&#227;o de prefer&#234;ncia. Voc&#234; e o dev do lado podem discordar sobre absolutamente tudo.</p><p>Mas conforme voc&#234;s avan&#231;am, as restri&#231;&#245;es v&#227;o aparecendo. N&#227;o as restri&#231;&#245;es que algu&#233;m te conta. As que voc&#234; <em>sente</em>. Sistemas que quebraram &#224;s 3 da manh&#227;. Abstra&#231;&#245;es elegantes que ningu&#233;m conseguia manter. Decis&#245;es que pareciam simples e custaram meses de refatora&#231;&#227;o.</p><p>Cada cicatriz dessas elimina possibilidades. Cada fracasso fecha uma porta.</p><p>E o que sobra, quando voc&#234; fecha portas suficientes, &#233; surpreendentemente parecido com o que sobra pra qualquer outro dev que tenha fechado portas suficientes.</p><div><hr></div><h3><strong>A gravidade da engenharia de software</strong></h3><p>A estrada afunila. Mas por qu&#234;?</p><p>Porque o problema tem forma. E a forma tem menos solu&#231;&#245;es do que parece.</p><p>Humanos precisam ler c&#243;digo. Sistemas precisam escalar de forma previs&#237;vel. Complexidade tem custo composto. Times mudam. Requisitos mudam. Essas for&#231;as s&#227;o constantes.</p><p>S&#227;o a gravidade da engenharia de software. E a gravidade n&#227;o negocia.</p><p>Martin Fowler, Kent Beck, Uncle Bob. Backgrounds diferentes, &#233;pocas diferentes, contextos diferentes. Mas quando falam sobre design de software, as ideias se sobrep&#245;em de um jeito que n&#227;o pode ser coincid&#234;ncia. Separa&#231;&#227;o de responsabilidades. Favorecer composi&#231;&#227;o. C&#243;digo que comunica inten&#231;&#227;o. Testes como rede de seguran&#231;a.</p><p>Ningu&#233;m combinou. O problema combinou.</p><p>N&#227;o &#233; que seniores s&#227;o iguais. &#201; que a gravidade &#233; a mesma. E quem respeita a gravidade por tempo suficiente acaba construindo estruturas parecidas.</p><div><hr></div><h3><strong>A meta-teoria</strong></h3><p>Mas tem uma segunda camada aqui que me fascina ainda mais.</p><p>N&#227;o &#233; s&#243; que profissionais experientes convergem nas mesmas solu&#231;&#245;es. &#201; que pessoas chegam em ideias que j&#225; foram pensadas, documentadas e nomeadas por outras, sem nunca ter tido contato com elas.</p><p>Foi o que aconteceu comigo e a Clean Architecture. E acontece o tempo todo na hist&#243;ria.</p><p>Newton e Leibniz inventaram o c&#225;lculo diferencial de forma independente, quase ao mesmo tempo. Darwin e Wallace chegaram na teoria da evolu&#231;&#227;o por sele&#231;&#227;o natural sem um saber do trabalho do outro. O soci&#243;logo Robert K. Merton estudou esse fen&#244;meno e deu um nome: <em><strong>multiple independent discovery</strong></em>. Ele mostrou que quando o ambiente est&#225; maduro o suficiente, quando o conhecimento acumulado chega num certo ponto, as mesmas ideias emergem em lugares diferentes, de pessoas diferentes, quase simultaneamente.</p><p>N&#227;o &#233; m&#225;gica. &#201; que o problema estava maduro. E pessoas imersas no mesmo problema, com ferramentas parecidas, chegam nas mesmas respostas.</p><p>E isso leva a uma pergunta que eu fiz pra mim mesmo, e que talvez seja a mais desconfort&#225;vel desse texto: quantas vezes eu pensei em algo que j&#225; tem nome, j&#225; tem teoria, j&#225; tem documenta&#231;&#227;o formal, e eu simplesmente n&#227;o sabia?</p><p>Provavelmente mais vezes do que eu imagino. Provavelmente mais vezes do que qualquer um de n&#243;s imagina.</p><div><hr></div><h3><strong>Quando os mapas se sobrep&#245;em</strong></h3><p><a href="/__u/bertolini.substack.com/p/a-construcao-da-consciencia">Na &#250;ltima edi&#231;&#227;o dessa s&#233;rie</a>, falei sobre a constru&#231;&#227;o da consci&#234;ncia. Sobre como avan&#231;ar na carreira expande o mapa do que voc&#234; sabe que n&#227;o sabe. Sobre o fog of war que vai recuando conforme voc&#234; ganha experi&#234;ncia.</p><p>A converg&#234;ncia cognitiva &#233; o que acontece depois.</p><p>Quando duas pessoas limpam fog of war suficiente, elas come&#231;am a ver a mesma paisagem. N&#227;o porque est&#227;o no mesmo lugar, mas porque o terreno debaixo da n&#233;voa sempre foi o mesmo.</p><p>&#201; por isso que um dev s&#234;nior brasileiro e um dev s&#234;nior finland&#234;s, que nunca se falaram, v&#227;o concordar sobre princ&#237;pios de software. Os dois navegaram terrenos diferentes. Mas o territ&#243;rio que descobriram &#233;, em grande parte, compartilhado.</p><p>J&#250;niores divergem muito. Porque cada um tem um peda&#231;o diferente do mapa. Seniores convergem. Porque, quando o mapa &#233; grande o suficiente, a geografia come&#231;a a se repetir.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!fZ_0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9705f0e7-3204-4c33-b28e-788d83e692d8_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!fZ_0!, /__u/bertolini.substack.com/w_424, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9705f0e7-3204-4c33-b28e-788d83e692d8_2752x1536.png 424w, /__u/substackcdn.com/image/fetch/$s_!fZ_0!, /__u/bertolini.substack.com/w_848, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9705f0e7-3204-4c33-b28e-788d83e692d8_2752x1536.png 848w, /__u/substackcdn.com/image/fetch/$s_!fZ_0!, /__u/bertolini.substack.com/w_1272, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9705f0e7-3204-4c33-b28e-788d83e692d8_2752x1536.png 1272w, /__u/substackcdn.com/image/fetch/$s_!fZ_0!, /__u/bertolini.substack.com/w_1456, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9705f0e7-3204-4c33-b28e-788d83e692d8_2752x1536.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!fZ_0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9705f0e7-3204-4c33-b28e-788d83e692d8_2752x1536.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9705f0e7-3204-4c33-b28e-788d83e692d8_2752x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:8435894,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://bertolini.substack.com/i/192117578?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9705f0e7-3204-4c33-b28e-788d83e692d8_2752x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!fZ_0!, /__u/bertolini.substack.com/w_424, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9705f0e7-3204-4c33-b28e-788d83e692d8_2752x1536.png 424w, /__u/substackcdn.com/image/fetch/$s_!fZ_0!, /__u/bertolini.substack.com/w_848, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9705f0e7-3204-4c33-b28e-788d83e692d8_2752x1536.png 848w, /__u/substackcdn.com/image/fetch/$s_!fZ_0!, /__u/bertolini.substack.com/w_1272, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9705f0e7-3204-4c33-b28e-788d83e692d8_2752x1536.png 1272w, /__u/substackcdn.com/image/fetch/$s_!fZ_0!, /__u/bertolini.substack.com/w_1456, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9705f0e7-3204-4c33-b28e-788d83e692d8_2752x1536.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div><hr></div><h3><strong>Converg&#234;ncia n&#227;o &#233; conformidade</strong></h3><p>Tem uma diferen&#231;a importante aqui. E eu quero fechar com ela.</p><p>Convergir nos princ&#237;pios n&#227;o significa concordar em tudo. Dois seniores podem concordar que acoplamento &#233; o inimigo. E discordar violentamente sobre como reduzir acoplamento naquele sistema espec&#237;fico. Podem concordar que testes s&#227;o essenciais. E ter filosofias opostas sobre o que testar e como.</p><p>A converg&#234;ncia est&#225; nos princ&#237;pios. A diverg&#234;ncia criativa est&#225; na aplica&#231;&#227;o.</p><p>E &#233; justamente essa tens&#227;o que produz boas solu&#231;&#245;es. N&#227;o a concord&#226;ncia cega. Mas a concord&#226;ncia sobre os fundamentos, combinada com a disputa honesta sobre a implementa&#231;&#227;o.</p><p>Se voc&#234; est&#225; em in&#237;cio de carreira, isso &#233; bom. Significa que voc&#234; n&#227;o precisa inventar tudo do zero. Os princ&#237;pios j&#225; existem. Foram descobertos e redescobertos por milhares de pessoas antes de voc&#234;, em contextos que voc&#234; nem imagina. Seu trabalho n&#227;o &#233; ser original nos fundamentos. &#201; aplicar esses fundamentos no seu contexto, com as restri&#231;&#245;es do seu problema.</p><p>E se voc&#234; &#233; s&#234;nior e se sente frustrado quando um j&#250;nior sugere algo que &#8220;obviamente&#8221; n&#227;o funciona, lembre: ele ainda est&#225; no come&#231;o da estrada. Onde tudo parece distante. Onde tudo parece poss&#237;vel. D&#234; tempo. As restri&#231;&#245;es v&#227;o fazer o trabalho.</p><p>A converg&#234;ncia &#233; inevit&#225;vel. A paci&#234;ncia com quem ainda n&#227;o convergiu &#233; uma escolha.</p><p>At&#233; a pr&#243;xima, Bruno</p><p>P.S. Se voc&#234; curtiu essa reflex&#227;o, responde esse email com uma palavra: &#8220;convergiu&#8221;. Eu leio todas as respostas. E se tiver uma hist&#243;ria parecida com a minha da Clean Architecture, onde voc&#234; chegou numa conclus&#227;o que j&#225; existia, quero ouvir.</p>]]></content:encoded></item><item><title><![CDATA[O método que GitHub, Google e Amazon adotaram pra substituir vibe coding]]></title><description><![CDATA[O novo jeito de programar com IA (que at&#233; o Martin Fowler questiona)]]></description><link>https://bertolini.substack.com/p/o-metodo-que-github-google-e-amazon</link><guid isPermaLink="false">https://bertolini.substack.com/p/o-metodo-que-github-google-e-amazon</guid><dc:creator><![CDATA[Bruno Bertolini]]></dc:creator><pubDate>Fri, 20 Mar 2026 12:09:39 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!hpWl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8db62aab-7fea-4fea-98d6-70ae38e52bf9_2752x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!hpWl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8db62aab-7fea-4fea-98d6-70ae38e52bf9_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!hpWl!, /__u/bertolini.substack.com/w_424, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8db62aab-7fea-4fea-98d6-70ae38e52bf9_2752x1536.png 424w, /__u/substackcdn.com/image/fetch/$s_!hpWl!, /__u/bertolini.substack.com/w_848, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8db62aab-7fea-4fea-98d6-70ae38e52bf9_2752x1536.png 848w, /__u/substackcdn.com/image/fetch/$s_!hpWl!, /__u/bertolini.substack.com/w_1272, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8db62aab-7fea-4fea-98d6-70ae38e52bf9_2752x1536.png 1272w, /__u/substackcdn.com/image/fetch/$s_!hpWl!, /__u/bertolini.substack.com/w_1456, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8db62aab-7fea-4fea-98d6-70ae38e52bf9_2752x1536.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!hpWl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8db62aab-7fea-4fea-98d6-70ae38e52bf9_2752x1536.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8db62aab-7fea-4fea-98d6-70ae38e52bf9_2752x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3237304,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://bertolini.substack.com/i/191503415?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8db62aab-7fea-4fea-98d6-70ae38e52bf9_2752x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!hpWl!, /__u/bertolini.substack.com/w_424, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8db62aab-7fea-4fea-98d6-70ae38e52bf9_2752x1536.png 424w, /__u/substackcdn.com/image/fetch/$s_!hpWl!, /__u/bertolini.substack.com/w_848, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8db62aab-7fea-4fea-98d6-70ae38e52bf9_2752x1536.png 848w, /__u/substackcdn.com/image/fetch/$s_!hpWl!, /__u/bertolini.substack.com/w_1272, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8db62aab-7fea-4fea-98d6-70ae38e52bf9_2752x1536.png 1272w, /__u/substackcdn.com/image/fetch/$s_!hpWl!, /__u/bertolini.substack.com/w_1456, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8db62aab-7fea-4fea-98d6-70ae38e52bf9_2752x1536.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Umas semanas atr&#225;s eu vi um post no Reddit de um dev descrevendo o que aconteceu depois de 3 meses de vibe coding num projeto real. Come&#231;ou bem. Ele descrevia features em linguagem natural, a IA gerava o c&#243;digo, ele aceitava, seguia em frente. O ritmo era incr&#237;vel.</p><p>At&#233; que uma mudan&#231;a pequena quebrou 4 features. Ele pediu pra IA consertar, e o conserto quebrou outras 3. O cara descreveu isso como &#8220;whack-a-mole com meu pr&#243;prio c&#243;digo.&#8221;</p><p>Eu li aquilo e pensei: conhe&#231;o esse filme.</p><p>Eu j&#225; passei por exatamente isso uns meses atr&#225;s. Fiz o sistema de pagamentos inteiro com IA, aceitando c&#243;digo sem questionar muito. Funcionou por semanas. Quando precisei mudar a l&#243;gica de cr&#233;ditos, foi um efeito domin&#243;. Tr&#234;s dias pra desfazer o que a IA tinha criado em duas horas.</p><p>A diferen&#231;a &#233; que eu tinha 20 anos de base pra diagnosticar o problema. Se eu n&#227;o tivesse, estaria at&#233; hoje tentando consertar.</p><p>E isso me levou a uma pergunta: se vibe coding claramente n&#227;o escala, o que vem depois?</p><div><hr></div><h2>O que vem depois j&#225; tem nome</h2><p>Nos &#250;ltimos meses, aconteceu algo que pouca gente no Brasil percebeu: GitHub, Google e Anthropic convergiram pro mesmo padr&#227;o. Independentemente.</p><p>O GitHub lan&#231;ou o Spec Kit, um toolkit open source com um workflow de 4 fases: Specify, Plan, Tasks, Implement. A ideia: antes de pedir pra IA codar qualquer coisa, voc&#234; escreve uma spec clara do que precisa ser feito. Essa spec vira a &#8220;fonte de verdade&#8221; do projeto. O c&#243;digo &#233; gerado a partir dela, n&#227;o a partir de vibes.</p><p>O Addy Osmani (engenheiro do Google, autor de livros da O&#8217;Reilly) publicou um framework de 5 princ&#237;pios pra escrever specs que agentes de IA conseguem executar. &#8220;Waterfall em 15 minutos&#8221;, ele chama. Planejamento estruturado r&#225;pido, n&#227;o burocracia.</p><p>A Anthropic publicou o &#8220;Building Effective Agents&#8221;, dizendo que os sistemas mais bem-sucedidos usam padr&#245;es simples e compos&#225;veis, n&#227;o frameworks complexos.<br><br>At&#233; a Amazon lan&#231;ou uma IDE com essa estrutura interna, o Kiro (que eu testei na &#233;poca do lan&#231;amento e fiz review constante no instagram da Codar.me).</p><p>O nome que grudou: Spec-Driven Development (SDD).</p><div><hr></div><h2>Como funciona na pr&#225;tica</h2><p>O workflow do Spec Kit tem 4 fases com checkpoints claros:</p><p><strong>1. Specify</strong> - Voc&#234; descreve user journeys, experiencias do usu&#225;rio, e crit&#233;rios de sucesso. Sem mencionar tecnologia. O foco &#233; no &#8220;o que&#8221; e no &#8220;por que&#8221;.</p><p><strong>2. Plan</strong> - Agora sim: stack, arquitetura, constraints t&#233;cnicas. Isso vira um documento que o agente vai seguir.</p><p><strong>3. Tasks</strong> - O plano &#233; decomposto em unidades at&#244;micas. Cada tarefa &#233; independente, testavel, e inclui os arquivos exatos que precisa tocar.</p><p><strong>4. Implement</strong> - A IA executa tarefa por tarefa. Cada uma &#233; verific&#225;vel antes de seguir pra pr&#243;xima.</p><p>A sacada &#233; que o checkpoint entre cada fase &#233; um port&#227;o de qualidade. Voc&#234; revisa a spec antes de planejar. Revisa o plano antes de decompor. Revisa as tarefas antes de implementar. A IA nunca sai correndo sem aprova&#231;&#227;o.</p><p>Isso resolve o problema central do vibe coding: voc&#234; perdia o controle porque n&#227;o existia controle. N&#227;o tinha spec, n&#227;o tinha plano, n&#227;o tinha checkpoint. S&#243; vibes.</p><div><hr></div><h2>Por que specs funcionam (a ci&#234;ncia por tr&#225;s)</h2><p>Se voc&#234; leu a edi&#231;&#227;o anterior sobre <a href="/__u/bertolini.substack.com/p/por-que-a-ia-ignora-metade-do-que">por que a IA ignora metade do que voc&#234; escreve</a>, j&#225; sabe que modelos t&#234;m aten&#231;&#227;o em formato de U, prestam aten&#231;&#227;o no in&#237;cio e no fim do contexto, e tendem a ignorar o meio. E que existe um or&#231;amento real de ~150-200 instru&#231;&#245;es que o modelo consegue seguir com consist&#234;ncia.</p><p>SDD &#233; a resposta pr&#225;tica a esses dois problemas.</p><p>Quando voc&#234; vibecoda, a cada prompt novo o contexto fica mais longo e mais confuso. Instru&#231;&#245;es antigas se perdem no meio. O modelo come&#231;a a &#8220;esquecer&#8221; o que deveria fazer. &#201; exatamente o efeito &#8220;Lost in the Middle&#8221; que a pesquisa do MIT documentou.</p><p>Quando voc&#234; trabalha com specs, cada tarefa tem um contexto limpo e focado. O agente recebe exatamente o que precisa pra executar aquela unidade de trabalho, nada mais, nada menos. Isso mant&#233;m o modelo dentro do seu or&#231;amento de aten&#231;&#227;o.</p><p>A spec n&#227;o &#233; burocracia. A spec &#233; gerenciamento de contexto.</p><div><hr></div><h2>O dado que me convenceu</h2><p>O GitHub analisou 2.500 reposit&#243;rios com arquivos de configura&#231;&#227;o de agentes de IA. O padr&#227;o mais eficaz que encontraram usa um sistema de 3 n&#237;veis de autonomia:</p><ul><li><p><strong>Sempre:</strong> a&#231;&#245;es que o agente faz sem pedir. &#8220;Sempre rode testes antes de commitar.&#8221;</p></li><li><p><strong>Pergunte primeiro:</strong> a&#231;&#245;es de alto impacto. &#8220;Pergunte antes de alterar schemas do banco.&#8221;</p></li><li><p><strong>Nunca:</strong> stops absolutos. &#8220;Nunca comite secrets ou API keys.&#8221;</p></li></ul><p>&#201; simples. E funciona porque elimina ambiguidade. O agente sabe exatamente onde tem autonomia e onde precisa parar.</p><p>Sabe qual foi a instru&#231;&#227;o de &#8220;Never&#8221; mais comum nos 2.500 repos? &#8220;Never commit secrets.&#8221; A coisa mais b&#225;sica de seguran&#231;a. E mesmo assim precisava ser escrita explicitamente pro agente n&#227;o fazer.</p><p>Isso diz tudo sobre o n&#237;vel de confian&#231;a que voc&#234; pode ter em c&#243;digo gerado sem supervis&#227;o.</p><div><hr></div><h2>O que a equipe do Martin Fowler pensa (e por que importa)</h2><p>Nem todo mundo &#233; entusiasta. Birgitta B&#246;ckeler, Distinguished Engineer na Thoughtworks e colaboradora direta do Martin Fowler, testou o Spec Kit e o Kiro na pr&#225;tica e publicou uma an&#225;lise honesta.</p><p>A critica central dela n&#227;o &#233; contra a ideia de spec-first. Ela mesma diz que frequentemente gasta tempo escrevendo uma spec cuidadosa antes de pedir algo pra IA. O que ela questiona &#233; a cerim&#244;nia excessiva das ferramentas.</p><p>Quando usou o Spec Kit numa feature de tamanho m&#233;dio, a quantidade de arquivos markdown gerados pra revisar era enorme. Repetitivos entre si, redundantes com c&#243;digo que j&#225; existia. Ela estimou que no mesmo tempo que gastou revisando specs, teria implementado a feature inteira com coding assistido por IA normal, sem todo o aparato formal.</p><p>O outro ponto forte: mesmo com todas as specs, templates, workflows e checklists, o agente frequentemente n&#227;o seguiu todas as instru&#231;&#245;es. Em um caso, o agente ignorou notas sobre c&#243;digo existente e recriou classes duplicadas. Em outro, seguiu uma regra da &#8220;constitution&#8221; de forma t&#227;o entusiasmada que fez mais do que deveria.</p><p>Ela resume a preocupa&#231;&#227;o com uma palavra alem&#227; que n&#227;o tem tradu&#231;&#227;o: &#8220;Verschlimmbesserung&#8221;, quando voc&#234; tenta melhorar algo e acaba piorando.</p><p>E ela tem raz&#227;o. A ferramenta n&#227;o &#233; o conceito. Spec Kit pode ser overkill pra muita coisa. Kiro gerou 4 user stories e 16 crit&#233;rios de aceite pra um bug simples.</p><p>Mas o princ&#237;pio por tr&#225;s do SDD, pensar antes de codar, documentar a inten&#231;&#227;o, dar contexto estruturado pro agente, isso ela mesma pratica. A quest&#227;o n&#227;o &#233; &#8220;SDD sim ou n&#227;o&#8221;. &#201; &#8220;quanto de cerim&#244;nia faz sentido pra cada tamanho de problema?&#8221;</p><p>E essa &#233; a pergunta certa.</p><div><hr></div><h2>O que eu mudei no meu workflow</h2><p>Depois dessa pesquisa, mudei 3 coisas:</p><p><strong>1. Spec antes de c&#243;digo.</strong> Qualquer feature nova come&#231;a com uma spec de 1 par&#225;grafo: o que, por que, e crit&#233;rios de aceite verific&#225;veis. Se eu n&#227;o consigo escrever uma spec clara, a feature n&#227;o est&#225; pronta pra ser constru&#237;da.</p><p><strong>2. Boundaries expl&#237;citas.</strong> Cada projeto tem um arquivo com os 3 n&#237;veis: Always, Ask First, Never. O agente sabe o que pode fazer sozinho e onde precisa parar.</p><p><strong>3. Tarefas at&#244;micas.</strong> Em vez de pedir &#8220;implementa o sistema de pagamentos&#8221;, eu decomponho em tarefas de 1-3 arquivos com uma defini&#231;&#227;o de &#8220;pronto&#8221; verific&#225;vel. &#8220;Quando o endpoint /payment receber um request com cr&#233;ditos insuficientes, deve retornar 402 com a mensagem X.&#8221;</p><p>O resultado: menos surpresas, menos retrabalho, menos whack-a-mole.</p><p>N&#227;o &#233; perfeito. A IA ainda erra. Mas quando ela erra, eu sei exatamente o que ela deveria ter feito, porque a spec existe. Isso cria um novo port&#227;o de qualidade automatizado. E isso muda tudo.</p><div><hr></div><h2>O ponto que ningu&#233;m fala</h2><p>Vibe coding n&#227;o vai morrer. Pra prot&#243;tipos, MVPs, side projects, experimenta&#231;&#227;o rapida, funciona. Eu uso at&#233; hoje quando quero testar uma ideia em 30 minutos.</p><p>Mas pra qualquer coisa que vai pra produ&#231;&#227;o, que vai ter usu&#225;rios reais, que vai precisar de manuten&#231;&#227;o, vibe coding &#233; d&#237;vida t&#233;cnica no cart&#227;o de cr&#233;dito. Parece barato agora. Os juros chegam depois.</p><p>SDD &#233; a alternativa: mant&#233;m a velocidade da IA, mas adiciona a estrutura que impede o c&#243;digo de virar um castelo de cartas.</p><p>A frase que resume: deixamos de tratar c&#243;digo como a fonte de verdade. A inten&#231;&#227;o &#233; a fonte de verdade agora. O c&#243;digo &#233; s&#243; o output.</p><div><hr></div><p>Na pr&#243;xima edi&#231;&#227;o, vou falar sobre o Manus AI , o agente que faz ~50 tool calls por tarefa e descobriu que a forma como voc&#234; estrutura o contexto importa mais do que o modelo que voc&#234; usa. Os n&#250;meros que eles publicaram sobre overhead de tarefas mal escritas s&#227;o surpreendentes.</p><p>--</p><p><strong>Bruno Bertolini</strong></p><p>P.S. Se voc&#234; quiser testar SDD no seu pr&#243;ximo projeto, o Spec Kit do GitHub &#233; open source e funciona com Claude Code, Copilot, Cursor e Gemini. Link: <a href="http://github.com/github/spec-kit">github.com/github/spec-kit</a></p>]]></content:encoded></item><item><title><![CDATA[Você já mentiu hoje (e nem percebeu)]]></title><description><![CDATA[Por que "s&#243; dessa vez" &#233; a frase mais perigosa que existe]]></description><link>https://bertolini.substack.com/p/voce-ja-mentiu-hoje-e-nem-percebeu</link><guid isPermaLink="false">https://bertolini.substack.com/p/voce-ja-mentiu-hoje-e-nem-percebeu</guid><dc:creator><![CDATA[Bruno Bertolini]]></dc:creator><pubDate>Fri, 13 Mar 2026 12:06:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1wV0!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faede0b97-7acd-424f-bc89-8c2a842b6984_460x460.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Ontem eu vi um tweet no X:</p><blockquote><p>&#8220;Meu conselho pra dev j&#250;nior: aprenda a mentir no curr&#237;culo. Coloque experi&#234;ncias que vc nunca viveu, aumente projetos que voc&#234; fez e at&#233; cite empresas que j&#225; fecharam. Ningu&#233;m vai conferir isso mesmo. O dif&#237;cil &#233; entrar. Depois vc aprende no trabalho. S&#243; seja bom tecnicamente.&#8221;</p></blockquote><p>Eu respondi. Virou uma thread. E o que aconteceu nessa thread &#233; mais interessante do que o tweet em si, porque a pessoa que me respondeu demonstrou, ao vivo, cada mecanismo psicol&#243;gico que a ci&#234;ncia descreve sobre como a desonestidade funciona.</p><p>Vou te mostrar o que aconteceu. E por que importa muito al&#233;m de curr&#237;culo.</p><div><hr></div><h2>O ponto de partida</h2><p>Minha resposta ao tweet foi direta:</p><blockquote><p>Curioso como ningu&#233;m que d&#225; esse conselho quer trabalhar com algu&#233;m que seguiu ele.</p></blockquote><p>Porque &#233; verdade. Nenhum tech lead quer descobrir que o dev mentiu sobre experi&#234;ncia. Nenhum founder quer um s&#243;cio que aprendeu cedo que trapacear funciona.</p><p>Mas o problema real n&#227;o &#233; ser pego. &#201; o que isso faz com voc&#234; por dentro.</p><div><hr></div><h2>A primeira racionaliza&#231;&#227;o</h2><p>A resposta veio r&#225;pido:</p><blockquote><p>&#8220;Desce do cavalo branco e olha o mercado real: vaga j&#250;nior pedindo 3/4/5 anos de experi&#234;ncia, teste t&#233;cnico de 8 horas sem retorno, empresa que some ap&#243;s a entrevista. O dev j&#250;nior n&#227;o t&#225; corroendo car&#225;ter, t&#225; tentando entrar num jogo que foi viciado antes dele chegar.&#8221;</p></blockquote><p>O mercado t&#225; quebrado? T&#225;. Tenho 20 anos de mercado. A gente j&#225; discutia requisitos irreais quando eu era j&#250;nior. Isso nunca foi diferente. E nunca foi motivo pra mentir.</p><p>Mas repara no que aconteceu nessa resposta: a pessoa pegou um sistema injusto e usou como justificativa para uma resposta desonesta. Re-rotulou mentira como estrat&#233;gia de sobreviv&#234;ncia.</p><p>Isso tem nome na ci&#234;ncia.</p><h3>Ethical Fading</h3><p>Max Bazerman e Ann Tenbrunsel, pesquisadores de Harvard e Notre Dame, chamam isso de &#8220;ethical fading&#8221;: quando a dimens&#227;o &#233;tica simplesmente desaparece da decis&#227;o e vira &#8220;s&#243; uma quest&#227;o de mercado.&#8221;</p><p>Organiza&#231;&#245;es fazem isso o tempo todo: re-rotulam dilemas &#233;ticos como &#8220;decis&#245;es de neg&#243;cios.&#8221; O resultado &#233; o que eles chamam de &#8220;bounded ethicality&#8221; (eticidade limitada): pessoas boas se comportando de forma anti&#233;tica sem perceber que est&#227;o fazendo isso.</p><p>A pessoa n&#227;o escolhe ser desonesta. A &#233;tica nem entra na equa&#231;&#227;o.</p><div><hr></div><h2>A segunda racionaliza&#231;&#227;o</h2><p>A&#237; veio o segundo argumento:</p><blockquote><p>&#8220;Car&#225;ter tamb&#233;m &#233; constru&#237;do com oportunidade. Quem nunca teve chance de provar nada n&#227;o teve car&#225;ter testado, teve car&#225;ter bloqueado.&#8221;</p></blockquote><p>L&#234; de novo essa frase.</p><p>A pessoa disse que car&#225;ter &#233; constru&#237;do com oportunidade. E a&#237;, quando a oportunidade de construir car&#225;ter aparece, o conselho &#233;... mentir?</p><p>Isso n&#227;o &#233; car&#225;ter bloqueado. &#201; car&#225;ter sendo testado. E falhando no teste.</p><p>O mercado dif&#237;cil &#233; a oportunidade. N&#227;o de trapacear. De provar quem voc&#234; &#233; quando seria mais f&#225;cil n&#227;o ser.</p><h3>O Fudge Factor</h3><p>Dan Ariely, pesquisador de economia comportamental da Duke University, estudou por anos como pessoas comuns lidam com a desonestidade. Ele descobriu o que chamou de &#8220;fudge factor&#8221; (fator de ajuste): as pessoas trapaceiam o suficiente pra tirar vantagem, mas n&#227;o tanto que destrua a imagem que t&#234;m de si mesmas.</p><p>A l&#243;gica interna funciona assim: &#8220;eu sou uma pessoa honesta que, neste caso espec&#237;fico, tem uma boa raz&#227;o pra flexibilizar.&#8221;</p><p>&#201; exatamente o que aconteceu na thread. A pessoa n&#227;o se v&#234; como desonesta. Ela se v&#234; como algu&#233;m que est&#225; sobrevivendo num sistema injusto. A mentira no curr&#237;culo n&#227;o &#233; desonestidade, &#233; estrat&#233;gia. O fudge factor em a&#231;&#227;o.</p><p>O modelo econ&#244;mico cl&#225;ssico dizia que desonestidade &#233; puro c&#225;lculo de risco vs. recompensa. Ariely mostrou que n&#227;o: em experimentos, as pessoas n&#227;o trapaceavam mais quando a chance de serem pegas diminu&#237;a. O que realmente opera &#233; essa negocia&#231;&#227;o interna entre vantagem e autoimagem.</p><p>Outro achado importante: pessoas mais criativas s&#227;o melhores em racionalizar comportamento desonesto. N&#227;o porque s&#227;o mais desonestas, mas porque t&#234;m mais facilidade em construir narrativas que justificam desvios.</p><div><hr></div><h2>A terceira racionaliza&#231;&#227;o</h2><p>Veio mais um argumento:</p><blockquote><p>&#8220;&#192;s vezes a primeira pedrada no sistema &#233; entrar nele.&#8221;</p></blockquote><p>Entrar por fraude n&#227;o te d&#225; autoridade pra mudar nada. Te d&#225; um segredo pra esconder. Toda sua posi&#231;&#227;o dentro do sistema passa a depender de ningu&#233;m descobrir como voc&#234; chegou l&#225;. Isso n&#227;o &#233; liberdade. &#201; ref&#233;m.</p><p>N&#227;o conhe&#231;o ningu&#233;m que entrou por atalho &#233;tico pra &#8220;mudar por dentro&#8221; e conseguiu. Ningu&#233;m volta de l&#225;. O sistema absorve. Sempre. &#201; s&#243; olhar pra politica, quantos entraram como paladinos da justi&#231;a e no final, se tornaram t&#227;o sujos como aqueles a quem acusavam. </p><h3>O Slippery Slope Neural</h3><p>E aqui entra o estudo que muda tudo.</p><p>Em 2016, pesquisadores da University College London (Neil Garrett e Tali Sharot) publicaram &#8220;The Brain Adapts to Dishonesty&#8221; na Nature Neuroscience. Eles colocaram volunt&#225;rios numa m&#225;quina de resson&#226;ncia magn&#233;tica e deram oportunidades repetidas para mentir em benef&#237;cio pr&#243;prio.</p><p>A am&#237;gdala, regi&#227;o do c&#233;rebro ligada a respostas emocionais, reagia com for&#231;a na primeira mentira. Aquele desconforto que a gente sente quando faz algo errado. Mas a cada mentira seguinte, a resposta diminu&#237;a. E conforme a resposta emocional ca&#237;a, as mentiras ficavam maiores.</p><p>A explica&#231;&#227;o de Tali Sharot: quando mentimos para ganho pessoal, a am&#237;gdala produz um sentimento negativo que limita o quanto estamos dispostos a mentir. Mas essa resposta enfraquece com a repeti&#231;&#227;o. Quanto mais ela cai, maiores ficam as mentiras.</p><p>A pessoa que defendeu &#8220;entrar no sistema&#8221; como primeira pedrada n&#227;o entende que n&#227;o existe &#8220;s&#243; essa vez.&#8221; O c&#233;rebro se adapta. O freio enfraquece. O que come&#231;a como curr&#237;culo inflado se torna o padr&#227;o de opera&#231;&#227;o.</p><p>&#8220;S&#243; dessa vez&#8221; n&#227;o &#233; exce&#231;&#227;o ao mecanismo. &#201; o in&#237;cio dele.</p><div><hr></div><h2>A escalada completa</h2><p>Quando olhei pra thread inteira, percebi que a pr&#243;pria conversa era uma demonstra&#231;&#227;o perfeita:</p><p>Primeiro argumento: &#8220;O mercado &#233; injusto.&#8221; Segundo argumento: &#8220;Car&#225;ter precisa de oportunidade.&#8221; Terceiro argumento: &#8220;A primeira pedrada &#233; entrar no sistema.&#8221;</p><p>Cada resposta foi uma camada nova de racionaliza&#231;&#227;o. Mais sofisticada que a anterior. Exatamente o que a ci&#234;ncia descreve: o custo da verdade sobe, a narrativa se ajusta, e a pessoa se convence de que n&#227;o &#233; desonestidade, &#233; sobreviv&#234;ncia.</p><p>Sabe quem mais usa essa l&#243;gica?</p><p>Pol&#237;tico corrupto.</p><p>&#8220;O sistema &#233; assim mesmo.&#8221; &#8220;Todo mundo faz.&#8221; &#8220;Preciso estar l&#225; dentro pra mudar.&#8221; &#8220;Os fins justificam os meios.&#8221;</p><p>A diferen&#231;a entre o dev que mente no curr&#237;culo e o pol&#237;tico que desvia verba n&#227;o &#233; de car&#225;ter. &#201; de escala. O mecanismo &#233; o mesmo. Come&#231;a no &#8220;ningu&#233;m vai conferir&#8221; e vai at&#233; onde o acesso permitir.</p><p>Isso &#233; o jeitinho brasileiro. E &#233; por isso que a gente n&#227;o sai do lugar.</p><div><hr></div><h2>Mas por que o desconforto existe?</h2><p>At&#233; aqui, tudo que descrevi s&#227;o mecanismos. Como a honestidade oscila, por que o c&#233;rebro se adapta, como nos damos permiss&#227;o.</p><p>Mas tem uma pergunta que esses estudos n&#227;o respondem: por que sentimos o desconforto em primeiro lugar?</p><p>Se a desonestidade fosse simplesmente &#8220;natural&#8221;, o c&#233;rebro n&#227;o precisaria produzir um sinal negativo na am&#237;gdala quando mentimos. Se fosse puro c&#225;lculo racional, n&#227;o existiria o fudge factor. As pessoas simplesmente trapaceariam o m&#225;ximo poss&#237;vel.</p><p>Mas n&#227;o &#233; o que acontece. Todo ser humano, em toda cultura, come&#231;a com um freio moral ativo. A am&#237;gdala dispara. O desconforto aparece.</p><p>C.S. Lewis, em &#8220;Cristianismo Puro e Simples&#8221;, faz uma observa&#231;&#227;o que se encaixa aqui. Ele argumenta que existe uma Lei Moral universal, que ele chama de &#8220;Lei da Natureza Humana&#8221;, diferente das leis da natureza como a gravidade.</p><p>A diferen&#231;a: a gravidade descreve o que acontece. A Lei Moral descreve o que deveria acontecer. E diferente da gravidade, o ser humano pode escolher desobedecer essa lei.</p><p>O argumento de Lewis &#233; simples: observe duas pessoas discutindo. O que elas fazem? Apelam a um padr&#227;o de comportamento que ambas reconhecem. &#8220;Isso n&#227;o &#233; justo.&#8221; &#8220;Voc&#234; prometeu.&#8221; Ningu&#233;m nessas discuss&#245;es nega que o padr&#227;o existe. A pessoa que est&#225; errada tenta explicar por que, no caso dela, existe uma exce&#231;&#227;o.</p><p>Exatamente o que aconteceu na thread.</p><p>Lewis nota que embora existam diferen&#231;as entre c&#243;digos morais de culturas diferentes, elas nunca s&#227;o totais. N&#227;o existe civiliza&#231;&#227;o que celebre covardia, trai&#231;&#227;o ou mentira para quem confia em voc&#234;. As varia&#231;&#245;es s&#227;o de superf&#237;cie. O n&#250;cleo &#233; impressionantemente consistente.</p><p>Ele compara com a matem&#225;tica: aprendemos a tabuada na escola, mas 2+2=4 n&#227;o &#233; uma inven&#231;&#227;o da escola. &#201; uma verdade que existe independentemente de ser ensinada. Da mesma forma, aprendemos moral com pais e cultura, mas a moral em si n&#227;o &#233; inven&#231;&#227;o deles.</p><p>E aqui Lewis conecta com o que a neuroci&#234;ncia encontrou d&#233;cadas depois: n&#243;s n&#227;o precisamos ser ensinados a sentir que mentir &#233; errado. A am&#237;gdala j&#225; vem com essa resposta. O que precisamos ser ensinados &#233; a racionalizar exce&#231;&#245;es.</p><div><hr></div><h2>O que separa integridade do resto</h2><p>Se juntarmos todas as pe&#231;as:</p><p>Todo ser humano tem uma Lei Moral interna que produz desconforto quando &#233; violada. Mas todos n&#243;s ajustamos essa lei um pouquinho, o tempo todo, pra equilibrar identidade e conveni&#234;ncia. Cada ajuste enfraquece o freio, facilitando ajustes maiores. Em muitas situa&#231;&#245;es, a dimens&#227;o &#233;tica simplesmente desaparece antes da decis&#227;o.</p><p>Ent&#227;o o que separa pessoas verdadeiramente &#237;ntegras?</p><p>N&#227;o &#233; que elas n&#227;o sentem a tenta&#231;&#227;o. &#201; que elas tomaram uma decis&#227;o antes da situa&#231;&#227;o aparecer.</p><p>Peter Gollwitzer, pesquisador da NYU, estuda o que chama de &#8220;implementation intentions&#8221;: quando algu&#233;m define de antem&#227;o &#8220;SE esta situa&#231;&#227;o acontecer, ENT&#195;O eu farei X&#8221;, o comportamento se torna quase autom&#225;tico. O c&#233;rebro n&#227;o precisa negociar no momento. A decis&#227;o j&#225; foi tomada.</p><p>Em seus estudos, objetivos dif&#237;ceis foram completados cerca de tr&#234;s vezes mais quando as pessoas tinham formado esse tipo de plano antecipado.</p><p>Aplicado &#224; integridade: a pessoa que j&#225; decidiu &#8220;eu n&#227;o fa&#231;o isso&#8221; n&#227;o precisa deliberar quando a tenta&#231;&#227;o aparece. O ethical fading n&#227;o tem espa&#231;o. O fudge factor n&#227;o tem margem.</p><h2>Mas como isso funciona na pr&#225;tica? </h2><p>Voc&#234; n&#227;o precisa ter pensado em cada situa&#231;&#227;o espec&#237;fica de antem&#227;o.</p><p>Eu nunca parei pra pensar &#8220;e se algu&#233;m me sugerir mentir no curr&#237;culo?&#8221; Nunca planejei essa situa&#231;&#227;o. Mas quando li o tweet, a resposta foi autom&#225;tica. N&#227;o precisei deliberar. N&#227;o pesei pr&#243;s e contras. A rea&#231;&#227;o foi imediata: n&#227;o, isso n&#227;o &#233; quem eu sou.</p><p>Isso acontece porque a pr&#233;-decis&#227;o n&#227;o precisa ser sobre cen&#225;rios espec&#237;ficos. Ela pode ser sobre identidade. Em vez de planejar &#8220;se me pedirem pra mentir no curr&#237;culo, eu recuso&#8221;, voc&#234; decide algo mais fundamental: &#8220;eu sou uma pessoa que n&#227;o mente pra obter vantagem.&#8221;</p><p>Quando a identidade est&#225; definida, ela funciona como um filtro autom&#225;tico. Qualquer situa&#231;&#227;o que bata nesse filtro, mesmo uma que voc&#234; nunca imaginou, ativa a mesma resposta. Voc&#234; n&#227;o precisa negociar com cada tenta&#231;&#227;o individualmente. A decis&#227;o j&#225; foi tomada num n&#237;vel mais profundo.</p><p>&#201; a diferen&#231;a entre ter uma lista de regras e ter um princ&#237;pio. A lista precisa cobrir cada caso. O princ&#237;pio cobre todos, inclusive os que voc&#234; nunca previu.</p><p>Gollwitzer chamaria isso de uma &#8220;implementation intention&#8221; de n&#237;vel superior: n&#227;o &#233; &#8220;SE me pedirem pra mentir, ENT&#195;O eu recuso.&#8221; &#201; &#8220;EU SOU algu&#233;m que n&#227;o faz isso.&#8221; O gatilho n&#227;o &#233; a situa&#231;&#227;o. &#201; qualquer coisa que colida com quem voc&#234; decidiu ser.</p><div><hr></div><h2>Pra quem ficou at&#233; aqui</h2><p>Uma &#250;ltima coisa sobre a thread.</p><p>A pessoa que me respondeu n&#227;o &#233; desonesta. Esse &#233; justamente o ponto.</p><p>Ela n&#227;o defende mentir no curr&#237;culo porque &#233; m&#225; pessoa. Defende porque o mecanismo j&#225; fez o trabalho dele: normalizou, racionalizou, e agora parece razo&#225;vel. &#201; exatamente assim que funciona. Com todo mundo.</p><p>A boa not&#237;cia &#233; que o momento que voc&#234; percebe o mecanismo &#233; o momento que ele perde for&#231;a.</p><p>Integridade n&#227;o &#233; nunca ter errado. &#201; decidir parar quando percebe.</p><p>A maioria das pessoas n&#227;o escolhe entre ser honesta ou desonesta. Escolhe entre quem quer ser e o que &#233; conveniente agora. O que separa pessoas &#237;ntegras das demais n&#227;o &#233; que elas n&#227;o sintam a tenta&#231;&#227;o. &#201; que elas decidiram antes que a pr&#243;pria identidade vale mais que a conveni&#234;ncia.</p><p><strong>Integridade &#233; uma decis&#227;o tomada antes da tenta&#231;&#227;o.</strong></p><div><hr></div><p><em>Estudos citados nesta edi&#231;&#227;o:</em></p><ul><li><p><em>Garrett, Lazzaro, Ariely &amp; Sharot &#8212; &#8220;The Brain Adapts to Dishonesty&#8221; (Nature Neuroscience, 2016)</em></p></li><li><p><em>Mazar, Amir &amp; Ariely &#8212; &#8220;The Dishonesty of Honest People&#8221; (Journal of Marketing Research, 2008)</em></p></li><li><p><em>Bazerman &amp; Tenbrunsel &#8212; &#8220;Blind Spots: Why We Fail to Do What&#8217;s Right&#8221; (Princeton University Press, 2011)</em></p></li><li><p><em>Gollwitzer &amp; Brandst&#228;tter &#8212; &#8220;Implementation Intentions and Effective Goal Pursuit&#8221; (Journal of Personality and Social Psychology, 1997)</em></p></li><li><p><em>C.S. Lewis &#8212; &#8220;Mere Christianity&#8221; (1952)</em></p></li></ul>]]></content:encoded></item><item><title><![CDATA[Por que a IA ignora metade do que você escreve]]></title><description><![CDATA[A aten&#231;&#227;o do modelo tem formato de U. E isso muda tudo.]]></description><link>https://bertolini.substack.com/p/por-que-a-ia-ignora-metade-do-que</link><guid isPermaLink="false">https://bertolini.substack.com/p/por-que-a-ia-ignora-metade-do-que</guid><dc:creator><![CDATA[Bruno Bertolini]]></dc:creator><pubDate>Fri, 06 Mar 2026 12:03:36 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1wV0!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faede0b97-7acd-424f-bc89-8c2a842b6984_460x460.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Voc&#234; j&#225; montou um prompt caprichado, colocou contexto, explicou o tom, disse o que n&#227;o queria, deu exemplos... e o modelo ignorou exatamente o detalhe que voc&#234; mais se preocupou em especificar?</p><p>A rea&#231;&#227;o natural &#233; achar que precisa de um prompt ainda mais detalhado. Passei um tempo achando isso tamb&#233;m.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://bertolini.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Obrigado por ler! Assine gratuitamente para receber novos posts e apoiar meu trabalho.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Mas n&#227;o &#233; isso. &#201; o contr&#225;rio.</p><p>Fui pesquisar de verdade. Li 22 fontes (n&#227;o eu exatamente, a AI, claro): papers acad&#234;micos do Stanford e MIT, publica&#231;&#245;es da Anthropic, Google e GitHub, dados de engenheiros que trabalham com IA em produ&#231;&#227;o. O que encontrei mudou como eu uso IA no dia a dia.</p><h2>A aten&#231;&#227;o do modelo tem formato de U</h2><p>O paper mais importante foi publicado no MIT Press em 2024. &#8220;<a href="https://arxiv.org/abs/2307.03172">Lost in the Middle</a>&#8221; (Liu et al.), pesquisa do Stanford com a Meta.</p><p>O experimento &#233; simples: eles variaram a posi&#231;&#227;o da informa&#231;&#227;o relevante dentro de um prompt longo e mediram a performance dos modelos. O resultado foi consistente em todos os modelos testados.</p><p>LLMs prestam muito mais aten&#231;&#227;o no in&#237;cio e no fim do que voc&#234; escreve. O meio &#233; ignorado.</p><p>Os n&#250;meros: acur&#225;cia de 70-75% para informa&#231;&#245;es nas extremidades. Cai para 55-60% para informa&#231;&#245;es no meio. Em alguns casos, ter a informa&#231;&#227;o relevante no meio gerou performance pior do que n&#227;o ter informa&#231;&#227;o nenhuma. O GPT-3.5-Turbo chegou a 56.1% de acur&#225;cia com informa&#231;&#227;o no meio, abaixo do baseline sem contexto nenhum.</p><p>A curva de aten&#231;&#227;o tem literalmente o formato de um U.</p><p>Se voc&#234; monta prompt longo e coloca a instru&#231;&#227;o mais importante no terceiro par&#225;grafo, depois de duas se&#231;&#245;es de contexto, &#233; ali que ela vai morrer. N&#227;o importa qu&#227;o bem escrita ela est&#225;.</p><h2>Existe um or&#231;amento real de aten&#231;&#227;o</h2><p>O <a href="https://www.humanlayer.dev/blog/writing-a-good-claude-md">HumanLayer</a>, uma empresa que trabalha com agentes de IA em produ&#231;&#227;o, chegou a um n&#250;mero concreto depois de testar com m&#250;ltiplos modelos: LLMs de ponta conseguem seguir cerca de 150-200 instru&#231;&#245;es com consist&#234;ncia razo&#225;vel.</p><p>Parece muito. Mas o comportamento de degrada&#231;&#227;o &#233; o que pega.</p><p>Quando voc&#234; passa do limite, n&#227;o s&#227;o s&#243; as &#250;ltimas instru&#231;&#245;es que perdem for&#231;a. Todas perdem for&#231;a uniformemente. Cada instru&#231;&#227;o nova que voc&#234; adiciona dilui todas as anteriores.</p><p>Sabe quando voc&#234; tem um arquivo CLAUDE.md ou system prompt com 50 regras e o modelo segue umas 30? N&#227;o &#233; que as 20 de baixo s&#227;o piores. &#201; que 50 &#233; demais. Se voc&#234; cortar pra 15 bem escolhidas, as 15 funcionam melhor do que as 30 que funcionavam antes.</p><p>Isso inverte a l&#243;gica de &#8220;quanto mais detalhado, melhor&#8221;. Voc&#234; n&#227;o est&#225; sendo mais preciso. Est&#225; diluindo o que j&#225; funcionava.</p><h2>Contexto irrelevante n&#227;o &#233; neutro</h2><p>Esse foi o dado que mais me surpreendeu.</p><p>O Chroma Research publicou em 2025 um estudo chamado &#8220;<a href="https://research.trychroma.com/context-rot">Context Rot</a>&#8221; testando o que acontece com a performance quando voc&#234; adiciona conte&#250;do irrelevante ao contexto. A conclus&#227;o: performance degrada consistentemente, em todos os modelos testados, mesmo quando o conte&#250;do adicional n&#227;o tem nada a ver com a tarefa.</p><p>E a degrada&#231;&#227;o n&#227;o &#233; uniforme. Conte&#250;do complexo e irrelevante causa mais dano do que ru&#237;do simples.</p><p>Aquele contexto elaborado que voc&#234; adicionou &#8220;s&#243; pra garantir que o modelo entenda&#8221;? T&#225; atrapalhando. Cada linha que n&#227;o contribui diretamente pro resultado n&#227;o ocupa s&#243; espa&#231;o, compete ativamente com o que importa.</p><p>&#201; tipo polui&#231;&#227;o sonora. Voc&#234; n&#227;o precisa de sil&#234;ncio absoluto pra trabalhar, mas se tem uma TV ligada, algu&#233;m falando no telefone e um cachorro latindo, sua produtividade cai mesmo que nenhum desses sons tenha a ver com sua tarefa.</p><h2>O que mudou na pr&#225;tica</h2><p>Tr&#234;s coisas que fa&#231;o diferente hoje.</p><p><strong>O mais importante vai no come&#231;o, sempre.</strong> Se tem uma instru&#231;&#227;o de tom, formato ou restri&#231;&#227;o que n&#227;o pode ser ignorada, ela est&#225; na primeira linha. N&#227;o depois do contexto. <strong>Antes</strong>. Parece &#243;bvio, mas vai olhar seus &#250;ltimos prompts, aposto que a instru&#231;&#227;o principal t&#225; enterrada no meio.</p><p><strong>Corto contexto at&#233; doer.</strong> Pra cada bloco de um prompt longo, pergunto: se eu tirar isso, o resultado piora? Se a resposta for &#8220;talvez n&#227;o&#8221;, tiro. Menos contexto com mais relev&#226;ncia tende a gerar resultado melhor do que mais contexto com mais completude.</p><p><strong>Paro de repetir o que j&#225; est&#225; impl&#237;cito.</strong> Se estou pedindo pra escrever um e-mail profissional, n&#227;o preciso escrever &#8220;use tom profissional&#8221;. O modelo j&#225; infere. Instru&#231;&#227;o redundante consome or&#231;amento de aten&#231;&#227;o sem retorno.</p><div><hr></div><p>Se a palavra n&#227;o t&#225; ajudando, ela t&#225; atrapalhando. Isso vale pra prompts simples, vale pra system prompts, e vale especialmente pra quem t&#225; construindo agentes com contexto persistente, porque a&#237; o lixo acumula e s&#243; piora com o tempo.</p><p>Na pr&#243;xima edi&#231;&#227;o falo sobre o outro lado do problema: como estruturar tarefas pra IA de forma que ela execute sem retrabalho. Um pesquisador do Manus AI publicou dados concretos sobre o overhead que tarefas mal escritas geram. O resultado &#233; contraintuitivo e quero mostrar os n&#250;meros.</p><p>Bruno Bertolini</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://bertolini.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Obrigado por ler! Assine gratuitamente para receber novos posts e apoiar meu trabalho.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[A Construção da Consciência]]></title><description><![CDATA[abra o envelope]]></description><link>https://bertolini.substack.com/p/a-construcao-da-consciencia</link><guid isPermaLink="false">https://bertolini.substack.com/p/a-construcao-da-consciencia</guid><dc:creator><![CDATA[Bruno Bertolini]]></dc:creator><pubDate>Fri, 27 Feb 2026 15:52:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!35PT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F527920b2-3473-4aa2-b1df-f969be14941e_1279x720.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!35PT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F527920b2-3473-4aa2-b1df-f969be14941e_1279x720.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!35PT!, /__u/bertolini.substack.com/w_424, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F527920b2-3473-4aa2-b1df-f969be14941e_1279x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!35PT!, /__u/bertolini.substack.com/w_848, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F527920b2-3473-4aa2-b1df-f969be14941e_1279x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!35PT!, /__u/bertolini.substack.com/w_1272, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F527920b2-3473-4aa2-b1df-f969be14941e_1279x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!35PT!, /__u/bertolini.substack.com/w_1456, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F527920b2-3473-4aa2-b1df-f969be14941e_1279x720.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!35PT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F527920b2-3473-4aa2-b1df-f969be14941e_1279x720.png" width="1279" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/527920b2-3473-4aa2-b1df-f969be14941e_1279x720.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1279,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1528308,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://bertolini.substack.com/i/189095968?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F527920b2-3473-4aa2-b1df-f969be14941e_1279x720.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!35PT!, /__u/bertolini.substack.com/w_424, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F527920b2-3473-4aa2-b1df-f969be14941e_1279x720.png 424w, /__u/substackcdn.com/image/fetch/$s_!35PT!, /__u/bertolini.substack.com/w_848, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F527920b2-3473-4aa2-b1df-f969be14941e_1279x720.png 848w, /__u/substackcdn.com/image/fetch/$s_!35PT!, /__u/bertolini.substack.com/w_1272, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F527920b2-3473-4aa2-b1df-f969be14941e_1279x720.png 1272w, /__u/substackcdn.com/image/fetch/$s_!35PT!, /__u/bertolini.substack.com/w_1456, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F527920b2-3473-4aa2-b1df-f969be14941e_1279x720.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>A maioria das pessoas tem um mapa errado do pr&#243;prio conhecimento. Inclusive voc&#234;.</p><p>N&#227;o porque s&#227;o burras. Mas porque o mapa parece certo. Parece completo. Cada pe&#231;a no lugar, nenhum espa&#231;o em branco, nenhuma lacuna vis&#237;vel. E &#233; exatamente isso que o torna perigoso.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://bertolini.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Obrigado por ler! Assine gratuitamente para receber novos posts e apoiar meu trabalho.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Entender como isso funciona pode mudar a forma como voc&#234; enxerga sua pr&#243;pria vida. Mas antes, preciso te contar sobre um quebra-cabe&#231;a.</p><div><hr></div><p>Existe uma empresa chamada Magic Puzzle Company que vende quebra-cabe&#231;as de 1000 pe&#231;as. Voc&#234; monta o puzzle normalmente. Encaixa todas as pe&#231;as, completa a imagem, e ela faz sentido. Ilhas paradis&#237;acas, florestas encantadas, cidades m&#225;gicas. Est&#225; tudo l&#225;. N&#227;o falta nada. Voc&#234; olha pro resultado, satisfeito, e j&#225; pode ir dormir. O quebra-cabe&#231;a est&#225; pronto.</p><p>A&#237; vem a instru&#231;&#227;o: abra o envelope lacrado.</p><p>Dentro tem dezenas de pe&#231;as que n&#227;o estavam no jogo original. E as instru&#231;&#245;es pedem que voc&#234; separe se&#231;&#245;es inteiras do quebra-cabe&#231;a que j&#225; estava montado, reorganize tudo, e encaixe as novas pe&#231;as no espa&#231;o que se abriu no meio. Quando voc&#234; termina, a imagem mudou completamente. Onde antes havia ilhas tranquilas, agora aparece algo completamente inesperado que muda a narrativa inteira. Uma hist&#243;ria que estava escondida se revela.</p><p>E o pior: depois que voc&#234; v&#234; a vers&#227;o expandida, percebe que j&#225; havia pistas na vers&#227;o &#8220;completa&#8221; que voc&#234; tinha ignorado. Elas sempre estiveram l&#225;. Voc&#234; s&#243; n&#227;o sabia que precisava procur&#225;-las.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!Znf0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25646ed3-c0f5-4bae-9ec7-12ba54b0afcd_1333x1000.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!Znf0!, /__u/bertolini.substack.com/w_424, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25646ed3-c0f5-4bae-9ec7-12ba54b0afcd_1333x1000.png 424w, /__u/substackcdn.com/image/fetch/$s_!Znf0!, /__u/bertolini.substack.com/w_848, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25646ed3-c0f5-4bae-9ec7-12ba54b0afcd_1333x1000.png 848w, /__u/substackcdn.com/image/fetch/$s_!Znf0!, /__u/bertolini.substack.com/w_1272, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25646ed3-c0f5-4bae-9ec7-12ba54b0afcd_1333x1000.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Znf0!, /__u/bertolini.substack.com/w_1456, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25646ed3-c0f5-4bae-9ec7-12ba54b0afcd_1333x1000.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!Znf0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25646ed3-c0f5-4bae-9ec7-12ba54b0afcd_1333x1000.png" width="1333" height="1000" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/25646ed3-c0f5-4bae-9ec7-12ba54b0afcd_1333x1000.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1000,&quot;width&quot;:1333,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2989651,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://bertolini.substack.com/i/189095968?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25646ed3-c0f5-4bae-9ec7-12ba54b0afcd_1333x1000.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!Znf0!, /__u/bertolini.substack.com/w_424, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25646ed3-c0f5-4bae-9ec7-12ba54b0afcd_1333x1000.png 424w, /__u/substackcdn.com/image/fetch/$s_!Znf0!, /__u/bertolini.substack.com/w_848, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25646ed3-c0f5-4bae-9ec7-12ba54b0afcd_1333x1000.png 848w, /__u/substackcdn.com/image/fetch/$s_!Znf0!, /__u/bertolini.substack.com/w_1272, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25646ed3-c0f5-4bae-9ec7-12ba54b0afcd_1333x1000.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Znf0!, /__u/bertolini.substack.com/w_1456, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F25646ed3-c0f5-4bae-9ec7-12ba54b0afcd_1333x1000.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Guarda essa imagem. O quebra-cabe&#231;a completo que descobre que n&#227;o estava completo. Vamos voltar nela.</p><div><hr></div><p>Em 2002, o secret&#225;rio de defesa americano Donald Rumsfeld deu uma coletiva de imprensa que ficou famosa. N&#227;o pelo conte&#250;do pol&#237;tico, mas por uma frase que virou framework. Ele dividiu o conhecimento humano em quatro quadrantes. A ideia &#233; mais antiga que ele, mas foi Rumsfeld quem a colocou no mapa (sem trocadilho):</p><p><strong>O que voc&#234; sabe que sabe.</strong> Sua &#225;rea de dom&#237;nio. As coisas que, se algu&#233;m perguntar, voc&#234; responde com seguran&#231;a. O m&#233;dico que sabe diagnosticar uma pneumonia. O engenheiro que sabe calcular uma estrutura. Aqui mora a compet&#234;ncia consciente. Voc&#234; tem conhecimento e tem consci&#234;ncia dele.</p><p><strong>O que voc&#234; sabe que n&#227;o sabe.</strong> Igualmente importante. Eu sei que n&#227;o sei tocar piano. Sei que n&#227;o entendo de astrof&#237;sica. Existe um buraco no meu mapa e eu consigo apontar pra ele. Ter consci&#234;ncia das pr&#243;prias lacunas &#233;, paradoxalmente, uma forma sofisticada de conhecimento. Voc&#234; n&#227;o tem o conhecimento, mas tem consci&#234;ncia da aus&#234;ncia.</p><p><strong>O que voc&#234; n&#227;o sabe que sabe.</strong> Esse &#233; mais sutil. &#201; o conhecimento emp&#237;rico que vive no corpo, na intui&#231;&#227;o, nos padr&#245;es que voc&#234; reconhece sem conseguir articular por qu&#234;. O profissional experiente que &#8220;sente&#8221; que algo vai dar errado antes de ter qualquer dado concreto. Voc&#234; tem o conhecimento, mas n&#227;o tem consci&#234;ncia dele. Ele opera em sil&#234;ncio. E s&#243; descobre que existia quando precisa externalizar, quando algu&#233;m pergunta &#8220;como voc&#234; sabia?&#8221; e a resposta honesta &#233; &#8220;eu n&#227;o sabia que sabia.&#8221;</p><p><strong>O que voc&#234; n&#227;o sabe que n&#227;o sabe.</strong> E aqui est&#225; o quadrante que muda tudo. Voc&#234; n&#227;o tem conhecimento e n&#227;o tem consci&#234;ncia. N&#227;o existe buraco vis&#237;vel no seu mapa. N&#227;o existe espa&#231;o em branco. Na sua cabe&#231;a, no seu modelo mental, tudo est&#225; finalizado. Est&#225; pronto. Faz sentido. O quebra-cabe&#231;a parece completo. At&#233; que algu&#233;m te entrega o envelope.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!KRSB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c13b44b-4469-4fa4-bf72-32b680debf62_1200x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!KRSB!, /__u/bertolini.substack.com/w_424, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c13b44b-4469-4fa4-bf72-32b680debf62_1200x800.png 424w, /__u/substackcdn.com/image/fetch/$s_!KRSB!, /__u/bertolini.substack.com/w_848, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c13b44b-4469-4fa4-bf72-32b680debf62_1200x800.png 848w, /__u/substackcdn.com/image/fetch/$s_!KRSB!, /__u/bertolini.substack.com/w_1272, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c13b44b-4469-4fa4-bf72-32b680debf62_1200x800.png 1272w, /__u/substackcdn.com/image/fetch/$s_!KRSB!, /__u/bertolini.substack.com/w_1456, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c13b44b-4469-4fa4-bf72-32b680debf62_1200x800.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!KRSB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c13b44b-4469-4fa4-bf72-32b680debf62_1200x800.png" width="1200" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4c13b44b-4469-4fa4-bf72-32b680debf62_1200x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:45113,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://bertolini.substack.com/i/189095968?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c13b44b-4469-4fa4-bf72-32b680debf62_1200x800.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!KRSB!, /__u/bertolini.substack.com/w_424, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c13b44b-4469-4fa4-bf72-32b680debf62_1200x800.png 424w, /__u/substackcdn.com/image/fetch/$s_!KRSB!, /__u/bertolini.substack.com/w_848, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c13b44b-4469-4fa4-bf72-32b680debf62_1200x800.png 848w, /__u/substackcdn.com/image/fetch/$s_!KRSB!, /__u/bertolini.substack.com/w_1272, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c13b44b-4469-4fa4-bf72-32b680debf62_1200x800.png 1272w, /__u/substackcdn.com/image/fetch/$s_!KRSB!, /__u/bertolini.substack.com/w_1456, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c13b44b-4469-4fa4-bf72-32b680debf62_1200x800.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p>Os navegadores do s&#233;culo XV viviam exatamente nesse quadrante.</p><p>Eles olhavam pro mapa do mundo e viam algo completo. A Europa estava l&#225;. A &#193;sia, mais ou menos. A &#193;frica, parcialmente. O mapa tinha bordas, tinha forma, tinha fim. N&#227;o existia um espa&#231;o em branco com uma placa dizendo &#8220;aten&#231;&#227;o: aqui tem um continente inteiro que voc&#234;s ainda n&#227;o descobriram.&#8221; O mapa simplesmente parecia pronto. N&#227;o faltava pe&#231;as. N&#227;o havia lacunas vis&#237;veis. O modelo mental daqueles navegadores era internamente consistente. O que &#233; muito diferente de estar correto.</p><p>At&#233; que algu&#233;m cruzou o oceano.</p><p>E de repente, o mundo era incompreensivelmente maior do que qualquer mapa sugeria. N&#227;o era que eles estivessem errados sobre o que sabiam. &#201; que existiam dimens&#245;es inteiras de realidade que sequer cabiam no modelo que tinham. O envelope foi aberto. E como em todo bom plot twist, ele n&#227;o adicionou informa&#231;&#227;o nova. Ele recontextualizou tudo que j&#225; estava l&#225;.</p><p>Esse &#233; o quadrante dos unknown unknowns. N&#227;o &#233; ignor&#226;ncia comum. &#201; uma ignor&#226;ncia invis&#237;vel at&#233; pra quem a carrega. E &#233; o quadrante mais importante dos quatro, porque &#233; o &#250;nico que, por defini&#231;&#227;o, voc&#234; n&#227;o consegue acessar por esfor&#231;o pr&#243;prio. Voc&#234; n&#227;o pode estudar o que nem sabe que existe. Voc&#234; n&#227;o pode buscar respostas pra perguntas que ainda n&#227;o aprendeu a fazer.</p><div><hr></div><p>&#201; aqui que fica interessante.</p><p>Existe um fen&#244;meno documentado em psicologia cognitiva, o efeito Dunning-Kruger, que mostra algo contraintuitivo: a rela&#231;&#227;o entre compet&#234;ncia e confian&#231;a n&#227;o &#233; linear. No in&#237;cio de qualquer jornada de aprendizado, a confian&#231;a tende a ser desproporcionalmente alta. N&#227;o por arrog&#226;ncia, mas por uma raz&#227;o estrutural: quando seu quebra-cabe&#231;a &#233; pequeno, ele parece completo. Voc&#234; n&#227;o sabe o que n&#227;o sabe, ent&#227;o n&#227;o tem motivo pra duvidar de si. O envelope ainda est&#225; lacrado. Voc&#234; nem sabe que ele existe.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!WpSa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e76bf03-d9fb-44d9-a8eb-3a71a25f1909_1024x719.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!WpSa!, /__u/bertolini.substack.com/w_424, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e76bf03-d9fb-44d9-a8eb-3a71a25f1909_1024x719.png 424w, /__u/substackcdn.com/image/fetch/$s_!WpSa!, /__u/bertolini.substack.com/w_848, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e76bf03-d9fb-44d9-a8eb-3a71a25f1909_1024x719.png 848w, /__u/substackcdn.com/image/fetch/$s_!WpSa!, /__u/bertolini.substack.com/w_1272, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e76bf03-d9fb-44d9-a8eb-3a71a25f1909_1024x719.png 1272w, /__u/substackcdn.com/image/fetch/$s_!WpSa!, /__u/bertolini.substack.com/w_1456, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_webp, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e76bf03-d9fb-44d9-a8eb-3a71a25f1909_1024x719.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!WpSa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e76bf03-d9fb-44d9-a8eb-3a71a25f1909_1024x719.png" width="1024" height="719" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7e76bf03-d9fb-44d9-a8eb-3a71a25f1909_1024x719.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:719,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:105089,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://bertolini.substack.com/i/189095968?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e76bf03-d9fb-44d9-a8eb-3a71a25f1909_1024x719.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!WpSa!, /__u/bertolini.substack.com/w_424, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e76bf03-d9fb-44d9-a8eb-3a71a25f1909_1024x719.png 424w, /__u/substackcdn.com/image/fetch/$s_!WpSa!, /__u/bertolini.substack.com/w_848, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e76bf03-d9fb-44d9-a8eb-3a71a25f1909_1024x719.png 848w, /__u/substackcdn.com/image/fetch/$s_!WpSa!, /__u/bertolini.substack.com/w_1272, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e76bf03-d9fb-44d9-a8eb-3a71a25f1909_1024x719.png 1272w, /__u/substackcdn.com/image/fetch/$s_!WpSa!, /__u/bertolini.substack.com/w_1456, /__u/bertolini.substack.com/c_limit, /__u/bertolini.substack.com/f_auto, /__u/bertolini.substack.com/q_auto:good, /__u/bertolini.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7e76bf03-d9fb-44d9-a8eb-3a71a25f1909_1024x719.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p></p><p>O empreendedor de primeira viagem que acha que s&#243; precisa de uma boa ideia. O estagi&#225;rio que acha que o trabalho &#233; basicamente o que ele fez na faculdade. O investidor iniciante que acha que entende risco porque leu tr&#234;s livros. Nenhum deles est&#225; sendo arrogante. O quebra-cabe&#231;a deles simplesmente ainda &#233; pequeno. E num quebra-cabe&#231;a pequeno, quase tudo est&#225; preenchido. Dentro do modelo que eles t&#234;m, a confian&#231;a faz sentido.</p><p>O problema come&#231;a quando o envelope &#233; aberto.</p><p>Conforme a compet&#234;ncia real cresce, uma coisa curiosa acontece: a pessoa come&#231;a a descobrir camadas que n&#227;o sabia que existiam. Cada coisa nova que aprende revela dez que n&#227;o sabia. O quebra-cabe&#231;a fica maior, mas os espa&#231;os vazios crescem muito mais r&#225;pido do que as pe&#231;as encaixadas.</p><p>&#201; aqui que a confian&#231;a desaba. E &#233; aqui que nasce o que chamam de S&#237;ndrome do Impostor.</p><p>Mas repara na mec&#226;nica: a pessoa n&#227;o ficou menos competente. Ela ficou mais <em>consciente</em>. O que mudou n&#227;o foi o conhecimento real, foi a percep&#231;&#227;o da imensid&#227;o do que falta.</p><p>Imagina um mapa onde a maior parte do territ&#243;rio est&#225; coberta por uma n&#233;voa escura. Voc&#234; s&#243; enxerga o que j&#225; explorou. O resto &#233; territ&#243;rio desconhecido. Em jogos de estrat&#233;gia chamam isso de fog of war. A pessoa que abriu o envelope &#233; a que descobriu o fog of war do pr&#243;prio conhecimento. Antes, ela achava que o mapa era tudo que existia. Agora ela v&#234; a n&#233;voa. E sabe que al&#233;m do que j&#225; explorou, tem uma zona vasta e escura onde qualquer coisa pode surgir. Ela n&#227;o sabe o que tem l&#225;. Mas sabe que tem algo. E s&#243; isso j&#225; muda tudo.</p><p>A s&#237;ndrome do impostor, vista por essa lente, nada mais &#233; que o gap entre a confian&#231;a e o conhecimento real. Quando sua confian&#231;a est&#225; abaixo da sua compet&#234;ncia real, voc&#234; se sente uma fraude. N&#227;o porque &#233; uma. Mas porque sua capacidade de enxergar o que n&#227;o sabe evoluiu mais r&#225;pido do que sua capacidade de se dar cr&#233;dito pelo que j&#225; sabe.</p><p>Quem nunca abriu nenhum envelope dificilmente sente isso. Quanto menor o mapa, mais completo ele parece. Quanto mais completo parece, menos motivo pra duvidar. Bertrand Russell resumiu isso numa frase: os tolos est&#227;o cheios de certezas e os s&#225;bios cheios de d&#250;vidas.</p><p>A s&#237;ndrome do impostor n&#227;o &#233; um defeito. &#201; um efeito colateral de ter expandido o mapa.</p><div><hr></div><p>Existe outro problema nessa equa&#231;&#227;o, e ele &#233; mais silencioso.</p><p>Quando algu&#233;m sente que &#233; uma fraude, a rea&#231;&#227;o instintiva &#233; se comparar. Olhar pro colega, pro l&#237;der, pro refer&#234;ncia do mercado. E a compara&#231;&#227;o &#233; quase sempre feita em uma &#250;nica dimens&#227;o: conhecimento bruto. &#8220;Fulano sabe mais que eu sobre X, logo eu sou inferior.&#8221;</p><p>Mas conhecimento bruto &#233; uma vari&#225;vel entre muitas. Experi&#234;ncia, contexto, hist&#243;ria de vida, os problemas espec&#237;ficos que cada pessoa enfrentou, as decis&#245;es que tomou sob press&#227;o, os fracassos que internalizou. Tudo isso molda n&#227;o apenas <em>o que</em> algu&#233;m sabe, mas <em>como</em> sabe. Duas pessoas podem ter o mesmo &#8220;n&#237;vel&#8221; e pensar de formas completamente diferentes, porque o caminho que percorreram at&#233; ali foi diferente.</p><p>David Epstein escreveu um livro inteiro sobre isso. Em &#8220;Range: Why Generalists Triumph in a Specialized World&#8221;, ele mostra como pessoas com experi&#234;ncias diversas resolvem problemas que especialistas profundos n&#227;o conseguem, justamente porque trazem analogias de territ&#243;rios que o especialista nunca explorou. O generalista carrega pe&#231;as de quebra-cabe&#231;as diferentes. E &#224;s vezes &#233; exatamente a pe&#231;a que faltava no seu.</p><p>Comparar conhecimento como se fosse um n&#250;mero em uma escala linear &#233; ignorar toda a complexidade que torna cada trajet&#243;ria &#250;nica. &#201; como comparar dois quebra-cabe&#231;as baseado apenas no n&#250;mero total de pe&#231;as encaixadas, ignorando que um montou paisagens e o outro montou retratos. S&#227;o imagens diferentes. A compara&#231;&#227;o &#233; estruturalmente injusta.</p><div><hr></div><p>Tudo isso leva a um lugar.</p><p>Se o mapa nunca est&#225; completo, e se a compara&#231;&#227;o entre mapas &#233; distorcida, a &#250;nica postura intelectualmente honesta &#233; uma que poucas pessoas praticam de verdade: humildade intelectual.</p><p>N&#227;o a humildade perform&#225;tica de quem diz &#8220;ah, eu n&#227;o sei nada&#8221;. A humildade real de quem internaliza que qualquer informa&#231;&#227;o nova pode redesenhar o quebra-cabe&#231;a inteiro. Que aquilo que voc&#234; tem certeza hoje pode se mostrar incompleto amanh&#227;, n&#227;o porque estava errado, mas porque existiam pe&#231;as que seu jogo ainda n&#227;o inclu&#237;a.</p><p>Isso tem consequ&#234;ncias pr&#225;ticas profundas.</p><p>Significa aceitar que pessoas com contextos radicalmente diferentes dos seus, independente do n&#237;vel de senioridade, da idade, da forma&#231;&#227;o, carregam pe&#231;as que o seu quebra-cabe&#231;a n&#227;o tem. Aquele estagi&#225;rio que entrou semana passada pode n&#227;o saber o que voc&#234; sabe. Mas ele viveu coisas que voc&#234; n&#227;o viveu, e isso lhe deu perspectivas que voc&#234; n&#227;o tem. Se voc&#234; fecha o canal por uma hierarquia de conhecimento, perde acesso a pe&#231;as que nunca vai encontrar sozinho.</p><p>Significa entender que buscar a verdade &#233; mais importante que estar certo. S&#227;o coisas diferentes. Estar certo &#233; est&#225;tico, &#233; defender uma posi&#231;&#227;o. Buscar a verdade &#233; din&#226;mico, &#233; estar disposto a abandonar uma posi&#231;&#227;o quando a evid&#234;ncia aponta pra outro lugar. Richard Feynman construiu uma carreira inteira sobre esse princ&#237;pio. Pra ele, a pergunta sempre foi mais valiosa que a resposta. Porque a resposta encaixa uma pe&#231;a. A pergunta revela que existem mais pe&#231;as do que voc&#234; imaginava.</p><p>Significa, no fim, aceitar que o quebra-cabe&#231;a nunca vai estar completo. E que isso n&#227;o &#233; um problema a ser resolvido. &#201; a condi&#231;&#227;o fundamental de qualquer pessoa que est&#225; genuinamente crescendo. O momento em que seu quebra-cabe&#231;a parece pronto &#233; o momento em que voc&#234; parou de procurar envelopes.</p><div><hr></div><p>A maioria das pessoas nunca questiona o pr&#243;prio mapa. Algumas descobrem que ele &#233; maior do que imaginavam e entram em p&#226;nico. Poucas entendem que o mapa vai se expandir pra sempre, e fazem as pazes com isso.</p><p>A pergunta que resta &#233; simples: o que voc&#234; faz quando descobre que existem mais pe&#231;as do que a caixa prometia?</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://bertolini.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Inscreva-se&quot;,&quot;language&quot;:&quot;pt-br&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Obrigado por ler! Assine gratuitamente para receber novos posts e apoiar meu trabalho.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Digite seu e-mail&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Inscreva-se"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[O que passa pela minha cabeça]]></title><description><![CDATA[E por que resolvi compartilhar]]></description><link>https://bertolini.substack.com/p/o-que-passa-pela-minha-cabeca</link><guid isPermaLink="false">https://bertolini.substack.com/p/o-que-passa-pela-minha-cabeca</guid><dc:creator><![CDATA[Bruno Bertolini]]></dc:creator><pubDate>Tue, 24 Feb 2026 18:52:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1wV0!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faede0b97-7acd-424f-bc89-8c2a842b6984_460x460.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>H&#225; 3 semanas eu constru&#237; um SaaS inteiro em 3 dias. Sozinho. Com IA. </p><p>Mas esse espa&#231;o n&#227;o &#233; (s&#243;) sobre isso. &#201; sobre o que acontece na cabe&#231;a de algu&#233;m que est&#225; sempre em busca de melhoria cont&#237;nua e genu&#237;na, de ser algu&#233;m melhor pro mundo.</p><p>As decis&#245;es, as d&#250;vidas, os erros. O que leio, o que penso, o que questiono. O que a f&#233; me ensina sobre construir. O que ser pai mudou na forma como eu priorizo.</p><p>Eu n&#227;o acredito na vida perfeita que vendem nas redes sociais. A vida &#233; dif&#237;cil e todo mundo tem problemas, inclusive eu. A diferen&#231;a &#233; que eu gosto de resolver. Seja um bug em produ&#231;&#227;o, uma decis&#227;o de neg&#243;cio, uma conversa dif&#237;cil em casa ou um m&#234;s apertado. Aqui eu vou compartilhar esses problemas e como eu lido com eles.</p><p>Eu precisava de um lugar pra juntar tudo isso. Essa newsletter &#233; esse lugar.</p><p>Meu nome &#233; Bruno Bertolini. Marido, pai, crist&#227;o, engenheiro de software com 20 anos de experi&#234;ncia, ex-CTO, e fundador de uma escola que impactou mais de 70 mil devs. Hoje construo sozinho o que antes precisava de equipe.</p><p>Aqui n&#227;o tem nicho. N&#227;o tem cronograma. Tem s&#243; algu&#233;m que constr&#243;i, aprende, l&#234;, questiona tudo e n&#227;o para quieto. Sempre em busca de melhoria cont&#237;nua, minha e de quem me acompanha.</p><p>Se isso te interessa, fica por aqui.</p><p>Bruno Bertolini</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://bertolini.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Obrigado por ler! Se inscreva gr&#225;tis pra receber os pr&#243;ximos posts.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item></channel></rss>