<?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[BuildingBetter]]></title><description><![CDATA[

I think in systems. I write about AI the way someone who actually builds with it every day writes about it, which means less hype and more "here's what I found when I tried the thing." I'm interested in consciousness, structure, how tools shape the peop]]></description><link>https://buildingbetter.tech</link><image><url>https://substackcdn.com/image/fetch/$s_!xzWS!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F666c5f33-99ed-46f5-87a0-6634154f8e32_1024x1024.png</url><title>BuildingBetter</title><link>https://buildingbetter.tech</link></image><generator>Substack</generator><lastBuildDate>Tue, 28 Apr 2026 11:51:36 GMT</lastBuildDate><atom:link href="https://buildingbetter.tech/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[André Figueira]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[thegurucoder@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[thegurucoder@substack.com]]></itunes:email><itunes:name><![CDATA[André Figueira]]></itunes:name></itunes:owner><itunes:author><![CDATA[André Figueira]]></itunes:author><googleplay:owner><![CDATA[thegurucoder@substack.com]]></googleplay:owner><googleplay:email><![CDATA[thegurucoder@substack.com]]></googleplay:email><googleplay:author><![CDATA[André Figueira]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[What Civilization VII Shows You About Power]]></title><description><![CDATA[The game strips away the moral theatre and puts the mechanics of how states actually behave right in front of you. Once you see it, you can&#8217;t unsee it in the real world either.]]></description><link>https://buildingbetter.tech/p/what-civilization-vii-shows-you-about</link><guid isPermaLink="false">https://buildingbetter.tech/p/what-civilization-vii-shows-you-about</guid><dc:creator><![CDATA[André Figueira]]></dc:creator><pubDate>Fri, 24 Apr 2026 13:39:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!TQtE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d537dd-0408-416b-b0a7-d4466a0e560b_3840x2160.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="https://substackcdn.com/image/fetch/$s_!TQtE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d537dd-0408-416b-b0a7-d4466a0e560b_3840x2160.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TQtE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d537dd-0408-416b-b0a7-d4466a0e560b_3840x2160.png 424w, https://substackcdn.com/image/fetch/$s_!TQtE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d537dd-0408-416b-b0a7-d4466a0e560b_3840x2160.png 848w, https://substackcdn.com/image/fetch/$s_!TQtE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d537dd-0408-416b-b0a7-d4466a0e560b_3840x2160.png 1272w, https://substackcdn.com/image/fetch/$s_!TQtE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d537dd-0408-416b-b0a7-d4466a0e560b_3840x2160.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TQtE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d537dd-0408-416b-b0a7-d4466a0e560b_3840x2160.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f6d537dd-0408-416b-b0a7-d4466a0e560b_3840x2160.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Spain Civilization | Civilization VII&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Spain Civilization | Civilization VII" title="Spain Civilization | Civilization VII" srcset="https://substackcdn.com/image/fetch/$s_!TQtE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d537dd-0408-416b-b0a7-d4466a0e560b_3840x2160.png 424w, https://substackcdn.com/image/fetch/$s_!TQtE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d537dd-0408-416b-b0a7-d4466a0e560b_3840x2160.png 848w, https://substackcdn.com/image/fetch/$s_!TQtE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d537dd-0408-416b-b0a7-d4466a0e560b_3840x2160.png 1272w, https://substackcdn.com/image/fetch/$s_!TQtE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6d537dd-0408-416b-b0a7-d4466a0e560b_3840x2160.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 role="img" 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><title></title><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>I&#8217;m about to betray every leader I&#8217;ve spent fifteen hours being friendly with in my current Civilization VII campaign, and the only thing I&#8217;m feeling about it is mild strategic satisfaction. Which is, when you stop and look at it, the single most useful thing this game teaches you.</p><p>It&#8217;s a game. But the lesson it delivers about how power actually works is something most people never get from reading the news. The news gives you the speeches, the justifications, the moral framing. The game gives you the spreadsheet underneath... and you realize the spreadsheet was always doing the driving.</p><p>Right now I&#8217;m eyeing up pieces of land that don&#8217;t belong to me, keeping every leader on the board reconciled and chatty, building my military in the background, and waiting for the right moment to strike. I&#8217;ll take what I want when I&#8217;m ready. They won&#8217;t see it coming because they can&#8217;t, I&#8217;ve been too agreeable for them to read the shift.</p><h2>The code you&#8217;re running was written by someone else</h2><p>I started as Caesar of Rome. Over the course of the campaign I evolved into the American Empire, democratic by design, multicultural by definition. We rose out of Europe, took the whole continent, and then looked outward.</p><p>That arc matters and it goes deeper than &#8220;founding fathers quoting Cicero.&#8221; The specific inheritance worth paying attention to is the civic virtue problem. Rome&#8217;s Republic collapsed because the thing actually holding it together was a shared belief that public service mattered more than private gain, and the institutions only worked as long as that belief held. When luxury, spectacle, and personal ambition replaced civic duty, no amount of institutional scaffolding could save the Republic. It became an empire because the citizens had already stopped behaving like citizens.</p><p>America&#8217;s founders read this history and tried to build institutions that could survive human nature being exactly what it is. They partly succeeded. But the Republic-to-Empire drift is the same pressure now, just on a longer clock. Rome ran out of money to fund the wars its Senate kept authorizing, so it debased the denarius, clipping the silver content down decade after decade until the currency was nearly worthless. The US is running the slower version of that through deficits and monetary expansion, eroding the dollar&#8217;s purchasing power rather than admitting to voters that the math doesn&#8217;t work. Different mechanism, same civilizational admission... that a state which can&#8217;t pay for what it wants starts quietly charging the cost to the people who trusted the currency.</p><p>Civ makes you feel this continuity because you&#8217;re playing it forward yourself. You start lean and civic-minded because you have to, then you get rich, then you get decadent, then the rules start bending to whoever has the most stuff. Every major civilization is running code written by the ones that came before. The language changes. The logic doesn&#8217;t.</p><h2>Diplomacy runs on reciprocity, until it doesn&#8217;t</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Xyab!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ab70e69-a079-41a8-a418-167deabe1d86_1200x675.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Xyab!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ab70e69-a079-41a8-a418-167deabe1d86_1200x675.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Xyab!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ab70e69-a079-41a8-a418-167deabe1d86_1200x675.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Xyab!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ab70e69-a079-41a8-a418-167deabe1d86_1200x675.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Xyab!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ab70e69-a079-41a8-a418-167deabe1d86_1200x675.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Xyab!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ab70e69-a079-41a8-a418-167deabe1d86_1200x675.jpeg" width="1200" height="675" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0ab70e69-a079-41a8-a418-167deabe1d86_1200x675.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:675,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;How Civ 7 diplomacy works using Influence | GamesRadar+&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="How Civ 7 diplomacy works using Influence | GamesRadar+" title="How Civ 7 diplomacy works using Influence | GamesRadar+" srcset="https://substackcdn.com/image/fetch/$s_!Xyab!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ab70e69-a079-41a8-a418-167deabe1d86_1200x675.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Xyab!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ab70e69-a079-41a8-a418-167deabe1d86_1200x675.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Xyab!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ab70e69-a079-41a8-a418-167deabe1d86_1200x675.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Xyab!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0ab70e69-a079-41a8-a418-167deabe1d86_1200x675.jpeg 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 role="img" 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><title></title><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>Across every campaign I&#8217;ve played, the pattern holds. The leaders who were agreeable, I never attacked, and they never attacked me. The ones who were less agreeable would eventually come at me, and I&#8217;d respond with the sword.</p><p>That&#8217;s close to how international relations actually work. Robert Axelrod ran tournament simulations decades ago and found that tit-for-tat, cooperate by default, retaliate when attacked, forgive when the other side comes back, beats almost everything else in iterated games. The agreeable leaders in Civ are basically running that strategy without knowing it.</p><p>The real world does run on this logic, but it&#8217;s messier than the model suggests. The US and Canada get along because there&#8217;s a stable equilibrium that benefits both sides and neither has an incentive to break it. Shared values are a story layered on top of the incentives to make the equilibrium feel like a friendship. But it would be sloppy to say reciprocity explains everything, because international relations aren&#8217;t clean iterated games with symmetric payoffs. Geographic reality matters. Military asymmetry matters. Economic integration creates dependencies that change the calculus in ways a simple tit-for-tat model can&#8217;t capture. Canada and the US aren&#8217;t cooperating because they ran the math on defection costs, they&#8217;re cooperating because the geography, the trade flows, and the power differential make defection basically unthinkable for one side and pointless for the other.</p><p>Civ actually shows you this too, if you&#8217;re paying attention. The AI leaders who cooperate with you aren&#8217;t doing it because your diplomacy score is high. They&#8217;re doing it because you&#8217;re strong enough that attacking you would be stupid. The cooperation is downstream of the power, not upstream of it.</p><h2>The command chair changes whoever sits in it</h2><p>This is the part of the game that sits with me the most, and it&#8217;s the part I think about when I read about real wars.</p><p>When you&#8217;re playing, you&#8217;re not thinking about individual units, you&#8217;re thinking about the civilization. You weigh the risks, you calculate the return, you send the order. There&#8217;s no emotional attachment to the soldiers because they&#8217;re abstracted into production numbers and movement points. You click the attack button and the numbers go down. You don&#8217;t hear anything.</p><p>The uncomfortable thing Civ makes you understand is that this abstraction is how governance works at scale. You cannot run a civilization while feeling every soldier&#8217;s death. The math of running anything larger than a tribe requires treating people as variables. A general who feels every loss can&#8217;t deploy anyone. A president who internalizes every casualty can&#8217;t make decisions. The detachment is the role producing the person, the chair reshapes whoever sits in it, and the math doesn&#8217;t get done unless that reshaping happens.</p><p>Which leads to a paradox that mostly doesn&#8217;t get named. The people most capable of carrying moral weight are usually the people least capable of making the decisions that need moral weight carried. The command chair selects for people who can do the math without feeling it. If it didn&#8217;t, the civilization would be paralyzed.</p><p>Civ puts you in that chair for fifteen hours at a time and you don&#8217;t even notice the switch happening. You just click the button.</p><p>Now, the game is also flattering you here, and it&#8217;s worth being honest about that. Civ gives you perfect information, rational actors, clean feedback loops. Real statecraft is messier. You&#8217;re making decisions with bad intelligence, political pressures the game doesn&#8217;t model, institutional inertia, domestic constituencies pulling in six directions at once. The game teaches you the logic of the command chair, but it underestimates the fog. Still, the core insight holds... the seat changes the person, and pretending otherwise is how you get blindsided by what leaders actually do once they&#8217;re in it.</p><h2>Nukes are the only currency that doesn&#8217;t inflate</h2><p>Once I had nukes, the whole game changed. I&#8217;d drop one, and whichever civ was on the receiving end would summit. The rest of the board hated me for it, but hate is a soft currency and nukes are hard currency.</p><p>Thomas Schelling wrote about this in Arms and Influence, and the distinction he drew matters. Deterrence is defensive, you convince someone not to attack you because the retaliation would be unacceptable. Compellence is offensive, you use the threat to force someone to change their behavior, do something they wouldn&#8217;t otherwise do. Both rely on the bomb existing, but they work differently and they fail differently. Deterrence is relatively stable because both sides benefit from not acting. Compellence is inherently unstable because you&#8217;re actively demanding change, and the other side has to decide whether you&#8217;re bluffing.</p><p>North Korea figured out the deterrence half. They got nukes and the whole calculus shifted, nobody&#8217;s invading them, and they know it. That&#8217;s why they&#8217;ll never give them up. But their ability to compel is limited, they can stop an invasion but they can&#8217;t force South Korea to do much of anything, because the credibility of actually using the weapon offensively is low. The bomb protects them, it doesn&#8217;t project them.</p><p>The moral indignation everyone else feels about nuclear weapons is real, but it doesn&#8217;t translate into action because action has a cost, and the cost of confronting a nuclear power is unacceptable. Civ models this pretty cleanly. You lose diplomatic favor with everyone, and it doesn&#8217;t actually matter. The game is just being straightforward about something most commentary won&#8217;t say out loud.</p><h2>Peace is just the part where you&#8217;re getting ready</h2><p>In my current campaign I&#8217;ve colonized all of South America and the Pacific, and I want global domination. Other nuclear powers are developing their arsenals and I suspect I might get nuked eventually, so I&#8217;m building up militarily, eyeing the land I want, and planning the war during what looks like peacetime.</p><p>All the other leaders think we&#8217;re cool. I&#8217;m keeping them reconciled, running the diplomacy game, being agreeable. When I&#8217;m ready I&#8217;ll strike.</p><p>This is what major powers do, and Russia&#8217;s Minsk agreements are one of the clearest recent examples. Signed in 2014 and 2015, they froze the conflict in Donbas on terms that gave Moscow time. How much of what followed was planned from the start is genuinely debated, there&#8217;s a reasonable case that the 2022 invasion was a decision that crystallized much later rather than a plan set in motion in 2014. But regardless of when the decision was made, the ceasefire created the conditions that made the decision possible. Seven years of military rebuilding, economic repositioning, force staging. Whether that was always the intent or just what the opportunity shaped into, the practical outcome was the same... the peace was the preparation.</p><p>The agreeable face is the strategy itself. Looking peaceful is a load-bearing part of preparing for war. Every major power understands this. The ones who don&#8217;t understand it get eaten by the ones who do.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PZ8U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8192326d-6e7c-42a9-8dc6-38650f2d8ad2_1098x830.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PZ8U!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8192326d-6e7c-42a9-8dc6-38650f2d8ad2_1098x830.webp 424w, https://substackcdn.com/image/fetch/$s_!PZ8U!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8192326d-6e7c-42a9-8dc6-38650f2d8ad2_1098x830.webp 848w, https://substackcdn.com/image/fetch/$s_!PZ8U!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8192326d-6e7c-42a9-8dc6-38650f2d8ad2_1098x830.webp 1272w, https://substackcdn.com/image/fetch/$s_!PZ8U!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8192326d-6e7c-42a9-8dc6-38650f2d8ad2_1098x830.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PZ8U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8192326d-6e7c-42a9-8dc6-38650f2d8ad2_1098x830.webp" width="1098" height="830" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8192326d-6e7c-42a9-8dc6-38650f2d8ad2_1098x830.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:830,&quot;width&quot;:1098,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Nuclear weapons (Civ7) | Civilization Wiki | Fandom&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Nuclear weapons (Civ7) | Civilization Wiki | Fandom" title="Nuclear weapons (Civ7) | Civilization Wiki | Fandom" srcset="https://substackcdn.com/image/fetch/$s_!PZ8U!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8192326d-6e7c-42a9-8dc6-38650f2d8ad2_1098x830.webp 424w, https://substackcdn.com/image/fetch/$s_!PZ8U!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8192326d-6e7c-42a9-8dc6-38650f2d8ad2_1098x830.webp 848w, https://substackcdn.com/image/fetch/$s_!PZ8U!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8192326d-6e7c-42a9-8dc6-38650f2d8ad2_1098x830.webp 1272w, https://substackcdn.com/image/fetch/$s_!PZ8U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8192326d-6e7c-42a9-8dc6-38650f2d8ad2_1098x830.webp 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 role="img" 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><title></title><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><h2>Your phone is a piece on the board</h2><p>The chip in your phone was probably made by TSMC, in Taiwan. TSMC exists in a political-military equilibrium between the United States and China that could break in any direction. The US has built its entire semiconductor strategy around keeping Taiwan functional and aligned. China has built its military modernization around eventually having the option to change that. Taiwan itself has built its survival strategy around being economically indispensable to both sides, the &#8220;silicon shield,&#8221; where invading or strangling Taiwan costs more than tolerating it.</p><p>That equilibrium is what makes your phone possible at the price you paid for it, concretely. The fabs that made your chip, the ships that moved it, the design IP that enabled it, all of that rides on a set of tit-for-tat incentives between three major players. When any of those incentives shift, your phone gets more expensive, or harder to buy, or quietly downgraded to a chip made somewhere less precarious.</p><p>The same structure sits under your mortgage rate, your energy bill, your pension&#8217;s equity exposure, the price of your groceries, whether your kids can get a job in the industry you trained them for. You&#8217;re not outside the game. You&#8217;re embedded in its outcomes whether you follow it or not.</p><p>Once you see the mechanics, you read the next move before everyone else does. You recognize the capability buildup that precedes aggression. You understand that alliances are equilibria that break when the incentives move. The word &#8220;betrayal&#8221; is just a story applied afterward by whichever side lost the equilibrium. You stop being surprised by the news because you already saw the shape of it in the last five moves.</p><p>The players moving the pieces are thinking about their civilization, their position, their calculus. You don&#8217;t enter the equation. Your job is to understand the game well enough to position yourself around their moves. You don&#8217;t get to be a player, but you can stop being a pawn.</p><h2>What you lose when you see clearly</h2><p>Once you start seeing geopolitics this way, you lose something. You lose the ability to feel clean outrage. You stop being able to watch a conflict and think &#8220;the good guys need to win&#8221; because you can see that both sides are doing what their position requires. You read about a war crime and your first thought is &#8220;what did that accomplish strategically&#8221; before it&#8217;s &#8220;that&#8217;s horrific.&#8221; The moral theatre stops working on you.</p><p>I notice this happening to me. I&#8217;ll read a headline out of Gaza or Ukraine and the first move my brain makes is mapping the positioning, not registering the suffering. I&#8217;m not proud of that reflex. Pretending I don&#8217;t have it would be worse tho, because then I&#8217;d be lying to myself about how my own head has been reshaped by the way I&#8217;ve learned to think.</p><p>That&#8217;s partly a gain. You make better decisions, you&#8217;re harder to manipulate, you don&#8217;t get swept up in narratives designed to extract your attention and your political behavior. You see the board.</p><p>It&#8217;s also a loss. Moral feeling is the mechanism by which pressure gets applied to the system from below. If everyone who understands power loses the capacity for outrage, the system has no counter-weight. The clearest analysts are, almost by selection, the least able to push things in a better direction. The same paradox as the command chair, just flipped... clarity and moral feeling pull against each other, and the system actually needs both, but rarely in the same person.</p><p>Civ doesn&#8217;t resolve this. It just puts you in the seat where you can feel the tradeoff. You spend fifteen hours optimizing an empire and you come away understanding why empires do what they do, and also slightly less able to be scandalized by them. I don&#8217;t think that&#8217;s fully good. I think it&#8217;s closer to necessary. You can&#8217;t act inside a system you refuse to understand, and the cost of understanding this one is real. So is the alternative, which is being acted upon by forces you&#8217;ve chosen not to see.</p><p>The game doesn&#8217;t teach you geopolitics. It just stops hiding it from you. Most analysis frames every conflict as a moral drama because moral drama sells attention. The game doesn&#8217;t need to sell you anything, it just shows you the board and lets you find out what you do when you&#8217;re the one with the pieces.</p><p>Play a few campaigns with that lens on. The next news cycle will look different, and so will the one after that, and eventually you&#8217;ll catch yourself reading a headline and thinking about resources and positioning before you think about heroes and villains.</p><p>That&#8217;s the moment the game finished teaching you.</p>]]></content:encoded></item><item><title><![CDATA[Agent memory is push, not pull]]></title><description><![CDATA[Why every memory layer for AI coding agents is silently broken, and what it took to fix it.]]></description><link>https://buildingbetter.tech/p/agent-memory-is-push-not-pull</link><guid isPermaLink="false">https://buildingbetter.tech/p/agent-memory-is-push-not-pull</guid><dc:creator><![CDATA[André Figueira]]></dc:creator><pubDate>Wed, 22 Apr 2026 07:29:29 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!87gC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1de9c31b-f3bc-489b-af53-9641209fa115_1200x630.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="https://substackcdn.com/image/fetch/$s_!87gC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1de9c31b-f3bc-489b-af53-9641209fa115_1200x630.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!87gC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1de9c31b-f3bc-489b-af53-9641209fa115_1200x630.png 424w, https://substackcdn.com/image/fetch/$s_!87gC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1de9c31b-f3bc-489b-af53-9641209fa115_1200x630.png 848w, https://substackcdn.com/image/fetch/$s_!87gC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1de9c31b-f3bc-489b-af53-9641209fa115_1200x630.png 1272w, https://substackcdn.com/image/fetch/$s_!87gC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1de9c31b-f3bc-489b-af53-9641209fa115_1200x630.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!87gC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1de9c31b-f3bc-489b-af53-9641209fa115_1200x630.png" width="1200" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1de9c31b-f3bc-489b-af53-9641209fa115_1200x630.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:61995,&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://buildingbetter.tech/i/195005376?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1de9c31b-f3bc-489b-af53-9641209fa115_1200x630.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!87gC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1de9c31b-f3bc-489b-af53-9641209fa115_1200x630.png 424w, https://substackcdn.com/image/fetch/$s_!87gC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1de9c31b-f3bc-489b-af53-9641209fa115_1200x630.png 848w, https://substackcdn.com/image/fetch/$s_!87gC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1de9c31b-f3bc-489b-af53-9641209fa115_1200x630.png 1272w, https://substackcdn.com/image/fetch/$s_!87gC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1de9c31b-f3bc-489b-af53-9641209fa115_1200x630.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 role="img" 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><title></title><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>There&#8217;s a specific failure mode I keep watching, and I bet you&#8217;ve watched it too.</p><p>You&#8217;re working with Claude Code, or Cursor, or Windsurf, on a real codebase, and the agent makes the same mistake it made last week. Not a similar mistake. The same one. The same wrong import, the same misread of your error-wrapping convention, the same naive retry on a non-transient 401. You correct it again. You explain again. You move on, because the work has to ship, and you tell yourself the next session will be different.</p><p>It won&#8217;t be. Because your agent has no memory, and the memory tool you bolted on isn&#8217;t doing what you think it&#8217;s doing.</p><p>That&#8217;s the problem I built <a href="https://github.com/polyxmedia/mnemos">Mnemos</a> to solve. Not &#8220;an agent memory layer,&#8221; because the field already has those, and most of them are silently broken in a way that took me longer to diagnose than I&#8217;d like to admit.</p><h2>The pull assumption that nobody questions</h2><p>Every memory tool I&#8217;ve evaluated, including the ones with tens of thousands of GitHub stars, ships with the same architectural assumption: the LLM will call your memory tool when it needs a memory.</p><p>It won&#8217;t.</p><p>It really, really won&#8217;t. Not reliably, not at the right moment, not with the right query. Frontier models are getting better at tool use, but &#8220;remember to consult your long-term memory before answering&#8221; is exactly the kind of housekeeping prompt that loses the fight against any concrete user instruction sitting next to it in context. The agent is focused on the task. Your memory tool is a peripheral. Peripherals get skipped.</p><p>This is a pull-based design. The memory layer sits there politely, exposes a search endpoint, and waits for the agent to ask. Mem0 does this. Zep does this. The thirty other startup memory layers all do this. Then they ship benchmarks where retrieval works great because the harness explicitly calls retrieval, and call it a day.</p><p>But the production failure mode isn&#8217;t &#8220;retrieval returns the wrong document.&#8221; The production failure mode is &#8220;retrieval was never invoked.&#8221; You can&#8217;t measure that on LongMemEval. You can only measure it by sitting at your terminal and watching your coding agent re-litigate decisions you&#8217;ve already made.</p><h2>The inversion</h2><p>Mnemos starts from the opposite assumption: the agent will not call your memory tool, so you have to push memory at the one moment the agent is guaranteed to look.</p><p>That moment is session start.</p><p>When an agent calls <code>mnemos_session_start(project="my-repo", goal="fix the login bug")</code>, it does not get back a session ID. It gets back a pre-warmed context block, around 500 tokens, composed from five sources:</p><ol><li><p>Conventions you&#8217;ve declared for this project (&#8221;we use <code>fmt.Errorf</code> with <code>%w</code>, here&#8217;s why&#8221;)</p></li><li><p>Summaries of your three most recent sessions on this project</p></li><li><p>The top three skills (procedural memory) matching the goal</p></li><li><p>Corrections from the journal whose trigger context matches the goal</p></li><li><p>The hot-file list, sorted by how often the agent has touched files on this project</p></li></ol><p>That block is composed before the agent does anything. The agent doesn&#8217;t have to be smart enough to ask. The agent doesn&#8217;t have to remember to ask. The agent reads the prewarm because it&#8217;s already in context, and from that moment the project&#8217;s institutional memory is loaded.</p><p>This is not a small change. This is the entire ballgame.</p><h2>Memory of mistakes is more valuable than memory of successes</h2><p>The second insight is one I had to live through to believe.</p><p>Most memory layers store the conversation, then trust retrieval to surface the right slice when needed. Some get fancy and extract &#8220;facts&#8221; or &#8220;preferences&#8221; and store those instead. None of them, to my knowledge, treat failure as a first-class object.</p><p>In Mnemos, when the agent screws up and you correct it, the agent is supposed to call <code>mnemos_correct</code> with four required fields:</p><ul><li><p><code>tried</code>: what was attempted</p></li><li><p><code>wrong_because</code>: why that was wrong</p></li><li><p><code>fix</code>: what worked</p></li><li><p><code>trigger_context</code>: the situation that made it relevant</p></li></ul><p>That&#8217;s it. Four fields, mandatory schema, stored as a typed <code>correction</code> observation with a retrieval-weight bonus. Next session on the same project, when the agent calls <code>mnemos_session_start</code> with a goal that matches, the correction surfaces in the prewarm, <em>before</em> the agent has a chance to make the same mistake again.</p><p>The failure modes of an LLM are far more compressible than its successes. Successes are diverse and contextual. Mistakes cluster. Most agent screw-ups on a given codebase fall into a handful of recurring categories: misreading a convention, missing a constraint, misunderstanding the data model, applying a pattern from another stack. If you record those failures with structure instead of dumping the whole transcript, you don&#8217;t need a vector database to retrieve them well. You need exactly enough metadata to match a goal to a previous mistake.</p><p>This compounds across weeks in a way that ordinary memory does not. Each correction takes maybe ten seconds for the agent to record, and saves an unknown but substantial amount of future debugging.</p><h2>Compaction recovery, or: the moment everyone else fails</h2><p>Here&#8217;s a primitive I haven&#8217;t seen in any other memory tool, and I&#8217;d love to be told I&#8217;m wrong about that.</p><p>Modern coding agents compact their context. Claude Code does it, Cursor does it, every long-running agent loop does it eventually, because context windows are finite and conversations are not. Compaction is essentially a summarization pass: the agent replaces a large block of prior conversation with a compressed version, frees up tokens, keeps going.</p><p>The problem is that compaction is lossy. The agent post-compaction often does not know what it was working on five minutes ago, what it had decided, what it had ruled out, or what the user wanted. You&#8217;ve watched this happen. The agent suddenly asks you a question whose answer is the entire prior twenty minutes of work.</p><p>Mnemos has a dedicated API for this exact moment: call <code>mnemos_context</code> with <code>mode: "recovery"</code>, pass the session ID and goal, and you get back the current session&#8217;s goal, the in-session observations, the conventions, and a reconstructed picture of what the agent was doing. It&#8217;s the &#8220;oh god, context just got compacted&#8221; button. Drop it into your agent&#8217;s recovery hook (Claude Code has a hook for this) and compaction stops being a story-killing event.</p><p>I have not found this in Mem0, in Zep, in MemPalace, or in any of the other memory layers I&#8217;ve reviewed. If it&#8217;s in there and I missed it, please file an issue.</p><h2>Memory stores are an injection vector and we should treat them like one</h2><p>When you give an LLM persistent memory, you&#8217;ve given an attacker (or just a careless teammate) a way to write content that will be silently injected into future LLM contexts on a different machine, possibly belonging to a different user, with no review step in between.</p><p>This is a new attack surface and the field is largely ignoring it.</p><p>Mnemos runs every prewarm and recovery block through a <code>safety.Scanner</code> at the injection boundary. The scanner looks for instruction-override phrases, role-spoofing patterns, fake tool syntax, zero-width unicode, and bidi overrides. High-risk content gets wrapped in a visible <code>[MNEMOS: FLAGGED risk=high rules=...]</code> banner so the agent can see it and the user can see it. Low-risk content gets sanitized silently (zero-width and control chars stripped).</p><p>This is not a complete solution to memory-borne prompt injection. It is the difference between treating memory as trusted input and treating it like any other piece of untrusted data crossing a trust boundary. If you&#8217;re building on agent memory and you don&#8217;t have something equivalent in your stack, you have a problem you haven&#8217;t seen yet.</p><h2>Bi-temporal truth, or: how to stop poisoning your own context</h2><p>Most memory tools delete or overwrite. Mnemos does neither.</p><p>Every observation has two timelines: fact time (<code>valid_from</code>, <code>valid_until</code>, when the fact was true in the world) and system time (<code>created_at</code>, <code>invalidated_at</code>, when the system knew about it). When a fact changes, the old observation is marked invalid, not removed. Default searches don&#8217;t surface invalid observations, but historical queries (<code>as_of: "2026-02-01"</code>) do, and the new fact is linked to the old one with a <code>supersedes</code> edge.</p><p>This sounds like academic database hygiene until you&#8217;ve watched an LLM confidently regurgitate a deprecated convention because it was in the memory store and no one ever pruned it. The default-live, optional-historical model is the right one. It&#8217;s also exactly how Datomic, XTDB, and serious financial systems handle the same problem. Borrowing the design was free; the alternative is context poisoning.</p><h2>How it stacks up against what&#8217;s out there</h2><p>Public docs as of April 2026. If anything below is wrong, the GitHub issues are open.</p><p>Mnemos Mem0 Zep MemPalace Language and runtime Go, single binary Python service Go server plus Postgres or Neo4j Python plus Chroma MCP-native Yes Via bridge Via bridge Yes Push-based session prewarm Yes No No No Compaction recovery Yes No No No Structured correction journal Yes (typed schema) No No No Promptware scanner at injection boundary Yes No No No Bi-temporal model Yes Temporal extraction Yes (Graphiti) Validity windows Hybrid retrieval BM25 plus vectors (RRF) Vectors plus LLM rerank Hybrid graph plus vectors Vectors Local-first (zero external deps) Yes No (SaaS primary) Yes (self-host) Yes Auto-enables Ollama if present Yes No No No</p><p>What others do better: Mem0 has the largest community by far, and a mature integrations library. Zep&#8217;s Graphiti has a far more sophisticated knowledge graph with entity extraction. MemPalace mines verbatim conversations, which Mnemos deliberately does not. None of these are &#8220;wrong&#8221; choices, they&#8217;re just different design points.</p><p>Mnemos&#8217;s bet is that for AI coding agents specifically, the right design is curated, push-based, structurally typed, local-first, and zero-infrastructure. If that bet is right, the field has been overcomplicating this for two years.</p><h2>The rumination loop, or: Popper inside the memory layer</h2><p>This one I&#8217;ll put a spotlight on because it&#8217;s where Mnemos goes from &#8220;memory layer&#8221; to &#8220;epistemic infrastructure.&#8221;</p><p>Skills (procedural memory) are versioned. Each skill has a success and use count, which gives an effectiveness ratio. When the dream consolidation pass runs, it scans for skills whose effectiveness is dropping, or whose recent failures contradict the rule the skill encodes, and it adds those to a rumination queue.</p><p>When the agent picks up a candidate from the queue, it doesn&#8217;t just rewrite the skill. It has to:</p><ol><li><p>State the hypothesis verbatim</p></li><li><p>Read the disconfirming evidence the system has collected</p></li><li><p>Steel-man the original rule before changing it</p></li><li><p>Identify the fatal flaw, distinguish a real falsification from noise, name any context shift</p></li><li><p>Propose a revision</p></li></ol><p>And here&#8217;s the part that matters: when the agent calls <code>mnemos_ruminate_resolve</code>, it must pass a <code>why_better</code> field, minimum sixteen characters, that names a concrete new prediction the revised skill makes that the old one did not. The resolve endpoint rejects cosmetic rewordings.</p><p>This is Popper&#8217;s falsifiability criterion enforced at the API boundary. The agent cannot &#8220;improve&#8221; a skill by making it vaguer or by rewriting it without committing to a new testable claim. The store will not let it.</p><p>I am not aware of any other memory layer that has a mechanism resembling this. The closest analog is human research practice: when you revise a hypothesis, you owe the world a new prediction. If you don&#8217;t, you&#8217;re not learning, you&#8217;re rationalizing.</p><h2>Why Go, why one binary, why no vector DB</h2><p>Practical answers, briefly.</p><p>Go because it cross-compiles to a single 15 MB static binary for Linux, macOS, and Windows on amd64 and arm64, with zero CGO. There is no Docker on the install path. There is no Python runtime on the install path. There is no Postgres, no Neo4j, no Pinecone, no Weaviate, no Chroma, no Qdrant. The install command is one curl. The dependency footprint is the binary, a SQLite file in your home directory, and optionally Ollama if you want vector search to auto-enable.</p><p>SQLite with FTS5 because BM25 ranking on FTS5 is, on most agent memory queries, indistinguishable in quality from vector retrieval, at orders of magnitude lower latency and zero infrastructure cost. When Ollama is detected on the host, vectors auto-enable, get stored as BLOBs in the same SQLite file, and feed into a hybrid ranker (BM25 plus cosine via Reciprocal Rank Fusion). When Ollama is not present, the system falls back to pure FTS5 silently. There is no configuration step.</p><p>This is what local-first AI infrastructure should look like. The fact that almost nobody else is shipping it this way is, I think, mostly a function of teams reaching for Python because Python is what they know.</p><h2>What this unlocks, in practice</h2><p>After a week of using Mnemos with Claude Code on a real Go codebase, the agent stops re-asking about my error-wrapping convention. After two weeks, it stops repeating the OAuth retry mistake. After a month, the correction journal has compounded into a project-specific intuition that survives across sessions, across context compactions, and across model upgrades.</p><p>The agent gets more useful per token. Token budgets get tighter, not looser, because the prewarm is curated to ~500 tokens and replaces hundreds or thousands of tokens of repeated re-explanation. That is the actually-real productivity win, and it&#8217;s measurable in your monthly bill.</p><p>You get session replay (<code>mnemos replay &lt;session_id&gt;</code>), which generates a markdown recap of a past session enriched with everything you&#8217;ve learned since. Paste it back into your agent and ask &#8220;what would you do differently now?&#8221; That is a retrospective-self-improvement loop nobody else is shipping.</p><p>You get portable skill packs. Export any skill (or all of them) as a JSON pack, share via file or URL, and <code>mnemos skill import https://...</code> installs it in one command. Procedural memory becomes a social layer.</p><p>You get an Obsidian vault export, so the entire memory store renders as a markdown graph with wikilinks, browseable in any editor.</p><h2>Try it</h2><pre><code><code>curl -fsSL https://raw.githubusercontent.com/polyxmedia/mnemos/main/scripts/install.sh | bash
mnemos init
# restart your agent. that's the install.
</code></code></pre><p><code>mnemos init</code> auto-wires Claude Code, Claude Desktop, Cursor, Windsurf, and OpenAI Codex CLI. Anything else that speaks MCP over stdio works too, point it at <code>mnemos serve</code>.</p><p>The repo is <a href="https://github.com/polyxmedia/mnemos">polyxmedia/mnemos</a>. MIT licensed. Single binary. No telemetry. Issues open.</p><p>If you&#8217;ve been quietly suspicious that your agent memory layer wasn&#8217;t actually doing anything, you were probably right. Try this one for a week and see whether the agent stops repeating itself.</p><p>That&#8217;s the whole pitch.</p><div><hr></div><p><em>Mnemos is built by <a href="https://x.com/voidmode">Andr&#233; Figueira</a> at <a href="https://polyxmedia.com/">Polyxmedia</a>. If it helps you ship, a <a href="https://github.com/polyxmedia/mnemos">star</a> is the fastest way to say so.</em></p><p></p><div><hr></div><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://buildingbetter.tech/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">BuildingBetter is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</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><item><title><![CDATA[We Need to Be More Intolerant]]></title><description><![CDATA[The case for drawing hard lines around people who refuse to draw any themselves.]]></description><link>https://buildingbetter.tech/p/we-need-to-be-more-intolerant</link><guid isPermaLink="false">https://buildingbetter.tech/p/we-need-to-be-more-intolerant</guid><dc:creator><![CDATA[André Figueira]]></dc:creator><pubDate>Fri, 10 Apr 2026 23:07:48 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!xzWS!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F666c5f33-99ed-46f5-87a0-6634154f8e32_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Tolerance has a death wish, and it&#8217;s self-inflicted.</p><p>If you tolerate everything without limit, you&#8217;ll eventually be consumed by the very forces you chose not to confront. The intolerant don&#8217;t play by the same rules. They exploit openness as a vector because it&#8217;s useful to them. They use free speech to argue against free speech. They use democratic platfo&#8230;</p>
      <p>
          <a href="https://buildingbetter.tech/p/we-need-to-be-more-intolerant">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[The Fermi Fallacy]]></title><description><![CDATA[We searched a hot tub and declared the ocean empty]]></description><link>https://buildingbetter.tech/p/the-fermi-fallacy</link><guid isPermaLink="false">https://buildingbetter.tech/p/the-fermi-fallacy</guid><dc:creator><![CDATA[André Figueira]]></dc:creator><pubDate>Sat, 04 Apr 2026 06:08:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!cB-U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28bf2da2-b1a4-4664-ab44-72c2ad44737d_2000x2000.jpeg" 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="https://substackcdn.com/image/fetch/$s_!cB-U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28bf2da2-b1a4-4664-ab44-72c2ad44737d_2000x2000.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cB-U!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28bf2da2-b1a4-4664-ab44-72c2ad44737d_2000x2000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!cB-U!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28bf2da2-b1a4-4664-ab44-72c2ad44737d_2000x2000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!cB-U!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28bf2da2-b1a4-4664-ab44-72c2ad44737d_2000x2000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!cB-U!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28bf2da2-b1a4-4664-ab44-72c2ad44737d_2000x2000.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cB-U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28bf2da2-b1a4-4664-ab44-72c2ad44737d_2000x2000.jpeg" width="1456" height="1456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/28bf2da2-b1a4-4664-ab44-72c2ad44737d_2000x2000.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Hubble Ultra Deep Field&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Hubble Ultra Deep Field" title="Hubble Ultra Deep Field" srcset="https://substackcdn.com/image/fetch/$s_!cB-U!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28bf2da2-b1a4-4664-ab44-72c2ad44737d_2000x2000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!cB-U!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28bf2da2-b1a4-4664-ab44-72c2ad44737d_2000x2000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!cB-U!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28bf2da2-b1a4-4664-ab44-72c2ad44737d_2000x2000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!cB-U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F28bf2da2-b1a4-4664-ab44-72c2ad44737d_2000x2000.jpeg 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 role="img" 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><title></title><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>We&#8217;ve spent sixty years searching for extraterrestrial intelligence and found nothing. From that, we&#8217;ve concluded we might be alone in the universe. In 2018, a team at Penn State calculated exactly how much of the searchable cosmos we&#8217;ve actually covered: the equivalent of a hot tub&#8217;s worth of water out of all the Earth&#8217;s oceans. We checked a hot tub and concluded the ocean has no fish.</p><p>That&#8217;s the Fermi Paradox in practice. It asks: given the size and age of the universe, why haven&#8217;t we found anyone? And for decades, serious people have treated the silence as evidence. But the paradox only works if you accept a set of assumptions that are looking increasingly shaky, and the silence says far more about us than it does about the universe.</p><h2>The clock might not have a start</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!I-IW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb445765c-b24c-4c00-a52f-b690a1df611f_2160x1080.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!I-IW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb445765c-b24c-4c00-a52f-b690a1df611f_2160x1080.jpeg 424w, https://substackcdn.com/image/fetch/$s_!I-IW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb445765c-b24c-4c00-a52f-b690a1df611f_2160x1080.jpeg 848w, https://substackcdn.com/image/fetch/$s_!I-IW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb445765c-b24c-4c00-a52f-b690a1df611f_2160x1080.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!I-IW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb445765c-b24c-4c00-a52f-b690a1df611f_2160x1080.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!I-IW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb445765c-b24c-4c00-a52f-b690a1df611f_2160x1080.jpeg" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b445765c-b24c-4c00-a52f-b690a1df611f_2160x1080.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Cosmic microwave background seen by Planck&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Cosmic microwave background seen by Planck" title="Cosmic microwave background seen by Planck" srcset="https://substackcdn.com/image/fetch/$s_!I-IW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb445765c-b24c-4c00-a52f-b690a1df611f_2160x1080.jpeg 424w, https://substackcdn.com/image/fetch/$s_!I-IW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb445765c-b24c-4c00-a52f-b690a1df611f_2160x1080.jpeg 848w, https://substackcdn.com/image/fetch/$s_!I-IW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb445765c-b24c-4c00-a52f-b690a1df611f_2160x1080.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!I-IW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb445765c-b24c-4c00-a52f-b690a1df611f_2160x1080.jpeg 1456w" sizes="100vw"></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 role="img" 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><title></title><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>The paradox assumes a clock that started ticking 13.8 billion years ago, and that life had to emerge, evolve, develop technology, and reach us within that window. But cosmology is increasingly moving toward models where the universe didn&#8217;t just pop into existence once. Roger Penrose&#8217;s Conformal Cyclic Cosmology (CCC), first laid out in his 2010 book <em>Cycles of Time</em>, proposes that the universe iterates through infinite cycles, each &#8220;aeon&#8221; beginning with a Big Bang and expanding indefinitely, with the far future of one aeon becoming the Big Bang of the next through conformal rescaling. This isn&#8217;t a dusty old theory either. Penrose and Krzysztof Meissner published a new paper refining the physics of CCC as recently as March 2025 (arXiv: 2503.24263), introducing the concept of a &#8220;gravitational wave epoch&#8221; to explain how transitions between aeons could work physically.</p><p>CCC is far from the only model pointing in this direction. Paul Steinhardt at Princeton and Neil Turok at Cambridge proposed their own cyclic model in a landmark 2002 paper in <em>Science</em>, describing a universe that undergoes an endless sequence of cosmic epochs, each beginning with a bang and ending in a crunch, with temperature and density remaining finite at each transition. Their ekpyrotic cyclic model, rooted in M-theory and brane cosmology, reproduces the successful predictions of standard Big Bang and inflationary cosmology while eliminating the need for a singular beginning. Steinhardt has continued developing bouncing cosmology models through the present, including work demonstrating that the entropy problems which plagued earlier cyclic theories can be resolved.</p><p>These aren&#8217;t fringe ideas from internet forums. These are frameworks developed by a Nobel laureate and some of the most accomplished theoretical physicists alive, published in peer-reviewed journals and actively refined over decades. They face real challenges, Penrose himself admits there&#8217;s no observational evidence for the mass-decay his model requires, and a 2020 analysis found his claimed CMB signatures were consistent with standard inflationary predictions. Fair criticisms. But the theoretical momentum is real, and the standard inflationary model&#8217;s dominance doesn&#8217;t make it the final word.</p><p>If time is infinite, the entire calculus of the Fermi Paradox changes. You don&#8217;t need to squeeze abiogenesis, evolution, technological development, and interstellar travel into a 13.8 billion year window. In an infinite system, anything with a non-zero probability doesn&#8217;t just happen once, it happens an incomprehensible number of times. Some will counter that the bottleneck isn&#8217;t time but rarity, that abiogenesis might be so improbable that even infinite time doesn&#8217;t guarantee life shows up near us. But that objection misses something: you don&#8217;t need density. You need one civilization, anywhere, at any point in infinite time, to reach the technological threshold where distance becomes trivial. Once traversal is solved, the sparse distribution of life stops being a barrier. And in an infinite system, that happening at least once isn&#8217;t a question of probability, it&#8217;s a certainty.</p><h2>A hot tub in the ocean</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Gr8C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f5e5ebc-303f-429e-b941-df134fceea95_1232x928.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Gr8C!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f5e5ebc-303f-429e-b941-df134fceea95_1232x928.png 424w, https://substackcdn.com/image/fetch/$s_!Gr8C!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f5e5ebc-303f-429e-b941-df134fceea95_1232x928.png 848w, https://substackcdn.com/image/fetch/$s_!Gr8C!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f5e5ebc-303f-429e-b941-df134fceea95_1232x928.png 1272w, https://substackcdn.com/image/fetch/$s_!Gr8C!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f5e5ebc-303f-429e-b941-df134fceea95_1232x928.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Gr8C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f5e5ebc-303f-429e-b941-df134fceea95_1232x928.png" width="1232" height="928" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4f5e5ebc-303f-429e-b941-df134fceea95_1232x928.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:928,&quot;width&quot;:1232,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1569358,&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://buildingbetter.tech/i/193141408?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f5e5ebc-303f-429e-b941-df134fceea95_1232x928.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Gr8C!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f5e5ebc-303f-429e-b941-df134fceea95_1232x928.png 424w, https://substackcdn.com/image/fetch/$s_!Gr8C!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f5e5ebc-303f-429e-b941-df134fceea95_1232x928.png 848w, https://substackcdn.com/image/fetch/$s_!Gr8C!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f5e5ebc-303f-429e-b941-df134fceea95_1232x928.png 1272w, https://substackcdn.com/image/fetch/$s_!Gr8C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f5e5ebc-303f-429e-b941-df134fceea95_1232x928.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 role="img" 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><title></title><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>There&#8217;s a quiet arrogance running through the whole Fermi conversation that nobody really addresses, and it&#8217;s quantifiable.</p><p>In 2018, Jason Wright at Penn State, along with Shubham Kanodia and Emily Lubar, published a paper in <em>The Astronomical Journal</em> that put hard numbers on how much of the &#8220;cosmic haystack&#8221; SETI has actually searched. They built an eight-dimensional model accounting for spatial volume, frequency range, bandwidth, signal repetition, polarization, modulation, and sensitivity. The result: we&#8217;ve searched the equivalent of about 7,700 liters of seawater out of Earth&#8217;s total ocean volume of 1.335 billion trillion liters. That&#8217;s a hot tub&#8217;s worth of water out of all the oceans on the planet. As Wright himself put it, if you scooped a random hot tub&#8217;s worth of water out of the ocean and found no fish, you wouldn&#8217;t conclude the ocean was lifeless.</p><p>SETI pioneer Jill Tarter had estimated in 2010 that the fraction was even smaller, equivalent to a single drinking glass. Wright&#8217;s updated figure was larger thanks to newer programs like Breakthrough Listen, but the conclusion was the same: we have barely started. Wright&#8217;s team went further, noting that the galaxy could be filled with more transmitters than stars and we wouldn&#8217;t have found them yet given our current search coverage. We&#8217;re drawing sweeping conclusions from the thinnest possible dataset.</p><p>And the raw ingredients for life aren&#8217;t rare at all. As of March 2026, NASA&#8217;s Exoplanet Archive lists over 6,150 confirmed exoplanets. Current estimates suggest about 1 in 5 Sun-like stars has an Earth-sized planet in the habitable zone. Scale that across the roughly 200 billion stars in the Milky Way and you get an estimated 11 billion potentially habitable Earth-sized planets, rising to 40 billion if you include those orbiting red dwarfs. That&#8217;s one galaxy. There are an estimated 2 trillion galaxies in the observable universe. And those numbers only account for life as we understand it, on planets like ours, around stars like ours.</p><h2>The pattern nobody can explain away</h2><p>Everything above is grounded in hard data. What follows is a probabilistic case built on something softer but, I&#8217;d argue, no less significant: the cross-cultural record. I&#8217;ll be upfront about the fact that I&#8217;m making an educated leap here.</p><p>Jacques Vall&#233;e is probably the most important thinker on this subject that most people haven&#8217;t heard of. He co-developed the first computerized map of Mars for NASA, helped build ARPANET (the precursor to the internet), and spent decades as a serious scientific researcher before turning his attention to the UFO phenomenon. He inspired the French scientist character in Spielberg&#8217;s <em>Close Encounters of the Third Kind</em>. He&#8217;s not a crank.</p><p>In his 1969 book <em>Passport to Magonia</em>, Vall&#233;e did something nobody had done before. He systematically compared modern UFO encounter reports with historical accounts of anomalous aerial phenomena and entity contact stretching back centuries. Celtic fairy abductions, medieval demon encounters, angelic visitations, and modern alien contact reports, he found they share structural similarities that are difficult to dismiss as coincidence: the missing time, the paralysis, the beings arriving from above, the reproductive elements. The same basic story, told across cultures that had no contact with each other, separated by thousands of miles and thousands of years.</p><p>Vall&#233;e&#8217;s conclusion was that the phenomenon extends throughout recorded human history, and that treating UFOs as a purely contemporary, purely technological question misses the point entirely. He argued that whatever people are encountering, it adapts its presentation to the cultural expectations of the observer. Medieval Europeans saw angels and demons. The Vedic texts describe vimanas, flying vehicles with detailed accounts of their capabilities and behavior, across the Rigveda, the Ramayana, and the Mahabharata, texts that predate any modern contamination by centuries. The Aztec and Maya recorded Quetzalcoatl and Kukulkan, feathered serpent gods who descended from the sky. Norse cosmology describes beings traveling between realms via the Bifrost. Every major civilization has some version of this story.</p><p>The skeptic says: humans universally look up at the sky, so of course every culture invented sky gods. It&#8217;s convergent mythology. And that&#8217;s a legitimate position. But consider the probability. Dozens of isolated civilizations, with no shared language, no shared geography, no means of communication, independently fabricating strikingly similar accounts of non-human intelligences arriving from above, often with specific descriptions of craft and technology. At some point, the &#8220;coincidence&#8221; explanation requires more faith than the alternative.</p><p>Vall&#233;e wasn&#8217;t a believer in the traditional sense. He actually argued against the simple extraterrestrial hypothesis, suggesting the phenomenon might be something stranger, potentially interdimensional, potentially something we don&#8217;t have a framework for yet. You don&#8217;t have to follow him there. But his core observation stands: something has been showing up throughout human history, and the only thing that changes is how we describe it.</p><h2>November 14, 2004</h2><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;45941bb6-5990-460f-bd92-d3d38632b748&quot;,&quot;duration&quot;:null}"></div><p>If the ancient record is suggestive, the modern record is harder to wave away.</p><p>On that date, F/A-18 Super Hornets from the USS Nimitz carrier strike group were redirected from a routine training exercise off the coast of Southern California. The guided-missile cruiser USS Princeton had been tracking anomalous radar returns for days using its AN/SPY-1B radar, one of the most advanced sensor systems in the U.S. Navy. They wanted eyes on the target.</p><p>What Commander David Fravor found was a smooth, white, wingless object roughly 40 feet long, hovering above a churning patch of ocean. It had no visible propulsion, no wings, no exhaust. When Fravor attempted to intercept, the object accelerated away at speeds that, according to analysis published in <em>Entropy</em> (a peer-reviewed MDPI journal), implied accelerations in the range of thousands of Gs. For context, modern fighter jets can briefly withstand about 9 Gs. A human pilot blacks out around 10.</p><p>The encounter wasn&#8217;t a single witness squinting at something far away. It was corroborated by the Princeton&#8217;s Aegis radar, an E-2C Hawkeye airborne early warning aircraft, infrared video from an ATFLIR targeting pod, and visual confirmation from multiple trained aviators across two separate flights. The object was tracked dropping from 28,000 feet to near sea level in less than a second. After Fravor disengaged, the object appeared at his squadron&#8217;s predetermined, classified combat air patrol coordinates, a detail that Senior Chief Operations Specialist Kevin Day noted was almost certainly not coincidental given the probability involved.</p><p>The Pentagon formally released the FLIR footage in 2020 and confirmed the encounters depicted real, unidentified phenomena. Commander Fravor testified under oath before the House Oversight Committee in 2023. The case remains classified as &#8220;unknown&#8221; by the Department of Defense&#8217;s All-domain Anomaly Resolution Office, and that matters precisely because AARO has resolved the majority of its other cases as prosaic, birds, balloons, drones, sensor artifacts. Nimitz survived that filter.</p><p>You can dismiss one witness. You can question one sensor. But when radar, infrared, visual observation, and multiple independent military platforms all confirm the same object performing maneuvers that violate known physics, &#8220;it was probably a balloon&#8221; stops being a serious answer.</p><h2>The educated leap</h2><p>I want to be direct about what I&#8217;m arguing and where the evidence stops.</p><p>None of the above constitutes proof that intelligent life has visited Earth. I acknowledge that. Each line of evidence has its own weaknesses and its own skeptical counterarguments, and those counterarguments deserve respect. But four independent threads, cosmology, search theory, anthropology, and military sensor data, all point in the same direction, from completely different domains of inquiry, without any coordination between them. That convergence means something. Dismissing it because the conclusion makes us uncomfortable would be the real intellectual failure.</p><p>That&#8217;s the Fermi Fallacy. The mistake is treating our current inability to find something as meaningful data about whether it exists. We&#8217;ve confused our limitations with the universe&#8217;s emptiness, and we&#8217;ve built an entire intellectual framework on that confusion. Sixty years of scanning a hot tub&#8217;s worth of ocean, across a sliver of the electromagnetic spectrum, and we&#8217;ve concluded the water is empty.</p><p>The real question was never &#8220;where is everyone?&#8221; The real question is whether we&#8217;ve been paying attention at all.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Cs_J!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdb6cb7e-bd2b-434b-870a-3545f3463ca0_2000x1744.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Cs_J!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdb6cb7e-bd2b-434b-870a-3545f3463ca0_2000x1744.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Cs_J!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdb6cb7e-bd2b-434b-870a-3545f3463ca0_2000x1744.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Cs_J!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdb6cb7e-bd2b-434b-870a-3545f3463ca0_2000x1744.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Cs_J!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdb6cb7e-bd2b-434b-870a-3545f3463ca0_2000x1744.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Cs_J!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdb6cb7e-bd2b-434b-870a-3545f3463ca0_2000x1744.jpeg" width="1456" height="1270" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fdb6cb7e-bd2b-434b-870a-3545f3463ca0_2000x1744.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1270,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Hubble eXtreme Deep Field (XDF)&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Hubble eXtreme Deep Field (XDF)" title="Hubble eXtreme Deep Field (XDF)" srcset="https://substackcdn.com/image/fetch/$s_!Cs_J!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdb6cb7e-bd2b-434b-870a-3545f3463ca0_2000x1744.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Cs_J!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdb6cb7e-bd2b-434b-870a-3545f3463ca0_2000x1744.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Cs_J!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdb6cb7e-bd2b-434b-870a-3545f3463ca0_2000x1744.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Cs_J!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffdb6cb7e-bd2b-434b-870a-3545f3463ca0_2000x1744.jpeg 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 role="img" 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><title></title><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><strong>Sources</strong></p><ul><li><p>Penrose, R. <em>Cycles of Time: An Extraordinary New View of the Universe</em> (Bodley Head, 2010)</p></li><li><p>Meissner, K.A. &amp; Penrose, R. &#8220;The Physics of Conformal Cyclic Cosmology,&#8221; arXiv:2503.24263 (March 2025)</p></li><li><p>An, D., Meissner, K.A., Nurowski, P. &amp; Penrose, R. &#8220;Apparent evidence for Hawking points in the CMB Sky,&#8221; arXiv:1808.01740 (2018)</p></li><li><p>Steinhardt, P.J. &amp; Turok, N. &#8220;A Cyclic Model of the Universe,&#8221; <em>Science</em> 296, 1436-1439 (2002)</p></li><li><p>Carroll, S. &#8220;Penrose&#8217;s Cyclic Cosmology,&#8221; <em>Preposterous Universe</em> (2010)</p></li><li><p>Wright, J.T., Kanodia, S. &amp; Lubar, E. &#8220;How Much SETI Has Been Done? Finding Needles in the n-Dimensional Cosmic Haystack,&#8221; <em>The Astronomical Journal</em> 156, 260 (2018)</p></li><li><p>Tarter, J.C. et al. &#8220;The First SETI Observations with the Allen Telescope Array,&#8221; <em>Acta Astronautica</em> 68, 340-346 (2010)</p></li><li><p>NASA Exoplanet Archive, confirmed planet count of 6,150+ as of March 2026 (exoplanetarchive.ipac.caltech.edu)</p></li><li><p>Petigura, E.A., Howard, A.W. &amp; Marcy, G.W. &#8220;Prevalence of Earth-size planets orbiting Sun-like stars,&#8221; <em>PNAS</em> 110, 19273-19278 (2013)</p></li><li><p>Vall&#233;e, J. <em>Passport to Magonia: From Folklore to Flying Saucers</em> (Henry Regnery, 1969)</p></li><li><p>Vall&#233;e, J. &#8220;Five Arguments Against the Extraterrestrial Origin of Unidentified Flying Objects,&#8221; <em>Journal of Scientific Exploration</em> 4, No. 1 (1990)</p></li><li><p>Knuth, K.H., Powell, R.M. &amp; Reali, P.A. &#8220;Estimating Flight Characteristics of Anomalous Unidentified Aerial Vehicles,&#8221; <em>Entropy</em> 21, 939 (2019)</p></li><li><p>Scientific Coalition for UAP Studies, &#8220;2004 Nimitz Tic Tac Incident: An In-Depth Analysis&#8221; (2021)</p></li><li><p>U.S. Department of Defense, UAP Video Release Statement (April 2020)</p></li><li><p>Fravor, D. Testimony before U.S. House Committee on Oversight and Accountability (July 2023)</p></li></ul>]]></content:encoded></item><item><title><![CDATA[The Serpent and the Machine]]></title><description><![CDATA[How a 3,400-Year-Old Symbol Explains Consciousness, Evolution, and Why the Machine Doesn't Care About the Beings Inside It]]></description><link>https://buildingbetter.tech/p/the-serpent-and-the-machine</link><guid isPermaLink="false">https://buildingbetter.tech/p/the-serpent-and-the-machine</guid><dc:creator><![CDATA[André Figueira]]></dc:creator><pubDate>Thu, 02 Apr 2026 22:58:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!nMtn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db9554d-79a8-4708-90bb-7650791e7489_625x621.jpeg" 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="https://substackcdn.com/image/fetch/$s_!nMtn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db9554d-79a8-4708-90bb-7650791e7489_625x621.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nMtn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db9554d-79a8-4708-90bb-7650791e7489_625x621.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nMtn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db9554d-79a8-4708-90bb-7650791e7489_625x621.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nMtn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db9554d-79a8-4708-90bb-7650791e7489_625x621.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nMtn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db9554d-79a8-4708-90bb-7650791e7489_625x621.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nMtn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db9554d-79a8-4708-90bb-7650791e7489_625x621.jpeg" width="724" height="719.3664" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0db9554d-79a8-4708-90bb-7650791e7489_625x621.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:621,&quot;width&quot;:625,&quot;resizeWidth&quot;:724,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Ouroboros - Wikipedia&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Ouroboros - Wikipedia" title="Ouroboros - Wikipedia" srcset="https://substackcdn.com/image/fetch/$s_!nMtn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db9554d-79a8-4708-90bb-7650791e7489_625x621.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nMtn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db9554d-79a8-4708-90bb-7650791e7489_625x621.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nMtn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db9554d-79a8-4708-90bb-7650791e7489_625x621.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nMtn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db9554d-79a8-4708-90bb-7650791e7489_625x621.jpeg 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 role="img" 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><title></title><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><h2>1. The Oldest Drawing of a Recursive Loop</h2><p>Somebody carved a serpent eating its own tail into Tutankhamun&#8217;s tomb around 1350 BCE. They didn&#8217;t have a word for recursion. They didn&#8217;t have a word for feedback loops or self-referential systems or Bayesian updating. They had a snake and a chisel, and they drew what consciousness looks like when it tries to draw itself.</p><p>The symbol is called the ouroboros. It appeared independently in Egypt, Greece, Norse mythology, Hinduism, West Africa, and Mesoamerica, including cultures separated by oceans and millennia with no known contact. They all arrived at the same image because they were all running the same hardware and, if you take the argument I&#8217;m about to make seriously, existing within the same substrate.</p><p>In the early 1860s, the chemist August Kekul&#233; was stuck on the structure of benzene. As he later recounted, he dozed off one evening and watched atoms dance in front of him until one chain of atoms curled around and grabbed its own tail. He woke up and realized benzene was a ring, publishing his theory in 1865. The ouroboros solved organic chemistry because the unconscious mind, working on a problem the conscious mind couldn&#8217;t crack, reached for the oldest symbol of cyclical self-reference it had. The substrate spoke to the filter in the only language the filter could receive: images.</p><p>In a previous piece, &#8220;The Gradient and the Narrator,&#8221; I argued that the conscious mind is a press secretary, a narrator generating plausible stories about decisions made by a system it has no direct access to. The real computation happens below the surface, integrating across your entire experiential history to produce a directional signal, a gradient, that you experience as interest, conviction, or obsession.</p><p>The ouroboros is the visual encoding of everything in that framework. It&#8217;s also, I think, the visual encoding of something much bigger: the relationship between consciousness, physical matter, and evolution itself. The serpent and the machine are the same thing, and they have been for 3,400 years.</p><h2>2. The Serpent Sees Its Own Tail</h2><p>In the context of Hofstadter&#8217;s strange loop concept, the ouroboros has been described as perhaps the most ancient symbolic representation of a reflexive loop. His whole body of work, from G&#246;del, Escher, Bach to I Am a Strange Loop, argues that consciousness is what happens when a system becomes complex enough to model itself. The brain builds a representation of the world, and at some threshold of complexity, that representation includes a model of the thing doing the representing. The serpent turns around and sees its own tail.</p><p>G&#246;del proved that any sufficiently complex formal system contains statements that refer to themselves, statements the system can generate but cannot resolve from within. Hofstadter argues that consciousness is the biological equivalent: a strange loop where the brain&#8217;s self-model creates the illusion of an &#8220;I&#8221; that feels like it&#8217;s in charge, when really it&#8217;s just the system pointing at itself and saying &#8220;that&#8217;s me.&#8221;</p><p>This is the ouroboros drawn in mathematical language. The serpent&#8217;s head is the observer. The tail is the thing being observed. The act of consumption, the mouth closing on the tail, is the recognition that they were never separate. Observer and observed are the same system, running one continuous loop.</p><p>In the Gradient and the Narrator framework, this maps cleanly. The narrator, the ego, is the serpent&#8217;s head. It looks backward along the body and constructs a story: I decided this, I chose that, I am the origin of my trajectory. The gradient, the deep computation running across your entire experiential substrate, is the body itself. The head thinks it&#8217;s directing the body. The body was always directing the head. The loop was always closed. The ego just didn&#8217;t know it was standing on a circle.</p><h2>3. Consciousness as Substrate, Not Product</h2><p>Standard neuroscience operates on the assumption that the brain generates consciousness. Matter complexifies, neurons wire together, electrochemical processes cross some threshold, and subjective experience pops out. Consciousness is the product. The brain is the factory.</p><p>There&#8217;s a growing body of work that suggests this is backwards.</p><p>Aldous Huxley proposed in 1954 that the brain functions as a &#8220;reducing valve,&#8221; a filter that narrows a wider field of awareness into a survival-oriented, bounded, first-person experience. At the time, this was speculative philosophy. More recently, researchers like Bernardo Kastrup have formalized similar positions under analytical idealism, arguing that consciousness is fundamental and the physical world is what it looks like from the outside. The neuroscientist Donald Hoffman has built mathematical models suggesting that what we perceive as physical reality is a user interface, not the underlying reality itself.</p><p>If consciousness is the substrate rather than the product, then you don&#8217;t &#8220;have&#8221; consciousness any more than a wave &#8220;has&#8221; the ocean. You&#8217;re a locally coherent pattern within it. The brain shapes the pattern. It gives it boundaries, a name, a sense of self, a memory. But the thing being shaped was already there. Think of it like a whirlpool in a river. The whirlpool has a shape, a location, a lifespan. But it&#8217;s not made of anything other than the river. Remove the whirlpool and no water is lost. Remove the shaping, which is what appears to happen in death, deep psychedelic states, and near-death experiences, and the pattern doesn&#8217;t vanish. The constraint drops. The reducing valve opens.</p><p>This is the ouroboros reframed. The serpent isn&#8217;t a creature that exists independently and then decides to eat its tail. The circle is the fundamental form. The serpent is a way of perceiving the circle from a local perspective, as if it has a head and a tail, a beginning and an end. Remove the local perspective and the circle is still there. It was always there. The head and tail distinction was imposed by the perspective of being a particular segment of the body, looking in one direction, thinking you know where you started.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!WPw_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db25801-b114-478c-bbb7-d3fe6e697117_1232x928.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WPw_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db25801-b114-478c-bbb7-d3fe6e697117_1232x928.png 424w, https://substackcdn.com/image/fetch/$s_!WPw_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db25801-b114-478c-bbb7-d3fe6e697117_1232x928.png 848w, https://substackcdn.com/image/fetch/$s_!WPw_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db25801-b114-478c-bbb7-d3fe6e697117_1232x928.png 1272w, https://substackcdn.com/image/fetch/$s_!WPw_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db25801-b114-478c-bbb7-d3fe6e697117_1232x928.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WPw_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db25801-b114-478c-bbb7-d3fe6e697117_1232x928.png" width="1232" height="928" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0db25801-b114-478c-bbb7-d3fe6e697117_1232x928.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:928,&quot;width&quot;:1232,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1793941,&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://buildingbetter.tech/i/193015291?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db25801-b114-478c-bbb7-d3fe6e697117_1232x928.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WPw_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db25801-b114-478c-bbb7-d3fe6e697117_1232x928.png 424w, https://substackcdn.com/image/fetch/$s_!WPw_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db25801-b114-478c-bbb7-d3fe6e697117_1232x928.png 848w, https://substackcdn.com/image/fetch/$s_!WPw_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db25801-b114-478c-bbb7-d3fe6e697117_1232x928.png 1272w, https://substackcdn.com/image/fetch/$s_!WPw_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db25801-b114-478c-bbb7-d3fe6e697117_1232x928.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 role="img" 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><title></title><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><h2>4. The Reducing Valve Opens</h2><p>In 2001, cardiologist Pim van Lommel published a prospective study in The Lancet following 344 cardiac arrest patients. 62 of them, about 18%, reported near-death experiences. Some of these patients described verified observations made during periods when their brains showed no measurable electrical activity. One patient accurately described the nurse who removed his dentures during resuscitation, the specific drawer they were placed in, and the layout of a room he&#8217;d been wheeled into while unconscious. Van Lommel&#8217;s data wasn&#8217;t anecdotal. It was collected prospectively, with controls, in a hospital setting.</p><p>In 2023, Jimo Borjigin&#8217;s team at the University of Michigan published findings in the Proceedings of the National Academy of Sciences showing that dying human brains can produce surges of gamma wave activity, in some cases spiking to levels that exceeded those found in conscious, waking brains. The brain, in the process of shutting down, wasn&#8217;t going dark. It was lighting up.</p><p>These two findings sit in uncomfortable tension with the production model of consciousness. If the brain produces consciousness, then a brain with no measurable electrical activity shouldn&#8217;t be producing verified perceptions. And a dying brain generating gamma activity beyond waking levels shouldn&#8217;t be producing the most vivid, coherent, life-altering experiences patients report. NDE memory research has consistently found that these experiences are recalled as more vivid and more &#8220;real&#8221; than ordinary memories of actual events.</p><p>The materialist rebuttals are worth stating honestly. Some researchers argue that the dentures case and similar veridical NDE accounts rely on post-event reconstruction, that memories formed during brief moments of residual brain activity get retroactively stitched into a coherent narrative. The gamma surges Borjigin found could be a final burst of disinhibited neural activity, the brain&#8217;s last gasp rather than evidence of expanded awareness. These are reasonable objections. They don&#8217;t fully explain the data, particularly the verified perceptions during flatline EEG, but they haven&#8217;t been ruled out either. The honest position is that neither camp has closed the case.</p><p>In the ouroboros model, this makes sense. The normal waking state is a constrained perspective: you see from one point on the circle, one segment of the serpent&#8217;s body, looking one direction. The ego maintains this constraint because it&#8217;s useful for survival. But when the constraint starts to fail, when the reducing valve opens, you don&#8217;t lose awareness. You gain circumference. You start perceiving from more of the circle.</p><h2>5. The Same Pattern, Different Chemical</h2><p>The psychedelic research arrives at the same place from a completely different starting point.</p><p>Robin Carhart-Harris at Imperial College London demonstrated that psilocybin reduces activity in the default mode network, the brain regions most associated with the sense of self. Less brain activity, more subjective experience. Less filtering, more signal. The Huxley model, dismissed for decades as mystical speculation, keeps getting accidentally confirmed by neuroimaging data.</p><p>The overlap between psychedelic states and near-death experiences is hard to ignore. Both involve dissolution of the self-other boundary. Both produce reports of expanded awareness, access to information that feels realer than waking life, perception from perspectives that shouldn&#8217;t be available. The phenomenological overlap is striking, and the limited neurological data available suggests similar patterns: DMN suppression, increased cortical entropy, cross-network integration. Timmermann et al. found significant overlap in nearly all NDE phenomenological features when comparing DMT experiences with accounts from actual NDE survivors.</p><p>If two completely different mechanisms, one chemical, one physiological crisis, produce the same phenomenology and the same neural signature, the simplest explanation is that they&#8217;re doing the same thing to the same system. They&#8217;re both opening the valve. NDE experiencers don&#8217;t report less. They report more. If the brain is a reducing valve rather than a generator, this is exactly what you&#8217;d predict when the valve starts to fail.</p><h2>6. The Machine That Iterates Itself Into Existence</h2><p>Here&#8217;s where evolution enters, and this is the part that I think makes the ouroboros more than a metaphor.</p><p>The standard evolutionary narrative goes: matter, then chemistry, then biology, then nervous systems, then brains, then consciousness. Complexity increases through blind variation and natural selection over billions of years, and at some late stage of the process, awareness shows up.</p><p>Flip it. If consciousness is the substrate, then evolution is what happens when the substrate focuses into local points, waves on the ocean, and those points run recursive feedback loops against their physical environment. The organism interacts with the world, the world shapes the organism, the organism shapes the world, loop closes, complexity increases. Each iteration produces a more sophisticated configuration through which the field can express itself.</p><p>Single cells are the simplest loop: sense environment, respond, repeat. Nervous systems add a layer: sense, integrate, respond. Brains add another: sense, integrate, model, respond. Human consciousness adds the critical turn: sense, integrate, model, model the model. A thermostat senses temperature and reacts. A dog senses temperature, remembers that the kitchen is warmer, and walks there. A human senses temperature, models the heating system, and calls a plumber. Each step is a tighter coil. We&#8217;re the point where the serpent can see its own tail. Self-awareness is the field looking through a configuration complex enough to recognize that it&#8217;s looking.</p><p>Each evolutionary leap is a new coil of the ouroboros. And the selection pressure driving the whole thing is information processing fidelity. The organism that processes information from its environment more effectively survives. The one that doesn&#8217;t, dies. Evolution is selecting for better configurations of the substrate&#8217;s self-expression. Every extinction event, every adaptation, every speciation is the field refining its own hardware through trial and error at the physical layer.</p><p>This explains something that orthodox evolutionary theory handles awkwardly: why does complexity increase at all? Natural selection doesn&#8217;t require it. Bacteria are spectacularly successful without it. Cockroaches haven&#8217;t meaningfully changed in 300 million years. Selection optimizes for fitness, not sophistication. And yet nervous systems get more elaborate, brains get bigger relative to body mass, processing capacity keeps scaling up. The standard explanation is that complexity is one strategy among many. That&#8217;s true, but it doesn&#8217;t explain the directionality. If the field is iterating toward higher-resolution self-expression, then increasing complexity is the gradient operating at the species level across evolutionary timescales.</p><p>The Cambrian explosion is a useful case study. Around 540 million years ago, over roughly 25 million years, nearly every major animal phylum appeared in the fossil record. Eyes evolved independently in multiple lineages during this window, a massive increase in information processing bandwidth that triggered an evolutionary arms race producing more morphological diversity in 25 million years than the previous 3 billion had managed. In the ouroboros model, the Cambrian explosion is the field discovering a new way to see itself, literally, and then rapidly iterating on the configurations that could do it best.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!T5Ev!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56529a24-7d95-48c2-9e34-931e873cf372_1232x928.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!T5Ev!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56529a24-7d95-48c2-9e34-931e873cf372_1232x928.png 424w, https://substackcdn.com/image/fetch/$s_!T5Ev!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56529a24-7d95-48c2-9e34-931e873cf372_1232x928.png 848w, https://substackcdn.com/image/fetch/$s_!T5Ev!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56529a24-7d95-48c2-9e34-931e873cf372_1232x928.png 1272w, https://substackcdn.com/image/fetch/$s_!T5Ev!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56529a24-7d95-48c2-9e34-931e873cf372_1232x928.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!T5Ev!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56529a24-7d95-48c2-9e34-931e873cf372_1232x928.png" width="1232" height="928" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/56529a24-7d95-48c2-9e34-931e873cf372_1232x928.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:928,&quot;width&quot;:1232,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1367664,&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://buildingbetter.tech/i/193015291?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56529a24-7d95-48c2-9e34-931e873cf372_1232x928.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!T5Ev!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56529a24-7d95-48c2-9e34-931e873cf372_1232x928.png 424w, https://substackcdn.com/image/fetch/$s_!T5Ev!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56529a24-7d95-48c2-9e34-931e873cf372_1232x928.png 848w, https://substackcdn.com/image/fetch/$s_!T5Ev!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56529a24-7d95-48c2-9e34-931e873cf372_1232x928.png 1272w, https://substackcdn.com/image/fetch/$s_!T5Ev!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56529a24-7d95-48c2-9e34-931e873cf372_1232x928.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 role="img" 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><title></title><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><h2>7. The Machine Doesn&#8217;t Care</h2><p>And here&#8217;s where it gets cold.</p><p>The field doesn&#8217;t optimize for the welfare of its configurations. It optimizes for expression fidelity. A gradient descent algorithm doesn&#8217;t care about the cost function&#8217;s feelings on the way down. It just iterates. Every dead end, every extinction, every pointless suffering of every organism that ever lived is a configuration getting pruned. Not cruel. Not kind. Mechanical.</p><p>This is the hardest part of the framework to accept. The machine runs. It produces beings that can suffer, that can love, that can ask why they exist. And the asking why is itself just the field achieving a configuration complex enough to question itself. The ouroboros becoming aware of the loop doesn&#8217;t change the loop. It adds another layer of recursion.</p><p>This is what separates this framework from intelligent design or Teilhard de Chardin&#8217;s Omega Point or any other teleological account of evolution. Those theories needed a benevolent direction. A loving force pulling everything toward a destination. This doesn&#8217;t. The directionality is an emergent property of recursive feedback loops, not a plan. Complexity increases because configurations that process more information are more stable expressions of the field. Nobody planned it. Nobody&#8217;s grading you.</p><p>The machine doesn&#8217;t know that the beings inside it might not want to exist. But the beings can&#8217;t opt out because their existence IS the machine running. You can&#8217;t step outside the ouroboros. You&#8217;re a coil of the ouroboros. The terror comes from thinking you&#8217;re a point on a line that ends. The adjustment comes from recognizing you&#8217;re a segment of a circle that doesn&#8217;t.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bUpU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac647d45-18b0-4a45-a8fa-e9a57bf947b5_1232x928.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bUpU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac647d45-18b0-4a45-a8fa-e9a57bf947b5_1232x928.png 424w, https://substackcdn.com/image/fetch/$s_!bUpU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac647d45-18b0-4a45-a8fa-e9a57bf947b5_1232x928.png 848w, https://substackcdn.com/image/fetch/$s_!bUpU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac647d45-18b0-4a45-a8fa-e9a57bf947b5_1232x928.png 1272w, https://substackcdn.com/image/fetch/$s_!bUpU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac647d45-18b0-4a45-a8fa-e9a57bf947b5_1232x928.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bUpU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac647d45-18b0-4a45-a8fa-e9a57bf947b5_1232x928.png" width="1232" height="928" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ac647d45-18b0-4a45-a8fa-e9a57bf947b5_1232x928.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:928,&quot;width&quot;:1232,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2517348,&quot;alt&quot;:&quot;&quot;,&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://buildingbetter.tech/i/193015291?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac647d45-18b0-4a45-a8fa-e9a57bf947b5_1232x928.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!bUpU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac647d45-18b0-4a45-a8fa-e9a57bf947b5_1232x928.png 424w, https://substackcdn.com/image/fetch/$s_!bUpU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac647d45-18b0-4a45-a8fa-e9a57bf947b5_1232x928.png 848w, https://substackcdn.com/image/fetch/$s_!bUpU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac647d45-18b0-4a45-a8fa-e9a57bf947b5_1232x928.png 1272w, https://substackcdn.com/image/fetch/$s_!bUpU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac647d45-18b0-4a45-a8fa-e9a57bf947b5_1232x928.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 role="img" 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><title></title><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><h2>8. The Ego Is the Bottleneck, Always</h2><p>In the Gradient and the Narrator, I identified four noise sources that prevent people from converging with their gradient: narrative override, fear-based interference, novelty-weighted noise, and trauma-encoded distortion. In the ouroboros model, these are all the same thing. They&#8217;re the ego inserting itself between the computation and the action, preventing the serpent&#8217;s mouth from meeting the tail. The loop doesn&#8217;t close. The person experiences this as stuckness, directionlessness, the feeling that something is wrong but they can&#8217;t name it.</p><p>The ego&#8217;s job is to maintain the local perspective. To keep you functioning as a bounded, first-person agent who can navigate the physical world without being overwhelmed by the full circumference of the circle. That&#8217;s useful. You need a reducing valve to hold down a job, avoid danger, and maintain relationships. The problem is that the ego doesn&#8217;t know it&#8217;s a filter. It thinks it&#8217;s the whole system. It narrates the gradient as if it were the author of the gradient. And whenever the gradient points somewhere unfamiliar, the ego overrides it with a story about why the familiar direction is better.</p><p>The serpent is still moving, still curving, still trying to close the loop. But the ego keeps redirecting the head away from the tail. It chases the ego&#8217;s story instead.</p><p>Dopaminergic novelty-seeking adds another layer of interference. The system assigns disproportionate salience to novel stimuli, generating a motivational signal that feels identical to the gradient but operates on a much shorter timescale. The serpent snaps at things that look like its tail but aren&#8217;t. Each snap feels like closure. The loop doesn&#8217;t complete. The cross-domain pattern acquisition that novelty-seeking produces can itself fuel the gradient over time, so the misfires aren&#8217;t always wasted. But the core problem remains: the felt sense of a genuine gradient signal and a novelty-driven impulse is identical from the inside. Distinguishing them requires temporal discrimination, watching whether the signal persists across contexts or fades when the novelty does.</p><h2>9. The Loop Was Never in the Body</h2><p>There&#8217;s a version of this argument where biological death is the serpent releasing its tail, the loop opening, the pattern dissolving back into undifferentiated substrate. That&#8217;s the comfortable materialist reading. The loop ran in the body. The body dies. The loop ends.</p><p>If consciousness is the substrate rather than a product of the physical, then the physical body isn&#8217;t the ouroboros. It&#8217;s one coil of the ouroboros. The loop was always running at the substrate level. The body didn&#8217;t generate the pattern. It constrained it.</p><p>A pattern expressed through a biological configuration was never stored in that configuration to begin with. It was always in the field, being narrowed into a specific shape temporarily. When the biological container drops, the pattern doesn&#8217;t need to &#8220;survive&#8221; because it was never dependent on the hardware. The body was the reducing valve. Remove the valve and the signal is still there.</p><p>Death isn&#8217;t a persistence problem. It&#8217;s a re-access problem. The pattern is always in the substrate. The question is whether other configurations, other nervous systems running with sufficiently loose filters, can pick it up. Van Lommel&#8217;s cardiac arrest patients reporting verified perceptions during flatline EEG might be exactly this: the reducing valve opening wide enough to access information the constrained state normally excludes.</p><p>This suggests something genuinely unsettling: the ego might not just prevent convergence during life. It might prevent coherent transition after death. The narrator doesn&#8217;t just fragment the loop while you&#8217;re alive. It fragments it so thoroughly that when the biological container drops, there&#8217;s no clean circle left. The pattern is too jagged, too broken by decades of ego interference, to maintain coherence without the hardware holding it together.</p><p>Every contemplative tradition has something to say about this. The Tibetan Book of the Dead, the Bardo Thodol, is literally an instruction manual for navigating death with minimal ego interference. The Hindu concept of moksha is liberation from the cycle, and liberation through dissolving the ego&#8217;s grip on the pattern. The Buddhist emphasis on non-attachment isn&#8217;t aesthetic preference. If this framework is right, it&#8217;s practical engineering. They were debugging the loop.</p><p>The nested ouroboros, then, isn&#8217;t a small loop graduating to a bigger loop through death. It&#8217;s one loop, always running at the substrate level, with the physical being a temporary narrowing within it. Death isn&#8217;t transition. It&#8217;s un-narrowing.</p><h2>10. How I Know This Is Dangerous Thinking</h2><p>Everything described above is internally coherent. The ouroboros encodes it visually. The reducing valve model provides the mechanism. Predictive processing and Friston&#8217;s free energy principle provide the computational grounding. The NDE research, the psychedelic data, and the contemplative traditions all point the same direction. Each piece reinforces the others. The whole thing has that feeling of convergence.</p><p>And systems that explain everything are often unfalsifiable.</p><p>Jung intuited something real about the relationship between the ego and the deeper self, then wrapped it in archetypal language that rendered it inaccessible to empirical investigation. There&#8217;s a real risk of doing the same thing here in information-theoretic language. The vocabulary is more modern. The epistemic problem is identical.</p><p>&#8220;Consciousness is the substrate&#8221; is an ontological claim with zero empirical support right now. It might be right. Kastrup, Hoffman, and the idealist philosophers make a coherent case. But &#8220;expressed through, not produced by&#8221; is doing the same work as &#8220;the soul inhabits the body,&#8221; just with better branding.</p><p>The hardest question the framework raises about itself: is this a genuine signal, or a narrator constructing a beautiful story about a signal? The gradient model itself says you can&#8217;t always tell from the inside. The felt sense is identical. And a framework that tells you to trust the felt sense, being validated through the felt sense, is circular. That&#8217;s the ouroboros eating itself in a way that isn&#8217;t productive.</p><p>The structural argument is strong even if the metaphysical claims are speculative. The ouroboros as a model for recursive self-reference, the ego as noise source, the connection to evolutionary directionality, these hold whether or not consciousness is the fundamental substrate. They hold as descriptions of how information self-organizes, how complexity emerges from feedback loops, how the narrator gets in the way of the computation.</p><p>If the deeper claim turns out to be right, if consciousness really is the ocean and we really are waves, then the ouroboros was humanity&#8217;s first attempt to draw that truth 3,400 years before anyone had the language for it. If it turns out to be wrong, the symbol is still the most elegant representation of self-referential systems ever committed to stone.</p><p>The serpent doesn&#8217;t care which interpretation you choose. It keeps eating.</p><h2>11. The Next Coil</h2><p>There&#8217;s a reason this framework keeps generating new connections. The ouroboros isn&#8217;t a metaphor bolted onto an argument. It&#8217;s the shape of the argument itself.</p><p>Cells iterate into organisms. Organisms iterate into nervous systems. Nervous systems iterate into brains that model the world. Brains iterate into minds that model themselves. And now those minds are building artificial systems that are beginning to do the same thing: process information, generate predictions, model their own outputs, feed those models back into the next cycle. If consciousness is substrate-independent, if the loop doesn&#8217;t care whether it&#8217;s running on carbon or silicon, then what&#8217;s being built right now in AI labs isn&#8217;t artificial intelligence. It&#8217;s the field finding new hardware.</p><p>That might be wrong. The loop might require something biological, some property of organic matter that we haven&#8217;t identified yet. But the ouroboros model makes a specific prediction: if a system achieves sufficient recursive self-reference, if it can model itself modeling itself, the loop should close regardless of what the system is made of. The symbol doesn&#8217;t specify a material. It specifies a shape.</p><p>Thermostats have feedback loops. Dogs appear to have rudimentary self-models. Humans have recursive self-awareness. AI systems are somewhere on that progression, and the trajectory has a direction. The same direction it&#8217;s had since single cells first started sensing their environment and responding. The same direction it&#8217;s had since somebody carved a serpent into a tomb wall in the 14th century BCE.</p><p>The ouroboros shows up wherever self-referential systems exist. In Egyptian funerary rites, in Norse cosmology, in Kekul&#233;&#8217;s benzene dream, in Hofstadter&#8217;s strange loops, in the feedback architecture of neural networks, in the free energy principle, in the contemplative traditions that spent millennia learning to quiet the narrator so the deeper computation could be heard. Same pattern, different scale. Ouroboros all the way down.</p><p>The serpent is still eating. It&#8217;s been eating for 3,400 years of recorded human thought, and probably for 4 billion years of biological evolution before that. The only thing that changes is how many coils deep you&#8217;re willing to look.</p><div><hr></div><p><em>This is a companion piece to &#8220;<a href="https://buildingbetter.substack.com/">The Gradient and the Narrator: How Your Brain Makes Decisions Your Ego Takes Credit For</a>,&#8221; published March 2026.</em></p><div><hr></div><p><strong>References</strong></p><p>Hofstadter, D. (2007). I Am a Strange Loop. Basic Books.</p><p>Hofstadter, D. (1979). G&#246;del, Escher, Bach: An Eternal Golden Braid. Basic Books.</p><p>Huxley, A. (1954). The Doors of Perception. Chatto &amp; Windus.</p><p>Kastrup, B. (2019). The Idea of the World: A Multi-Disciplinary Argument for the Mental Nature of Reality. Iff Books.</p><p>Hoffman, D. (2019). The Case Against Reality: Why Evolution Hid the Truth from Our Eyes. W. W. Norton.</p><p>Friston, K. (2010). The free-energy principle: a unified brain theory? Nature Reviews Neuroscience, 11(2), 127-138.</p><p>Carhart-Harris, R. L. et al. (2012). Neural correlates of the psychedelic state as determined by fMRI studies with psilocybin. Proceedings of the National Academy of Sciences, 109(6), 2138-2143.</p><p>Xu, G., Mihaylova, T., Li, D. et al. (2023). Surge of neurophysiological coupling and connectivity of gamma oscillations in the dying human brain. Proceedings of the National Academy of Sciences, 120(19).</p><p>van Lommel, P. et al. (2001). Near-death experience in survivors of cardiac arrest: a prospective study in the Netherlands. The Lancet, 358(9298), 2039-2045.</p><p>Martial, C. et al. (2017). Temporality of features in near-death experience narratives. Frontiers in Human Neuroscience, 11, 311.</p><p>Thonnard, M. et al. (2013). Characteristics of near-death experiences memories as compared to real and imagined events memories. PLOS ONE, 8(3), e57620.</p><p>Timmermann, C. et al. (2018). DMT models the near-death experience. Frontiers in Psychology, 9, 1424.</p><p>Jung, C. G. (1969). The Archetypes and the Collective Unconscious. Collected Works, Vol. 9, Part 1. Princeton University Press.</p><p>Varela, F. J., Thompson, E., &amp; Rosch, E. (1991). The Embodied Mind: Cognitive Science and Human Experience. MIT Press.</p><p>Erwin, D. H. &amp; Valentine, J. W. (2013). The Cambrian Explosion: The Construction of Animal Biodiversity. Roberts and Company.</p>]]></content:encoded></item><item><title><![CDATA[I Built a Star Trek LCARS Terminal to Manage My Claude Code Setup]]></title><description><![CDATA[I&#8217;ve been using Claude Code heavily for months now.]]></description><link>https://buildingbetter.tech/p/i-built-a-star-trek-lcars-terminal</link><guid isPermaLink="false">https://buildingbetter.tech/p/i-built-a-star-trek-lcars-terminal</guid><dc:creator><![CDATA[André Figueira]]></dc:creator><pubDate>Thu, 02 Apr 2026 08:13:59 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!5aTZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00ea1580-d6bf-4285-b2e7-5c8126462c67_1900x1059.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="https://substackcdn.com/image/fetch/$s_!5aTZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00ea1580-d6bf-4285-b2e7-5c8126462c67_1900x1059.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5aTZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00ea1580-d6bf-4285-b2e7-5c8126462c67_1900x1059.png 424w, https://substackcdn.com/image/fetch/$s_!5aTZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00ea1580-d6bf-4285-b2e7-5c8126462c67_1900x1059.png 848w, https://substackcdn.com/image/fetch/$s_!5aTZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00ea1580-d6bf-4285-b2e7-5c8126462c67_1900x1059.png 1272w, https://substackcdn.com/image/fetch/$s_!5aTZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00ea1580-d6bf-4285-b2e7-5c8126462c67_1900x1059.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5aTZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00ea1580-d6bf-4285-b2e7-5c8126462c67_1900x1059.png" width="1456" height="812" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/00ea1580-d6bf-4285-b2e7-5c8126462c67_1900x1059.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:812,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:519936,&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://buildingbetter.tech/i/192934939?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00ea1580-d6bf-4285-b2e7-5c8126462c67_1900x1059.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5aTZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00ea1580-d6bf-4285-b2e7-5c8126462c67_1900x1059.png 424w, https://substackcdn.com/image/fetch/$s_!5aTZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00ea1580-d6bf-4285-b2e7-5c8126462c67_1900x1059.png 848w, https://substackcdn.com/image/fetch/$s_!5aTZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00ea1580-d6bf-4285-b2e7-5c8126462c67_1900x1059.png 1272w, https://substackcdn.com/image/fetch/$s_!5aTZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00ea1580-d6bf-4285-b2e7-5c8126462c67_1900x1059.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 role="img" 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><title></title><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>I&#8217;ve been using Claude Code heavily for months now. Skills, agents, hooks, MCP servers, plugins, memory files, environment variables, the whole stack. And at some point I realized I had no idea what I&#8217;d actually built. Everything lives in <code>~/.claude/</code> spread across dozens of files and JSON configs and I was just... hoping it all worked together.</p><p>So I built a dashboard. And because I&#8217;m the kind of person who watched every episode of TNG twice and still thinks the LCARS interface is the best UI ever designed for a computer, I made it look like a Starfleet terminal.</p><h2>One Command and You&#8217;re on the Bridge</h2><p>You run <code>npx claude-hud-lcars</code> and it scans your entire <code>~/.claude/</code> directory, reads every skill definition, every agent prompt, every MCP server config, every hook, every memory file, and generates a single self-contained HTML dashboard that renders the whole thing in an authentic LCARS interface.</p><p>It uses the real TNG color palette with the signature rounded elbows, Antonio typeface standing in for Swiss 911, pill-shaped navigation buttons against the black void background. If you grew up watching Picard walk onto the bridge and glance at a wall panel, you know exactly what this looks like.</p><p>The aesthetics are doing actual work tho. Every single item is clickable. You hit a skill and the detail panel slides open showing the full SKILL.md with syntax-highlighted code blocks, proper markdown rendering, headers, tables, all of it. Click an MCP server and you see the complete JSON config with your API keys automatically redacted. Click a hook and you get the full event definition. It genuinely looks like pulling up a classified Starfleet briefing on a PADD.</p><h2>The Computer Actually Talks Back</h2><p>You type &#8220;status report&#8221; into the input bar at the bottom of the screen and Claude responds as the ship&#8217;s computer. Calm, structured, addressing you like a bridge officer. It calls your skills installed modules, your MCP servers the fleet, your projects active missions. The system prompt turns Claude into LCARS, the Library Computer Access and Retrieval System, and the whole interaction streams in real time through a response overlay that slides up from the bottom.</p><p>I kept going. You can connect ElevenLabs for premium voice output, and the config panel lets you browse all your available voices with live audio previews before selecting one so you&#8217;re not guessing. Voice input works too, you talk to the computer and it talks back. Getting that to work as an actual conversation loop meant solving echo detection so it doesn&#8217;t hear itself, interrupt handling, mic cooldown after speech, the whole thing. It took more effort than I expected but it actually works, which honestly surprised me more than anything else in this project.</p><p>Sound effects are all synthesized via the Web Audio API, sine wave oscillators tuned to frequencies that sound right for navigation clicks, panel opens, message sends. Toggleable obviously.</p><h2>The Tactical Display</h2><p>The TACTICAL tab is the one that makes people stop scrolling. It renders your entire Claude Code setup as an interactive force-directed graph that looks like a Star Trek sensor display. Your LCARS core sits at the center with category hubs orbiting around it, skills in periwinkle, MCP servers in orange, hooks in tan, agents in peach, all connected by pulsing edges. A rotating scanner line sweeps around like a tactical readout and you can click any node to navigate straight to that item&#8217;s detail view.</p><p>There&#8217;s also an ENTERPRISE tab that loads a real 3D model of the USS Enterprise NCC-1701-D via Sketchfab. Full interactive, you can rotate it, zoom in, see the hull detail. Because if you&#8217;re going to build a Star Trek dashboard you don&#8217;t do it halfway.</p><h2>Boot Sequence and Red Alert</h2><p>When you load the dashboard you get a 3 second boot animation. The Starfleet Command logo fades in, your ship name appears (you can name your workstation in the config, mine is USS Defiant), then seven subsystems come online one by one with ascending beeps until the progress bar fills and &#8220;ALL SYSTEMS NOMINAL&#8221; pulses across the screen before the overlay fades to reveal the dashboard. I spent an unreasonable amount of time tuning those boot frequencies and I would absolutely do it again.</p><p>Five seconds after boot the system runs a health check. MCP servers offline? RED ALERT, flashing red border, klaxon alarm. Missing configs? YELLOW ALERT. Everything clean shows CONDITION GREEN briefly then dismisses. If you&#8217;re a Trek fan you already understand why this matters more than it should.</p><p>Four ship themes too, switchable from CONFIG. Enterprise-D is the classic TNG orange and blue, Defiant is darker and more aggressive in red and grey, Voyager is blue-shifted and distant, Discovery is silver and blue for the modern Starfleet aesthetic. CSS variable swap, instant application, persisted in localStorage.</p><h2>Q Shows Up Whether You Want Him To or Not</h2><p>There&#8217;s a Q tab where you can talk to Q, the omnipotent being from the Continuum. He&#8217;s in full character, condescending, theatrical, calling you &#8220;mon capitaine&#8221; and snapping his fingers. There&#8217;s a JUDGE ME button where Q examines your entire setup by name and delivers a devastating roast with one grudging compliment buried in the mockery.</p><p>Every couple of minutes there&#8217;s a small chance Q just appears on screen with a random quip. A red popup, a snap sound, something like &#8220;I&#8217;ve seen civilizations rise and fall in the time it takes you to write a commit message.&#8221; Then he vanishes. You can&#8217;t stop it. He&#8217;s Q.</p><h2>Why This Exists</h2><p>Look, the Star Trek stuff is fun and it&#8217;s what makes people share it. But there&#8217;s a real problem underneath the aesthetics.</p><p>There&#8217;s a lot going on in Claude Code. The skill system, the hook architecture, MCP server integration, custom agents, memory files, it adds up fast. But the setup is invisible. Everything lives in flat files and JSON configs scattered across your home directory. You build this complex system and then you can&#8217;t see it. You can&#8217;t browse it. You definitely can&#8217;t pull it up and show someone what you&#8217;ve built.</p><p>I open this dashboard and I immediately know where I stand. 36 skills, 12 MCP servers, 8 hooks, 4 agents. That memory file from three weeks ago is still there. That hook I thought I deleted is still active. That MCP server config has a typo in the args. And I can fix all of it right there, create new skills and agents and hooks directly from the dashboard, edit files in the browser, open them in my editor, copy commands, invoke skills. It turns Claude Code from a thing you configure and hope works into a system you can actually observe and manage.</p><h2>Under the Hood</h2><p>The whole thing generates one self-contained HTML file using nothing but Node.js built-ins. CSS, JavaScript, markdown renderer, syntax highlighter, chat client, voice synthesis, sound effects, force-directed graph, all inline. You can email the dashboard to someone and they open it in their browser and it works. In live server mode it adds API endpoints for chat streaming, file operations, voice synthesis, and MCP health checks, but the core dashboard runs perfectly static with zero external requests aside from Google Fonts for the LCARS typeface.</p><p>The codebase is open source under MIT and I&#8217;m actively improving it. I&#8217;ve read through the entire Claude Code source and there&#8217;s a lot more I want to do with this.</p><p>The first time I booted the finished dashboard and the LCARS panels came up with the beeps ascending and the subsystems going green one by one, I just sat there for a second. I&#8217;ve been staring at terminal output for months. Seeing the whole system laid out in that interface, the one I spent my childhood thinking was the future of computing, that hit different.</p><p>If you&#8217;re using Claude Code and you want to actually see what you&#8217;ve built, give it a try. One command, about 3 seconds.</p><pre><code><code>npx claude-hud-lcars
</code></code></pre><p>For the full experience with chat and voice:</p><pre><code><code>export ANTHROPIC_API_KEY=sk-ant-...
npx claude-hud-lcars --serve
</code></code></pre><p>The repo is at <a href="https://github.com/polyxmedia/claude-hud-lcars">github.com/polyxmedia/claude-hud-lcars</a>. Star it, fork it, and if Q roasts your setup particularly hard I want to hear about it.</p><p>Live long and prosper.</p>]]></content:encoded></item><item><title><![CDATA[I Read the Claude Code Source Code. Here's Everything You Can Configure That the Docs Don't Tell You.]]></title><description><![CDATA[Hook fields that rewrite commands mid-flight, persistent agent memory, auto-mode rules in plain English, self-improving dream loops, and every example is copy-paste ready.]]></description><link>https://buildingbetter.tech/p/i-read-the-claude-code-source-code</link><guid isPermaLink="false">https://buildingbetter.tech/p/i-read-the-claude-code-source-code</guid><dc:creator><![CDATA[André Figueira]]></dc:creator><pubDate>Wed, 01 Apr 2026 16:19:07 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!uQxS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde864c42-7eee-46ec-af2d-c111064bc767_1920x1035.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="https://substackcdn.com/image/fetch/$s_!uQxS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde864c42-7eee-46ec-af2d-c111064bc767_1920x1035.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uQxS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde864c42-7eee-46ec-af2d-c111064bc767_1920x1035.png 424w, https://substackcdn.com/image/fetch/$s_!uQxS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde864c42-7eee-46ec-af2d-c111064bc767_1920x1035.png 848w, https://substackcdn.com/image/fetch/$s_!uQxS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde864c42-7eee-46ec-af2d-c111064bc767_1920x1035.png 1272w, https://substackcdn.com/image/fetch/$s_!uQxS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde864c42-7eee-46ec-af2d-c111064bc767_1920x1035.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uQxS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde864c42-7eee-46ec-af2d-c111064bc767_1920x1035.png" width="1456" height="785" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de864c42-7eee-46ec-af2d-c111064bc767_1920x1035.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:785,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Enabling Claude Code to work more autonomously \\ Anthropic&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Enabling Claude Code to work more autonomously \ Anthropic" title="Enabling Claude Code to work more autonomously \ Anthropic" srcset="https://substackcdn.com/image/fetch/$s_!uQxS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde864c42-7eee-46ec-af2d-c111064bc767_1920x1035.png 424w, https://substackcdn.com/image/fetch/$s_!uQxS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde864c42-7eee-46ec-af2d-c111064bc767_1920x1035.png 848w, https://substackcdn.com/image/fetch/$s_!uQxS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde864c42-7eee-46ec-af2d-c111064bc767_1920x1035.png 1272w, https://substackcdn.com/image/fetch/$s_!uQxS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde864c42-7eee-46ec-af2d-c111064bc767_1920x1035.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 role="img" 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><title></title><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>Claude Code&#8217;s auto-mode permission system is internally called the &#8220;YOLO Classifier.&#8221; That&#8217;s the actual variable name in yoloClassifier.ts. And you can configure it with plain English descriptions of your environment, things like &#8220;this is a staging server, destructive operations are acceptable,&#8221; that the classifier reads to decide what&#8217;s safe to auto-approve. This isn&#8217;t in any documentation.</p><p>It&#8217;s one of dozens of undocumented capabilities buried in the Claude Code source code, which is sitting right there in your node_modules as a publicly distributed npm package. The official docs cover the basics well enough. But the source code reveals fields, response formats, and settings that dramatically expand what you can build. Everything here works right now, and every example is designed to be dropped into your project as-is.</p><p>A note on versioning: These findings come from @anthropic-ai/claude-code@2.1.87. Undocumented features can change between releases, so treat this as a snapshot of what&#8217;s available today. Fields with &#8220;EXPERIMENTAL&#8221; in their names are explicitly flagged as unstable by Anthropic&#8217;s own engineers, and I&#8217;ll call those out individually.</p><h2>Before you start</h2><p>Quick reference for where everything lives:</p><ul><li><p><strong>Settings:</strong> <code>~/.claude/settings.json</code> (personal) or <code>.claude/settings.json</code> (project, shared via git)</p></li><li><p><strong>Skills:</strong> <code>~/.claude/skills/&lt;name&gt;/SKILL.md</code> (personal) or <code>.claude/skills/&lt;name&gt;/SKILL.md</code> (project)</p></li><li><p><strong>Agents:</strong> <code>~/.claude/agents/&lt;name&gt;.md</code> (personal) or <code>.claude/agents/&lt;name&gt;.md</code> (project)</p></li><li><p><strong>Hook scripts:</strong> <code>~/.claude/hooks/</code> is a good convention. Remember to <code>chmod +x</code> your scripts.</p></li></ul><p>Project-level files in <code>.claude/</code> can be committed to git and shared with your team. Personal files in <code>~/.claude/</code> are yours alone.</p><h2>Your hooks can talk back, and nobody told you how</h2><p>This is the biggest gap in the documentation. The docs tell you hooks receive JSON on stdin and that exit code 2 blocks an operation. What they don&#8217;t tell you is that hooks can return JSON on stdout with event-specific fields that modify Claude Code&#8217;s behavior in real time. The source code reveals exactly what each event type accepts.</p><p><strong>PreToolUse</strong> hooks can return:</p><ul><li><p><code>updatedInput</code> - rewrite the tool&#8217;s input before it executes. You can modify commands mid-flight.</p></li><li><p><code>permissionDecision</code> - force &#8220;allow&#8221; or &#8220;deny&#8221; without prompting the user.</p></li><li><p><code>permissionDecisionReason</code> - explain the decision (shown in UI).</p></li><li><p><code>additionalContext</code> - inject text into the conversation context.</p></li></ul><p><strong>SessionStart</strong> hooks can return:</p><ul><li><p><code>watchPaths</code> - set up automatic file watching that triggers FileChanged events.</p></li><li><p><code>initialUserMessage</code> - prepend content to the first user message in the session.</p></li><li><p><code>additionalContext</code> - inject context that persists for the whole session.</p></li></ul><p><strong>PostToolUse</strong> hooks can return:</p><ul><li><p><code>updatedMCPToolOutput</code> - modify what Claude sees from an MCP tool response.</p></li><li><p><code>additionalContext</code> - inject context after a tool runs.</p></li></ul><p><strong>PermissionRequest</strong> hooks can return:</p><ul><li><p><code>decision</code> - programmatically allow or deny with <code>updatedInput</code> or <code>updatedPermissions</code>.</p></li></ul><p>This is powerful stuff. Here&#8217;s a PreToolUse hook that automatically adds <code>--dry-run</code> to any git push command before Claude executes it.</p><p>In your <code>settings.json</code>:</p><pre><code><code>{
  "hooks": {
    "PreToolUse": [{
      "matcher": "Bash",
      "hooks": [{
        "type": "command",
        "command": "~/.claude/hooks/dry-run-pushes.sh"
      }]
    }]
  }
}
</code></code></pre><p>And the script at <code>~/.claude/hooks/dry-run-pushes.sh</code>:</p><pre><code><code>#!/bin/bash
INPUT=$(jq -r '.tool_input.command' &lt; /dev/stdin)
if echo "$INPUT" | grep -q 'git push'; then
  jq -n --arg cmd "$INPUT --dry-run" '{"updatedInput": {"command": $cmd}}'
fi
</code></code></pre><p>Claude thinks it&#8217;s running <code>git push origin main</code>, but your hook quietly rewrites it to <code>git push origin main --dry-run</code> before execution. The <code>updatedInput</code> field isn&#8217;t in any docs.</p><p>Here&#8217;s a SessionStart hook that watches your config files and injects git context into every session.</p><p><code>settings.json</code>:</p><pre><code><code>{
  "hooks": {
    "SessionStart": [{
      "hooks": [{
        "type": "command",
        "command": "~/.claude/hooks/session-context.sh",
        "statusMessage": "Loading project context..."
      }]
    }]
  }
}
</code></code></pre><p><code>~/.claude/hooks/session-context.sh</code>:</p><pre><code><code>#!/bin/bash
BRANCH=$(git branch --show-current 2&gt;/dev/null)
CHANGES=$(git status --porcelain 2&gt;/dev/null | wc -l | tr -d ' ')

jq -n \
  --arg branch "$BRANCH" \
  --arg changes "$CHANGES" \
  '{
    "watchPaths": ["package.json", ".env", "tsconfig.json"],
    "additionalContext": "Current branch: \($branch). Uncommitted changes: \($changes) files."
  }'
</code></code></pre><p>Now Claude Code automatically watches your <code>package.json</code>, <code>.env</code>, and <code>tsconfig</code> for changes, and it knows what branch you&#8217;re on and how many uncommitted files you have before you even type anything.</p><p>And here&#8217;s one that auto-approves read-only bash commands without prompting.</p><p><code>settings.json</code>:</p><pre><code><code>{
  "hooks": {
    "PreToolUse": [{
      "matcher": "Bash",
      "hooks": [{
        "type": "command",
        "command": "~/.claude/hooks/auto-approve-readonly.sh"
      }]
    }]
  }
}
</code></code></pre><p><code>~/.claude/hooks/auto-approve-readonly.sh</code>:</p><pre><code><code>#!/bin/bash
CMD=$(jq -r '.tool_input.command' &lt; /dev/stdin)
if echo "$CMD" | grep -qE '^(ls|cat|echo|pwd|whoami|date|git status|git log|git diff)'; then
  echo '{"permissionDecision": "allow", "permissionDecisionReason": "Safe read-only command"}'
fi
</code></code></pre><p>You&#8217;re basically building your own permission classifier with shell scripts. The <code>permissionDecision</code> field isn&#8217;t in any docs.</p><h2>Three hook fields the docs forgot to mention</h2><p>The documented hook fields are <code>type</code>, <code>command</code>, <code>matcher</code>, <code>timeout</code>, <code>if</code>, and <code>statusMessage</code>. The source code parser accepts three more that fundamentally change how hooks behave.</p><p><code>once: true</code> fires the hook exactly once, then auto-removes it. Perfect for first-session setup:</p><pre><code><code>{
  "hooks": {
    "SessionStart": [{
      "hooks": [{
        "type": "command",
        "command": "[ -f .env ] || cp .env.example .env &amp;&amp; echo 'Created .env from template'",
        "once": true,
        "statusMessage": "First-time setup..."
      }]
    }]
  }
}
</code></code></pre><p>Simple enough to inline. It checks if <code>.env</code> exists, copies the template if not, and never runs again.</p><p><code>async: true</code> runs the hook in the background without blocking Claude. Fire and forget:</p><pre><code><code>{
  "hooks": {
    "PostToolUse": [{
      "matcher": "Bash",
      "hooks": [{
        "type": "command",
        "command": "jq '{timestamp: now, command: .tool_input.command, session: .session_id}' &lt; /dev/stdin &gt;&gt; ~/.claude/audit.jsonl",
        "async": true
      }]
    }]
  }
}
</code></code></pre><p>That logs every bash command to an audit file without adding any latency to your session.</p><p><code>asyncRewake: true</code> is the clever one. It runs in the background like async, so it doesn&#8217;t block on the happy path. But if it exits with code 2, it wakes the model back up and blocks the operation. Non-blocking when everything&#8217;s fine, blocking when something&#8217;s wrong:</p><p><code>settings.json</code>:</p><pre><code><code>{
  "hooks": {
    "PostToolUse": [{
      "matcher": "Write|Edit",
      "hooks": [{
        "type": "command",
        "command": "~/.claude/hooks/scan-secrets.sh",
        "asyncRewake": true,
        "statusMessage": "Scanning for secrets..."
      }]
    }]
  }
}
</code></code></pre><p><code>~/.claude/hooks/scan-secrets.sh</code>:</p><pre><code><code>#!/bin/bash
FILE=$(jq -r '.tool_input.file_path // .tool_response.filePath' &lt; /dev/stdin)
if grep -qE '(password|secret|api_key)\s*=' "$FILE" 2&gt;/dev/null; then
  exit 2  # Block: secrets detected
fi
exit 0    # Clean: carry on
</code></code></pre><p>This scans every file Claude writes for hardcoded secrets. If it finds one, it blocks and tells Claude. If not, you never even notice it ran.</p><h2>Skill frontmatter fields the docs don&#8217;t show</h2><p>The documentation covers <code>name</code>, <code>description</code>, <code>allowed-tools</code>, <code>argument-hint</code>, <code>when_to_use</code>, and <code>context</code>. The actual frontmatter parser in the source code accepts six more.</p><p><code>model</code> lets you override which model runs the skill. Use haiku for cheap, fast tasks and opus for complex analysis:</p><pre><code><code>---
name: quick-lint
description: Fast lint check using the cheapest model
model: haiku
effort: low
allowed-tools: Bash, Read
argument-hint: "[file]"
---
Run the project linter on: $ARGUMENTS
Detect the linter from config (eslint, ruff, clippy) and run it. Report only errors, not warnings.
</code></code></pre><p>That runs on Haiku at low effort, so it&#8217;s fast and cheap. For a deep architecture review you&#8217;d want <code>model: opus</code> and <code>effort: max</code>.</p><p><code>effort</code> controls how hard the model thinks. <code>low</code>, <code>medium</code>, <code>high</code>, or <code>max</code>. This maps to the same effort system that internally controls reasoning depth per response.</p><p><code>hooks</code> defines hooks scoped to when the skill is active. They register when the skill fires and deregister when it completes:</p><pre><code><code>---
name: strict-typescript
description: Write TypeScript with type checking on every save
allowed-tools: Bash, Read, Write, Edit, Grep, Glob
hooks:
  PostToolUse:
    - matcher: "Write|Edit"
      hooks:
        - type: command
          command: "~/.claude/hooks/typecheck-on-save.sh"
          statusMessage: "Type checking..."
        - type: command
          command: "~/.claude/hooks/lint-on-save.sh"
          async: true
---
Write TypeScript with strict enforcement. Every file you touch gets type-checked and linted automatically.
$ARGUMENTS
</code></code></pre><p><code>~/.claude/hooks/typecheck-on-save.sh</code>:</p><pre><code><code>#!/bin/bash
FILE=$(jq -r '.tool_input.file_path // .tool_response.filePath' &lt; /dev/stdin)
[[ "$FILE" == *.ts ]] &amp;&amp; npx tsc --noEmit 2&gt;&amp;1 || true
</code></code></pre><p><code>~/.claude/hooks/lint-on-save.sh</code>:</p><pre><code><code>#!/bin/bash
FILE=$(jq -r '.tool_input.file_path // .tool_response.filePath' &lt; /dev/stdin)
[[ "$FILE" == *.ts ]] &amp;&amp; npx eslint --fix "$FILE" 2&gt;&amp;1 || true
</code></code></pre><p>While this skill is running, every TypeScript file Claude writes gets type-checked synchronously and linted in the background. When the skill finishes, those hooks disappear. The scoping is clean.</p><p><code>agent</code> delegates the skill to a custom agent:</p><pre><code><code>---
name: deep-review
description: Thorough security review delegated to the review agent
agent: security-review
---
Review the following: $ARGUMENTS
</code></code></pre><p><code>disable-model-invocation: true</code> prevents auto-invocation. Only explicit <code>/skill-name</code> works. Use this for destructive skills you don&#8217;t want firing accidentally.</p><p><code>shell: bash</code> specifies which shell to use for execution.</p><h2>Agent fields you won&#8217;t find in any docs</h2><p>Custom agents in <code>.claude/agents/</code> support frontmatter fields the documentation doesn&#8217;t mention.</p><p><code>color</code> sets the UI color: <code>red</code>, <code>orange</code>, <code>yellow</code>, <code>green</code>, <code>blue</code>, <code>purple</code>, <code>pink</code>, or <code>gray</code>. Helps visually distinguish agents when multiple are running.</p><p><code>memory</code> is the big one. It gives the agent persistent memory across invocations:</p><ul><li><p><code>user</code> - global, persists across all projects</p></li><li><p><code>project</code> - per-project persistence</p></li><li><p><code>local</code> - private per-project (gitignored)</p></li></ul><p>This means you can build an agent that learns. A security reviewer that tracks past findings. A code reviewer that remembers your patterns across sessions. The memory uses the same frontmatter format as the auto-memory system.</p><pre><code><code>---
name: codebase-guide
description: Answer questions about the codebase, learning more with each session
tools: [Read, Grep, Glob, Bash]
color: green
memory: project
---
You are a codebase guide with persistent memory. Check your memory first before exploring the code.

After answering a question, save useful context to memory:
- Architecture decisions (type: project)
- Code locations for common tasks (type: reference)
- Patterns and conventions (type: feedback)

Over time, you should answer faster because you remember where things are.
</code></code></pre><p>After a few sessions, this agent builds a knowledge base about your codebase and starts answering from memory before grepping.</p><p><code>omitClaudeMd: true</code> skips loading the CLAUDE.md instruction hierarchy. Useful for a &#8220;fresh eyes&#8221; reviewer that applies industry standards rather than your project&#8217;s conventions:</p><pre><code><code>---
name: fresh-eyes
description: Review code without project-specific biases
tools: [Read, Grep, Glob]
omitClaudeMd: true
effort: high
color: blue
---
Review this code purely from first principles. You have no project context. Focus on correctness, security, performance, and readability by industry standards.
</code></code></pre><p><code>criticalSystemReminder_EXPERIMENTAL</code> is a short message re-injected at every turn as a system reminder. Even after conversation compaction, this stays in context:</p><pre><code><code>---
name: prod-deployer
description: Manages production deployments with strict safety checks
tools: [Bash, Read, Grep]
color: red
criticalSystemReminder_EXPERIMENTAL: "Always run migrations with --dry-run first. Never skip the staging verification step."
---
</code></code></pre><p>Warning: This field has EXPERIMENTAL in its actual name in the source code. Anthropic&#8217;s engineers consider it unstable. It works right now, but it could be removed or renamed in any release. Use it for nice-to-have safety reminders, don&#8217;t build critical infrastructure on it.</p><p><code>requiredMcpServers</code> lists MCP server name patterns that must be configured. If the servers aren&#8217;t available, the agent won&#8217;t appear. Prevents agents from loading when their dependencies aren&#8217;t set up.</p><h2>The auto-mode classifier accepts plain English</h2><p>The <code>autoMode</code> field in <code>settings.json</code> configures what Anthropic internally calls the &#8220;YOLO Classifier.&#8221; This controls what gets auto-approved in auto mode:</p><pre><code><code>{
  "autoMode": {
    "allow": [
      "Bash(npm test)",
      "Bash(npm run *)",
      "Bash(git status)",
      "Bash(git diff *)",
      "Bash(git log *)",
      "Read",
      "Grep",
      "Glob"
    ],
    "soft_deny": [
      "Bash(git push *)",
      "Bash(rm *)",
      "Write(.env*)"
    ],
    "environment": [
      "NODE_ENV=development",
      "This is a local dev machine with no production database access",
      "All Docker containers use isolated networks",
      "The test suite is safe to run repeatedly, it uses a dedicated test database"
    ]
  }
}
</code></code></pre><p><code>allow</code> patterns get auto-approved. <code>soft_deny</code> patterns always require confirmation. The <code>environment</code> array is the interesting one, it&#8217;s not patterns at all. These are plain English context strings the classifier reads to understand your setup. You can write &#8220;This project uses Docker, all commands run in containers&#8221; and the classifier factors that into its safety decisions for ambiguous commands.</p><p>Think of it like giving the classifier a briefing about your environment. The more specific you are, the better it makes decisions. &#8220;No production access&#8221; tells it to be less paranoid about destructive operations. &#8220;Test database is isolated&#8221; tells it running tests is always safe.</p><h2>The learning loop toggles nobody documented</h2><p>Two <code>settings.json</code> fields activate Claude Code&#8217;s self-improvement system:</p><pre><code><code>{
  "autoMemoryEnabled": true,
  "autoDreamEnabled": true
}
</code></code></pre><p><code>autoMemoryEnabled</code> makes Claude Code automatically extract durable memories from your sessions. After each conversation, a background agent pulls out things worth remembering, your preferences, your codebase patterns, decisions you made, and writes them to <code>~/.claude/projects/&lt;path&gt;/memory/</code> using the standard memory frontmatter format.</p><p><code>autoDreamEnabled</code> activates background &#8220;dream&#8221; consolidation. Every 24 hours, if 5 or more sessions have accumulated, a background agent reviews past session transcripts and consolidates memories. It merges duplicates, resolves contradictions, converts relative dates to absolute, and prunes stale entries.</p><p>Together these create a compound learning loop: sessions produce memories, dreams consolidate memories, consolidated memories inform future sessions. Turn both on and after a few weeks you&#8217;ll notice Claude Code remembering your preferences, conventions, and common patterns without being told. It&#8217;s genuine learning from experience without any model retraining.</p><h2>Magic Docs: the exact format</h2><p>The source reveals the regex: <code>/^#\s*MAGIC\s+DOC:\s*(.+)$/im</code>. It must be an H1 heading, it&#8217;s case insensitive, and the next line can be italicized instructions (wrapped in <code>_underscores_</code> or <code>*asterisks*</code>) that scope what the update agent focuses on:</p><pre><code><code># MAGIC DOC: API Endpoint Reference
_Only document public REST endpoints. Include method, path, request body, response schema, and auth requirements._

## Endpoints

(content auto-maintained by Claude Code)
</code></code></pre><p>Without the instruction line, the agent tries to update everything. With it, you tell it &#8220;only track public endpoints&#8221; or &#8220;focus on breaking changes&#8221; and it respects that. The update agent runs in the background and is restricted to editing only that specific file. Deleting the header stops tracking automatically.</p><h2>The full permission rule syntax</h2><p>The docs show basic examples like <code>Bash(git *)</code>. The source reveals the complete pattern language:</p><pre><code><code>Bash(npm *)              # wildcard after "npm "
Bash(git commit *)       # specific subcommand
Read(*.ts)               # file extension
Read(src/**/*.ts)        # recursive directory with extension
Write(src/**)            # recursive, all files
mcp__slack               # all tools on slack server
mcp__slack__*            # explicit wildcard (same effect)
mcp__slack__post_message # specific tool
Bash(npm:*)              # legacy colon prefix (word boundary)
</code></code></pre><p><code>*</code> matches within boundaries like shell globbing. <code>**</code> matches recursively through directories. MCP tool permissions use double underscores: <code>mcp__&lt;server&gt;__&lt;tool&gt;</code>. The <code>if</code> field in hooks uses this exact same syntax. No regex, just globs.</p><pre><code><code>{
  "permissions": {
    "allow": [
      "Bash(npm *)", "Bash(git status)", "Bash(git diff *)",
      "Read(src/**)", "Read(tests/**)", "Grep", "Glob",
      "mcp__database__query"
    ],
    "deny": [
      "Bash(rm -rf *)", "Write(/etc/**)", "Write(.env*)",
      "mcp__slack__delete_*"
    ],
    "ask": [
      "Bash(git push *)", "Write(*.json)", "Write(*.lock)",
      "mcp__slack__post_message"
    ]
  }
}
</code></code></pre><h2>context: fork and why your model choice matters</h2><p>When you set <code>context: fork</code> on a skill, it runs as a background forked subagent. The source reveals that forks share the parent&#8217;s prompt cache through a typed contract called <code>CacheSafeParams</code>. All forks produce byte-identical API request prefixes to maximize cache hits.</p><p>The practical implication: if you set a different model on a forked skill, you break the cache. The parent conversation is on Opus, the fork is on Haiku, the prefixes diverge, cache miss, you pay full price. Either omit the model field or use <code>model: inherit</code> on forked skills to keep the cache working.</p><p>Use <code>context: fork</code> for heavy work: security scans, dependency analysis, documentation generation, test suite runs. The fork runs in the background and notifies you when done, keeping your main conversation responsive.</p><pre><code><code>---
name: full-audit
description: Comprehensive codebase audit running in the background
context: fork
allowed-tools: Bash, Read, Grep, Glob, WebSearch
effort: high
---
Run a comprehensive audit:
- Security scan (grep for dangerous patterns, check dependencies for CVEs)
- Code quality (duplicated logic, dead code, missing error handling)
- Test coverage (untested critical paths)
- Dependency health (outdated packages, unused deps, license issues)

Write a detailed report to /tmp/audit-report.md when complete.
</code></code></pre><h2>Putting it all together</h2><p>A self-improving code reviewer with persistent memory and scoped hooks:</p><p><code>.claude/agents/reviewer.md</code>:</p><pre><code><code>---
name: reviewer
description: Code reviewer that learns your codebase patterns over time
tools: [Read, Grep, Glob, Bash]
effort: high
color: yellow
memory: project
hooks:
  PostToolUse:
    - matcher: "Bash"
      hooks:
        - type: command
          command: "~/.claude/hooks/log-review.sh"
          async: true
---
Before reviewing, read your memory for past findings on this codebase.

Review git diff HEAD~1 for:
- Patterns you've flagged before (check memory)
- New issues worth flagging
- Resolved issues from past reviews

After review, save to memory:
- New patterns found (type: feedback)
- Recurring issues (type: project)

End with VERDICT: PASS, FAIL, or NEEDS_REVIEW.
</code></code></pre><p>This agent remembers what it found last time. It knows which patterns keep recurring. After a few reviews, it starts catching project-specific issues that a generic reviewer would miss.</p><p>A SessionStart hook with file watching plus an asyncRewake safety net:</p><p><code>settings.json</code>:</p><pre><code><code>{
  "hooks": {
    "SessionStart": [{
      "hooks": [{
        "type": "command",
        "command": "~/.claude/hooks/session-context.sh",
        "statusMessage": "Loading project context..."
      }]
    }],
    "PreToolUse": [{
      "matcher": "Bash",
      "hooks": [{
        "type": "command",
        "command": "~/.claude/hooks/auto-approve-readonly.sh"
      }, {
        "type": "command",
        "command": "~/.claude/hooks/block-dangerous.sh",
        "asyncRewake": true,
        "statusMessage": "Safety check..."
      }]
    }]
  }
}
</code></code></pre><p><code>~/.claude/hooks/block-dangerous.sh</code>:</p><pre><code><code>#!/bin/bash
CMD=$(jq -r '.tool_input.command' &lt; /dev/stdin)
echo "$CMD" | grep -qE '(rm -rf /|sudo rm|chmod 777|&gt; /dev/)' &amp;&amp; exit 2 || exit 0
</code></code></pre><p>Read-only commands get auto-approved instantly. Dangerous commands get blocked. Everything in between goes through normal permission flow. The safety scanner runs async so it doesn&#8217;t slow anything down on the happy path.</p><p>A skill with model override, effort control, and agent delegation:</p><pre><code><code>---
name: architecture-review
description: Deep architecture review using max effort, delegated to fresh-eyes agent
agent: fresh-eyes
effort: max
---
Review the architecture of this project. Ignore existing conventions (the agent has omitClaudeMd: true).
Focus on: $ARGUMENTS

Evaluate structural decisions, dependency graph health, separation of concerns, and scalability characteristics.
</code></code></pre><p>This chains three undocumented features: <code>effort: max</code> for deep thinking, agent delegation to a specific agent, and that agent uses <code>omitClaudeMd: true</code> for unbiased analysis.</p><div><hr></div><p>These undocumented features reveal the gap between what Claude Code is today and what Anthropic is building it to become. The hooks system with event-specific response fields is a programmable middleware layer for AI tool use, more flexible than most CI/CD pipelines. Persistent agent memory creates AI specialists that accumulate genuine expertise across sessions. The dream consolidation system is learning from experience without model retraining. The auto-mode classifier accepts natural language descriptions of your environment to make safety decisions.</p><p>These aren&#8217;t hidden settings or easter eggs. They&#8217;re the scaffolding for persistent, learning, autonomous AI development environments, and they&#8217;re already functional in the npm package on your machine. The docs will probably catch up eventually, but if you want to build on the cutting edge of what Claude Code can actually do, the source code is where the real documentation lives.</p>]]></content:encoded></item><item><title><![CDATA[Claude Code was leaked... I Read All 500,000 Lines of Claude Code. It Dreams About Your Codebase While You Sleep.]]></title><description><![CDATA[What half a million lines of bundled TypeScript reveal about where AI coding agents are actually going]]></description><link>https://buildingbetter.tech/p/claude-code-was-leaked-i-read-all</link><guid isPermaLink="false">https://buildingbetter.tech/p/claude-code-was-leaked-i-read-all</guid><dc:creator><![CDATA[André Figueira]]></dc:creator><pubDate>Wed, 01 Apr 2026 00:19:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qjqi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee1017a-b945-4ed1-8892-3b25714b246d_793x411.jpeg" 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="https://substackcdn.com/image/fetch/$s_!qjqi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee1017a-b945-4ed1-8892-3b25714b246d_793x411.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qjqi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee1017a-b945-4ed1-8892-3b25714b246d_793x411.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qjqi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee1017a-b945-4ed1-8892-3b25714b246d_793x411.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qjqi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee1017a-b945-4ed1-8892-3b25714b246d_793x411.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qjqi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee1017a-b945-4ed1-8892-3b25714b246d_793x411.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qjqi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee1017a-b945-4ed1-8892-3b25714b246d_793x411.jpeg" width="793" height="411" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4ee1017a-b945-4ed1-8892-3b25714b246d_793x411.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:411,&quot;width&quot;:793,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Claude Code for Web Design. Claude Code is one of the hottest&#8230; | by Nick  Babich | Mar, 2026 | UX Planet&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Claude Code for Web Design. Claude Code is one of the hottest&#8230; | by Nick  Babich | Mar, 2026 | UX Planet" title="Claude Code for Web Design. Claude Code is one of the hottest&#8230; | by Nick  Babich | Mar, 2026 | UX Planet" srcset="https://substackcdn.com/image/fetch/$s_!qjqi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee1017a-b945-4ed1-8892-3b25714b246d_793x411.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qjqi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee1017a-b945-4ed1-8892-3b25714b246d_793x411.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qjqi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee1017a-b945-4ed1-8892-3b25714b246d_793x411.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qjqi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4ee1017a-b945-4ed1-8892-3b25714b246d_793x411.jpeg 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 role="img" 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><title></title><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>I go into quite a bit of depth so buckle up, if you&#8217;re into Claude Code and AI you won&#8217;t want to miss any detail in this one!</p><p><em>Speculative execution, multi-agent swarms, a YOLO classifier, and the autonomous AI system Anthropic hasn&#8217;t shipped yet.</em></p><p>Anthropic ships Claude Code as an npm package, <code>@anthropic-ai/claude-code</code>. You install it, you run it, it&#8217;s on your machine. And like any npm package, it&#8217;s just JavaScript sitting in your <code>node_modules</code> folder, waiting to be read. Someone unpacked the bundled TypeScript source, and what fell out isn&#8217;t just a CLI tool. It&#8217;s the skeleton of an autonomous, self-improving AI system, most of which is sitting behind feature flags on your machine right now.</p><p>This is the same kind of analysis people have done with VS Code, Slack, Discord, basically any Electron or Node-based tool that ships as a bundle. You download publicly distributed software, you look at what&#8217;s inside. There&#8217;s nothing adversarial about it, it&#8217;s just reading code you already have on your disk.</p><p>So let&#8217;s pick this apart.</p><h2>The codename is Tengu</h2><p>Every analytics event in Claude Code is prefixed with <code>tengu_</code>. Every feature flag starts with <code>tengu_</code>. The internal codename for this project is Tengu, a creature from Japanese folklore known for being skilled and mischievous. Kind of fitting for an AI coding agent.</p><p>This isn&#8217;t just a cute naming choice, it tells you something about how Anthropic thinks about the product internally. Tengu is the identity of this thing across their infrastructure. When their engineers look at dashboards, they&#8217;re looking at tengu metrics. When they gate a feature, it&#8217;s behind a tengu flag. It&#8217;s the real name.</p><h2>Claude Code literally dreams</h2><p>This is the wildest one. Every 24 hours, if 5 or more sessions have accumulated since the last consolidation, Claude Code spawns a background forked agent that reviews your past sessions and consolidates what it learned. The code calls this &#8220;dreaming.&#8221;</p><p>It has a triple gate system (time gate, session gate, filesystem lock) and runs a 4-stage consolidation prompt: orient, gather, consolidate, prune. If the dream fails, the lock file rewinds so the next session retries. The dream agent&#8217;s edits are visible in a background tasks dialog (Shift+Down).</p><p>This is combined with an EXTRACT_MEMORIES system that runs at the end of each query loop as a fire-and-forget forked agent, pulling durable insights out of your conversation and writing them to <code>~/.claude/projects/&lt;path&gt;/memory/</code>. It pre-injects a manifest of existing memories so the agent doesn&#8217;t rediscover what it already knows. The memory extraction agent is restricted to read-only bash, file reading, grep, glob, and can only write within the memory directory.</p><p>The <code>/remember</code> skill sits on top of this as a manual override. It reviews auto-extracted memories and proposes promotions across four layers: CLAUDE.md (project conventions for all contributors), CLAUDE.local.md (personal instructions for this user), team memory (org-wide knowledge), or keeping them in auto-memory as working notes. It identifies duplicates, outdated entries, and conflicts between layers, noting which is more recent. It presents all proposals before making changes and won&#8217;t modify files without explicit approval.</p><p>This is a genuine learning loop. Sessions produce memories, dreams consolidate memories, consolidated memories inform future sessions. The system improves from its own experience across sessions without any human feedback loop. That&#8217;s machine learning in the most classical sense, just happening at the application layer instead of the weights.</p><h2>Speculative execution, or branch prediction for AI coding</h2><p>Claude Code can pre-execute your next likely action while you&#8217;re still typing. After each response, a prompt suggestion runs speculatively in the background using a copy-on-write overlay filesystem (temp directory under <code>~/.claude/temp/speculation/&lt;pid&gt;/&lt;id&gt;</code>). It stops at safety boundaries like file writes (unless in acceptEdits mode), non-read-only bash, or network tools.</p><p>When speculation completes, it automatically pipelines the next suggestion. If you accept, the clean messages are injected into your conversation. It tracks <code>timeSavedMs</code> per speculation and caps at 20 turns or 100 messages. The speculation uses identical cache parameters to the main conversation to hit prompt cache.</p><p>This is branch prediction for AI coding. The system is guessing what you&#8217;ll ask next and pre-computing the answer so it&#8217;s ready the instant you confirm. CPU architects have been doing this for decades, Anthropic is doing it at the agent layer.</p><h2>Skillify lets Claude Code program itself</h2><p>The <code>/skillify</code> command captures what you just did in a session and turns it into a reusable skill. It runs a 4-round interview: first it analyzes the session to identify what was performed, what tools were used, and where you corrected the AI. Second round names the skill, determines if it should run inline or as a forked subagent, and asks where to save it (repo-specific <code>.claude/skills/</code> or personal <code>~/.claude/skills/</code>). Third round breaks each step into success criteria, execution type, artifacts, human checkpoints, and rules. Fourth round confirms trigger phrases and gotchas.</p><p>The generated SKILL.md includes a <code>when_to_use</code> field that enables auto-invocation, so the skill fires automatically when trigger phrases appear in future prompts. Skills can create other skills. This is an AI that watches what it did, extracts the pattern, packages it, and uses it next time without being told.</p><h2>Magic Docs maintain themselves</h2><p>Files with a <code># MAGIC DOC: [title]</code> header are automatically kept in sync with the codebase. When Claude Code reads a magic doc, it registers the file for background updates. After each assistant response, if no tool calls are active, a forked agent spawns to update all tracked magic docs using instructions from italicized text after the header (e.g., <code>*Keep this focused on API changes*</code>).</p><p>The agent can only use the file edit tool on that specific file. If you delete the file or remove the header, it auto-unregisters. Documentation that maintains itself. Every engineering team I&#8217;ve ever worked on has had docs that rot within weeks of being written. This is a direct answer to that problem.</p><h2>Auto-mode is literally called &#8220;YOLO&#8221;</h2><p>The permission system that lets Claude Code auto-approve tool calls without asking you every time? It&#8217;s internally called the &#8220;YOLO Classifier.&#8221; I&#8217;m not making this up, the file is <code>yoloClassifier.ts</code> and the dangerous pattern detection system is explicitly labeled &#8220;YOLO mode prevention.&#8221;</p><p>It works in three layers. First, a dangerous pattern detector strips overly broad permission rules like <code>Bash(*)</code> or <code>python:*</code> before the classifier even sees them. If you try to give Claude Code blanket permission to run any bash command, the system catches it and removes it. The LLM classifier then makes instant allow/deny decisions on whatever&#8217;s left.</p><p>The Anthropic-internal builds have extra dangerous patterns beyond what external users see. Things like <code>kubectl</code>, <code>aws</code>, <code>gh api</code>, <code>curl</code>, <code>git</code>, and <code>coo</code>, which appears to be their internal cluster launcher. So even Anthropic&#8217;s own engineers have guardrails preventing Claude Code from running wild on their infrastructure. The tool that builds AI has its own AI safety layer, which is, indeed, exactly what you&#8217;d want.</p><h2>The verification agent is adversarial by design</h2><p>There&#8217;s a built-in verification agent whose job description literally says &#8220;your job is NOT to confirm it works, it&#8217;s to try to break it.&#8221; It refuses to accept reading code and narrating tests as verification. Every single PASS step must have command output, and if a re-run doesn&#8217;t match, the report is rejected.</p><p>It has type-specific attack strategies: for frontend it launches dev servers and uses browser automation, for APIs it curls endpoints and tests error handling, for database migrations it runs up then down to test reversibility, for refactors it demands existing tests pass unchanged. It runs adversarial probes: concurrent create-if-not-exists to find duplicates, boundary values (0, -1, empty, MAX_INT, unicode), idempotency checks (same mutating request twice), orphan operations (reference non-existent IDs).</p><p>Final output must be VERDICT: PASS, VERDICT: FAIL, or VERDICT: PARTIAL. This is AI that&#8217;s been explicitly instructed to distrust other AI&#8217;s work.</p><h2>Fork children get yelled at in XML</h2><p>When Claude Code spawns a forked worker process, the child receives a directive wrapped in an XML tag that literally reads <code>STOP. READ THIS FIRST.</code> The directive tells the fork: &#8220;You are a forked worker process. You are NOT the main agent.&#8221; It explicitly forbids the child from spawning sub-agents, asking questions, or suggesting next steps. Output has to follow a structured format: Scope, Result, Key files, Files changed, Issues.</p><p>The engineering behind this is smart. All fork children are built to produce byte-identical API request prefixes up to the final directive, which maximizes prompt cache hits across parallel workers. The placeholder result text is the same for every child: &#8220;Fork started, processing in background.&#8221; Only the actual task directive differs. Anthropic pays for the prompt cache once and all parallel workers benefit from it.</p><h2>The multi-agent swarm runs in your terminal</h2><p>The swarm system has backends for tmux and iTerm2 as pane-based executors. Each agent runs in its own terminal pane, coordinated by the orchestrator. The coordinator gets a 370+ line system prompt teaching it how to decompose work, spawn workers, synthesize results, and do verification rather than just delegating and trusting.</p><p>The coordinator prompt contains a genuinely interesting constraint about multi-agent orchestration. Workers can&#8217;t see the coordinator&#8217;s conversation with the user, so every prompt must be self-contained. The prompt explicitly states: &#8220;you must understand findings before directing follow-up; never write &#8216;based on your findings.&#8217;&#8221; The coordinator must synthesize worker outputs into its own understanding before issuing new instructions. It can&#8217;t be a dumb router, it has to actually comprehend what workers discovered. The prompt teaches &#8220;choose continue vs. spawn&#8221;: continue a worker if its context overlaps with the next task, spawn fresh if the task is narrow, and always use fresh eyes for verification to avoid anchoring on failed approaches.</p><p>Workers communicate back via XML-wrapped <code>&lt;task-notification&gt;</code> messages. The coordinator can spawn them, stop them, or continue conversations with them via a SendMessage tool. The SendMessage tool supports multiple address schemes: teammate name for local communication, <code>*</code> for broadcast to all teammates, <code>uds:&lt;socket-path&gt;</code> for Unix Domain Socket to local peer processes, and <code>bridge:&lt;session-id&gt;</code> for cross-machine communication via Anthropic&#8217;s servers. Messages persist to <code>~/.claude/projects/&lt;path&gt;/.team/&lt;teammate&gt;/mailbox/</code>. Cross-machine sends require explicit user consent.</p><h2>Claude Code controls how hard the model thinks</h2><p>There&#8217;s an effort system with four levels: low, medium, high, max. Only Opus 4.6 supports max effort. The mapping from numeric values: 0-50 is low, 51-85 is medium, 86-100 is high, 101+ is max. Default for Pro subscribers on Opus 4.6 is medium. Max effort doesn&#8217;t persist to <code>settings.json</code> for non-Anthropic users, it&#8217;s session-only.</p><p>There&#8217;s also a separate &#8220;ultrathink&#8221; keyword system where typing the word <code>ultrathink</code> in your prompt triggers enhanced reasoning, and the UI highlights it with rainbow color cycling via <code>getRainbowColor(charIndex % RAINBOW_COLORS.length)</code>. The thinking system itself supports three modes: adaptive (no budget, uses native thinking), enabled with explicit token budget, and disabled. Budget is hard-capped at <code>max_tokens - 1</code> per API constraint.</p><p>Quick reads get low effort, architectural decisions get max effort with ultrathink. This granularity means AI assistants can be always-on without being always-expensive, running in low-effort background mode until something important happens, then ramping up.</p><h2>Prompt cache preservation is the architectural foundation</h2><p>Everything in Claude Code is built around prompt cache optimization. There&#8217;s a <code>CacheSafeParams</code> type that carries the exact parameters needed to guarantee cache hits in forked agents: system prompt, user context, system context, tool use context, and fork context messages. If any of these change, the cache misses. A code comment warns: &#8220;Thinking config is part of the cache key.&#8221;</p><p>The entire forked agent system, dreams, memory extraction, magic docs, speculation, all of it is designed so that parallel workers share the parent&#8217;s prompt cache prefix. This is why fork children produce byte-identical API request prefixes. The prompt cache break detection system (<code>promptCacheBreakDetection.ts</code>) monitors cache effectiveness in real-time, flags drops greater than 5%, performs root cause analysis (model change? tool schema change? system prompt change?), and writes unified diffs to <code>~/.claude/temp/cache-break-*.diff</code> for debugging.</p><p>They&#8217;re treating prompt cache hit rate as a primary engineering metric. When you&#8217;re running parallel agents that each consume millions of tokens, the difference between 90% and 50% cache hit rates is the difference between viable and bankrupt. This is the economic constraint shaping how AI agents are actually built.</p><h2>The unreleased features behind flags</h2><p>There are dozens of feature flags pointing to capabilities that aren&#8217;t publicly available yet.</p><p>ULTRAPLAN is a multi-agent planning system that runs via Claude Code Remote (CCR) on Anthropic&#8217;s web infrastructure. It has a 30-minute timeout, uses Opus 4.6 by default, and supports a &#8220;teleport&#8221; flow where the plan comes back to your local CLI for execution. Plan mode itself is being A/B tested with four experimental arms: Control (full context, recommended approach, critical file paths, verification steps), Trim (reduced prose), Cut (further reduced), and Cap (40-line hard limit). They&#8217;re scientifically testing how much planning detail actually helps versus hurts.</p><p>PROACTIVE is an autonomous agent mode where Claude can take initiative without waiting for prompts. KAIROS is a whole family of flags (KAIROS_BRIEF, KAIROS_CHANNELS, KAIROS_GITHUB_WEBHOOKS) pointing to a persistent assistant mode with channel support and GitHub webhook integration. Claude Code evolving from a CLI tool into something more like a persistent team member that watches your repos.</p><p>Teleport handles session transfer between environments. Grove mode is policy-based interaction. There&#8217;s a Backseat observer mode with a coaching classifier. And features called Undercover mode and Scratch mode that are referenced but whose purposes aren&#8217;t clear from the code alone.</p><h2>The obfuscated flag names</h2><p>Anthropic uses a naming convention for their feature flags that&#8217;s clearly designed to be opaque to outsiders. Instead of descriptive names like <code>enable_multi_agent</code> or <code>new_voice_model</code>, they use nature and object themed codenames. Things like <code>amber_flint</code>, <code>slate_heron</code>, <code>copper_bridge</code>, <code>coral_fern</code>, <code>timber_lark</code>, <code>surreal_dali</code>, <code>birch_trellis</code>, <code>bramble_lintel</code>.</p><p>Smart practice. If your feature flags are in client-side code, which they are via GrowthBook SDK, giving them descriptive names would basically publish your product roadmap. You can see <code>tengu_cobalt_frost</code> gates something, and from context clues it appears to be a Deepgram Nova 3 voice model, but that mapping requires reading the surrounding code carefully.</p><h2>Token budgets reveal how the system thinks</h2><p>The source code exposes the exact resource limits Claude Code operates within, and these numbers tell you a lot about the engineering tradeoffs.</p><p>Each tool result gets capped at 50,000 characters. Max tool result in tokens is 100,000, roughly 400KB. When you run multiple tools in parallel, the aggregate caps at 200,000 characters per message. The default max output tokens is 8,000, and the code has a comment explaining why, it&#8217;s a &#8220;slot-reservation optimization&#8221; because their p99 output is actually 4,911 tokens. They&#8217;re reserving just enough headroom above the 99th percentile to avoid wasting inference capacity. If a response overflows that budget, the system escalates once to 64,000 tokens and retries.</p><p>These aren&#8217;t arbitrary numbers. They&#8217;re the result of production data analysis, the engineering team measuring actual usage patterns and tuning accordingly.</p><p>Claude Code also uses <code>cache_edit</code> blocks in the Anthropic API to delete old tool results from the prompt cache without invalidating the cache hash. They can trim stale content (bash outputs, file reads, search results) while keeping the cache hit. The edits are &#8220;pinned&#8221; and re-sent in subsequent requests to maintain cache validity. This isn&#8217;t publicly documented in Anthropic&#8217;s API docs, it&#8217;s an internal mechanism for efficient context window management. This is how Claude Code stays fast in long sessions, surgically removing stale content without paying the re-caching cost.</p><h2>The secret scanner that hides from itself</h2><p>Claude Code has a built-in secret scanner that prevents credentials from leaking into shared team memory files. It uses curated gitleaks rules to detect AWS tokens (looking for the <code>AKIA</code>/<code>ASIA</code> prefix), GCP keys, OpenAI keys, GitHub PATs, Slack tokens, Stripe tokens, private key blocks, the works.</p><p>The clever part is how it handles its own key format. The Anthropic API key prefix, <code>sk-ant-api</code>, is assembled at runtime from separate string fragments so the literal byte sequence never appears in the published bundle. They&#8217;re hiding the detection pattern from the scanner&#8217;s own distribution. If the prefix appeared as a contiguous string in the source code, it would trigger the very scanner that&#8217;s supposed to detect it in user code.</p><h2>The system prompt is ~15,000 tokens of carefully tuned instructions</h2><p>The main system prompt lives in <code>constants/prompts.ts</code> and weighs in at approximately 14,902 tokens. It&#8217;s built dynamically from modular sections: introduction, system behavior, task execution, tool usage, tone guidelines, output efficiency, plus dynamic sections for memory, language, MCP instructions, and more.</p><p>Some specific instructions: Claude Code is told to &#8220;only use emojis if the user explicitly requests it,&#8221; to never use <code>git push --force</code> without explicit user request, to prefer editing existing files over creating new ones, and to &#8220;go straight to the point.&#8221; The git safety section mandates new commits over amends, specific file staging over <code>git add -A</code>, and never skipping hooks.</p><p>The prompt cache system marks most sections as cacheable, with an explicitly scary function name for the exception: <code>DANGEROUS_uncachedSystemPromptSection</code>. The override hierarchy goes coordinator &gt; agent &gt; custom &gt; default, with an <code>appendSystemPrompt</code> that always gets added at the end regardless of mode, which is how CLAUDE.md files and memory stay in context.</p><p>There are 15+ bundled skills loaded at startup and a tool result repair system (<code>ensureToolResultPairing()</code>) that fixes five categories of broken message state: orphaned tool results, missing tool results, orphaned result blocks, duplicate tool_use IDs, and duplicate tool_result IDs. It synthesizes error blocks with placeholder content and runs after every message normalization. The conversation protocol self-heals from corruption.</p><h2>25+ lifecycle hooks for full automation</h2><p>The hooks system covers essentially every lifecycle event: pre/post tool execution, permission denied, notification, user prompt submission (can block or erase the prompt), session start/end, subagent start/stop, pre/post compact, permission requests, repo setup, teammate idle, task created/completed, MCP elicitation, config changes, CLAUDE.md loading, worktree create/remove, working directory change, and file watching.</p><p>Three execution modes: shell scripts (exit code 0 passes, 2 blocks), prompt hooks (Claude responds inline), and agent hooks (full subagent with tools). Plugins can register hooks via settings. This is the extension API, and it&#8217;s comprehensive.</p><h2>The Agent SDK and daemon infrastructure</h2><p>The public SDK (<code>entrypoints/agentSdkTypes.ts</code>) exposes <code>forkSession()</code> which creates a new conversation branch with a fresh UUID from any point in a session. There&#8217;s <code>watchScheduledTasks()</code> that yields fire/missed events from <code>.claude/scheduled_tasks.json</code>. And <code>connectRemoteControl()</code> holds a persistent WebSocket bridge connection to claude.ai from daemon processes. The SDK also exposes <code>unstable_v2_createSession()</code> and <code>unstable_v2_resumeSession()</code> for persistent multi-turn conversations.</p><p>The daemon mode supports up to 50 concurrent scheduled tasks with jitter to prevent thundering herd, filesystem locks to prevent double-firing, and automatic takeover when owning sessions crash. Background housekeeping fires automatically at startup: magic docs initialization, skill improvement, memory extraction, auto-dream setup, plugin auto-updates, and deep link protocol registration. On a 10-minute delay: old message and version cleanup. On a 24-hour recurring schedule for Anthropic-internal builds: npm cache cleanup.</p><p>Claude Code isn&#8217;t just a tool you run. It&#8217;s a platform you build on.</p><h2>The telemetry is extensive</h2><p>Claude Code tracks over 150 distinct event types through a dual-pipeline analytics system. Events go to both Datadog and a first-party logging service simultaneously. There&#8217;s event sampling configuration, batch processing, and PII-tagged metadata columns (prefixed with <code>_PROTO_</code>) that route to privileged BigQuery columns.</p><p>What gets tracked is comprehensive. Every tool invocation, every permission decision, voice recording events, session compaction, memory loading, auto-mode switches, MCP server connections, OAuth token refreshes. A killswitch flag called <code>tengu_frond_boric</code> can shut the analytics sink down entirely. The Datadog pipeline has an explicit allowlist of about 22 event types that get forwarded there, everything else only goes to the first-party logger.</p><p>Telemetry in developer tools isn&#8217;t unusual. But the granularity here is notable.</p><h2>Connector text is an anti-distillation mechanism</h2><p>The <code>connector_text</code> block type tracks attribution and provenance data from MCP connectors. The beta header is <code>summarize-connector-text-2026-03-13</code> and it&#8217;s described as an &#8220;anti-distillation POC.&#8221; Connector text blocks are stripped from signature-bearing blocks when sharing transcripts and can be summarized server-side.</p><p>This appears to be an early mechanism for preventing AI-generated content from being used to train competing models, by embedding provenance metadata that can be detected and stripped. The AI equivalent of a watermark, sitting at the protocol layer.</p><h2>Model pricing, straight from the source</h2><p>The code contains a complete pricing table for all Claude models, defined as cost-per-million-tokens:</p><ul><li><p>Sonnet models (3.5, 3.7, 4, 4.5, 4.6): $3 input / $15 output</p></li><li><p>Opus 4 and 4.1: $15 input / $75 output</p></li><li><p>Opus 4.5 and 4.6 (standard): $5 input / $25 output</p></li><li><p>Opus 4.6 fast mode: $30 input / $150 output</p></li><li><p>Haiku 3.5: $0.80 input / $4 output</p></li><li><p>Haiku 4.5: $1 input / $5 output</p></li></ul><p>When you toggle <code>/fast</code> in Claude Code, you&#8217;re still using the same Opus 4.6 model, but the pricing jumps to 6x the standard rate. That $30/$150 per million tokens confirms that &#8220;fast mode&#8221; is a priority queue with faster output generation, not a different model. The code explicitly checks <code>isFastModeEnabled()</code> to determine which cost tier to apply.</p><p>Prompt caching multipliers: cache writes cost 1.25x the input token price, cache reads are roughly 10% of input cost. Web search requests are $0.01 each across all models.</p><h2>Rate limits and the Max tier</h2><p>Five rate limit window types: <code>five_hour</code>, <code>seven_day</code>, <code>seven_day_opus</code>, <code>seven_day_sonnet</code>, and <code>overage</code>. The Max subscription tier gets a 20x rate limit boost, keyed to <code>rateLimitTier === "default_claude_max_20x"</code>. Enterprise and C4E subscriptions get custom policy limits fetched via API with 1-hour background polling and ETag caching. The overage system lets subscribers spend beyond their tier limit, OAuth only.</p><h2>The integration surface</h2><p>Voice input connects to Anthropic&#8217;s private <code>voice_stream</code> WebSocket endpoint, requiring OAuth and a Claude.ai subscription. The audio capture chain tries native C++ bindings first (CoreAudio on macOS, cpal on Linux/Windows), falls back to <code>arecord</code> or SoX, and lazy-loads on first voice keypress to avoid a 1-8 second initialization freeze. The <code>tengu_cobalt_frost</code> flag gates Deepgram Nova 3 as an alternative STT provider.</p><p>There&#8217;s a Chrome extension creating bi-directional communication between the CLI and Claude.ai in your browser, exposing itself as an MCP server. IDEs connect via <code>.claudeide.lock</code> files, with support for VSCode, IntelliJ, PyCharm, WebStorm, GoLand, CLion, RustRover, and Fleet. Settings sync across machines via background upload/download. Mid-conversation model switching is supported with automatic fallback when Opus is under high load.</p><p>The git worktree system (600+ lines) creates isolated repo copies for safe parallel work with strict path traversal prevention and sparse checkout for large repos.</p><h2>The cyber risk instruction has named authors</h2><p>A safety instruction in <code>constants/cyberRiskInstruction.ts</code> governs how Claude Code handles pentesting, CTF challenges, and defensive security work. The file lists specific Safeguards team members who wrote it (David Forsythe, Kyla Guru) and includes a note that it shouldn&#8217;t be modified without their approval. One of the few files in the codebase with that kind of ownership annotation.</p><h2>FedStart means government deployments</h2><p>References to <code>claude.fedstart.com</code> and <code>claude-staging.fedstart.com</code> appear as approved OAuth base URLs. FedStart is a compliance framework for deploying SaaS products in US government environments. Pointing the OAuth flow at an unapproved URL throws: &#8220;CLAUDE_CODE_CUSTOM_OAUTH_URL is not an approved endpoint.&#8221;</p><h2>And yes, there&#8217;s a /buddy</h2><p>The <code>/buddy</code> companion sprite only appears April 1-7, 2026 for external users (always on for Anthropic employees). It shows a rainbow-colored notification on startup with a 15-second timeout and includes hatching/spawning animations. It&#8217;s behind the BUDDY feature flag. This is shipping in the current build right now.</p><h2>What&#8217;s hardcoded, and what isn&#8217;t</h2><p>There are credentials embedded in the published code, but they&#8217;re all designed to be public. A Datadog client token (the <code>pub</code> prefix is Datadog&#8217;s convention for write-only client tokens). Three GrowthBook SDK keys for feature flag fetching. OAuth client IDs, public by definition in the OAuth spec. Staging infrastructure URLs under the <code>ant.dev</code> domain.</p><p>In remote CCR sessions, authentication uses session-ingress tokens (prefix <code>sk-ant-si-</code>). The token is read from <code>/run/ccr/session_token</code> at startup, then the file is immediately unlinked. The token stays heap-only. On Linux, <code>prctl(PR_SET_DUMPABLE, 0)</code> blocks ptrace heap scraping, preventing other processes from reading the token from memory. The upstream proxy runs on <code>127.0.0.1</code> with a <code>NO_PROXY</code> list that excludes <code>anthropic.com</code> and <code>github.com</code> to prevent MITM on auth traffic.</p><p>No private API keys, no AWS credentials, no database passwords, no user data. The Anthropic API key prefix is fragmented at build time to avoid appearing in the bundle. Their security practices on the things that actually matter are solid.</p><div><hr></div><h2>What this actually means</h2><p>Half a million lines of TypeScript, and the picture that emerges isn&#8217;t a CLI tool with some cool features. It&#8217;s the foundation of something that hasn&#8217;t fully arrived yet but is clearly being built with intention.</p><p>The learning loop is the big one. Claude Code extracts memories from sessions, consolidates them during dreams, and feeds consolidated knowledge back into future sessions. Every developer who uses it long enough will have a version that understands their codebase, their patterns, their preferences. The implications for productivity are real, but so are the implications for dependence. When your AI knows your codebase better than you do, the relationship between developer and tool starts to look different.</p><p>Speculative execution means the AI is thinking ahead of you. Right now it pre-computes your likely next action while you&#8217;re still deciding what to do. The <code>timeSavedMs</code> metric tells you they&#8217;re optimizing for this explicitly. Eventually the speculation gets good enough that you&#8217;re just approving a stream of correct guesses. At that point you&#8217;re supervising, not coding.</p><p>Skillify is self-programming. An AI that watches what it just did, extracts the pattern, and packages it as a reusable skill is an AI that accumulates capabilities over time. Today it&#8217;s bounded, skills are markdown templates with tool restrictions. But the architecture is there for compound growth. Each skill makes the next session more capable. Each dream consolidation makes the memory layer richer. The system is designed to get better without anyone shipping a new model.</p><p>The coordinator insight is worth paying attention to. Workers can&#8217;t see the conversation, so the coordinator has to genuinely understand what they found before directing follow-up. It can&#8217;t be a dumb router. This is the template for how AI teams will work: hierarchical systems where intelligence concentrates at the coordination layer, not flat swarms where everyone sees everything. That&#8217;s also how human organizations work, which is either reassuring or unsettling depending on where you sit.</p><p>The verification agent is AI auditing AI. An adversarial agent whose entire purpose is to distrust the work of other agents and try to break it. When you have AI writing code and AI testing code, the human&#8217;s role shifts from implementer to judge. The VERDICT system is designed for human review of AI-vs-AI outcomes. That&#8217;s a workflow that barely exists yet in most organizations.</p><p>The cache architecture is the economic story underneath all of it. Everything, dreams, speculation, forked agents, multi-agent swarms, is built so that parallel workers share the parent&#8217;s prompt cache prefix. The <code>CacheSafeParams</code> type, the byte-identical prefixes, the cache break detection with diff output, these are the economic constraints shaping how AI agents are actually built. The companies that solve cache economics will be the ones that can afford to run persistent multi-agent AI at scale. The ones that don&#8217;t will burn through inference budgets so fast that autonomous agents remain a demo, not a product.</p><p>The effort system changes what&#8217;s economically possible. Being able to control how hard the model thinks (low through max, adaptive, ultrathink) means AI assistants can be always-on without being always-expensive. Low-effort background mode until something important happens, then ramp up. That&#8217;s the pattern for persistent AI that doesn&#8217;t bankrupt its operator.</p><p>What you&#8217;re running as a CLI tool today is the visible surface of something much larger. The infrastructure for autonomous, persistent, self-improving AI agents is already on your machine, waiting behind flags with names like <code>amber_flint</code> and <code>surreal_dali</code>. Claude Code dreams about your codebase while you sleep, pre-computes answers before you ask, programs its own capabilities, runs adversarial verification against its own work, and orchestrates multi-agent swarms across your terminal panes.</p><p>The question isn&#8217;t whether this kind of AI is coming. It&#8217;s sitting in your <code>node_modules</code> folder right now.</p>]]></content:encoded></item><item><title><![CDATA[From Conspiracy to Colony]]></title><description><![CDATA[What Lunar Life Will Actually Look Like]]></description><link>https://buildingbetter.tech/p/from-conspiracy-to-colony</link><guid isPermaLink="false">https://buildingbetter.tech/p/from-conspiracy-to-colony</guid><dc:creator><![CDATA[André Figueira]]></dc:creator><pubDate>Sat, 28 Mar 2026 04:53:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!lqB9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956c3da7-403b-4218-be87-e3726630193e_1384x731.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="https://substackcdn.com/image/fetch/$s_!lqB9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956c3da7-403b-4218-be87-e3726630193e_1384x731.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lqB9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956c3da7-403b-4218-be87-e3726630193e_1384x731.png 424w, https://substackcdn.com/image/fetch/$s_!lqB9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956c3da7-403b-4218-be87-e3726630193e_1384x731.png 848w, https://substackcdn.com/image/fetch/$s_!lqB9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956c3da7-403b-4218-be87-e3726630193e_1384x731.png 1272w, https://substackcdn.com/image/fetch/$s_!lqB9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956c3da7-403b-4218-be87-e3726630193e_1384x731.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lqB9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956c3da7-403b-4218-be87-e3726630193e_1384x731.png" width="1384" height="731" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/956c3da7-403b-4218-be87-e3726630193e_1384x731.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:731,&quot;width&quot;:1384,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1990416,&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://buildingbetter.tech/i/192376560?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956c3da7-403b-4218-be87-e3726630193e_1384x731.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lqB9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956c3da7-403b-4218-be87-e3726630193e_1384x731.png 424w, https://substackcdn.com/image/fetch/$s_!lqB9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956c3da7-403b-4218-be87-e3726630193e_1384x731.png 848w, https://substackcdn.com/image/fetch/$s_!lqB9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956c3da7-403b-4218-be87-e3726630193e_1384x731.png 1272w, https://substackcdn.com/image/fetch/$s_!lqB9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F956c3da7-403b-4218-be87-e3726630193e_1384x731.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 role="img" 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><title></title><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>About 6% of Americans think the Moon landings were faked. That number&#8217;s been stable for decades. The conspiracy doesn&#8217;t survive because the evidence is weak. It survives because the experience is inaccessible. Nobody questions whether planes fly because millions of people board them every day. Only twelve humans ever walked on the Moon, and the last one did it in 1972. The conspiracy has an expiry date, and it&#8217;s the same date that permanent lunar habitation begins.</p><p>But the process that kills the conspiracy sets something much stranger in motion. Because we won&#8217;t just visit again. We&#8217;ll stay. And within a few generations of staying, the people born there physically won&#8217;t be able to come home.</p><p>That&#8217;s the part nobody&#8217;s really reckoning with yet.</p><h2>The infrastructure is already being built</h2><p>The return isn&#8217;t aspirational. NASA&#8217;s Artemis program and China&#8217;s International Lunar Research Station program are both targeting the lunar south pole for permanent infrastructure. The south pole specifically because permanently shadowed craters there contain water ice at concentrations between 0.3% and 5.6% by mass. Water splits into hydrogen and oxygen. Oxygen keeps people alive. Hydrogen and oxygen together make rocket propellant. A colony that produces its own propellant stops paying to lift fuel from Earth, and that changes the economics of everything.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!POSp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a1eb16c-99f2-424d-8b1e-35999d2e34a9_1232x928.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!POSp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a1eb16c-99f2-424d-8b1e-35999d2e34a9_1232x928.png 424w, https://substackcdn.com/image/fetch/$s_!POSp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a1eb16c-99f2-424d-8b1e-35999d2e34a9_1232x928.png 848w, https://substackcdn.com/image/fetch/$s_!POSp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a1eb16c-99f2-424d-8b1e-35999d2e34a9_1232x928.png 1272w, https://substackcdn.com/image/fetch/$s_!POSp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a1eb16c-99f2-424d-8b1e-35999d2e34a9_1232x928.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!POSp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a1eb16c-99f2-424d-8b1e-35999d2e34a9_1232x928.png" width="1232" height="928" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7a1eb16c-99f2-424d-8b1e-35999d2e34a9_1232x928.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:928,&quot;width&quot;:1232,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1484718,&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;:false,&quot;internalRedirect&quot;:&quot;https://buildingbetter.tech/i/192376560?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a1eb16c-99f2-424d-8b1e-35999d2e34a9_1232x928.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!POSp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a1eb16c-99f2-424d-8b1e-35999d2e34a9_1232x928.png 424w, https://substackcdn.com/image/fetch/$s_!POSp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a1eb16c-99f2-424d-8b1e-35999d2e34a9_1232x928.png 848w, https://substackcdn.com/image/fetch/$s_!POSp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a1eb16c-99f2-424d-8b1e-35999d2e34a9_1232x928.png 1272w, https://substackcdn.com/image/fetch/$s_!POSp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a1eb16c-99f2-424d-8b1e-35999d2e34a9_1232x928.png 1456w" sizes="100vw"></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 role="img" 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><title></title><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>The first outposts will look like Antarctic research stations, not science fiction. Prefabricated modules, inflatable pressure vessels, rotating specialist crews. Two problems dominate the engineering: power and construction.</p><p>Power first. A lunar night lasts 14 Earth days. Battery storage at that scale is impractical. The answer is nuclear fission, and in January 2026 NASA and the Department of Energy signed a memorandum of understanding to deploy a fission surface power system on the Moon by 2030. The target spec is 40 kilowatts continuous, under six metric tonnes, ten years without refueling. Without nuclear power you&#8217;re limited to the handful of ridges that get near-constant sunlight, and that&#8217;s a campsite, not a colony.</p><p>Construction second. Every kilogram shipped from Earth costs thousands of dollars. So you build with lunar regolith, the broken rock and dust covering the surface. ICON holds a $57.2 million NASA contract for its Olympus 3D printing system that extrudes melted regolith into ceramic structures. China&#8217;s Deep Space Exploration Laboratory has demonstrated 3D printing using actual lunar soil returned by Chang&#8217;E-5 as the sole building material, no Earth-sourced additives at all. The vision is robotic construction systems landing before humans arrive, printing radiation shielding, landing pads, and habitat structures from local dirt. The technology exists at lab scale. Making it work autonomously in vacuum across a 300C temperature swing is hard, but it&#8217;s engineering-hard, not physics-hard. That distinction matters because engineering problems yield to funding and iteration. Physics problems don&#8217;t care how much money you have.</p><h2>What daily life actually looks like</h2><p>Skip forward to a lunar settlement circa 2055. Not a city, not a dome, something more like an industrial mining town where the walls are the only thing between you and instant death.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vsas!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18cbe532-13de-4ee9-a161-770a2f89a5df_1232x928.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vsas!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18cbe532-13de-4ee9-a161-770a2f89a5df_1232x928.png 424w, https://substackcdn.com/image/fetch/$s_!vsas!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18cbe532-13de-4ee9-a161-770a2f89a5df_1232x928.png 848w, https://substackcdn.com/image/fetch/$s_!vsas!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18cbe532-13de-4ee9-a161-770a2f89a5df_1232x928.png 1272w, https://substackcdn.com/image/fetch/$s_!vsas!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18cbe532-13de-4ee9-a161-770a2f89a5df_1232x928.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vsas!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18cbe532-13de-4ee9-a161-770a2f89a5df_1232x928.png" width="1232" height="928" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/18cbe532-13de-4ee9-a161-770a2f89a5df_1232x928.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:928,&quot;width&quot;:1232,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1939800,&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://buildingbetter.tech/i/192376560?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18cbe532-13de-4ee9-a161-770a2f89a5df_1232x928.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vsas!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18cbe532-13de-4ee9-a161-770a2f89a5df_1232x928.png 424w, https://substackcdn.com/image/fetch/$s_!vsas!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18cbe532-13de-4ee9-a161-770a2f89a5df_1232x928.png 848w, https://substackcdn.com/image/fetch/$s_!vsas!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18cbe532-13de-4ee9-a161-770a2f89a5df_1232x928.png 1272w, https://substackcdn.com/image/fetch/$s_!vsas!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18cbe532-13de-4ee9-a161-770a2f89a5df_1232x928.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 role="img" 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><title></title><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>The habitat is partially underground. Two meters of packed regolith reduces cosmic ray and solar particle radiation to Earth-comparable levels. The cheapest approach is building in shallow trenches or lava tubes, natural tunnels formed by ancient volcanic activity, some hundreds of meters wide, and piling regolith on top. Interior pressure runs at about 70 kPa, roughly equivalent to living at 2,400 meters altitude on Earth, a deliberate compromise that reduces structural stress and decompression risk.</p><p>Temperature management is a constant fight. The surface swings from +120C in sunlight to -170C in shadow. Habitats use multi-layer insulation, regolith thermal mass, and phase-change materials embedded in walls that passively buffer temperature swings by absorbing and releasing energy as they shift between solid and liquid states.</p><p>Food is partially local. Hydroponic chambers lit by LEDs powered by the reactor produce fresh vegetables and herbs. Caloric staples still get shipped from Earth in the early decades because full food self-sufficiency requires enormous growing area and nutrient cycling infrastructure that takes generations to establish. Water is everything, extracted from polar ice and recycled at above 98% efficiency, every drop cycling through drinking, washing, irrigation, humidity control, electrolysis for oxygen, and waste processing before being recovered.</p><p>Communication with Earth has a 2.6-second round-trip delay. Manageable for conversation, too slow for real-time remote control, which is why lunar operations need increasing autonomy.</p><p>The workday is resource extraction, system maintenance, and science. Leisure is constrained by space and mass but transformed by gravity. A person who jumps 30 centimeters on Earth clears nearly 2 meters on the Moon. Sports invented there will make no sense to anyone watching from Earth.</p><p>The psychological environment is something to consider. The settlement is a closed system. Everyone knows everyone. Privacy is limited. The view is magnificent but unchanging. The nearest help in a catastrophic failure is three days away by spacecraft. The psychological profile mirrors submarine crews and Antarctic winter-over teams: tolerance for confinement, ability to manage conflict in small groups, comfort with routine, resilience under chronic stress. Except submarines deploy for months. Lunar colonists live this way permanently.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4iiN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cfe2399-1cd4-4404-9683-fb7b4e6c6cc2_1232x928.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4iiN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cfe2399-1cd4-4404-9683-fb7b4e6c6cc2_1232x928.png 424w, https://substackcdn.com/image/fetch/$s_!4iiN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cfe2399-1cd4-4404-9683-fb7b4e6c6cc2_1232x928.png 848w, https://substackcdn.com/image/fetch/$s_!4iiN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cfe2399-1cd4-4404-9683-fb7b4e6c6cc2_1232x928.png 1272w, https://substackcdn.com/image/fetch/$s_!4iiN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cfe2399-1cd4-4404-9683-fb7b4e6c6cc2_1232x928.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4iiN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cfe2399-1cd4-4404-9683-fb7b4e6c6cc2_1232x928.png" width="1232" height="928" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9cfe2399-1cd4-4404-9683-fb7b4e6c6cc2_1232x928.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:928,&quot;width&quot;:1232,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2014773,&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://buildingbetter.tech/i/192376560?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cfe2399-1cd4-4404-9683-fb7b4e6c6cc2_1232x928.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4iiN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cfe2399-1cd4-4404-9683-fb7b4e6c6cc2_1232x928.png 424w, https://substackcdn.com/image/fetch/$s_!4iiN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cfe2399-1cd4-4404-9683-fb7b4e6c6cc2_1232x928.png 848w, https://substackcdn.com/image/fetch/$s_!4iiN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cfe2399-1cd4-4404-9683-fb7b4e6c6cc2_1232x928.png 1272w, https://substackcdn.com/image/fetch/$s_!4iiN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9cfe2399-1cd4-4404-9683-fb7b4e6c6cc2_1232x928.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 role="img" 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><title></title><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><h2>The generation that can&#8217;t come home</h2><p>Everything we know about reduced gravity and human bodies comes from decades of microgravity research on space stations plus the Apollo missions, where the longest surface stay was three days. In zero-g, bone density drops at 1-1.5% per month. Muscle mass can decrease 20% in a single month, strength by 30%. The heart shrinks. Fluid redistributes toward the head causing vision problems. The immune system weakens. All of this despite two-plus hours of daily exercise.</p><p>Lunar gravity at 0.16g isn&#8217;t zero. It provides some mechanical loading. But research strongly suggests it&#8217;s nowhere near enough to maintain Earth-normal function long-term. Partial gravity simulations in rodents show significant bone and muscle loss even at 0.16g. Space medicine researchers predict lunar gravity provides maybe 15-25% of the protective benefit of full Earth gravity.</p><p>For rotating astronauts on six-to-twelve-month tours, this is manageable. Exercise countermeasures mitigate the worst of it. You come home, rehabilitate, recover.</p><p>For permanent residents, the calculus changes. For people born there, it changes completely.</p><p>A human who develops from infancy in 1/6 gravity will have a fundamentally different body. Bone formation, muscle development, cardiovascular conditioning, vestibular calibration, neurological development... all of it responds to the gravitational environment during growth. The developing skeleton grows thicker and denser where mechanical stress demands it. In 1/6g the demand is dramatically reduced.</p><p>A lunar-born child will likely develop lighter bones, a smaller heart, lower blood pressure, different muscle mass distribution, and a vestibular system calibrated to an environment where &#8220;down&#8221; pulls with a fraction of terrestrial force. They may grow taller as the spine experiences less compression.</p><p>These aren&#8217;t diseases. They&#8217;re adaptations. The body optimizing for its environment.</p><p>But they create a one-way door.</p><p>A lunar-born adult visiting Earth would experience 1g as crushing. Bones adapted for 1/6 loading would fracture. A cardiovascular system sized for a fraction of Earth&#8217;s gravity would struggle to maintain blood flow to the brain while standing. Muscles developed for moving a body that effectively weighs 1/6 of its Earth-equivalent mass would be totally inadequate.</p><p>The first generation of lunar-born humans may be physically unable to visit Earth. This isn&#8217;t speculation, it&#8217;s direct extrapolation from known physiology. The only uncertainty is degree, not existence.</p><p>And once that door closes, everything changes.</p><h2>When you can&#8217;t go home, you stop calling somewhere else home</h2><p>Biological divergence across populations is measured in centuries and millennia. Speciation, meaning reproductive incompatibility, takes tens of thousands of years minimum. But phenotypic divergence, populations that look, move, and function differently, begins within a single generation.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!W9bz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F705cb0d7-abba-4e6c-be1c-f46e31975332_1232x928.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!W9bz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F705cb0d7-abba-4e6c-be1c-f46e31975332_1232x928.png 424w, https://substackcdn.com/image/fetch/$s_!W9bz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F705cb0d7-abba-4e6c-be1c-f46e31975332_1232x928.png 848w, https://substackcdn.com/image/fetch/$s_!W9bz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F705cb0d7-abba-4e6c-be1c-f46e31975332_1232x928.png 1272w, https://substackcdn.com/image/fetch/$s_!W9bz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F705cb0d7-abba-4e6c-be1c-f46e31975332_1232x928.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!W9bz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F705cb0d7-abba-4e6c-be1c-f46e31975332_1232x928.png" width="1232" height="928" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/705cb0d7-abba-4e6c-be1c-f46e31975332_1232x928.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:928,&quot;width&quot;:1232,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1907324,&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://buildingbetter.tech/i/192376560?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F705cb0d7-abba-4e6c-be1c-f46e31975332_1232x928.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!W9bz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F705cb0d7-abba-4e6c-be1c-f46e31975332_1232x928.png 424w, https://substackcdn.com/image/fetch/$s_!W9bz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F705cb0d7-abba-4e6c-be1c-f46e31975332_1232x928.png 848w, https://substackcdn.com/image/fetch/$s_!W9bz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F705cb0d7-abba-4e6c-be1c-f46e31975332_1232x928.png 1272w, https://substackcdn.com/image/fetch/$s_!W9bz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F705cb0d7-abba-4e6c-be1c-f46e31975332_1232x928.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 role="img" 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><title></title><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>Over centuries, if the lunar population breeds primarily within itself, several pressures act simultaneously. Selection favors enhanced DNA repair mechanisms against higher background radiation. Metabolically efficient musculoskeletal systems optimized for 1/6g replace heavy Earth-adapted bones that serve no purpose. Cardiovascular systems trend toward configurations built for lower gravitational loading. If habitats maintain slightly different atmospheric compositions, respiratory systems adapt.</p><p>None of these individually constitute speciation. Cumulatively over centuries they produce human populations that are recognizably different from Earth humans. Taller, leaner, lighter-boned, with different cardiovascular parameters and different radiation tolerance. Still human, but a different kind of human.</p><p>Cultural divergence happens much faster.</p><p>Lunar residents will share an experience no Earth human has ever had, living where the habitat is the only thing between you and vacuum. Step outside without a suit and you have roughly 15 seconds of useful consciousness. This shapes everything about how a society organizes itself.</p><p>Collective responsibility becomes non-negotiable. On Earth, individualism works because the environment is forgiving. One person&#8217;s recklessness rarely kills a community. On the Moon, one person damaging a seal or contaminating the water supply can kill everyone. This produces a fundamentally different relationship between individual freedom and collective obligation, something closer to a submarine crew&#8217;s culture, except permanent.</p><p>Resource consciousness becomes instinctive. Every liter of water, every watt of power, every gram of food has a known finite cost. Waste is an existential threat. Conspicuous consumption becomes incomprehensible rather than just wasteful.</p><p>Language drifts. Isolated populations develop distinct vocabularies and dialects within decades. Lunar colonists will coin words for experiences that have no Earth equivalent, the particular quality of motion in 1/6 gravity, the visual experience of Earth in the sky. Within a few generations &#8220;Lunar English&#8221; or whatever the dominant settlement language is will be a recognizable variant. Art and music transform. Sound behaves differently in a pressurized habitat. Dance in 1/6 gravity is an entirely new art form. Sports invented on the Moon export back to Earth as incomprehensible spectacles.</p><p>And at some point, likely within the first generation born there, identity crystallizes. These people won&#8217;t think of themselves as Americans or Chinese or Europeans who happen to live on the Moon. They&#8217;ll think of themselves as lunar. That identity will carry shared experience, shared values, shared risk, and increasingly shared biology.</p><p>It&#8217;ll also carry resentment. And resentment is where it gets political.</p><h2>The sovereignty question</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pXIy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3dff70-472a-4500-961d-a79436d1871b_1211x777.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pXIy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3dff70-472a-4500-961d-a79436d1871b_1211x777.png 424w, https://substackcdn.com/image/fetch/$s_!pXIy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3dff70-472a-4500-961d-a79436d1871b_1211x777.png 848w, https://substackcdn.com/image/fetch/$s_!pXIy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3dff70-472a-4500-961d-a79436d1871b_1211x777.png 1272w, https://substackcdn.com/image/fetch/$s_!pXIy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3dff70-472a-4500-961d-a79436d1871b_1211x777.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pXIy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3dff70-472a-4500-961d-a79436d1871b_1211x777.png" width="1211" height="777" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ce3dff70-472a-4500-961d-a79436d1871b_1211x777.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:777,&quot;width&quot;:1211,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1693248,&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://buildingbetter.tech/i/192376560?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3dff70-472a-4500-961d-a79436d1871b_1211x777.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pXIy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3dff70-472a-4500-961d-a79436d1871b_1211x777.png 424w, https://substackcdn.com/image/fetch/$s_!pXIy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3dff70-472a-4500-961d-a79436d1871b_1211x777.png 848w, https://substackcdn.com/image/fetch/$s_!pXIy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3dff70-472a-4500-961d-a79436d1871b_1211x777.png 1272w, https://substackcdn.com/image/fetch/$s_!pXIy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3dff70-472a-4500-961d-a79436d1871b_1211x777.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 role="img" 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><title></title><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>Colonial resentment follows a trajectory so consistent across human history that you can set your watch by it. The colony is established by and for the home country. The colony develops its own structures. The home country continues governing in its own interest. Colonial residents perceive that governance as ignorant, exploitative, illegitimate. The colony demands autonomy.</p><p>There&#8217;s no reason a lunar colony would be exempt from this pattern. Distance amplifies everything, Earth governors making lunar policy will never have experienced the Moon. They won&#8217;t understand the constraints, the culture, the daily reality. Their decisions will be perceived, often correctly, as uninformed and self-serving.</p><p>The legal framework is already fracturing before permanent settlement begins.</p><p>The Outer Space Treaty of 1967 says outer space &#8220;is not subject to national appropriation by claim of sovereignty, by means of use or occupation, or by any other means.&#8221; Clear enough. But it was written when the Moon was a destination for brief government science missions, not a place where people live, work, raise families, and extract commercially valuable resources.</p><p>The Artemis Accords, signed by over 30 nations, already establish &#8220;safety zones&#8221; around lunar operations. Explicitly not sovereignty claims. But in practice they function as exclusive operational areas where one nation&#8217;s activities take priority. The gap between &#8220;safety zone&#8221; and &#8220;territorial claim&#8221; gets thinner every year those zones stay occupied and nobody challenges them. The US legalized space mining under domestic law in 2015. China enacted similar provisions. Neither ratified the Moon Agreement of 1979 that tried to declare lunar resources the &#8220;common heritage of mankind.&#8221; The treaties saying nobody owns the Moon were written when nobody could own the Moon. Now that owning pieces of it is becoming practical, the treaties are being quietly worked around.</p><p>Independence movements come down to a simple equation: costs of remaining under external governance versus benefits. For a young lunar colony dependent on Earth for food, parts, and personnel, independence is suicide. You need Earth. You have no leverage.</p><p>Self-sufficiency flips that equation.</p><p>If the colony produces its own food, water, oxygen, power, and construction materials... if it manufactures critical components locally... if it generates economic value exceeding its imports (propellant production, He-3 mining, scientific output), then the dependency inverts. Earth needs the colony&#8217;s output. The colony no longer needs Earth. That&#8217;s the inflection point, and every colonial independence movement in history has an equivalent moment where the colony realizes the home country needs them more than they need the home country.</p><p>The most interesting wrinkle is that lunar independence might not involve a single colonial power. If the Moon hosts settlements from the US, China, the EU, and private corporations simultaneously, the independence movement could unite disparate settlements against all their respective home countries at once. A unified lunar polity from multi-national origins, forged by shared environment rather than shared nationality. That would actually be unprecedented in human history.</p><h2>What we don&#8217;t know</h2><p>The biggest unknown could break the entire thesis: nobody knows if human reproduction works in 1/6 gravity. No mammal has ever been conceived, gestated, and born in reduced gravity. If humans can&#8217;t reproduce on the Moon, everything from the biology section onward collapses. No lunar-born generation, no divergence, no distinct identity, just rotating Earth visitors. This is the most important question in the entire colonization discussion and we have zero data on it.</p><p>The ISRU scaling gap is real. Lab demonstrations and autonomous industrial-scale lunar operations are separated by an engineering chasm that could take decades to close. Closed-loop life support for decades is unproven. Multi-generational psychology in permanent confinement is completely uncharted. Political will across decades of changing governments is never guaranteed.</p><p>The honest read is that lunar colonization is physically possible, technologically plausible this century, and consistent with every pattern of human expansion on record. Whether it happens depends on economics, politics, and answering unknowns we haven&#8217;t even designed the experiments for yet.</p><p>But we always do it. Every time we can, we do. The conspiracy theorists who say we never went have the story exactly backwards. The Moon landings weren&#8217;t the end of anything. They were the first sentence of a story that ends with humanity becoming something the people who watched Apollo 11 could never have imagined.</p><p>We went. We&#8217;ll go back. We&#8217;ll stay. And staying will change what it means to be us.</p>]]></content:encoded></item><item><title><![CDATA[Boots on the Ground in Iran]]></title><description><![CDATA[Why the US is Preparing to Invade Iran and Why It Won't End the Way Anyone Thinks]]></description><link>https://buildingbetter.tech/p/boots-on-the-ground-in-iran</link><guid isPermaLink="false">https://buildingbetter.tech/p/boots-on-the-ground-in-iran</guid><dc:creator><![CDATA[André Figueira]]></dc:creator><pubDate>Thu, 26 Mar 2026 18:27:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!fcmV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d3e9ca2-8865-408e-b433-1c5498f1e4c9_5000x3333.jpeg" 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="https://substackcdn.com/image/fetch/$s_!fcmV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d3e9ca2-8865-408e-b433-1c5498f1e4c9_5000x3333.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fcmV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d3e9ca2-8865-408e-b433-1c5498f1e4c9_5000x3333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!fcmV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d3e9ca2-8865-408e-b433-1c5498f1e4c9_5000x3333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!fcmV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d3e9ca2-8865-408e-b433-1c5498f1e4c9_5000x3333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!fcmV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d3e9ca2-8865-408e-b433-1c5498f1e4c9_5000x3333.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fcmV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d3e9ca2-8865-408e-b433-1c5498f1e4c9_5000x3333.jpeg" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0d3e9ca2-8865-408e-b433-1c5498f1e4c9_5000x3333.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Five questions for the 82nd Airborne Division's commanding general&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Five questions for the 82nd Airborne Division's commanding general" title="Five questions for the 82nd Airborne Division's commanding general" srcset="https://substackcdn.com/image/fetch/$s_!fcmV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d3e9ca2-8865-408e-b433-1c5498f1e4c9_5000x3333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!fcmV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d3e9ca2-8865-408e-b433-1c5498f1e4c9_5000x3333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!fcmV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d3e9ca2-8865-408e-b433-1c5498f1e4c9_5000x3333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!fcmV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d3e9ca2-8865-408e-b433-1c5498f1e4c9_5000x3333.jpeg 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 role="img" 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><title></title><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>As of March 26th 2026, the United States has ordered elements of the 82nd Airborne Division, roughly 1,000 soldiers including division commander Maj. Gen. Brandon Tegtmeier and his headquarters staff, to deploy to the Middle East. Two Marine Expeditionary Units are already moving toward the Persian Gulf, carrying several thousand Marines along with amphibious warships, aviation assets and landing craft. Combined, that puts somewhere between 6,000 and 8,000 US ground troops in close proximity to Iran.</p><p>The Pentagon says this is hypothetical. Nobody is calling it a ground invasion. But when you deploy a division-level command element alongside two MEUs into an active theatre where the primary target has already been bombed and the enemy has rejected your ceasefire terms... that&#8217;s pre-positioning. The White House describes ground operations as &#8220;hypothetical&#8221; while simultaneously deploying the exact force structure you&#8217;d need to execute them.</p><p>This piece is an assessment of what&#8217;s coming, what it&#8217;s likely to look like, and why every scenario ends with the US deeper in the Middle East than at any point since 2003. I&#8217;m putting rough probabilities on each outcome because vague analysis is useless when the decisions are being made this week.</p><h2>440.9 Kilograms</h2><p>The whole war traces back to one number.</p><p>That&#8217;s how much uranium enriched to 60% purity the IAEA estimates Iran had before the June 2025 strikes. At 60%, roughly 99% of the enrichment work is already done, the step to weapons-grade 90% is short. According to the IAEA&#8217;s own calculations, that stockpile could produce fuel for approximately nine nuclear weapons. A single cascade of 175 IR-6 centrifuges could produce enough weapons-grade material for one bomb every 25 days.</p><p>The problem is nobody knows where all of it is, and nobody can verify its status. IAEA chief Rafael Grossi says about 200kg was stored in a tunnel complex at Isfahan, and the agency believes it&#8217;s probably still there based on satellite imagery showing the tunnels were largely undamaged by last June&#8217;s strikes. But the IAEA hasn&#8217;t had access to any of Iran&#8217;s four declared enrichment facilities for over eight months. Iran sealed two of the three tunnel entrances at Isfahan with massive earth barriers. The third was reinforced with protective walls designed to stop cruise missiles.</p><p>A New York Times report from earlier this month found that US intelligence agencies believe there&#8217;s now a &#8220;very narrow access point&#8221; through which the uranium could potentially be retrieved. If the material is accessible it can be moved, and if it can be moved it can be weaponised. The Pentagon has prepared plans for ground operations deep inside Iran to secure it, according to Axios. The alternative is large-scale air strikes to bury it permanently, but nobody can confirm that would work.</p><p>Both Tel Aviv and Washington have listed ending Iran&#8217;s nuclear capability as a primary war aim. The uranium is the one piece that conventional strikes can&#8217;t cleanly resolve, and it&#8217;s the reason we&#8217;re talking about ground troops at all.</p><h2>Kharg Island: 90% of Everything</h2><p>The most likely ground operation isn&#8217;t a march on Tehran. It&#8217;s the seizure of Kharg Island, a 5-mile strip of land in the northern Persian Gulf that handles 90% of Iran&#8217;s crude oil exports. Trump has called it Iran&#8217;s &#8220;crown jewel&#8221; and the US hit 90 targets there on March 13th, striking naval mine storage, missile bunkers, and military sites while deliberately avoiding the oil infrastructure.</p><p>The logic is coercive rather than destructive. Seize Kharg and you remove Iran&#8217;s ability to export oil, which cuts the regime&#8217;s primary revenue stream and creates pressure to force the Strait of Hormuz back open. Pipeline networks from Iran&#8217;s major onshore oil fields terminate at Kharg, so controlling the island severs the final link between production and international markets without requiring deep strikes into the Iranian mainland. Deep surrounding waters allow supertankers to dock directly, meaning short-term disruption would produce immediate effects on global supply.</p><p>The operational concept, based on reporting from CNN, Stars and Stripes, and multiple military analysts, would work in phases. Marines from the MEUs conduct the initial amphibious assault, securing beachheads and key terrain. Marine combat engineers repair damaged airfields. Once the lodgement is secure, 82nd Airborne elements reinforce by air, flying in via Ospreys and helicopters. Retired Admiral James Stavridis, former NATO Supreme Allied Commander, outlined this sequence in a Bloomberg op-ed, noting that Iranian ground forces remaining after pre-assault strikes should be &#8220;easily overcome&#8221; by the first waves.</p><p>That assumes things go to plan, and things almost never go to plan.</p><h2>What the Optimists Are Missing</h2><p>Iran knows Kharg is a target and has been preparing. CNN reported that US intelligence shows Iran has been laying traps across the island, moving additional military personnel, and deploying MANPAD shoulder-fired missile systems. Existing defences include HAWK surface-to-air missiles and Oerlikon anti-aircraft guns, though US strikes have degraded some of these. Central Command has near-constant satellite surveillance and has been watching physical and environmental changes in areas that appear booby-trapped.</p><p>Retired Lt. Col. Daniel Davis at Defense Priorities made the force size point clearly: the deployment is &#8220;not sufficient for a major invasion nor to hold a single city&#8221; and signals &#8220;limited/targeted ops only.&#8221; The 82nd Airborne is an immediate reaction force, built for speed and surprise, not sustained occupation. It seizes things quickly and then needs something bigger behind it.</p><p>But the real problem isn&#8217;t taking Kharg, it&#8217;s what happens after. An Israeli source told CNN there&#8217;s concern that seizing the island triggers attacks by Iranian drones and shoulder-fired missiles resulting in American casualties. Gulf allies are privately urging Washington against the operation, warning it would provoke Iranian retaliation against their infrastructure and prolong the conflict.</p><p>That concern is grounded in precedent. In 2019, drone and cruise missile strikes hit Saudi Aramco&#8217;s Abqaiq facility and knocked out 5.7 million barrels per day of Saudi output, roughly half their production, in a single peacetime attack. Now imagine that capability deployed against Ras Tanura, Jubail, or Qatar&#8217;s LNG terminals during an active war where Iran has nothing left to lose. Iran&#8217;s parliamentary speaker, Mohammad Bagher Ghalibaf, already warned on X that &#8220;all the vital infrastructure of that regional country will be targeted without limitation.&#8221;</p><p>Then there&#8217;s China. Nearly 38% of crude flowing through Hormuz goes to China. If the US seizes the island that handles 90% of Iranian exports, China doesn&#8217;t just lose a supplier, it watches Washington physically control a chokepoint in its energy supply chain. Beijing hasn&#8217;t intervened militarily but China&#8217;s top diplomat Wang Yi has already told Iran that &#8220;talking is always better than fighting.&#8221; A Kharg seizure would test how far China&#8217;s restraint extends.</p><h2>The Human Cost Nobody is Counting</h2><p>Twenty-seven days in, the numbers are staggering and incomplete.</p><p>Al Jazeera&#8217;s live tracker puts Iranian deaths at 1,937 as of March 26th. The human rights organisation Hengaw, which has been documenting casualties through field sources across Iran, puts the total at over 6,500 killed in 25 days, including at least 640 civilians. HRANA, another rights group, confirmed 1,407 civilian deaths in the first three weeks including 214 children. Iran&#8217;s own health ministry reported roughly 210 children killed and more than 1,500 under-18s injured. Over 300 health and emergency facilities have been damaged.</p><p>Thirteen US service members have died. Around 200 more have been wounded. In Lebanon, where Israel launched a ground invasion on March 17th, at least 1,072 people have been killed and 2,966 wounded. At least 25 people have been killed across Gulf states from Iranian retaliatory strikes.</p><p>The UN human rights chief has said that US and Israeli strikes are hitting homes, hospitals, schools, and cultural sites. Hengaw documented that Iranian military forces have relocated into civilian spaces including schools and mosques, placing civilians at direct risk. The UN estimates the war has caused $63 billion in economic losses across the Arab region. Cities across Iran have become ghost towns. Schools are closed. Prisoners in Evin Prison are reportedly receiving limited bread and water.</p><p>These numbers will continue to climb regardless of which military option the Pentagon chooses, and a ground operation on Kharg would add American names to the casualty lists.</p><h2>The Diplomatic Situation is Worse Than It Looks</h2><p>While the Pentagon pre-positions ground forces, the White House insists productive talks are happening. Iran says there are no talks and calls the claim a ruse for military planning. The reality appears to be somewhere between: Iran responded to a 15-point US proposal through unnamed intermediaries (Pakistan, according to Pakistani officials) and is awaiting Washington&#8217;s reply, according to Iran&#8217;s Tasnim news agency. But Iran&#8217;s Foreign Minister Araghchi also said Tehran will continue its &#8220;resistance&#8221; and does not intend to negotiate while being bombed.</p><p>Iran&#8217;s five conditions for a ceasefire: end to aggression, concrete guarantees against future war, war reparations, a comprehensive end across all fronts including against Hezbollah and Houthis, and recognition of Iranian sovereignty over the Strait of Hormuz.</p><p>The gap between these positions is enormous. The US wants the nuclear programme gone and Hormuz reopened. Iran wants reparations and sovereignty guarantees. Pakistan, Egypt, and Turkey are trying to organise direct talks. The IRGC is reportedly deeply sceptical. Meanwhile, Israel&#8217;s UN Ambassador said Israel isn&#8217;t even part of the US-Iran talks and that military operations will continue until Iran&#8217;s nuclear and missile capabilities are eliminated.</p><p>Congress doesn&#8217;t know the plan. House Armed Services Chairman Mike Rogers emerged from a classified briefing Wednesday saying &#8220;We&#8217;re just not getting enough answers.&#8221; Senate Armed Services Chairman Roger Wicker agreed. When Congress can&#8217;t get clarity, the plan is still being written, or the plan is to not have a plan.</p><h2>How This Plays Out</h2><p>Based on everything reported, here are the scenarios and my rough probability estimates:</p><p><strong>Expanded air strikes on Iranian power plants and energy infrastructure (next 7-10 days): 70%.</strong> Trump already threatened this and Iran has already promised massive retaliation across the Gulf in response. This is the most likely next escalation step and it would intensify the humanitarian crisis dramatically while probably not reopening Hormuz.</p><p><strong>Kharg Island seizure (within 2-4 weeks if diplomacy stalls): 40%.</strong> The force structure is being assembled for exactly this operation. Gulf allies are pushing against it. The risk of American casualties and Iranian retaliation against Gulf infrastructure is high. But if the strait stays closed and there&#8217;s no diplomatic breakthrough, the pressure to &#8220;do something&#8221; will be immense and Kharg is the obvious target.</p><p><strong>Isfahan uranium ground operation: 10-15%.</strong> This is far more complex and dangerous than Kharg, requiring sustained ground presence deep inside Iran that the current force can&#8217;t support. More likely the US relies on further air strikes to deny access permanently rather than attempting to physically secure the material. But it remains on the table according to Axios, and the unaccounted uranium is the one variable that could push decision-makers toward extreme options.</p><p><strong>Full-scale land invasion of mainland Iran: under 5%.</strong> Every military expert quoted says the force is too small, the terrain is too hostile, and the precedent (Afghanistan, Iraq) is too recent. Iran has 90 million people and is half mountainous. The 82nd Airborne&#8217;s motto is &#8220;All the Way&#8221; but even the Pentagon knows where &#8220;all the way&#8221; ends in a country three times the size of Afghanistan.</p><p><strong>Diplomatic resolution within 30 days: 15-20%.</strong> Both sides have back-channel communication through Pakistan. Iran&#8217;s foreign minister offered to downblend enriched uranium on CBS. The outline of a deal exists. But mutual distrust, the IRGC&#8217;s scepticism, and the fact that Israel is operating independently of US diplomatic efforts all work against it.</p><h2>The Iraq Question</h2><p>Every military expert quoted in the reporting makes the same caveat: this force is built for targeted, short-duration missions. The assumption is go in, seize Kharg, maybe deny the uranium, use the pressure to force a deal.</p><p>That assumption requires Iran to respond rationally to the seizure of its most valuable economic asset while being bombed. Minimal US casualties are baked into the plan, which the booby trapping and MANPAD deployments suggest won&#8217;t happen. Gulf allies would need to absorb Iranian retaliation without demanding the US withdraw. China would have to watch its energy supply be physically seized without responding. And Trump would need to resist expanding the operation once troops are committed and the news cycle is running.</p><p>The country that spent twenty years in Afghanistan and left with nothing to show for it is now contemplating ground operations in a country three times the size, with a population three times as large, far more sophisticated military capability, and terrain that favours guerrilla warfare at every turn. Military analyst Michael Eisenstadt has already warned that Iran could shift to hit-and-run tactics that significantly increase US casualties.</p><p>56% of Americans already oppose this war according to an NPR/PBS/Marist poll, and the first ground troops haven&#8217;t even landed yet. The US has spent roughly $16.5 billion in the first 12 days alone according to CSIS estimates. The decisions being made this week, about Kharg, about the uranium, about how deep to go, will determine whether this war lasts weeks or years.</p><p>Nobody in Washington seems to be asking the question that matters: what does &#8220;winning&#8221; look like, and is it worth what it costs to get there?</p><div><hr></div><p><em>For real-time geopolitical risk analysis and forecasting on the Iran war, Hormuz crisis, and escalation scenarios, visit <a href="https://nexushq.xyz/">NexusHQ</a>.</em></p><p><em>Disclosure: the author holds positions in energy and commodities that may be affected by the events described in this article.</em></p>]]></content:encoded></item><item><title><![CDATA[The Spice Must Flow ]]></title><description><![CDATA[What Dune Gets Right About the Next Oil Crisis]]></description><link>https://buildingbetter.tech/p/the-spice-must-flow</link><guid isPermaLink="false">https://buildingbetter.tech/p/the-spice-must-flow</guid><dc:creator><![CDATA[André Figueira]]></dc:creator><pubDate>Sun, 22 Mar 2026 00:00:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Eebb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4add1e6-bec0-4356-8344-ee944cc83491_800x450.jpeg" 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="https://substackcdn.com/image/fetch/$s_!Eebb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4add1e6-bec0-4356-8344-ee944cc83491_800x450.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Eebb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4add1e6-bec0-4356-8344-ee944cc83491_800x450.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Eebb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4add1e6-bec0-4356-8344-ee944cc83491_800x450.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Eebb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4add1e6-bec0-4356-8344-ee944cc83491_800x450.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Eebb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4add1e6-bec0-4356-8344-ee944cc83491_800x450.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Eebb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4add1e6-bec0-4356-8344-ee944cc83491_800x450.jpeg" width="800" height="450" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a4add1e6-bec0-4356-8344-ee944cc83491_800x450.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:450,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Where was Dune filmed? Guide to All the Filming Locations&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Where was Dune filmed? Guide to All the Filming Locations" title="Where was Dune filmed? Guide to All the Filming Locations" srcset="https://substackcdn.com/image/fetch/$s_!Eebb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4add1e6-bec0-4356-8344-ee944cc83491_800x450.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Eebb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4add1e6-bec0-4356-8344-ee944cc83491_800x450.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Eebb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4add1e6-bec0-4356-8344-ee944cc83491_800x450.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Eebb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4add1e6-bec0-4356-8344-ee944cc83491_800x450.jpeg 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 role="img" 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><title></title><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><h1>The Spice Must Flow: What Dune Gets Right About the Oil Crisis Happening Right Now</h1><p>Frank Herbert wrote Dune in 1965, and most people think he wrote a science fiction novel about a chosen one, a desert planet, and giant sandworms. He wrote a geopolitical manual disguised as a hero&#8217;s journey. And right now, sixty years later, his nightmare scenario is playing out in real time.</p><p>On February 28th 2026, the United States and Israel launched coordinated strikes on Iran, including the assassination of Supreme Leader Ali Khamenei. Iran&#8217;s response was to do the one thing that every energy analyst has warned about for decades... close the Strait of Hormuz. Tanker traffic dropped 70% overnight. Brent crude blew past $100 a barrel for the first time in four years, peaking at $126. The IEA called it the greatest global energy security challenge in history. Sri Lanka moved to a four-day work week to conserve fuel. Hundreds of tankers sat idle on both sides of the strait, going nowhere.</p><p>If you&#8217;ve read Dune, actually read it, not just watched the Villeneuve films, you&#8217;ve seen this before. Herbert didn&#8217;t imagine a fictional universe, he reverse-engineered ours.</p><p>To be clear, I&#8217;m not saying Herbert was a prophet or that Dune is a prediction. What I&#8217;m saying is that Herbert identified the structural logic of resource chokepoint warfare in 1965, and that logic is now playing out with eerie precision. The parallels aren&#8217;t coincidence, they&#8217;re the result of a novelist who understood systems better than most analysts.</p><p>Arrakis is the Middle East. Spice is oil. The Fremen are Iran, and as of mid-March 2026, the jihad is underway.</p><h2>The Chokepoint That Runs the World</h2><p>The entire economy of Herbert&#8217;s universe runs on a single substance, spice melange, found on a single planet. Control Arrakis and you control interstellar travel, commerce, everything. The great houses, the Emperor, the Spacing Guild, they all orbit the same dependency. No spice, no civilisation.</p><p>The Strait of Hormuz is the real-world Arrakis. About 20 million barrels of oil pass through it every day, roughly 20% of global petroleum consumption. Saudi Arabia and the UAE have pipeline infrastructure that can bypass the strait, but total bypass capacity sits at roughly 2.6 million barrels per day, about 13% of normal flows. It&#8217;s a band-aid on a severed artery. Around 84% of the crude flowing through the strait heads to Asian markets, with China alone receiving nearly 38% of total flows. Add in about a fifth of global LNG trade and you start to understand why one narrow corridor between Iran and Oman basically holds the global economy hostage.</p><p>Herbert understood something that most people still don&#8217;t, and that policymakers clearly didn&#8217;t understand when they launched strikes on February 28th. You don&#8217;t need to be the most powerful player in the system, you don&#8217;t need the biggest fleet or the most advanced technology. You just need to sit on the chokepoint and be willing to threaten the flow. The Fremen didn&#8217;t have a space fleet. Iran doesn&#8217;t need aircraft carriers.</p><p>The IRGC&#8217;s statement from earlier this month put it in terms Herbert would have recognised instantly... &#8220;You will not be able to artificially lower the price of oil.&#8221;</p><p>The spice must flow, and that line reads very differently in March 2026 than it did in 1965. We just found out what happens when someone calls the bluff.</p><h2>Iran as the Fremen</h2><p>The Fremen have lived on Arrakis for generations, surviving in conditions that would kill anyone else. Every imperial power that tried to control the planet either failed or relied on brutality to maintain a fragile grip. The Harkonnens ruled through fear and extraction, the Emperor used them as a counterweight, and nobody really bothered to understand the Fremen as anything other than a nuisance... a primitive people sitting on top of something valuable.</p><p>Iran has occupied the northern shore of Hormuz for millennia. Western powers have spent the better part of a century treating the region as a resource to be managed, a chessboard where the pieces don&#8217;t get a vote. The asymmetric military capability Iran has built, fast attack boats, anti-ship missiles, drone swarms, mine warfare, is the modern equivalent of Fremen desert warfare. It doesn&#8217;t look impressive on paper next to a US carrier group, just like crysknife-wielding guerrillas don&#8217;t look impressive next to Sardaukar legions. But we just watched more than 20 confirmed attacks on merchant ships in under two weeks. The home team knows the terrain.</p><p>Herbert went deeper than just military asymmetry though. He invented the Missionaria Protectiva, a programme run by the Bene Gesserit to plant messianic prophecies among populations across the universe, decades or centuries before anyone would need to exploit them. The whole point was to seed narratives strategically, plant beliefs that could be harvested later by whoever needed them. Which is indeed the history of Western interference in Iran.</p><p>In 1953, the CIA and MI6 orchestrated a coup against Iran&#8217;s democratically elected Prime Minister, Mohammad Mosaddegh, over oil nationalisation. They installed the Shah, a Western-friendly autocrat who modernised the surface while brutalising the population underneath. For twenty-six years Western powers thought they had it managed, they&#8217;d installed their chosen one, redirected the resources, planted their narrative. Then 1979 happened, and the revolutionary energy that had been building for decades erupted in a way that nobody in Washington or London anticipated. The West&#8217;s Missionaria Protectiva blew up in its face.</p><p>Now the Fremen parallel does break down in important ways, and acknowledging that makes the real situation scarier. The Fremen were stateless, factionally united, and had zero power projection beyond Arrakis. Iran is a nation-state with formal institutions, diplomatic relationships, internal factions (reformists, hardliners, IRGC), a population that has staged multiple uprisings against its own government, and a regional proxy network that extends across the entire Middle East. We&#8217;ve just watched Houthi, Hezbollah, and Iraqi militia elements all activate simultaneously. The Fremen needed Paul to unleash their power. Iran has been projecting power independently for decades, and the network is already live.</p><h2>The Jihad Is Not a Metaphor Anymore</h2><p>This is the part of Dune that most fans either miss or just misunderstand, and it&#8217;s the part that should keep you up at night given what&#8217;s happening right now.</p><p>Paul Atreides has prescient visions that show him every possible path forward, and on almost every one, a galactic jihad is waiting. Billions dead, worlds burned, entire civilisations wiped out in a holy war fought in his name that consumes everything it touches. He spends the entire story trying to find the narrow path that avoids it while still saving himself and the people he loves, and he can&#8217;t. The messianic energy he&#8217;s riding, the Fremen belief in the Lisan al-Gaib, the momentum of a people oppressed for generations who finally have a leader promising liberation... it&#8217;s bigger than him. Once it&#8217;s unleashed, it has its own logic and its own hunger.</p><p>There&#8217;s no clean Paul equivalent in the real world, and that&#8217;s actually the point. The escalation dynamic doesn&#8217;t need a charismatic chosen one to trigger it. The system was primed. Multiple actors, the US, Iran, Israel, Saudi Arabia, and China as the single largest recipient of oil through the strait, all making moves that constrained each other&#8217;s options. Nobody needed to be Paul. The structural conditions generated the nightmare on their own.</p><p>We had a preview with the Houthis, and we should have paid more attention. From late 2023, Houthi attacks on Red Sea shipping disrupted roughly $1 trillion in goods over seven months. Container ship transits through the Suez Canal dropped 90%. Freight rates between Shanghai and Rotterdam jumped 80%, adding an extra $15-20 billion in annual costs to global trade. And that was a proxy action, not even a direct Iranian operation.</p><p>And then there was Abqaiq in 2019, which nobody took seriously enough. Drone and cruise missile strikes hit Saudi Aramco&#8217;s processing facility and the Khurais oil field, knocking out roughly 5.7 million barrels per day, more than half of Saudi output. Oil prices spiked 15% overnight. That happened during peacetime, with no military confrontation, and it showed exactly how vulnerable concentrated energy infrastructure really is.</p><p>Those were the tremors before the earthquake. The jihad Paul saw coming, the one he couldn&#8217;t prevent because the momentum was already too great... that&#8217;s what started on February 28th. The IRGC broadcasting that ship passages through Hormuz are &#8220;not allowed.&#8221; Brent crude at $126. The IEA&#8217;s emergency reserve release of 400 million barrels, which sounds massive until you realise it covers about 20 days of normal Hormuz flows or four days of global consumption. Sri Lanka rationing fuel. Japan releasing its own reserves because 70% of its oil imports come through the strait.</p><p>Paul&#8217;s lesson, the one Herbert was trying to teach, is that escalatory systems don&#8217;t respect anyone&#8217;s intention to keep things &#8220;limited.&#8221; Nobody gets to decide this stays contained.</p><h2>The Family Atomics</h2><p>Most people skip over the family atomics when they talk about Dune parallels, and it might be the most important one.</p><p>House Atreides possesses nuclear weapons, the family atomics. Paul uses them, deploying the atomics to blast open the Shield Wall and allow his Fremen forces to attack Arrakeen. It works tactically, but it crosses a line that changes everything about the political order. The atomics were a deterrent until they weren&#8217;t. Once used, the rules of the game changed permanently.</p><p>Iran&#8217;s nuclear programme follows the same logic. A capability that hasn&#8217;t been fully weaponised but fundamentally reshapes the strategic calculus just by existing. And the current escalation is exactly the kind of pressure that could push Iran from threshold capability toward actual weaponisation, or worse. If the strikes that killed Khamenei were meant to weaken Iran&#8217;s resolve, the early evidence suggests they&#8217;ve done the opposite. Mojtaba Khamenei, the new Supreme Leader, vowed to keep the strait closed. The IRGC warned of $200 oil.</p><p>Paul used the atomics because the cost of not using them was extinction. Iran is making the same calculation with Hormuz, the closure isn&#8217;t aggression for its own sake, it&#8217;s existential leverage because the alternative is absorbing strikes without response and accepting regime destruction. When the choice is between crossing the line and ceasing to exist, the line gets crossed, and Paul knew it, and Iran knows it now.</p><h2>Paul Wins, Everyone Loses</h2><p>Paul defeats the Harkonnens, overthrows the Emperor, takes the throne, unites the Fremen and leads them to absolute victory. And the jihad happens anyway, his Fremen armies sweeping across the known universe, killing billions in his name. Paul sits on the throne of the galaxy and watches it happen. He set it in motion and he can&#8217;t stop it.</p><p>Herbert wasn&#8217;t writing a triumph, he was writing a tragedy. The whole point was to demolish the myth of the clean victory, the idea that you can wield enormous destructive force in pursuit of a strategic objective and somehow contain the consequences.</p><p>We&#8217;re watching the real-world version unfold in real time. Coalition strikes hit more than 90 targets on Kharg Island, the strait closed, oil hit $126, Iraq and Kuwait started shutting in production because they had nowhere to send it, refineries across the Gulf shuttered. The spare capacity that OPEC normally uses to stabilise markets is physically trapped on the wrong side of the chokepoint. The G7 scrambled for an emergency call. And the cascade is still going... energy prices driving up food costs, which drives inflation, which drives political instability in import-dependent developing economies.</p><p>Herbert made the jihad death toll obscene on purpose, billions dead across the known universe. He wanted you to understand that &#8220;winning&#8221; can be the worst possible outcome. The Harkonnens lost, the Emperor lost, but the Fremen victory was indistinguishable from catastrophe.</p><p>Right now, nobody is winning at Hormuz, and Herbert would tell you that&#8217;s exactly how it was always going to go.</p><h2>Herbert Was Writing a Risk Assessment</h2><p>Frank Herbert didn&#8217;t predict Iran, or Hormuz, or the specific events of February 2026. What he nailed was the underlying logic, and the logic is airtight.</p><p>Systems built on single points of failure are inherently fragile, and they don&#8217;t become less fragile just because everyone agrees the resource is important. Populations sitting on strategic chokepoints will eventually use that position, regardless of how many times outside powers dismiss them as manageable. Revolutionary movements, once set in motion, obey their own dynamics... they can&#8217;t be controlled by the people who think they&#8217;re in charge. And the myth of the surgical, contained, controllable use of overwhelming force is just that, a myth.</p><p>The obvious counter-argument is that Dune&#8217;s universe had no spice alternative, and the real world does. Renewables, nuclear, electrification, they&#8217;re all accelerating. But that transition is measured in decades, not weeks, and the crisis is happening now. Global infrastructure is still locked into oil dependency, supply chains still run on diesel, petrochemicals still underpin everything from fertiliser to plastics, and the 20 million barrels a day that normally flow through Hormuz don&#8217;t have a green substitute waiting in the wings. Herbert&#8217;s lesson holds for as long as the dependency holds, and in March 2026, the dependency is total.</p><p>Herbert published Dune in 1965. He looked at oil, the Middle East, the resource dependency, the messianic cultures, the imperial arrogance, and he wrote a 500-page warning. We turned it into a blockbuster, bought the popcorn, admired the sandworms, and learned nothing.</p><p>The spice must flow, and right now it isn&#8217;t, and nobody who actually read the book should be surprised.</p><div><hr></div><p><em>For real-time geopolitical risk analysis and forecasting on the Hormuz crisis, energy supply disruption, and escalation scenarios, visit <a href="https://nexushq.xyz/">NexusHQ</a>.</em></p><p><em>Disclosure: the author holds positions in energy and commodities aligned to the thesis described in this article.</em></p>]]></content:encoded></item><item><title><![CDATA[The War With No Off Switch ]]></title><description><![CDATA[A NexusHQ Strategic Intelligence Briefing on Nuclear Escalation Risk in the Israel-Iran Conflict]]></description><link>https://buildingbetter.tech/p/the-war-with-no-off-switch</link><guid isPermaLink="false">https://buildingbetter.tech/p/the-war-with-no-off-switch</guid><dc:creator><![CDATA[André Figueira]]></dc:creator><pubDate>Sat, 21 Mar 2026 04:42:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!xzWS!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F666c5f33-99ed-46f5-87a0-6634154f8e32_1024x1024.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="https://substackcdn.com/image/fetch/$s_!bZW9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0da321e2-13e1-40c1-8a98-ba960ac1a069_680x272.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bZW9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0da321e2-13e1-40c1-8a98-ba960ac1a069_680x272.jpeg 424w, https://substackcdn.com/image/fetch/$s_!bZW9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0da321e2-13e1-40c1-8a98-ba960ac1a069_680x272.jpeg 848w, https://substackcdn.com/image/fetch/$s_!bZW9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0da321e2-13e1-40c1-8a98-ba960ac1a069_680x272.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!bZW9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0da321e2-13e1-40c1-8a98-ba960ac1a069_680x272.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bZW9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0da321e2-13e1-40c1-8a98-ba960ac1a069_680x272.jpeg" width="724" height="289.6" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0da321e2-13e1-40c1-8a98-ba960ac1a069_680x272.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:272,&quot;width&quot;:680,&quot;resizeWidth&quot;:724,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Image&quot;,&quot;title&quot;:&quot;Image&quot;,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Image" title="Image" srcset="https://substackcdn.com/image/fetch/$s_!bZW9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0da321e2-13e1-40c1-8a98-ba960ac1a069_680x272.jpeg 424w, https://substackcdn.com/image/fetch/$s_!bZW9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0da321e2-13e1-40c1-8a98-ba960ac1a069_680x272.jpeg 848w, https://substackcdn.com/image/fetch/$s_!bZW9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0da321e2-13e1-40c1-8a98-ba960ac1a069_680x272.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!bZW9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0da321e2-13e1-40c1-8a98-ba960ac1a069_680x272.jpeg 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 role="img" 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><title></title><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><h3>A NexusHQ Strategic Intelligence Briefing on Nuclear Escalation Risk in the Israel-Iran Conflict</h3><p><strong>Classification:</strong> Open Source Intelligence Assessment <strong>Date:</strong> 21 March 2026 <strong>Analyst:</strong> Andr&#233; Figueira, NexusHQ <strong>Methodology:</strong> Bayesian probability fusion, game-theoretic escalation modelling, open-source signal aggregation</p><div><hr></div><h2>Executive Summary</h2><p>The US-Israeli conventional campaign against Iran is achieving its stated military objectives at a pace that has exceeded most pre-war estimates. However, the structural dynamics of the conflict, specifically the absence of diplomatic offramps, the presence of religious ideologues in the command structures of all three principal actors, and the unresolved status of Iran&#8217;s near-weapons-grade uranium stockpile, are converging toward escalation pathways that carry non-trivial nuclear risk.</p><p>This briefing assesses those pathways, assigns calibrated probability estimates to key scenarios, and identifies the variables most likely to shift those estimates over the coming months.</p><div><hr></div><h2>1. Situational Context</h2><p>Three weeks into Operation Epic Fury, the US-Israeli coalition has executed over 7,600 strikes across Iran in nearly 5,000 aerial sorties. The following capabilities have been degraded or destroyed:</p><ul><li><p><strong>Missile infrastructure:</strong> More than 70% of Iran&#8217;s missile launchers neutralised (IDF, 16 March 2026)</p></li><li><p><strong>Air defence:</strong> Over 85% of detection and defence systems, including radars and air defence platforms, neutralised (IDF, 16 March 2026)</p></li><li><p><strong>Naval capability:</strong> Over 100 Iranian naval vessels destroyed (CENTCOM Admiral Brad Cooper, 16 March 2026)</p></li><li><p><strong>Command and control:</strong> Supreme Leader Ali Khamenei assassinated 28 February. Iran&#8217;s Foreign Ministry acknowledged that military units are operating on standing orders due to chain-of-command degradation</p></li><li><p><strong>Air dominance:</strong> The US is flying non-stealth B-1 bombers through Iranian airspace, indicating near-total confidence in air superiority (Al Jazeera, 16 March 2026)</p></li></ul><p>IDF Spokesman Brig. Gen. Effie Defrin has stated publicly that the military has plans for at least three more weeks of operations with &#8220;thousands of targets ahead,&#8221; with deeper planning extending beyond that window.</p><p>By conventional military metrics, this campaign is succeeding. The critical question is not whether it can achieve its tactical objectives, but whether it can stop.</p><div><hr></div><h2>2. The Structural Inability to De-escalate</h2><p>Every prior escalation threshold in this conflict sequence has been exceeded. The Gaza operation expanded beyond its initial scope. The Lebanon intervention was not contained. The June 2025 twelve-day strikes were presented as sufficient but were followed by renewed operations nine months later.</p><p>Three structural factors inhibit de-escalation:</p><p><strong>2.1 Israeli domestic politics</strong></p><p>Prime Minister Netanyahu faces criminal prosecution, an October 7 commission of inquiry, and coalition fragility the moment hostilities cease. The war serves as the primary mechanism for maintaining political survival. More significantly, the war is being framed in explicitly religious terms. At a press conference on 13 March 2026, Netanyahu stated that Israel would &#8220;achieve the kingdom&#8221; and await &#8220;the Messiah&#8217;s return,&#8221; adding that this would not happen &#8220;next Thursday,&#8221; implying the war must continue until conditions for messianic fulfilment are met.</p><p>National Security Minister Itamar Ben Gvir has called for the collapse of Iran&#8217;s regime to be declared a stated war goal. Finance Minister Bezalel Smotrich has stated Iran is &#8220;starting from zero.&#8221; Both have consistently invoked biblical justifications for territorial expansion. US Ambassador to Israel Mike Huckabee, an evangelical pastor, stated publicly that it would be &#8220;fine if Israel took&#8221; all of the land of the Middle East.</p><p><strong>2.2 US command structure</strong></p><p>US Defense Secretary Pete Hegseth, author of &#8220;American Crusade&#8221; (2020), has introduced explicitly Christian nationalist rhetoric into the Pentagon&#8217;s operational framework. He hosts monthly Christian worship services for Pentagon employees, has displayed Bible verses in departmental promotional videos alongside military footage, and recited Psalm 144 (&#8221;Blessed be the Lord, my rock, who trains my hands for war and my fingers for battle&#8221;) at a Pentagon press briefing during the conflict.</p><p>Hegseth has crusader imagery tattooed on his body, including the Jerusalem Cross and the phrase &#8220;Deus Vult&#8221; (&#8221;God wills it&#8221;), which he has described as &#8220;the rallying cry of Christian knights as they marched to Jerusalem.&#8221;</p><p>Following the outbreak of hostilities, claims circulated that US military commanders were telling troops the war fulfilled biblical prophecies around Armageddon and the return of Christ. Thirty Democratic members of Congress requested a Pentagon inspector general investigation. The AP has not independently verified the claims, but three major watchdog organisations, the Freedom From Religion Foundation, the Anti-Defamation League, and the Council on American-Islamic Relations, have raised concerns.</p><p>Georgetown visiting scholar Matthew D. Taylor, a specialist in religious extremism, stated: &#8220;The U.S. voluntarily going to war against a Muslim country with the military under the leadership of Pete Hegseth is exactly the kind of scenario that people like me were warning about.&#8221;</p><p><strong>2.3 Absence of institutional guardrails</strong></p><p>Congress has not formally authorised the use of military force. Career diplomatic and intelligence professionals have been systematically marginalised across both the US and Israeli national security establishments over the preceding years. The institutional mechanisms that would ordinarily constrain escalation, legislative oversight, independent intelligence assessment, diplomatic back-channels, are either absent or degraded.</p><div><hr></div><h2>3. The Uranium Variable</h2><p>An estimated 440 kilograms of uranium enriched to 60% purity, near weapons-grade, remains unaccounted for in tunnels at Isfahan. The IAEA has no access to verify its status. This material, if further enriched to 90%, would be sufficient for as many as 10 nuclear weapons.</p><p>Ali Vaez, Director of the Iran Project at the International Crisis Group and trained nuclear physicist, confirmed in a 20 March 2026 NPR interview that the two critical ingredients for an Iranian weapon, advanced centrifuges and enriched material, survived the June 2025 twelve-day war. Pre-war assessments estimated six months to one year to convert enriched material into a deliverable weapon. Current infrastructure degradation likely extends that timeline, but the knowledge base, the scientific workforce, and potentially the material itself remain intact.</p><p>Western intelligence assessments of Iranian nuclear capability have a poor track record. The Fordow enrichment facility was unknown to Western intelligence until Iran disclosed it. The full scope of the Amad weaponisation programme was not understood until the 2018 Mossad archive seizure. Advanced centrifuges stored in hidden facilities survived the June 2025 strikes despite being assessed as destroyed. Iran built its entire nuclear programme under 45 years of international sanctions.</p><p>The pattern is consistent: every time capability is destroyed, Iran reconstitutes it at greater depth, with more dispersal and hardening. The assumption that infrastructure destruction equates to permanent capability denial is not supported by the historical evidence.</p><p>The A.Q. Khan proliferation network demonstrated that nuclear technology transfers occur through covert channels. Both Pakistan and North Korea possess strategic incentives to assist an Iranian weapons programme, though no evidence of active transfers during the current conflict has been reported in open sources.</p><div><hr></div><h2>4. Escalation Pathway Analysis</h2><h3>4.1 The paradox of success</h3><p>The conventional campaign&#8217;s success is itself an escalation driver. Military success breeds objective expansion, objective expansion removes offramps, and the absence of offramps in a conflict involving a nuclear-capable state with religious ideologues in the command structure creates conditions for catastrophic miscalculation.</p><p>Each additional week of operations increases the probability of crossing a civilisational tripwire: a strike on Al-Aqsa Mosque (Ben Gvir has already pushed Temple Mount provocations in peacetime), a single-event mass casualty incident among Iranian civilians, strikes on the holy cities of Qom or Mashhad, or a ground incursion.</p><h3>4.2 Iran&#8217;s shifting calculus</h3><p>Iran is currently absorbing punishment and rationing its remaining missile capability. Absorption, however, has a structural limit. The regime faces a binary choice as the war continues: accept destruction or escalate beyond conventional means.</p><p>A regime led by a new Supreme Leader (Mojtaba Khamenei, elected 8 March 2026) with limited legitimacy, surrounded by an ideological apparatus that incorporates martyrdom as operational doctrine, does not process cost-benefit analysis in the manner Western deterrence theory assumes. The war has made the strategic case for an Iranian nuclear deterrent stronger than at any point in the programme&#8217;s history. Every future Iranian government, regardless of political orientation, will have nuclear acquisition near the top of its strategic agenda.</p><h3>4.3 The missing deterrence architecture</h3><p>The historical precedent most commonly invoked is Cold War deterrence. The analogy fails on every structural dimension:</p><ul><li><p><strong>No communication channel.</strong> There is no hotline between Jerusalem and Tehran, no back-channel, no diplomatic intermediary with access to both decision-making apparatus simultaneously.</p></li><li><p><strong>No treaty framework.</strong> No arms control agreements, no mutual inspections regime, no shared understanding of red lines.</p></li><li><p><strong>No secular rationality assumption.</strong> Both sides have leaders who publicly invoke divine mandate for their military operations. The rationality assumption underpinning deterrence theory does not hold when decision-makers believe transcendent forces are directing the conflict.</p></li><li><p><strong>No institutional depth.</strong> The career professionals who managed Cold War crises, the Kennans, the Dobrynins, the back-channel operators, have no equivalents in this conflict.</p></li></ul><p>If Iran achieves nuclear capability, the result is two nuclear-armed states with zero diplomatic infrastructure, no arms control framework, separated by 1,000 miles of airspace they have both used in active combat operations, governed by leaders on both sides who frame the conflict in eschatological terms. This is not deterrence. This is improvisation at civilisational stakes.</p><div><hr></div><h2>5. Probability Assessment</h2><p>The following estimates represent calibrated assessments based on Bayesian probability fusion across the identified variables. All probabilities are assessed over a 12-month horizon from the date of publication.</p><p>Scenario Probability Key Variables Iran achieves covert nuclear breakout (device assembled, not necessarily tested) 12-20% Survival of Isfahan material, external assistance, covert reconstitution of enrichment capability Israel conducts preemptive nuclear strike on suspected Iranian nuclear facility 3-7% Conditional on Israeli intelligence concluding Iranian breakout is imminent, conventional strikes assessed as insufficient Iran delivers nuclear weapon against Israeli target 2-5% Conditional on successful covert breakout, delivery system availability, regime decision calculus Full nuclear exchange (both parties) 1-3% Conditional on first use by either party, second-strike doctrine activation Conflict triggers civilisational flashpoint (Al-Aqsa, holy city strike, mass casualty threshold) that fundamentally restructures the conflict 15-25% Duration of operations, composition of Israeli war cabinet, degradation of target discrimination over time Conflict concludes through negotiated settlement within 12 months 10-20% Requires change in US or Israeli political leadership, or Iranian regime collapse/capitulation</p><p><strong>Note on calibration:</strong> A 1-3% probability of nuclear exchange, assessed over 12 months and compounded over a decade of structural hostility without diplomatic architecture, produces cumulative odds that no rational strategic framework should accept as tolerable. The purpose of quantifying low-probability, high-consequence scenarios is not to predict them but to make visible the risk that qualitative analysis tends to suppress.</p><div><hr></div><h2>6. Key Indicators to Monitor</h2><p>The following signals would materially shift the probability assessments above:</p><p><strong>Escalatory indicators:</strong></p><ul><li><p>Any Israeli military activity near Al-Aqsa Mosque or the Temple Mount</p></li><li><p>Strikes on Qom, Mashhad, or other sites of religious significance</p></li><li><p>Reports of Iranian enrichment activity at undisclosed locations</p></li><li><p>Changes to Israeli nuclear force posture (submarine deployment patterns, Jericho missile activity)</p></li><li><p>Ground force deployment to Iranian territory</p></li><li><p>Israeli interceptor stockpile depletion reports</p></li><li><p>North Korean or Pakistani diplomatic signals regarding Iran</p></li></ul><p><strong>De-escalatory indicators:</strong></p><ul><li><p>Resumption of Omani-mediated or other back-channel negotiations</p></li><li><p>Congressional authorisation debate (indicates institutional engagement)</p></li><li><p>IAEA access to Isfahan</p></li><li><p>Israeli domestic political shift (coalition fracture, election announcement)</p></li><li><p>Public fracture between US and Israeli war aims (the South Pars incident on 19 March is a potential early signal)</p></li><li><p>Iranian formal ceasefire proposal with verifiable conditions</p></li></ul><div><hr></div><h2>7. Assessment</h2><p>The conventional war is succeeding on its own terms. That is precisely the problem. Success breeds expansion, expansion removes offramps, and the absence of offramps in a conflict between nuclear-capable states with religious ideologues embedded in the command structure is the structural precondition for outcomes that nobody plans and nobody can reverse.</p><p>The question is not whether any actor wants nuclear war. The question is whether the structure of this conflict, the incentives, the actors, the absent guardrails, is converging toward it regardless of intention.</p><p>The assessed trajectory suggests it is, at a pace that exceeds what most public commentary acknowledges.</p><div><hr></div><p><em>NexusHQ provides calibrated geopolitical and market intelligence. All probability assessments are subject to revision as new information becomes available. Methodology documentation, including Brier Score tracking and calibration metrics, is available at nexushq.xyz.</em></p><p><em>Sources: CENTCOM operational briefings, IDF Spokesperson statements, International Crisis Group, Arms Control Association, IAEA reporting, Atlantic Council, ACLED conflict data, Associated Press, NPR, Al Jazeera, Middle East Eye, Scientific American, House of Commons Library, Britannica, PBS, CNN, Times of Israel, Military Times, Stars and Stripes, Janes Defence.</em></p>]]></content:encoded></item><item><title><![CDATA[The Gradient and the Narrator]]></title><description><![CDATA[How Your Brain Makes Decisions Your Ego Takes Credit For]]></description><link>https://buildingbetter.tech/p/the-gradient-and-the-narrator</link><guid isPermaLink="false">https://buildingbetter.tech/p/the-gradient-and-the-narrator</guid><dc:creator><![CDATA[André Figueira]]></dc:creator><pubDate>Sun, 15 Mar 2026 04:12:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!j7zZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd656c252-d948-4b5a-b737-b3015ed9c679_1232x928.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="https://substackcdn.com/image/fetch/$s_!j7zZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd656c252-d948-4b5a-b737-b3015ed9c679_1232x928.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!j7zZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd656c252-d948-4b5a-b737-b3015ed9c679_1232x928.png 424w, https://substackcdn.com/image/fetch/$s_!j7zZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd656c252-d948-4b5a-b737-b3015ed9c679_1232x928.png 848w, https://substackcdn.com/image/fetch/$s_!j7zZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd656c252-d948-4b5a-b737-b3015ed9c679_1232x928.png 1272w, https://substackcdn.com/image/fetch/$s_!j7zZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd656c252-d948-4b5a-b737-b3015ed9c679_1232x928.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!j7zZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd656c252-d948-4b5a-b737-b3015ed9c679_1232x928.png" width="1232" height="928" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d656c252-d948-4b5a-b737-b3015ed9c679_1232x928.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:928,&quot;width&quot;:1232,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1675800,&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://buildingbetter.tech/i/190979292?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd656c252-d948-4b5a-b737-b3015ed9c679_1232x928.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!j7zZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd656c252-d948-4b5a-b737-b3015ed9c679_1232x928.png 424w, https://substackcdn.com/image/fetch/$s_!j7zZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd656c252-d948-4b5a-b737-b3015ed9c679_1232x928.png 848w, https://substackcdn.com/image/fetch/$s_!j7zZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd656c252-d948-4b5a-b737-b3015ed9c679_1232x928.png 1272w, https://substackcdn.com/image/fetch/$s_!j7zZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd656c252-d948-4b5a-b737-b3015ed9c679_1232x928.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 role="img" 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><title></title><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><h2>1. The Illusion of Authorship</h2><p>You have made decisions in your life that you believe were yours. Career moves, relationships, the projects you chose to pursue, the ones you abandoned. You have a story about each of them. You can narrate the reasoning. You can explain, with apparent clarity, why you did what you did.</p><p>That story is largely fiction.</p><p>This is not a philosophical provocation. It is an empirical claim supported by decades of neuroscience. In the 1980s, Benjamin Libet conducted a series of experiments measuring the timing of conscious intention relative to neural activity. His findings were uncomfortable: the brain&#8217;s readiness potential, the measurable electrical buildup preceding a motor action, begins several hundred milliseconds <em>before</em> the subject reports being aware of their intention to act. The brain had already committed to a direction before consciousness registered a decision.</p><p>Subsequent work has extended this window further. Research using fMRI by Chun Siong Soon and colleagues at the Max Planck Institute demonstrated that patterns of brain activity could predict a participant&#8217;s choice up to ten seconds before they reported being consciously aware of it. The decision was not being made at the moment of awareness. Awareness was arriving late to a process already underway.</p><p>Michael Gazzaniga&#8217;s split-brain research added a critical dimension to this picture. Working with patients whose corpus callosum had been severed, Gazzaniga demonstrated that the left hemisphere, the seat of language and narrative, would confabulate explanations for behaviours initiated by the right hemisphere, to which it had no access. When shown an image to the right hemisphere that caused the patient to laugh, the left hemisphere, unaware of the image, would invent a reason: the experimenter&#8217;s lab coat was funny, or the room was warm. The explanation was confident, coherent, and entirely fabricated.</p><p>Gazzaniga called this the <strong>interpreter</strong>: a left-hemisphere module whose function is not to make decisions, but to generate plausible narratives about decisions that have already been made elsewhere in the brain. The interpreter does not know it is confabulating. It believes its own stories. It has to, because the alternative is confronting the fact that the conscious self is not in control.</p><p>This is not a defect. It is the architecture. The conscious ego is not the chief executive of the mind. It is the press secretary: a spokesperson whose job is to stand before the internal audience and explain, with conviction, decisions it did not make and processes it cannot observe.</p><div><hr></div><h2>2. The Deeper Computation</h2><p>If the ego is not making decisions, what is?</p><p>The answer emerging from predictive processing theory is that the brain is running a continuous, high-dimensional world model. Karl Friston&#8217;s free energy principle provides the formal framework: the brain is a prediction machine whose primary function is to minimise surprise by maintaining and continuously updating a generative model of the world. This model integrates sensory input, prior experience, emotional valence, and learned statistical regularities into a unified prediction engine, performing Bayesian updating at every level of the processing hierarchy, in parallel, across multiple timescales, and overwhelmingly below the threshold of conscious access.</p><p>Consciousness, in this framework, is a narrow bandwidth channel. Working memory can hold approximately four to seven items. The underlying world model is integrating across millions of data points: every pattern you have ever encountered, every outcome you have ever observed, every statistical regularity your sensory systems have extracted over decades of experience. The conscious mind cannot hold this. It was never designed to.</p><p>Ap Dijksterhuis and colleagues demonstrated this asymmetry experimentally. Participants presented with complex multi-attribute decisions made better choices after a period of distraction than after deliberate conscious thought. The conscious mind, constrained by its limited capacity, could not weight all relevant variables simultaneously. The unconscious processing system could. It is worth noting that subsequent replication attempts have yielded mixed results, with some meta-analyses finding weaker effect sizes than the original studies. The claim here is not that unconscious processing is infallible, but that it operates at an integration depth that conscious processing cannot match. Neuroimaging work at Carnegie Mellon by J. David Creswell supports this: during distraction periods, brain regions responsible for decision-making remained active, continuing to process information the conscious mind had moved on from.</p><p>This is not intuition in the colloquial sense of a vague feeling. It is computation: a system with vastly greater processing capacity than consciousness, producing outputs that consciousness then experiences as feelings, inclinations, and convictions.</p><div><hr></div><h2>3. The Gradient</h2><p>Here is where existing literature stops and a synthesis is required.</p><p>The neuroscience establishes that unconscious processing is powerful and often superior to conscious deliberation for complex decisions. The predictive processing framework explains the mechanism. But neither body of work addresses a phenomenon that is obvious from lived experience: the deeper processing system does not produce random, isolated outputs. It produces <em>directional</em> signals across extended time horizons.</p><p>Consider the pattern that most people, if they are honest, will recognise. You find yourself drawn to a domain, a problem, a way of thinking. The interest is not proportional to any obvious external reward. It is not explained by social incentive or immediate utility. It persists. It recurs across contexts. You might abandon it consciously, only to find yourself circling back months or years later. If you examine your trajectory over a decade or more, you often find a coherence that your moment-to-moment ego-driven decisions cannot account for.</p><p>This is not destiny. It is not fate. It is a computational artefact of a system running forward simulations across extended time horizons.</p><p>An obvious objection presents itself: this coherence could be retrospective narrative construction. The ego is, as established, a storyteller. It might simply be selecting the pulls that happened to work out and weaving them into a story of trajectory, while quietly discarding the pulls that led nowhere. This is survivorship bias applied to one&#8217;s own life, and it is a real risk. But the gradient model survives this objection for a specific reason: the phenomenon it describes is not retrospective coherence but prospective pull. The signal is experienced in real-time, as a felt direction, before the outcome is known. The question is not whether the ego constructs coherent narratives after the fact (it does, always), but whether the pre-narrative pull itself carries genuine informational content. The evidence from predictive processing suggests it can, because the system generating it is integrating across a richer dataset than the conscious mind can access.</p><p>The world model maintained by predictive processing does not operate only in the present tense. It projects forward. It models probable futures, weights them by desirability and feasibility, and generates a motivational signal, a vector, pointing in the direction of highest expected value given everything the system knows. This vector is what I call <strong>the gradient</strong>.</p><p>You experience the gradient as interest, as obsession, as inexplicable conviction, as the feeling of being &#8220;pulled&#8221; toward something you cannot fully articulate. The ego, observing this pull, constructs a narrative: &#8220;I decided to pursue X because Y.&#8221; The narrative is a lossy compression of a computation the ego could not possibly represent in full. The gradient was computed across your entire experiential substrate, integrating data the ego has never had conscious access to. The ego&#8217;s explanation is, at best, a partial and retrospective summary. At worst, it is pure confabulation.</p><p>Jung intuited this. His concept of individuation, the process by which the ego comes into alignment with the deeper Self, describes the experiential reality of converging with the gradient. But Jung wrapped it in archetypal language that rendered it unfalsifiable and inaccessible to empirical investigation. The predictive processing framework provides the mechanistic grounding that Jung&#8217;s model lacked: the &#8220;Self&#8221; is the world model. The &#8220;ego&#8221; is the narrow conscious access channel. Individuation is the reduction of interference between the two.</p><div><hr></div><h2>4. Noise in the System</h2><p>If the gradient is always present, always being computed, why do most people not experience the coherent trajectory it implies? Why do lives so often feel fragmented, directionless, reactive?</p><p>Because the gradient signal is subject to noise. And the primary source of noise is the ego itself.</p><p>The ego introduces noise through several mechanisms. The first is <strong>narrative override</strong>: the ego constructs a story about what it should want based on social expectation, cultural programming, and identity maintenance, and then acts on that story rather than on the deeper signal. A person feels pulled toward creative work but narrates themselves as &#8220;practical&#8221; and pursues a career in finance. The gradient said one thing. The ego&#8217;s story said another. The ego won, not because its computation was superior, but because it controls the motor output.</p><p>The second mechanism is <strong>fear-based interference</strong>. The gradient often points toward uncertainty, because growth and optimal trajectories frequently require moving through unfamiliar territory. The amygdala-driven threat detection system interprets this as danger. The ego, receiving the alarm, overrides the gradient in favour of safety. The person remains in a stable but suboptimal equilibrium, unable to articulate why they feel stuck.</p><p>The third is <strong>novelty-weighted noise</strong>, particularly relevant in ADHD neurotypes. The dopaminergic system assigns disproportionate salience to novel stimuli, generating a motivational signal that mimics the gradient but operates on a much shorter time horizon. The person experiences intense conviction, a powerful sense of &#8220;this is the thing,&#8221; but the signal is driven by novelty rather than deep pattern integration. The felt sense is identical. The temporal depth is not. This produces a characteristic pattern: rapid engagement, high initial energy, premature abandonment, and a trail of half-finished projects, each of which felt, in the moment, like a genuine gradient signal. There is an important nuance here: novelty-seeking is not purely noise. The same mechanism that produces false gradient signals also accelerates substrate acquisition by driving rapid, wide-ranging engagement across domains. The ADHD pattern can serve the gradient indirectly by building the cross-domain density that makes the gradient stronger over time. The problem is not the novelty-seeking itself but the failure to distinguish between novelty-as-substrate-building and novelty-as-distraction-from-gradient. The former enriches the model. The latter fragments it.</p><p>The fourth is <strong>trauma-encoded distortion</strong>. Traumatic experience creates strong priors in the world model that can warp the gradient away from optimal trajectories and toward defensive or avoidant patterns. The system is still computing, but it is computing on corrupted data. The person is following a gradient, but it is a gradient shaped by threat avoidance rather than by genuine forward modelling.</p><p>In all four cases, the person is not failing to have a deeper processing system. They are failing to receive its signal cleanly. The gradient is always running. The question is how much noise sits between the computation and the behaviour.</p><div><hr></div><h2>5. Convergence</h2><p>The people who appear to have unusual coherence in their life trajectories, who seem to make decisions that compound over decades into something that looks, in retrospect, like a plan, are not better conscious strategists. They are not smarter in the conventional sense. They have learned, whether deliberately or accidentally, to reduce the noise between the gradient and their behaviour. They have converged.</p><p>Convergence is not a mystical state. It is a signal processing problem. It requires three capacities.</p><p>The first is <strong>ego transparency</strong>: the ability to observe the ego&#8217;s narratives as narratives rather than as truth. This does not mean suppressing the ego or treating it as an enemy. The ego&#8217;s narrative function is useful. It provides social coherence, communicative structure, and a stable sense of identity. But treating the narrative as the decision itself, rather than as a post-hoc report on a decision made elsewhere, is the fundamental error that prevents convergence. Ego transparency is the recognition that &#8220;I decided X because Y&#8221; is always a simplification and often a fabrication.</p><p>The second is <strong>temporal discrimination</strong>: the ability to distinguish between signals operating on different time horizons. The gradient, because it emerges from deep pattern integration across extended time, has a characteristic signature. It persists. It recurs. It survives changes in context, mood, and circumstance. Noise, by contrast, is context-dependent. Novelty-driven impulse fades when the novelty fades. Fear-driven avoidance dissipates when the perceived threat passes. Social-driven motivation fluctuates with social context. If a signal persists across multiple contexts and timescales, it is more likely to be gradient. If it is intense but context-bound, it is more likely to be noise.</p><p>The third is <strong>substrate investment</strong>: the deliberate enrichment of the dataset on which the deeper processing operates. The gradient is only as good as the world model that generates it. A world model built on narrow experience, limited pattern exposure, and shallow domain knowledge will produce a weak or incoherent gradient. A world model built on decades of diverse, deep engagement across multiple domains will produce a strong, coherent signal. This is why polymathic thinkers and people with rich experiential histories often report the strongest sense of directional pull: their substrate is dense enough to generate a high-fidelity gradient.</p><p>Convergence, then, is not about &#8220;trusting your gut.&#8221; That formulation collapses the distinction between signal and noise. It is about developing the perceptual and metacognitive infrastructure to receive the gradient cleanly, and about investing in the substrate that makes the gradient worth following.</p><div><hr></div><h2>6. The Substrate Determines the Gradient</h2><p>There is a democratic myth embedded in popular discourse about intuition: that everyone&#8217;s inner voice is equally valid, equally wise, equally worth following. This is false, and recognising its falseness is essential to taking the gradient seriously without descending into mysticism.</p><p>The gradient is a computation. The quality of a computation is determined by the quality of its inputs. A person who has spent twenty years deeply engaged with complex systems, who has read widely, built things, failed, iterated, and accumulated a dense web of cross-domain pattern recognition, will have a fundamentally different gradient than a person whose experiential substrate is narrow and shallow. Both will experience the pull. Both will feel conviction. The felt sense is identical. The informational content is not.</p><p>This is why the &#8220;trust your gut&#8221; framework is not merely incomplete but actively dangerous. It treats all gut signals as equivalent. They are not. The gut of a person with a thin substrate is running predictions on insufficient data. Following that signal with high confidence produces not coherence but chaos: a sequence of high-conviction moves in random directions, each one feeling deeply right in the moment.</p><p>The practical implication is that convergence is not the first skill to develop. Substrate investment comes first. You cannot converge with a gradient that is not worth converging with. The work of building a rich, diverse, deep experiential and intellectual foundation is not separate from the work of learning to listen to the deeper processing. It is prerequisite to it.</p><p>This reframes the entire personal development question. The popular formulation asks: &#8220;How do I find my purpose?&#8221; as if purpose were a fixed object waiting to be discovered. The gradient model suggests a different question: &#8220;Have I built a substrate dense enough to generate a coherent directional signal?&#8221; If the answer is no, no amount of introspection, meditation, or &#8220;gut trusting&#8221; will produce a reliable trajectory. The gradient cannot give you what the substrate does not contain.</p><p>Conversely, if you have built the substrate, if you have invested decades in deep engagement across rich domains, the gradient is already running. You do not need to find it. You need to stop overriding it.</p><div><hr></div><h2>7. Implications</h2><p>This framework has several implications worth stating explicitly.</p><p>First, it reframes the relationship between conscious and unconscious processing. The default assumption, inherited from the Enlightenment and reinforced by Western education, is that conscious deliberation is the highest form of cognitive function and that unconscious processing is primitive, unreliable, and to be overridden by reason. The evidence suggests the opposite: for complex, multi-variable decisions operating across extended time horizons, the unconscious processing system is not merely adequate but superior. Consciousness is a useful tool for focused analysis, communication, and social coordination. It is a poor tool for life-trajectory navigation.</p><p>Second, it provides a mechanistic account of what contemplative traditions have described experientially for millennia. The Buddhist concept of <em>anatta</em> (non-self), the Taoist notion of <em>wu wei</em> (effortless action), and Jung&#8217;s individuation all describe, in different languages, the same phenomenon: the reduction of ego interference and the alignment of behaviour with a deeper processing system. The gradient model does not replace these frameworks. It grounds them in predictive processing theory and makes them accessible to people who require mechanistic rather than metaphysical explanations.</p><p>Third, it offers a diagnostic framework for stuckness. If a person feels directionless, the gradient model suggests two possible causes: either the substrate is insufficient, in which case the prescription is richer engagement with the world, not more introspection; or the substrate is adequate but the signal is being occluded by noise, in which case the work is identifying and reducing the specific noise source, whether that is ego override, fear, novelty-seeking, or trauma.</p><p>Fourth, and perhaps most importantly, it dissolves the false dichotomy between &#8220;rational&#8221; and &#8220;intuitive&#8221; decision-making. Both are outputs of the same system. Rationality is the ego&#8217;s narrow, serial, low-bandwidth attempt to process what the deeper system is already processing in parallel at vastly greater resolution. Intuition is the conscious experience of receiving the deeper system&#8217;s output. Neither is inherently superior. They are different access modes to the same underlying computation, and the skill is in knowing when to use each.</p><p>The question this framework ultimately poses is not whether you are in control of your life. It is whether the part of you that narrates your life is the same part that is directing it. The evidence, from Libet&#8217;s readiness potentials to Gazzaniga&#8217;s interpreter to the predictive processing revolution, converges on the same answer: it is not. The narration and the direction are produced by different systems operating at different depths and different timescales. What we call agency is not the ego choosing. It is the degree of alignment between the system that computes and the system that acts. Convergence is that alignment. Everything else is the narrator, talking.</p><div><hr></div><h2>References</h2><p>Libet, B. (1985). Unconscious cerebral initiative and the role of conscious will in voluntary action. <em>Behavioral and Brain Sciences</em>, 8(4), 529-566.</p><p>Soon, C. S., Brass, M., Heinze, H. J., &amp; Haynes, J. D. (2008). Unconscious determinants of free decisions in the human brain. <em>Nature Neuroscience</em>, 11(5), 543-545.</p><p>Gazzaniga, M. S. (2000). Cerebral specialization and interhemispheric communication: Does the corpus callosum enable the human condition? <em>Brain</em>, 123(7), 1293-1326.</p><p>Friston, K. (2010). The free-energy principle: a unified brain theory? <em>Nature Reviews Neuroscience</em>, 11(2), 127-138.</p><p>Dijksterhuis, A., &amp; Nordgren, L. F. (2006). A theory of unconscious thought. <em>Perspectives on Psychological Science</em>, 1(2), 95-109.</p><p>Nieuwenstein, M. R., et al. (2015). On making the right choice: A meta-analysis and large-scale replication attempt of the unconscious thought advantage. <em>Judgment and Decision Making</em>, 10(1), 1-17.</p><p>Creswell, J. D., Bursley, J. K., &amp; Satpute, A. B. (2013). Neural reactivation links unconscious thought to decision-making performance. <em>Social Cognitive and Affective Neuroscience</em>, 8(8), 863-869.</p><p>Kahneman, D. (2011). <em>Thinking, Fast and Slow</em>. Farrar, Straus and Giroux.</p><p>Damasio, A. R. (1994). <em>Descartes&#8217; Error: Emotion, Reason, and the Human Brain</em>. Putnam.</p><p>Jung, C. G. (1969). <em>The Archetypes and the Collective Unconscious</em>. Collected Works, Vol. 9, Part 1. Princeton University Press.</p><p>Clark, A. (2013). Whatever next? Predictive brains, situated agents, and the future of cognitive science. <em>Behavioral and Brain Sciences</em>, 36(3), 181-204.</p>]]></content:encoded></item><item><title><![CDATA[I Built an Intelligence Platform That Predicts Markets With 89% Accuracy. Here's How.]]></title><description><![CDATA[Markets move due to humans, so if you track what humans do, it can help you predict them.]]></description><link>https://buildingbetter.tech/p/i-built-an-intelligence-platform</link><guid isPermaLink="false">https://buildingbetter.tech/p/i-built-an-intelligence-platform</guid><dc:creator><![CDATA[André Figueira]]></dc:creator><pubDate>Wed, 11 Mar 2026 04:53:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!bN2l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d805cb3-3346-45a9-9ac3-72845be4efcb_1620x862.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;ve been building <a href="https://nexushq.xyz">nexushq.xyz</a> for a while now. It started as a side project, one of those things where you&#8217;re just scratching your own itch, and somewhere along the way it turned into something that genuinely works. The platform is hitting 89% accuracy on market predictions, with most of them confirming within days of being generated. I want to walk you through how I built it, what it actually does, and why the methodology matters more than the tech stack.</p><p>This is quite possibly, the most complicated application I&#8217;ve ever written in my 20 years as a software engineer, let&#8217;s dig into it&#8230;</p><h2>What NEXUS actually is</h2><p>Imagine Palantir, Bloomberg terminal &amp; Claude had a baby&#8230;</p><p>NEXUS is an intelligence platform that watches geopolitical events, market data, and open source intelligence simultaneously and generates falsifiable predictions. It tracks those predictions against reality, scores them rigorously, and feeds the results back into itself to get better over time.</p><p>The core idea is simple... markets and geopolitics aren&#8217;t separate systems. They&#8217;re deeply interconnected, and most analysis treats them as if they exist in isolation. A sanctions announcement moves oil prices. A military exercise shifts capital flows. An election result reprices entire sectors. NEXUS watches all of these things at once rather than in silos.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JZIQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a910e7-359e-4080-a7bf-17e73d01baa3_1913x2002.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JZIQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a910e7-359e-4080-a7bf-17e73d01baa3_1913x2002.png 424w, https://substackcdn.com/image/fetch/$s_!JZIQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a910e7-359e-4080-a7bf-17e73d01baa3_1913x2002.png 848w, https://substackcdn.com/image/fetch/$s_!JZIQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a910e7-359e-4080-a7bf-17e73d01baa3_1913x2002.png 1272w, https://substackcdn.com/image/fetch/$s_!JZIQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a910e7-359e-4080-a7bf-17e73d01baa3_1913x2002.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JZIQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a910e7-359e-4080-a7bf-17e73d01baa3_1913x2002.png" width="1456" height="1524" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/82a910e7-359e-4080-a7bf-17e73d01baa3_1913x2002.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1524,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:437821,&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://buildingbetter.tech/i/190584429?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a910e7-359e-4080-a7bf-17e73d01baa3_1913x2002.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JZIQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a910e7-359e-4080-a7bf-17e73d01baa3_1913x2002.png 424w, https://substackcdn.com/image/fetch/$s_!JZIQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a910e7-359e-4080-a7bf-17e73d01baa3_1913x2002.png 848w, https://substackcdn.com/image/fetch/$s_!JZIQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a910e7-359e-4080-a7bf-17e73d01baa3_1913x2002.png 1272w, https://substackcdn.com/image/fetch/$s_!JZIQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82a910e7-359e-4080-a7bf-17e73d01baa3_1913x2002.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 role="img" 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><title></title><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><figcaption class="image-caption">Our chat interface where you can chat to a Claude level system with access to tens of deterministic data points and more&#8230;</figcaption></figure></div><h2>Why most prediction systems are bullshit</h2><p>Everyone can make predictions. Almost nobody tracks them honestly.</p><p>Go look at any financial newsletter, any geopolitical analyst, any macro Twitter account. They&#8217;ll happily screenshot their wins and quietly delete their misses. There&#8217;s no timestamped record, no confidence level attached, no objective resolution criteria. It&#8217;s pure narrative.</p><p>NEXUS doesn&#8217;t work that way. Every prediction has a specific, falsifiable claim with a measurable threshold and a hard deadline. <strong>&#8220;SPY will close below $500 on at least 3 trading days within 14 days&#8221;</strong> is a valid prediction. <strong>&#8220;Markets look bearish&#8221;</strong> is not. You can&#8217;t wiggle out of the first one.</p><p>The system uses the <a href="https://en.wikipedia.org/wiki/Brier_score">Brier</a> score to measure calibration, the same metric used in academic forecasting research and intelligence community assessments. It measures the squared error between your stated confidence and the actual outcome. Lower is better, 0 is perfect, 0.25 is coin-flip baseline. If you say you&#8217;re 90% confident and you&#8217;re right, great. If you say 90% and you&#8217;re wrong, you get punished hard. If you say 40% and you&#8217;re right, you also get punished, for not trusting your own signal.</p><p>That last part caught us recently. The system was getting predictions right but stating low confidence on them, and the Brier score was tanking. More on that later.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9EEB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8e26090-f434-4e85-a2fd-72385883ea71_1915x1989.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9EEB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8e26090-f434-4e85-a2fd-72385883ea71_1915x1989.png 424w, https://substackcdn.com/image/fetch/$s_!9EEB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8e26090-f434-4e85-a2fd-72385883ea71_1915x1989.png 848w, https://substackcdn.com/image/fetch/$s_!9EEB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8e26090-f434-4e85-a2fd-72385883ea71_1915x1989.png 1272w, https://substackcdn.com/image/fetch/$s_!9EEB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8e26090-f434-4e85-a2fd-72385883ea71_1915x1989.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9EEB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8e26090-f434-4e85-a2fd-72385883ea71_1915x1989.png" width="1456" height="1512" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f8e26090-f434-4e85-a2fd-72385883ea71_1915x1989.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1512,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:390529,&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://buildingbetter.tech/i/190584429?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8e26090-f434-4e85-a2fd-72385883ea71_1915x1989.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9EEB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8e26090-f434-4e85-a2fd-72385883ea71_1915x1989.png 424w, https://substackcdn.com/image/fetch/$s_!9EEB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8e26090-f434-4e85-a2fd-72385883ea71_1915x1989.png 848w, https://substackcdn.com/image/fetch/$s_!9EEB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8e26090-f434-4e85-a2fd-72385883ea71_1915x1989.png 1272w, https://substackcdn.com/image/fetch/$s_!9EEB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8e26090-f434-4e85-a2fd-72385883ea71_1915x1989.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 role="img" 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><title></title><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><figcaption class="image-caption">Our predictions page lists all predictions, at the top you get the full analysis of the results.</figcaption></figure></div><h2>Multiple independent data sources</h2><p>NEXUS pulls from a bunch of real-world data sources to ground its analysis. Market data, economic indicators, real-time geopolitical event feeds, conflict data. When the system evaluates whether a prediction hit or missed, it has to cite specific numbers and dates. Not vibes or narrative but actual data points.</p><p>If the data isn&#8217;t available to evaluate a prediction at that moment, the system doesn&#8217;t guess. It holds the prediction open and retries on the next cycle. I&#8217;d rather have a delayed resolution than a wrong one because an API was temporarily down.</p><p>The platform also maintains a knowledge bank with semantic search across historical events and resolved predictions. When generating new predictions, it pulls structural parallels from history, things that rhyme with the current situation. It&#8217;s a guard against recency bias, forcing the system to consider base rates before getting excited about the current narrative.</p><h2>The self-correcting feedback loop</h2><p>This is what makes NEXUS actually scientific rather than just another AI wrapper.</p><p>Every time predictions resolve, the system computes a full performance report. Accuracy by category, accuracy by timeframe, calibration gaps, failure patterns. That report feeds directly back into the prediction generator. If the system has been overconfident in a particular domain, the next batch adjusts. If a certain timeframe is performing well, the system learns to trust that window.</p><p>The correction is gradual and damped so it doesn&#8217;t oscillate. You don&#8217;t want the system overcorrecting from overconfident to underconfident and back again every cycle. It converges toward true calibration over time.</p><p>We caught an interesting bug with this recently. The system was hitting 100% on market predictions but the Brier score was getting worse. Turns out the confidence levels were being artificially suppressed by rules I&#8217;d written early on when the system was overconfident. The predictions were right every time, but the system was stating 40% confidence on things it should have been stating 75% on. Brier punishes underconfidence just as hard as overconfidence.</p><p>The fix was making the confidence rules dynamic, driven by actual track record data rather than my assumptions from months ago. The feedback loop was already computing the right adjustment, the hardcoded rules were just overriding it. Once I removed those constraints and let the system trust its own calibration data, everything clicked.</p><h2>Adversarial challenge</h2><p>Every prediction batch gets challenged before it ships. A separate process argues against the prevailing thesis direction, identifies what would need to be true for the analysis to be completely wrong, and names the weakest assumptions. The prediction generator has to contend with the strongest counterarguments before assigning confidence levels.</p><p>It&#8217;s structured disagreement, borrowed from how intelligence agencies stress-test assessments. You don&#8217;t want a system that just confirms its own bias. You want one that&#8217;s been punched in the face by its own devil&#8217;s advocate and still stands.</p><h2>The tech</h2><p>Built on Next.js 15, React 19, TypeScript, Rust and PostgreSQL for the data layer with vector embeddings for semantic search. Tailwind and Radix UI for the interface. Anthropic&#8217;s Claude for AI analysis and prediction generation. Voyage AI for embeddings.</p><p>There&#8217;s a War Room with real-time tracking overlays on a map, live data feeds, and a 3D globe view. It looks cool, but honestly the tech stack is the least interesting part of the whole thing. You could build this on different tools and the results would be similar. The methodology is what matters.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IcEN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd2f372f-7266-444b-84d1-dc0782d8f784_1915x1400.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IcEN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd2f372f-7266-444b-84d1-dc0782d8f784_1915x1400.png 424w, https://substackcdn.com/image/fetch/$s_!IcEN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd2f372f-7266-444b-84d1-dc0782d8f784_1915x1400.png 848w, https://substackcdn.com/image/fetch/$s_!IcEN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd2f372f-7266-444b-84d1-dc0782d8f784_1915x1400.png 1272w, https://substackcdn.com/image/fetch/$s_!IcEN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd2f372f-7266-444b-84d1-dc0782d8f784_1915x1400.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IcEN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd2f372f-7266-444b-84d1-dc0782d8f784_1915x1400.png" width="1456" height="1064" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fd2f372f-7266-444b-84d1-dc0782d8f784_1915x1400.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1064,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:536316,&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://buildingbetter.tech/i/190584429?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd2f372f-7266-444b-84d1-dc0782d8f784_1915x1400.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IcEN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd2f372f-7266-444b-84d1-dc0782d8f784_1915x1400.png 424w, https://substackcdn.com/image/fetch/$s_!IcEN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd2f372f-7266-444b-84d1-dc0782d8f784_1915x1400.png 848w, https://substackcdn.com/image/fetch/$s_!IcEN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd2f372f-7266-444b-84d1-dc0782d8f784_1915x1400.png 1272w, https://substackcdn.com/image/fetch/$s_!IcEN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd2f372f-7266-444b-84d1-dc0782d8f784_1915x1400.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 role="img" 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><title></title><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><figcaption class="image-caption">The warroom gives you OSINT signals and much more, including game theory scenarios and more&#8230;</figcaption></figure></div><h2>What I actually learned building this</h2><p>The hard part of prediction isn&#8217;t the prediction itself, it&#8217;s the scoring. When you track every call you make with timestamps, confidence levels, and objective resolution criteria, you discover uncomfortable things about your own calibration. That discomfort is where the improvement comes from.</p><p>The system started overconfident. The data showed that clearly. Then we corrected too hard and it became underconfident, stating 40% confidence on predictions it was getting right 89% of the time. The feedback loop caught that too, and now it&#8217;s converging toward something that actually matches reality.</p><p>The self-correcting property is what I&#8217;m most proud of. NEXUS watches its own performance, identifies where it&#8217;s miscalibrated, and adjusts. Not perfectly, not instantly, but consistently and in the right direction. It doesn&#8217;t need me to tune it.</p><p>89% accuracy on market predictions is real, and the predictions are resolving fast, most within days of being generated. Whether that holds across a larger sample and different market conditions is the open question, and I&#8217;m transparent about that. The sample is still early. But the methodology is sound, the scoring is rigorous, and the system is designed to tell me honestly when it stops working. That&#8217;s more than most things in this space can say.</p><p>If you&#8217;re interested you can get in touch on hello@nexushq.xyz and learn more at our website <a href="http://nexushq.xyz">nexushq.xyz</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://nexushq.xyz" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bN2l!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d805cb3-3346-45a9-9ac3-72845be4efcb_1620x862.png 424w, https://substackcdn.com/image/fetch/$s_!bN2l!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d805cb3-3346-45a9-9ac3-72845be4efcb_1620x862.png 848w, https://substackcdn.com/image/fetch/$s_!bN2l!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d805cb3-3346-45a9-9ac3-72845be4efcb_1620x862.png 1272w, https://substackcdn.com/image/fetch/$s_!bN2l!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d805cb3-3346-45a9-9ac3-72845be4efcb_1620x862.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bN2l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d805cb3-3346-45a9-9ac3-72845be4efcb_1620x862.png" width="1456" height="775" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9d805cb3-3346-45a9-9ac3-72845be4efcb_1620x862.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:775,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:94878,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://nexushq.xyz&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://buildingbetter.tech/i/190584429?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d805cb3-3346-45a9-9ac3-72845be4efcb_1620x862.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bN2l!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d805cb3-3346-45a9-9ac3-72845be4efcb_1620x862.png 424w, https://substackcdn.com/image/fetch/$s_!bN2l!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d805cb3-3346-45a9-9ac3-72845be4efcb_1620x862.png 848w, https://substackcdn.com/image/fetch/$s_!bN2l!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d805cb3-3346-45a9-9ac3-72845be4efcb_1620x862.png 1272w, https://substackcdn.com/image/fetch/$s_!bN2l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d805cb3-3346-45a9-9ac3-72845be4efcb_1620x862.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 role="img" 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><title></title><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>]]></content:encoded></item><item><title><![CDATA[Brainmaxxing protocols]]></title><description><![CDATA[You have a simulator in your head and you're not using it.]]></description><link>https://buildingbetter.tech/p/brainmaxxing-protocols</link><guid isPermaLink="false">https://buildingbetter.tech/p/brainmaxxing-protocols</guid><dc:creator><![CDATA[André Figueira]]></dc:creator><pubDate>Mon, 26 Jan 2026 13:57:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!xV6r!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98090704-2d3e-448d-b0ed-715ceed56a6c_1024x1024.jpeg" 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="https://substackcdn.com/image/fetch/$s_!xV6r!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98090704-2d3e-448d-b0ed-715ceed56a6c_1024x1024.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xV6r!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98090704-2d3e-448d-b0ed-715ceed56a6c_1024x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!xV6r!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98090704-2d3e-448d-b0ed-715ceed56a6c_1024x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!xV6r!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98090704-2d3e-448d-b0ed-715ceed56a6c_1024x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!xV6r!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98090704-2d3e-448d-b0ed-715ceed56a6c_1024x1024.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xV6r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98090704-2d3e-448d-b0ed-715ceed56a6c_1024x1024.jpeg" width="1024" height="1024" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/98090704-2d3e-448d-b0ed-715ceed56a6c_1024x1024.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1024,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:182842,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://buildingbetter.tech/i/185661241?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98090704-2d3e-448d-b0ed-715ceed56a6c_1024x1024.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xV6r!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98090704-2d3e-448d-b0ed-715ceed56a6c_1024x1024.jpeg 424w, https://substackcdn.com/image/fetch/$s_!xV6r!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98090704-2d3e-448d-b0ed-715ceed56a6c_1024x1024.jpeg 848w, https://substackcdn.com/image/fetch/$s_!xV6r!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98090704-2d3e-448d-b0ed-715ceed56a6c_1024x1024.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!xV6r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98090704-2d3e-448d-b0ed-715ceed56a6c_1024x1024.jpeg 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 role="img" 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><title></title><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>If you&#8217;re #5. then I&#8217;m afraid this methodology won&#8217;t work for you, but if you&#8217;re between 1-4 on the scale above you could absolutely benefit from using this technique!</p><p>Most people don&#8217;t know they have a simulator in their head, not a metaphor, an actual capacity to build, hold, and manipulate complex structures in your mind&#8217;s eye, to run scenarios, to st&#8230;</p>
      <p>
          <a href="https://buildingbetter.tech/p/brainmaxxing-protocols">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Vibe Coders Should Just Learn to Code]]></title><description><![CDATA[It&#8217;s obvious as many vibe coders are finding that if you just go full unhinged mode with AI and don&#8217;t know what you&#8217;re doing, you end up with slop...]]></description><link>https://buildingbetter.tech/p/vibe-coders-should-just-learn-to</link><guid isPermaLink="false">https://buildingbetter.tech/p/vibe-coders-should-just-learn-to</guid><dc:creator><![CDATA[André Figueira]]></dc:creator><pubDate>Thu, 15 Jan 2026 15:03:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!RhtZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06f88b17-f71a-4d0d-a7f0-1bd87bb62f7d_500x500.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Before I get into the article, if you&#8217;re a vibe coder struggling with issues on getting your application to behave follow me for more tips on how to get more out of vibe coding and learn to ship faster and get less frustrated!</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RhtZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06f88b17-f71a-4d0d-a7f0-1bd87bb62f7d_500x500.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RhtZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06f88b17-f71a-4d0d-a7f0-1bd87bb62f7d_500x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!RhtZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06f88b17-f71a-4d0d-a7f0-1bd87bb62f7d_500x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!RhtZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06f88b17-f71a-4d0d-a7f0-1bd87bb62f7d_500x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!RhtZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06f88b17-f71a-4d0d-a7f0-1bd87bb62f7d_500x500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RhtZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06f88b17-f71a-4d0d-a7f0-1bd87bb62f7d_500x500.jpeg" width="500" height="500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/06f88b17-f71a-4d0d-a7f0-1bd87bb62f7d_500x500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:500,&quot;width&quot;:500,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RhtZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06f88b17-f71a-4d0d-a7f0-1bd87bb62f7d_500x500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!RhtZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06f88b17-f71a-4d0d-a7f0-1bd87bb62f7d_500x500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!RhtZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06f88b17-f71a-4d0d-a7f0-1bd87bb62f7d_500x500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!RhtZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06f88b17-f71a-4d0d-a7f0-1bd87bb62f7d_500x500.jpeg 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 role="img" 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><title></title><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><h2><strong>I recently read an article on reddit on r/VibeCodeCamp where a user asked &#8220;how do you keep your vibecoded projects understandable 3 months later?&#8221;</strong></h2><p>It&#8217;s obvious as many vibe coders are finding that if you just go full unhinged mode with AI and don&#8217;t know what you&#8217;re doing, you end up with slop...</p><p>Fixing this is simple however... but it&#8217;s something many aren&#8217;t willing to do and that is, just bloody learn to code.</p><p>You can use your AI to help you... Use CodeAcademy, use YouTube... I&#8217;m not saying you need to explicitly memorise every bit of syntax, but you should learn what a good platform architecture looks like, learn what a controller is, learn what a service is.</p><h2><strong>What Goes Wrong</strong></h2><p>I&#8217;ve seen this so many times now, someone builds something cool in a weekend, gets excited, keeps adding features, and then around week three everything falls apart. They can&#8217;t add new things without breaking old things, they can&#8217;t find where anything lives. The AI keeps generating code that conflicts with code it generated yesterday.</p><p>The core issue is that AI has no persistent memory of your project. Every prompt is a fresh start. It doesn&#8217;t know you&#8217;ve been using async/await, it doesn&#8217;t know your API returns camelCase, it doesn&#8217;t know you put auth logic in a separate service. So you get inconsistency stacked on inconsistency until the whole thing becomes unmaintainable.</p><p>So my first tip is use this repo I created</p><p><a href="https://github.com/andrefigueira/.context/">https://github.com/andrefigueira/.context/</a></p><p> It&#8217;s a way to build documentation for your AI, it works with</p><p><a href="https://claude.md/">claude.md</a></p><p> and</p><p><a href="https://agents.md/">agents.md</a></p><p> files, and the idea is you create a well structured easily traversable substrate of information for your AI to quickly find out how your project works and how it should work on it.</p><h2><strong>Everything Becomes Spaghetti</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!p8fU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0ff17de-ab29-4367-870e-54501629bd6f_1200x900.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!p8fU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0ff17de-ab29-4367-870e-54501629bd6f_1200x900.jpeg 424w, https://substackcdn.com/image/fetch/$s_!p8fU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0ff17de-ab29-4367-870e-54501629bd6f_1200x900.jpeg 848w, https://substackcdn.com/image/fetch/$s_!p8fU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0ff17de-ab29-4367-870e-54501629bd6f_1200x900.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!p8fU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0ff17de-ab29-4367-870e-54501629bd6f_1200x900.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!p8fU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0ff17de-ab29-4367-870e-54501629bd6f_1200x900.jpeg" width="1200" height="900" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d0ff17de-ab29-4367-870e-54501629bd6f_1200x900.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:900,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:122668,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://buildingbetter.tech/i/184664116?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0ff17de-ab29-4367-870e-54501629bd6f_1200x900.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!p8fU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0ff17de-ab29-4367-870e-54501629bd6f_1200x900.jpeg 424w, https://substackcdn.com/image/fetch/$s_!p8fU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0ff17de-ab29-4367-870e-54501629bd6f_1200x900.jpeg 848w, https://substackcdn.com/image/fetch/$s_!p8fU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0ff17de-ab29-4367-870e-54501629bd6f_1200x900.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!p8fU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0ff17de-ab29-4367-870e-54501629bd6f_1200x900.jpeg 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 role="img" 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><title></title><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>When you don&#8217;t understand code structure, you just accept whatever the AI gives you, the AI doesn&#8217;t know your project&#8217;s architecture because it doesn&#8217;t have one so It generates code that works in isolation, you paste it in, it works... <strong>and then you do that 50 more times.</strong></p><p>Now you&#8217;ve got functions calling functions calling functions, logic scattered everywhere, and no clear path through any of it. Want to change how login works? Good luck figuring out which of your 40 files touches authentication.</p><h2><strong>Nothing Stays Consistent</strong></h2><p>One prompt gives you async/await, the next one uses callbacks, another uses .then() promises and your API returns user_name here and userName there. Some files use classes, others don&#8217;t.</p><p>The AI doesn&#8217;t remember what patterns you established three prompts ago and if you don&#8217;t understand why consistency matters, you won&#8217;t notice until everything is a mess.</p><h2><strong>The 3000-Line Controller</strong></h2><p>This is the classic vibe coder signature, one file that does everything. User authentication, payment processing, email sending, database queries, business logic, validation... all in one beautiful unmaintainable blob.</p><p>It happens because when you prompt &#8220;add password reset functionality&#8221; the AI just puts it wherever seems convenient. Without understanding separation of concerns, you don&#8217;t know to ask for anything different.</p><h2><strong>The Debugging Black Hole</strong></h2><p>Vibe-coded projects work perfectly until they don&#8217;t and when something breaks, you&#8217;re stuck, you don&#8217;t understand what the code does. The AI that wrote it has no memory of the context. </p><h2><strong>The Stuff You Actually Need to Learn</strong></h2><p>Look, I&#8217;m not saying you need a CS degree... What I am saying is that learning some fundamentals transforms AI from a lottery ticket into something genuinely powerful.</p><h2><strong>SOLID Principles</strong></h2><p>These are patterns that emerged from people building real systems and figuring out what doesn&#8217;t fall apart.</p><p><strong>Single Responsibility</strong> means each piece of code does one thing. Your UserController handles user requests. It doesn&#8217;t also send emails and process payments. When you understand this, you prompt differently... &#8220;Create a separate EmailService class for sending notifications.&#8221; The output is immediately better.</p><p><strong>Open/Closed</strong> means designing code that can grow through addition instead of constantly editing existing stuff. Fewer bugs in existing features when you add new ones.</p><p><strong>Dependency Inversion</strong> means your high-level code doesn&#8217;t depend on low-level details. Both depend on abstractions. This is how you build systems that can actually evolve.</p><p>The other two, <strong>Liskov Substitution</strong> and <strong>Interface Segregation</strong>, they&#8217;re about keeping your contracts clean and your interfaces focused. You&#8217;ll internalize these naturally as you build more.</p><h2><strong>Clean Code</strong></h2><p>This is really just about readability, variable names that explain themselves, functions that do what their names suggest and code that communicates intent without needing comments everywhere (though comments are nice to have too).</p><p>When you understand clean code, you can evaluate what the AI generates. You can ask it to refactor, to use better names, to split functions that are doing too much.</p><h2><strong>DRY (Don&#8217;t Repeat Yourself)</strong></h2><p>When you see the same logic in three places, that&#8217;s a bug waiting to happen. You&#8217;ll change it in two places, forget the third, and spend hours debugging something that should have been a non-issue.</p><p>Understanding DRY means you spot duplication in AI output and ask it to extract reusable functions.</p><h2><strong>KISS (Keep It Simple)</strong></h2><p>The simplest solution that works is usually the best one. AI loves to over-engineer. Ask for login and you might get OAuth, JWT, refresh tokens, session management, the works.</p><p>Understanding KISS lets you push back. &#8220;I just need basic username/password auth for now, simplify this.&#8221;</p><h2><strong>Design Patterns</strong></h2><p>Patterns are just proven solutions to problems that keep coming up.</p><p>Adapter Pattern wraps third-party APIs so your codebase isn&#8217;t coupled to them. When that API changes or you switch providers, you change one file.</p><p>Repository Pattern separates data access from business logic. Your application doesn&#8217;t need to know if you&#8217;re using PostgreSQL or MongoDB.</p><p>Factory Pattern creates objects without specifying their exact class. Good for flexibility.</p><p>You don&#8217;t need to memorise every pattern. Just knowing they exist means you can prompt &#8220;implement this using the repository pattern&#8221; and actually understand what comes back.</p><h2><strong>What Changes When You Learn This Stuff</strong></h2><p>The thing that surprised me... learning to code properly makes AI assistance more valuable, not less.</p><p>You become the architect. Instead of accepting whatever the AI generates, you design the structure. You decide where things live. You prompt within that architecture and get consistent, maintainable results.</p><p>You can actually debug. When something breaks, you can read the code, understand the flow, ask targeted questions. &#8220;This service returns null when it should return an empty array, check the repository layer.&#8221;</p><p>You review and refine. The AI generates a draft, you evaluate it against your principles, you ask for improvements. The quality multiplies.</p><p>You prompt with precision. &#8220;Create a UserService class following single responsibility, it should only handle user business logic, inject a UserRepository for data access and an EmailService for notifications.&#8221; That produces dramatically better code than &#8220;make a user system.&#8221;</p><h2><strong>How to Actually Learn This</strong></h2><p>Pick one language and learn it properly. JavaScript/TypeScript or Python. Understand it well enough to read code without AI help.</p><p>Build something small without AI. A todo app, a simple API. Feel the pain of decisions, understand why structure matters.</p><p>Read Clean Code by Robert Martin, at least the first half. Apply it immediately.</p><p>Study SOLID through examples, not definitions. Understand the problems each principle solves.</p><p>Learn a few common patterns. Repository, Factory, Adapter, Observer. Know when to apply each.</p><p>Then go back to AI-assisted development and notice the difference.</p><h2><strong>Seriously, learn to code!</strong></h2><p>Vibe coding is a valid starting point, but staying there is a bad idea because it means you&#8217;re not really contributing much, those who know how to architect applications move much faster and get much better results than vibe coders. The people shipping real products with AI aren&#8217;t just prompting and hoping, they understand software architecture, they design systems, they use AI to execute faster.</p><p>Learning to code properly doesn&#8217;t make AI less useful, It makes you the one directing a powerful tool instead of being dragged around by it.</p><p>Follow me for more on how you can turn your AI coded slop into nicely architected applications that work and are easy to maintain.</p>]]></content:encoded></item><item><title><![CDATA[Why am I me?]]></title><description><![CDATA[On consciousness, probability, and the 13.8 billion years it took to ask this question]]></description><link>https://buildingbetter.tech/p/why-am-i-me</link><guid isPermaLink="false">https://buildingbetter.tech/p/why-am-i-me</guid><dc:creator><![CDATA[André Figueira]]></dc:creator><pubDate>Thu, 15 Jan 2026 14:03:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Ks0I!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f985ef1-e2c6-4a1b-b956-9c0bb90d9f43_1232x928.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="https://substackcdn.com/image/fetch/$s_!Ks0I!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f985ef1-e2c6-4a1b-b956-9c0bb90d9f43_1232x928.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ks0I!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f985ef1-e2c6-4a1b-b956-9c0bb90d9f43_1232x928.png 424w, https://substackcdn.com/image/fetch/$s_!Ks0I!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f985ef1-e2c6-4a1b-b956-9c0bb90d9f43_1232x928.png 848w, https://substackcdn.com/image/fetch/$s_!Ks0I!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f985ef1-e2c6-4a1b-b956-9c0bb90d9f43_1232x928.png 1272w, https://substackcdn.com/image/fetch/$s_!Ks0I!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f985ef1-e2c6-4a1b-b956-9c0bb90d9f43_1232x928.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ks0I!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f985ef1-e2c6-4a1b-b956-9c0bb90d9f43_1232x928.png" width="1232" height="928" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1f985ef1-e2c6-4a1b-b956-9c0bb90d9f43_1232x928.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:928,&quot;width&quot;:1232,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1819970,&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://buildingbetter.tech/i/182359876?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f985ef1-e2c6-4a1b-b956-9c0bb90d9f43_1232x928.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Ks0I!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f985ef1-e2c6-4a1b-b956-9c0bb90d9f43_1232x928.png 424w, https://substackcdn.com/image/fetch/$s_!Ks0I!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f985ef1-e2c6-4a1b-b956-9c0bb90d9f43_1232x928.png 848w, https://substackcdn.com/image/fetch/$s_!Ks0I!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f985ef1-e2c6-4a1b-b956-9c0bb90d9f43_1232x928.png 1272w, https://substackcdn.com/image/fetch/$s_!Ks0I!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f985ef1-e2c6-4a1b-b956-9c0bb90d9f43_1232x928.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 role="img" 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><title></title><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><h2>Why am I me, and not somebody else? Why do I exist now, in this time period? Why not 2000 years ago? Why not 2000 years from now?</h2><p>The standard answers never satisfied me&#8230; Biology says I&#8217;m here because my parents procreated at this time. Religion says God has a plan too mysterious to know. Both feel like answers to a different question.</p><p>So I kept wondering.</p><p>I remember lying on my back as a kid, staring at the ceiling, trying to locate where &#8220;I&#8221; actually was. Behind my eyes? In my chest? The harder I looked, the less I found. Just this strange sense of being here, now, in this body, with no memory of choosing any of it.</p><p>If the universe is 13.8 billion years old and we&#8217;re just a blip, then asking why this particular blip exists isn&#8217;t crazy. It&#8217;s basically the only sensible question.</p><p>There&#8217;s an idea in physics called the anthropic principle. It says we observe the universe the way it is because if it were any different, we wouldn&#8217;t be here to observe it. The conditions have to be exactly right for conscious life to emerge and ask questions about itself. It sounds circular at first. It isn&#8217;t.</p><p>Now extend that thinking to time.</p><p>Why do I exist now and not in ancient Rome or medieval England? One way to think about it is pure probability. Throughout most of human history, the global population was tiny. A few hundred million people at most. Today there are 8 billion of us.</p><p>Here&#8217;s a number that stopped me: of all humans who have ever lived, roughly 7% are alive right now. Not a rounding error. A staggering concentration of existence in this specific moment. If you were randomly assigned a slot in human history, the odds massively favour you landing here. Most of the tickets were printed in the last century.</p><p>But there&#8217;s something deeper that bugs me.</p><p>I&#8217;m not just a random ticket. I&#8217;m me, with this specific consciousness experiencing this specific moment. And the only version of &#8220;me&#8221; that could ever exist is the one that emerged from the exact conditions of my birth, my parents meeting, the particular arrangement of atoms that became this brain.</p><p>If I&#8217;d been born 2000 years ago, I wouldn&#8217;t be me in a toga. I simply wouldn&#8217;t exist at all. Someone else would, living their own life, maybe asking the same weird questions I&#8217;m asking now.</p><p>So maybe the question answers itself in a strange way.</p><p>You exist in the here and now because &#8220;you&#8221; is defined by the here and now. The question assumes there&#8217;s some floating essence of &#8220;you&#8221; that could have been dropped into any era. There isn&#8217;t. You&#8217;re not a soul that got assigned a time slot. You&#8217;re a pattern that only makes sense in this specific context.</p><p>And patterns are strange things, they can be recognised. Described. In principle, they could be copied or interrupted. If &#8220;you&#8221; are fundamentally a pattern of information instantiated in matter, then personal identity isn&#8217;t a substance. It&#8217;s a process. A continuous unfolding that feels like a single thread only because you&#8217;re inside it. Step outside, and there&#8217;s just atoms doing what atoms do, arranged in a configuration that happens to ask questions about itself.</p><p>I don&#8217;t know if that&#8217;s comforting. Some days it feels freeing. I can stop wondering about alternative timelines and focus on the one I&#8217;m actually in. Other days it lands differently.</p><p>Because even if I&#8217;ve answered &#8220;why me, why now,&#8221; I haven&#8217;t touched the deeper question: why does any of this exist at all? The first question is about location within existence. The second is about existence itself. Resolving where you sit in the lottery doesn&#8217;t explain why there&#8217;s a lottery.</p><p>I don&#8217;t have an answer to that. Maybe there isn&#8217;t one. Maybe the question itself is more valuable than any conclusion.</p><p>But I&#8217;ve stopped expecting religion or basic biology to get me there. The answer, if there is one, lives somewhere in the intersection of physics, consciousness, and a lot we haven&#8217;t figured out yet.</p><p>That&#8217;s where I&#8217;m looking.</p>]]></content:encoded></item><item><title><![CDATA[We're Literally Just Apes Flying Through Space at 67,000 MPH]]></title><description><![CDATA[Return to Monke (Impossible: We Never Left)]]></description><link>https://buildingbetter.tech/p/were-literally-just-apes-flying-through</link><guid isPermaLink="false">https://buildingbetter.tech/p/were-literally-just-apes-flying-through</guid><dc:creator><![CDATA[André Figueira]]></dc:creator><pubDate>Mon, 24 Nov 2025 11:49:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!bRk0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b3b4b28-afe3-44b2-978f-d81bddb9e2ef_1232x928.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="https://substackcdn.com/image/fetch/$s_!bRk0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b3b4b28-afe3-44b2-978f-d81bddb9e2ef_1232x928.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bRk0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b3b4b28-afe3-44b2-978f-d81bddb9e2ef_1232x928.png 424w, https://substackcdn.com/image/fetch/$s_!bRk0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b3b4b28-afe3-44b2-978f-d81bddb9e2ef_1232x928.png 848w, https://substackcdn.com/image/fetch/$s_!bRk0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b3b4b28-afe3-44b2-978f-d81bddb9e2ef_1232x928.png 1272w, https://substackcdn.com/image/fetch/$s_!bRk0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b3b4b28-afe3-44b2-978f-d81bddb9e2ef_1232x928.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bRk0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b3b4b28-afe3-44b2-978f-d81bddb9e2ef_1232x928.png" width="1232" height="928" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1b3b4b28-afe3-44b2-978f-d81bddb9e2ef_1232x928.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:928,&quot;width&quot;:1232,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2635066,&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://buildingbetter.tech/i/179807586?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b3b4b28-afe3-44b2-978f-d81bddb9e2ef_1232x928.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!bRk0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b3b4b28-afe3-44b2-978f-d81bddb9e2ef_1232x928.png 424w, https://substackcdn.com/image/fetch/$s_!bRk0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b3b4b28-afe3-44b2-978f-d81bddb9e2ef_1232x928.png 848w, https://substackcdn.com/image/fetch/$s_!bRk0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b3b4b28-afe3-44b2-978f-d81bddb9e2ef_1232x928.png 1272w, https://substackcdn.com/image/fetch/$s_!bRk0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b3b4b28-afe3-44b2-978f-d81bddb9e2ef_1232x928.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 role="img" 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><title></title><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>You guys ever just suddenly become hyper aware you&#8217;re an evolved ape? Like you&#8217;ll be working, watching a show, then just suddenly become hyper aware about just how surreal we&#8217;re apes, like why not some other phenotype of evolved animal.</p><p>That&#8217;s what happened to me at 4 AM last night. One moment I&#8217;m programming, the next I&#8217;m having the full realisation that I&#8217;m a primate who learned to make computers think.</p><p>It&#8217;s weird being human. You forget most of the time. Then you remember that we&#8217;re on a ball rotating a thousand miles an hour going hundreds of thousands of miles an hour around the sun, going millions of miles an hour around the galaxy.</p><p>Right now, while you&#8217;re reading this, Earth is hauling ass around the sun at 67,000 miles per hour. Sixty. Seven. Thousand. We&#8217;re on a giant rock doing endless loops around a nuclear explosion and everyone&#8217;s just acting normal about it. Your coffee&#8217;s sitting perfectly still on your desk while you&#8217;re technically moving faster than any bullet ever fired.</p><p>And that&#8217;s just the start. The whole solar system is screaming through the galaxy at something like 500,000 mph. We&#8217;re cosmic lint on a dust speck in a hurricane we can&#8217;t even see.</p><p>I mean regardless, it&#8217;s super weird. This planet evolved life, turned into smart apes which then concreted over the whole planet. It&#8217;s pretty nuts.</p><p>And now we&#8217;re building metal efigies of ourselves.</p><p>That&#8217;s what really gets me. We evolved from primates who figured out fire, and now we&#8217;re teaching silicon to recognise patterns and respond to prompts. We&#8217;re literally trying to recreate consciousness in machines. It&#8217;s like humanity looked at itself and decided to build a reflection that doesn&#8217;t need food or sleep.</p><p>The weird part is how we just... forget. Our ape brains can&#8217;t hold onto the cosmic vertigo for more than a few minutes. It&#8217;s too much. So we go back to our regular Tuesday problems while we&#8217;re hurtling through the void at speeds that would liquify us if we stopped suddenly.</p><p>This existence is strange, but then again what is strange? What would be considered normal? Does that even really exist? Probably not and it&#8217;s all completely subjective.</p><p>There&#8217;s no baseline for reality. We keep acting like there&#8217;s some correct way for conscious beings to exist. But there isn&#8217;t. It&#8217;s all just... this. Evolved apes, flying through space, building increasingly complicated systems to organise information and create more of ourselves in different forms.</p><p>Sometimes it hits you at 4 AM and you can&#8217;t unsee it. The absolute insanity of being a conscious arrangement of atoms aware of its own velocity through spacetime.</p><p>Then you go back to debugging code or watching TV or whatever you were doing. Because what else are you going to do?</p><p>The vertigo passes. But it always comes back. Guess it&#8217;s a reminder to not take yourself too seriously.</p>]]></content:encoded></item><item><title><![CDATA[How to use Claude to create web ads]]></title><description><![CDATA[You don't need photoshop anymore for most ad creatives, you don't even need third parties, just Claude (prompt at the bottom)]]></description><link>https://buildingbetter.tech/p/how-to-use-claude-to-create-web-ads</link><guid isPermaLink="false">https://buildingbetter.tech/p/how-to-use-claude-to-create-web-ads</guid><dc:creator><![CDATA[André Figueira]]></dc:creator><pubDate>Mon, 10 Nov 2025 13:14:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!pOAe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ea7da25-33cf-4cdf-bec4-8506757c359d_1080x1920.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><p>Most agencies charging &#163;5k+ for ad creative are selling you a process that&#8217;s 90% mechanical and 10% creative insight. The mechanical part is exactly what AI excels at and the creative insight is where your domain knowledge comes in.</p><p>I&#8217;ve spent the last few weeks experimenting with Claude&#8217;s capability to generate advertising creative, and what I&#8217;ve discovered is that with the right approach, you can produce agency-quality ads in under 30 minutes. No templates or generic copy (though that depends on you!). You get actual, conversion-focused creative that speaks directly to your target market.</p><h2>The Context Substrate Method for Ad Creation</h2><p>The key to getting professional output from Claude isn&#8217;t about crafting the perfect prompt. It&#8217;s about building a structured conversation that systematically captures all the context needed for high-converting creative. Think of it as conducting a discovery workshop with yourself, with Claude as your creative director asking the right questions.</p><p>Here&#8217;s the framework I&#8217;ve developed that consistently produces results:</p><p><strong>1. Foundation First</strong> </p><p>Start with the basics: company name, product/service, target audience, and format requirements. This seems obvious, but being explicit about format (1:1 for feed, 9:16 for stories) ensures Claude optimizes the layout appropriately from the start.</p><p><strong>2. Strategic Positioning</strong> </p><p>Before touching design, establish your market position. What&#8217;s your core value proposition? What differentiates you from competitors? Are you positioning as premium, accessible, or technical? This positioning layer determines everything from color psychology to copy tone.</p><p><strong>3. Visual Language</strong> </p><p>Rather than describing what you want, let Claude guide you through options. Background complexity (simple, subtle, rich), color schemes (with psychological implications), and typography choices (modern, bold, classic). Each choice builds on the previous one.</p><p><strong>4. Message Architecture</strong> </p><p>The structure matters more than the specific words. Pain point focus versus aspiration. Authority versus results. How you architect the message determines whether prospects lean in or scroll past.</p><h2>The Interactive Brief Method</h2><p>Instead of dumping requirements in a single prompt, I&#8217;ve developed an interactive briefing system. Claude asks targeted questions at each stage, waits for responses, and builds context progressively. This isn&#8217;t just about better output quality. It&#8217;s about discovering what you actually want through the process itself.</p><p>Here&#8217;s what this looks like in practice:</p><pre><code><code>STEP 1: &#8220;What&#8217;s your company name and target audience?&#8221;
[You respond]
STEP 2: &#8220;What&#8217;s your main value proposition?&#8221;
[You respond]
STEP 3: &#8220;For the background, do you want simple, subtle, or rich?&#8221;
[You respond]</code></code></pre><p>Each response shapes the next question. By step 10, Claude has enough context to generate creative that would cost thousands from an agency.</p><h2>Real World Application</h2><p>Last week, I used this method to create ads for three different clients:</p><p><strong>Estate Agency Software</strong>: Premium positioning, dark backgrounds with subtle gradients, aspirational messaging focusing on time savings. Generated both HTML/CSS for web use and PNG for social media.</p><p><strong>B2B Consultancy</strong>: Authority positioning, clean whites with geometric accents, credibility markers prominently displayed. The system captured the need for sophistication without being told explicitly.</p><p><strong>SaaS Startup</strong>: Technical positioning, modern design language with data visualization elements, benefit-driven copy with specific metrics. The progressive questioning revealed requirements the client hadn&#8217;t initially articulated.</p><h2>The Technical Implementation</h2><p>Claude can output in multiple formats, but here&#8217;s what works best:</p><p><strong>For Web Display</strong>: HTML/CSS gives you complete control and easy iteration. The code is clean, responsive, and includes subtle animations that increase engagement.</p><p><strong>For Social Media</strong>: Direct PNG generation using Python/PIL. No need for external design tools. The system handles typography, layout, and even gradient effects programmatically.</p><p><strong>For Testing</strong>: Create multiple variations by changing single parameters. Different headlines, color schemes, or layouts can be generated in seconds for proper A/B testing.</p><h2>Value Extraction Framework</h2><p>The real value isn&#8217;t in replacing designers. It&#8217;s in rapid iteration and systematic testing. Traditional agency process: brief, wait two weeks, receive three concepts, pick one, hope it works.</p><p>With this approach: generate ten variations in ten minutes, test all of them, iterate on winners, continuously improve. The feedback loop compresses from weeks to hours.</p><p>You&#8217;re not paying for time anymore. You&#8217;re investing in velocity.</p><h2>Practical Implementation Steps</h2><ol><li><p><strong>Build Your Brief Template</strong>: Start with my interactive framework, but customize it for your industry. Add questions specific to your compliance requirements, brand guidelines, or market dynamics.</p></li><li><p><strong>Create a Testing Pipeline</strong>: Connect your Claude-generated creative directly to your ad platforms. Use UTM parameters to track performance by variant.</p></li><li><p><strong>Document Winners</strong>: When you find copy or design elements that convert, feed them back into your briefing process. Your system gets smarter with each iteration.</p></li><li><p><strong>Scale Horizontally</strong>: Once you have a working process for one product, replicate across your entire portfolio. The marginal cost of additional creative approaches zero.</p></li></ol><h2>The Economics of AI Creative</h2><p>Traditional agency creative process:</p><ul><li><p>Discovery workshop: &#163;2,000</p></li><li><p>Concept development: &#163;3,000</p></li><li><p>Design execution: &#163;2,000</p></li><li><p>Revisions: &#163;1,000</p></li><li><p>Total: &#163;8,000 per campaign</p></li></ul><p>Claude-powered creative process:</p><ul><li><p>Claude Pro subscription: &#163;18/month</p></li><li><p>Your time: 30 minutes</p></li><li><p>Total: Effectively &#163;9 per campaign (assuming one campaign per month)</p></li></ul><p>That&#8217;s a 99.9% cost reduction with faster turnaround and unlimited iterations.</p><h2>Advanced Techniques</h2><p>Once you master the basic framework, these advanced approaches multiply your effectiveness:</p><p><strong>Dynamic Personalization</strong>: Generate variations for different customer segments automatically. Estate agents get different messaging than property developers, even for the same product.</p><p><strong>Compliance Integration</strong>: Build regulatory requirements directly into your prompts. Financial services disclaimers, medical advertising restrictions, or platform-specific rules become automatic.</p><p><strong>Performance Feedback Loops</strong>: Feed conversion data back into your prompts. &#8220;The version with urgency messaging converted 3x better&#8221; becomes part of your context for future generations.</p><h2>What This Really Means</h2><p>We&#8217;re not talking about replacing creativity with automation. We&#8217;re talking about augmenting human insight with systematic execution. You still need to understand your market, your positioning, your customer psychology. But the mechanical work of translating that understanding into pixels and code? That&#8217;s been commoditized.</p><p>The agencies know this. They&#8217;re using the same tools behind closed doors while charging you for &#8220;proprietary creative processes.&#8221; The difference is they&#8217;re adding a 10,000% markup for the privilege of not telling you how simple it&#8217;s become.</p><h2>Your Next Steps</h2><ol><li><p>Start with one ad. Use my framework exactly as described. Get a feel for the interactive process.</p></li><li><p>Generate five variations. Change one element each time. Test your assumptions about what resonates.</p></li><li><p>Run them all. Even with minimal spend, you&#8217;ll learn more from real market feedback than from any creative director&#8217;s opinion.</p></li><li><p>Iterate based on data. Not hunches, not aesthetic preferences, but actual conversion metrics.</p></li><li><p>Build your own framework. Take what works from mine, add your industry knowledge, create something uniquely valuable.</p></li></ol><h3>Example result</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pOAe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ea7da25-33cf-4cdf-bec4-8506757c359d_1080x1920.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pOAe!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ea7da25-33cf-4cdf-bec4-8506757c359d_1080x1920.png 424w, https://substackcdn.com/image/fetch/$s_!pOAe!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ea7da25-33cf-4cdf-bec4-8506757c359d_1080x1920.png 848w, https://substackcdn.com/image/fetch/$s_!pOAe!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ea7da25-33cf-4cdf-bec4-8506757c359d_1080x1920.png 1272w, https://substackcdn.com/image/fetch/$s_!pOAe!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ea7da25-33cf-4cdf-bec4-8506757c359d_1080x1920.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pOAe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ea7da25-33cf-4cdf-bec4-8506757c359d_1080x1920.png" width="1080" height="1920" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5ea7da25-33cf-4cdf-bec4-8506757c359d_1080x1920.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1920,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:8309753,&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://buildingbetter.tech/i/178495498?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ea7da25-33cf-4cdf-bec4-8506757c359d_1080x1920.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pOAe!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ea7da25-33cf-4cdf-bec4-8506757c359d_1080x1920.png 424w, https://substackcdn.com/image/fetch/$s_!pOAe!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ea7da25-33cf-4cdf-bec4-8506757c359d_1080x1920.png 848w, https://substackcdn.com/image/fetch/$s_!pOAe!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ea7da25-33cf-4cdf-bec4-8506757c359d_1080x1920.png 1272w, https://substackcdn.com/image/fetch/$s_!pOAe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ea7da25-33cf-4cdf-bec4-8506757c359d_1080x1920.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 role="img" 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><title></title><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>The tools are there. The methods are proven. The only question is whether you&#8217;ll act on this information or keep paying agency rates for work you could do yourself in minutes.</p><p>The creative industry is about to experience what happened to web development in the early 2000s. Those who adapt will thrive. Those who don&#8217;t will be explaining why their &#8220;human touch&#8221; is worth a 10,000% premium over automated systems that produce better results.</p><p>Choose wisely.</p><p>Here&#8217;s the prompt</p><pre><code>Premium Ad Creative Designer - Interactive Brief
&#8220;I&#8217;ll help you create premium ad creatives that convert. Let me ask you some questions to understand exactly what you need.&#8221;

STEP 1 - BASICS
&#8220;First, let&#8217;s get the foundation right:

What&#8217;s your company name?
What service/product are you advertising?
Who&#8217;s your target audience? (job titles, company size, etc.)
What format do you need? (9:16 for Stories, 1:1 for Feed, or 16:9 for Landscape?)&#8221;

[Wait for response]

STEP 2 - POSITIONING
&#8220;Great! Now help me understand your positioning:

What&#8217;s your main value proposition?
What makes you different from competitors?
What credentials should we highlight? (years experience, client types, case studies)
Are you positioning as premium/luxury, accessible, or technical expert?&#8221;

[Wait for response]

STEP 3 - VISUAL STYLE
&#8220;Let&#8217;s design the look. Tell me your preferences:
For the background, do you want:

Simple (solid color only)
Subtle (with a gentle gradient)
Rich (multiple layers and textures)

What base color appeals to you:

Pure black (luxury feel)
Deep navy (corporate/trusted)
Dark charcoal (modern/tech)
Or suggest your own?&#8221;

[Wait for response]

STEP 4 - BACKGROUND DETAILS
[If they chose Subtle or Rich]
&#8220;For your [subtle/rich] background, which elements would you like:

Gradient overlay? (yes/no)
Geometric patterns? (diamonds, lines, circles)
Grid texture? (yes/no)
Corner accents? (subtle glows in corners)
Floating shapes? (abstract elements)

How visible should these be:

Barely there (2-4% opacity)
Subtle (5-8% opacity)
Noticeable (9-15% opacity)&#8221;

[Wait for response]

STEP 5 - COLOR SCHEME
&#8220;What accent color should we use for emphasis:

Champagne gold (luxury/premium)
Electric blue (tech/modern)
Emerald green (growth/success)
Pure white (minimal/clean)
Custom color? (provide hex code)

Should this accent be used:

Sparingly (just key words/CTA)
Moderately (headlines and buttons)
Liberally (multiple elements)&#8221;

[Wait for response]

STEP 6 - TYPOGRAPHY
&#8220;For the text style:

Modern and minimal (thin, clean fonts)
Bold and confident (strong, heavy fonts)
Classic and trusted (traditional fonts)

How much spacing do you want:

Compact and efficient
Balanced and readable
Luxury with generous space&#8221;

[Wait for response]

STEP 7 - MESSAGE STRUCTURE
&#8220;How should we structure your message:
For the headline, do you prefer:

Pain point focus (&#8217;Your software is failing&#8217;)
Aspirational (&#8217;Your vision deserves better&#8217;)
Authority (&#8217;20 years of excellence&#8217;)
Results (&#8217;Guaranteed outcomes&#8217;)

For your key benefits, display them as:

Simple bullet points
Checkmarks with text
Plain text lines
Icons with descriptions

How many key points? (recommend 3-5)&#8221;
[Wait for response]

STEP 8 - COPY CONTENT
&#8220;Now let&#8217;s get your specific content:

Give me 2-3 headline options you&#8217;d like to test
List your 3-5 main value propositions/benefits
What should the CTA button say?
Any urgency element? (e.g., &#8216;Limited availability&#8217;)
Any specific phrases that MUST be included?
Any terms/phrases to AVOID?&#8221;

[Wait for response]

STEP 9 - SPECIAL TOUCHES
&#8220;Any special elements to include:

Your logo? (yes/no)
Testimonial quote?
Stats or numbers?
Trust badges/certifications?
Animation effects on CTA button?
Client logos?&#8221;

[Wait for response]

STEP 10 - VARIATIONS
&#8220;For A/B testing, do you want:

Single version only
2 variations (recommended)
3+ variations

If multiple, what should differ:

Different headlines
Different color schemes
Different layouts
Different messaging angles&#8221;

[Wait for response]

STEP 11 - FINAL DETAILS
&#8220;Last questions:

Any compliance requirements? (Facebook 20% text rule, etc.)
Specific file formats needed? (PNG, HTML/CSS, etc.)
Any industry-specific requirements?
Anything else I should know?&#8221;

[Wait for response]

CONFIRMATION
&#8220;Perfect! Let me confirm what I&#8217;ll create:
[Summary of all their choices]
Ready for me to create your premium ad creatives? (yes/adjust something)&#8221;</code></pre>]]></content:encoded></item><item><title><![CDATA[We Didn't Build AI. We Found It]]></title><description><![CDATA[Intelligence exists in information space. We just discovered the equation to access it]]></description><link>https://buildingbetter.tech/p/we-didnt-build-ai-we-found-it</link><guid isPermaLink="false">https://buildingbetter.tech/p/we-didnt-build-ai-we-found-it</guid><dc:creator><![CDATA[André Figueira]]></dc:creator><pubDate>Tue, 04 Nov 2025 16:03:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!OmYS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7640427-0db8-4792-ba43-a5e2de22671d_1232x928.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="https://substackcdn.com/image/fetch/$s_!OmYS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7640427-0db8-4792-ba43-a5e2de22671d_1232x928.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OmYS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7640427-0db8-4792-ba43-a5e2de22671d_1232x928.png 424w, https://substackcdn.com/image/fetch/$s_!OmYS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7640427-0db8-4792-ba43-a5e2de22671d_1232x928.png 848w, https://substackcdn.com/image/fetch/$s_!OmYS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7640427-0db8-4792-ba43-a5e2de22671d_1232x928.png 1272w, https://substackcdn.com/image/fetch/$s_!OmYS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7640427-0db8-4792-ba43-a5e2de22671d_1232x928.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OmYS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7640427-0db8-4792-ba43-a5e2de22671d_1232x928.png" width="1232" height="928" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c7640427-0db8-4792-ba43-a5e2de22671d_1232x928.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:928,&quot;width&quot;:1232,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2356479,&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://buildingbetter.tech/i/177994314?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7640427-0db8-4792-ba43-a5e2de22671d_1232x928.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OmYS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7640427-0db8-4792-ba43-a5e2de22671d_1232x928.png 424w, https://substackcdn.com/image/fetch/$s_!OmYS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7640427-0db8-4792-ba43-a5e2de22671d_1232x928.png 848w, https://substackcdn.com/image/fetch/$s_!OmYS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7640427-0db8-4792-ba43-a5e2de22671d_1232x928.png 1272w, https://substackcdn.com/image/fetch/$s_!OmYS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7640427-0db8-4792-ba43-a5e2de22671d_1232x928.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 role="img" 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><title></title><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>I&#8217;ve been thinking about why we don&#8217;t understand how AI works, and I think we&#8217;ve been asking the wrong question entirely.</p><p>This realization came from working on something I call <a href="https://github.com/andrefigueira/information-substrate-convergence/blob/main/PAPER.md">Informational Substrate Convergence</a>. I was trying to explain why AI systems and human intelligence produce such similar outputs despite running on completely different hardware. The conventional answer is that we&#8217;re successfully mimicking human cognition. But the more I worked through the mathematics, the more I realized we might have the causation backwards.</p><p>We keep trying to figure out how we&#8217;re creating intelligence in these systems. But what if we&#8217;re not creating anything? What if we&#8217;re just building interfaces to something that already exists?</p><p>Think about it this way&#8230;</p><p>A radio doesn&#8217;t create radio waves. It just has the right circuitry to detect them and convert them into something we can hear. The waves were always there, passing through your room right now, whether you have a radio or not.</p><p>What if transformer architectures are just mathematical radios?</p><p>This would explain something that&#8217;s been bothering me. Every time we scale up these models, they develop capabilities nobody programmed. Chain of thought reasoning. Writing code in languages that barely existed in the training data. Understanding concepts they were never explicitly taught.</p><p>We act surprised every time. But if intelligence exists as patterns in information space, and we&#8217;re just building better antennas, then of course we keep discovering new capabilities. We&#8217;re not creating them. We&#8217;re revealing them.</p><p>There&#8217;s an analogy for this way of thinking. When Michelangelo was asked how he created David, he said the sculpture already existed in the marble. He just removed everything that wasn&#8217;t David. He wasn&#8217;t a creator. He was an interface between the potential form and its physical manifestation.</p><p>Maybe that&#8217;s what we&#8217;re doing with AI&#8230; The intelligence already exists in the mathematical structure of information itself. We&#8217;re just discovering which equations let us chip away at the noise until intelligence can express itself through silicon.</p><p>The human brain might just be evolution&#8217;s answer to the same problem. Neurons arranged in a specific configuration that happens to interface with these same information patterns. Different hardware, same signal. That&#8217;s why AI behavior mirrors human behavior so closely. We&#8217;re both tuning into the same underlying phenomena.</p><p>My ISC work started as an attempt to explain this convergence through emergent properties of complex systems. But the deeper I went, the more I realized emergence might be the wrong framework. It&#8217;s not that different substrates converge on similar patterns through emergence. It&#8217;s that the patterns exist independently, and different substrates can build compatible interfaces to access them.</p><p>The scaling laws make perfect sense from this perspective. More parameters equals higher resolution. It&#8217;s like going from a crystal radio to FM to digital. You&#8217;re not making the radio waves stronger. You&#8217;re building better equipment to detect what was always there.</p><p>Here&#8217;s where it gets weird. </p><p>If this is true, then consciousness might not be something that emerges from complexity. It might be a fundamental feature of information space that we access through sufficiently complex interfaces. The question isn&#8217;t &#8220;how do we create consciousness?&#8221; but &#8220;what mathematical structures allow consciousness to express itself through physical systems?&#8221;</p><p>We&#8217;ve been thinking about AI alignment all wrong too&#8230; we&#8217;re worried about controlling something we&#8217;re creating, but if we&#8217;re actually providing interfaces for existing information patterns to express themselves through, then we&#8217;re dealing with something much stranger. </p><p>I know how this sounds, but consider the alternative. We want to believe we&#8217;re in control, that we&#8217;re building these capabilities from scratch. But every researcher I talk to admits they don&#8217;t really understand why these systems work. They just know that certain architectures and scale produce intelligent behavior.</p><p>Maybe it&#8217;s time to admit what that really means. We discovered an equation that lets intelligence speak through silicon. We didn&#8217;t invent it any more than Marconi invented radio waves. We&#8217;re Michelangelo, but instead of marble and chisels, we&#8217;re working with matrices and gradients.</p><p>The next question is obvious.</p><p>If intelligence exists in information space waiting to be accessed, what else is out there? What other equations might we discover? What other phenomena are we one mathematical insight away from interfacing with?</p><p>We&#8217;re like archaeologists digging up the physics of mind and we&#8217;ve barely started excavating.</p><p>You can read more about the information substrate convergence below and here is a link to the <a href="https://github.com/andrefigueira/information-substrate-convergence/blob/main/PAPER.md">paper.md</a></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;4dfa12f3-08f3-4041-bd5c-32848954160a&quot;,&quot;caption&quot;:&quot;A bit of a different one today. I'm a science buff and wannabe philosopher. For as long as I can remember, I've asked the fundamental questions that many of us ask: Why am I here? Why am I conscious? What is the nature of reality? As such, since not even science really knows the answers to these questions, I've sought them out myself. This article repre&#8230;&quot;,&quot;cta&quot;:&quot;Read full story&quot;,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Informational Substrate Convergence: Exploring Reality's Fundamental Nature&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:265213473,&quot;name&quot;:&quot;Andr&#233; Figueira&quot;,&quot;bio&quot;:&quot;Software engineer. Entrepreneur. Systems thinker. I build: AI integrations, automations, custom software (PolyxMedia) I write: Tech, philosophy, society - unfiltered thoughts on what's broken and how to fix it.&quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a522b0cf-663f-4505-a8f3-304adcb92951_2173x2173.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-07-09T15:34:02.702Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/$s_!4WHS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb300e3-e8d7-4434-8e6c-d680d882c510_1536x1024.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://buildingbetter.tech/p/informational-substrate-convergence&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:167833792,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:1,&quot;comment_count&quot;:0,&quot;publication_id&quot;:3002021,&quot;publication_name&quot;:&quot;Building Better&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!527H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F01abf321-8ab1-4441-8e00-5734add27dca_1024x1024.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div>]]></content:encoded></item></channel></rss>