<?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[josh mabry]]></title><description><![CDATA[I design systems. AI builds them. I believe orchestration beats implementation. The best architects don’t write code — they design systems that write themselves.]]></description><link>https://thoughtsbyjoshmabry.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!vwPx!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a5a90cd-545c-4d98-9a4a-d2b3fe313771_460x460.png</url><title>josh mabry</title><link>https://thoughtsbyjoshmabry.substack.com</link></image><generator>Substack</generator><lastBuildDate>Wed, 01 Jul 2026 04:12:25 GMT</lastBuildDate><atom:link href="https://thoughtsbyjoshmabry.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[josh mabry]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[thoughtsbyjoshmabry@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[thoughtsbyjoshmabry@substack.com]]></itunes:email><itunes:name><![CDATA[josh mabry]]></itunes:name></itunes:owner><itunes:author><![CDATA[josh mabry]]></itunes:author><googleplay:owner><![CDATA[thoughtsbyjoshmabry@substack.com]]></googleplay:owner><googleplay:email><![CDATA[thoughtsbyjoshmabry@substack.com]]></googleplay:email><googleplay:author><![CDATA[josh mabry]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[What's in a loop?]]></title><description><![CDATA[Strip away the framework and the marketing, and every agent is a loop. Here's what's actually in one.]]></description><link>https://thoughtsbyjoshmabry.substack.com/p/whats-in-a-loop</link><guid isPermaLink="false">https://thoughtsbyjoshmabry.substack.com/p/whats-in-a-loop</guid><dc:creator><![CDATA[josh mabry]]></dc:creator><pubDate>Tue, 30 Jun 2026 01:52:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!MXZt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d38bc46-0a51-43a3-bfa7-c62753ee1d46_1024x572.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_!MXZt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d38bc46-0a51-43a3-bfa7-c62753ee1d46_1024x572.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MXZt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d38bc46-0a51-43a3-bfa7-c62753ee1d46_1024x572.jpeg 424w, https://substackcdn.com/image/fetch/$s_!MXZt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d38bc46-0a51-43a3-bfa7-c62753ee1d46_1024x572.jpeg 848w, https://substackcdn.com/image/fetch/$s_!MXZt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d38bc46-0a51-43a3-bfa7-c62753ee1d46_1024x572.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!MXZt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d38bc46-0a51-43a3-bfa7-c62753ee1d46_1024x572.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MXZt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d38bc46-0a51-43a3-bfa7-c62753ee1d46_1024x572.jpeg" width="724" height="404.421875" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2d38bc46-0a51-43a3-bfa7-c62753ee1d46_1024x572.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:572,&quot;width&quot;:1024,&quot;resizeWidth&quot;:724,&quot;bytes&quot;:171415,&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://thoughtsbyjoshmabry.substack.com/i/204208085?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d38bc46-0a51-43a3-bfa7-c62753ee1d46_1024x572.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_!MXZt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d38bc46-0a51-43a3-bfa7-c62753ee1d46_1024x572.jpeg 424w, https://substackcdn.com/image/fetch/$s_!MXZt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d38bc46-0a51-43a3-bfa7-c62753ee1d46_1024x572.jpeg 848w, https://substackcdn.com/image/fetch/$s_!MXZt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d38bc46-0a51-43a3-bfa7-c62753ee1d46_1024x572.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!MXZt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2d38bc46-0a51-43a3-bfa7-c62753ee1d46_1024x572.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>Every agent I&#8217;ve ever built is a loop wearing different clothes. Strip away the framework, the model, the marketing, and what&#8217;s left is something that observes, decides, acts, and then looks again at what it changed. The whole field is an argument about what goes in each of those steps. So when people ask what an agent <em>is</em>, I&#8217;ve stopped reaching for a definition and started drawing a circle.</p><p>This is a piece about that circle: where it came from, what sits around it, the shapes it takes, and the one version of it, borrowed from a fighter pilot, that I&#8217;d actually design around.</p><h2>The oldest idea in the field</h2><p>The loop predates the word &#8220;agent&#8221; by decades. Norbert Wiener&#8217;s cybernetics in the 1940s was about exactly one thing: feedback. A system senses the world, compares it to a goal, acts to close the gap, and senses again. A thermostat is the canonical example and it is, technically, an agent. It perceives temperature, decides against a setpoint, and acts on a furnace. A dumb one, with a fixed policy, but the structure is all there.</p><p>By the time Russell and Norvig wrote *Artificial Intelligence: A Modern Approach* in the 1990s, the definition had hardened into something you&#8217;ve probably seen: an agent is anything that perceives its environment through sensors and acts on it through actuators. Perception in, action out, repeat. Reinforcement learning drew the same picture and made it the whole game. An agent and an environment pass observations and actions back and forth, the agent learning a policy that makes the loop pay off over time.</p><p>Then language models walked into the decide step. ReAct and the agent loops that followed kept the exact same shape (assemble context, reason, pick an action, execute it, observe the result, feed it back) and swapped the policy for a model that can read and write natural language. That&#8217;s the entire novelty. Not a new structure. A new thing sitting in an old seat.</p><p>The loop hasn&#8217;t changed in eighty years. What changed is that a model now fits in the decide step, and that most of the work is feeding it.</p><h2>The loop and the harness</h2><p>The loop is the engine. The harness is everything bolted around it.</p><p>The model only sees what the harness lets it observe and can only do what the harness lets it act on. Tools are the sensors and the actuators. Memory is what survives between turns. Context assembly is the thing that decides, every single iteration, what the model gets to look at before it reasons. Gates are where the loop is allowed to touch the real world and where it has to stop and ask. None of that is the model. All of it determines whether the model is useful.</p><p>So most of building an agent is building the harness, not picking the model. I&#8217;ve watched a capable model fail because it couldn&#8217;t see the thing it needed, and a smaller one succeed because the harness put the right three files in front of it at the right moment. The model is the part everyone talks about. The harness is the part that decides whether the loop closes or spins.</p><h2>The loop has shapes</h2><p>Once you start seeing loops, you notice they aren&#8217;t all the same.</p><p>The <strong>control loop</strong> is the thermostat: a fixed policy, no learning, fast and reliable inside its lane and useless outside it. Most of production software is control loops, and that&#8217;s correct. When a switch statement does the job, you don&#8217;t put a model in the seat.</p><p>The <strong>agent loop</strong> is the control loop with a model in the decide step. It trades determinism for range. It can handle inputs you didn&#8217;t enumerate, and in exchange it can be wrong in ways you didn&#8217;t enumerate either.</p><p>The <strong>reason-act loop</strong> (ReAct and its descendants) splits &#8220;decide&#8221; into thinking and doing, and crucially adds <em>observe the result of my own action</em> as a first-class step. That observation is what separates an agent from a very long prompt. Without it, the model is guessing into the void. With it, the loop can correct.</p><p>Then there are the loops inside the loop. A <strong>sampling loop</strong> runs the same step several times and judges the spread. I built one of these for judged self-consistency on a single model, and the lesson was that the loop, not the model count, was doing the work. A <strong>multi-agent system</strong> is loops nested in loops: an orchestrator&#8217;s loop dispatches a task, and the agent that receives it runs its own loop to completion before the outer one continues. And around all of it is the <strong>human loop</strong>, where a person on the merge button is a gate inside the largest loop in the system, the one that decides whether what the machine produced should actually ship.</p><p>Naming the shape matters because it tells you what to optimize. A control loop wants reliability. An agent loop wants better orientation. A sampling loop wants a good judge. A multi-agent loop wants a clean contract between the loops. Pick the wrong optimization and you&#8217;re tuning a part that isn&#8217;t the bottleneck.</p><h2>The loop that&#8217;s about winning</h2><p>The most useful version of the loop didn&#8217;t come from AI at all. It came from John Boyd, a US Air Force colonel who, in the early 1970s, was trying to explain why American pilots in Korea won dogfights they arguably shouldn&#8217;t have. His answer was a loop: Observe, Orient, Decide, Act. OODA.</p><p>Most people who cite it get it wrong in two ways. First, they draw it as a tidy circle, when Boyd&#8217;s real diagram is a tangle of feedback paths with one stage doing most of the work. Second, they think it&#8217;s about speed. It isn&#8217;t, quite. It&#8217;s about <em>tempo</em>: cycling through your loop faster and more relevantly than the thing you&#8217;re competing against, until you&#8217;re acting on a picture of the world it hasn&#8217;t caught up to yet. Boyd called it getting inside the opponent&#8217;s loop.</p><p>And the stage doing the work is Orient. Observe just gathers raw input. Decide and Act are almost mechanical once the first two are right. Orient is where you take what you observed and run it against everything you already are (your experience, your model of the situation, your context) and turn data into a read on what&#8217;s actually happening. Boyd thought orientation was the whole ballgame, and anyone who has debugged an agent knows he was right. The model rarely fails at Decide or Act. It fails because it was oriented wrong: it was looking at a stale file, missing the one constraint that mattered, carrying context from a task that ended an hour ago. Bad orientation, confident action.</p><p>That reframes the entire job. When I work on an agent, I am almost never improving its ability to decide or act. I&#8217;m improving Orient: what it observes, how that gets synthesized, what it remembers, how I measure whether its read of the situation matches reality. Context engineering, memory, evaluation are all orientation work. The flashy part of an agent is the act. The leverage is one step earlier.</p><h2>Automating intelligent systems</h2><p>Here&#8217;s how I use this. When I design a system meant to act on its own, I draw its OODA loop and ask, for each stage, two questions: what&#8217;s automated, and what&#8217;s gated.</p><p>Observe is the harness: the tools, the context assembly, the retrieval. Automate it aggressively, because the loop can&#8217;t be better than what it sees. Orient is the model plus everything I feed it, and it&#8217;s where I spend most of my effort, because it&#8217;s where the system is most often wrong and where improvement compounds. Decide is the model&#8217;s call, and for a well-oriented loop it&#8217;s cheaper and safer than it looks. Act is tool execution, and it&#8217;s where I put the gates. The loop runs free right up until it would change something that&#8217;s expensive to undo, and there it stops for a human.</p><p>That&#8217;s the dark-factory model stated as a loop. The agents own a full OODA cycle for producing a mergeable change. They observe the codebase, orient against the task and the conventions, decide on an approach, and act by writing and reviewing it. The human owns a slower, outer loop: not &#8220;is this line right,&#8221; but &#8220;is this loop pointed at the right thing at all.&#8221; Two loops at two tempos, and a gate between them.</p><p>The goal of the whole arrangement is the thing Boyd was after &#8212; tempo. A system worth automating is one that can cycle faster than its problem changes. Get that, and the machine is acting on a current picture of the world while the problem is still catching up. Miss it, and you&#8217;ve built something that confidently solves the situation it was in five minutes ago.</p><p>That&#8217;s what&#8217;s in a loop. The model is one corner of it, the corner everyone stares at. Almost everything that decides whether the system works lives in the other three, and in how fast you can get around the circle. Build the harness, obsess over orientation, gate the act, and turn the loop faster than the competition can. The rest is which model you drop into the seat.</p><p>If you want to see one wired up, that&#8217;s what I build <a href="https://github.com/protoLabsAI/protoAgent">protoAgent</a> for: an open, A2A-native substrate that keeps the boring parts of the loop stable (the agent loop, tool calls, memory, evals, the release pipeline) so forking an agent comes down to which model goes in the seat. Take it, fork it, point it at your own problem: <a href="https://github.com/protoLabsAI/protoAgent">github.com/protoLabsAI/protoAgent</a>.</p><div><hr></div><p><em>Threads pulled here: Norbert Wiener&#8217;s cybernetics (https://en.wikipedia.org/wiki/Cybernetics) and the feedback loop; Russell &amp; Norvig&#8217;s (https://aima.cs.berkeley.edu/) sensors-and-actuators agent; the reinforcement-learning agent and environment loop; ReAct; and John Boyd&#8217;s OODA loop (https://en.wikipedia.org/wiki/OODA_loop).</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thoughtsbyjoshmabry.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="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>]]></content:encoded></item><item><title><![CDATA[Everything Everywhere All at Once: The Age of Invisible Machines]]></title><description><![CDATA[The organizations that win aren't building what you think they're building.]]></description><link>https://thoughtsbyjoshmabry.substack.com/p/everything-everywhere-all-at-once</link><guid isPermaLink="false">https://thoughtsbyjoshmabry.substack.com/p/everything-everywhere-all-at-once</guid><dc:creator><![CDATA[josh mabry]]></dc:creator><pubDate>Wed, 04 Mar 2026 22:24:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Ik9g!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcbfbab7-5eb9-4194-9f6e-22c5d3c601e4_1376x768.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_!Ik9g!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcbfbab7-5eb9-4194-9f6e-22c5d3c601e4_1376x768.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ik9g!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcbfbab7-5eb9-4194-9f6e-22c5d3c601e4_1376x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Ik9g!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcbfbab7-5eb9-4194-9f6e-22c5d3c601e4_1376x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Ik9g!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcbfbab7-5eb9-4194-9f6e-22c5d3c601e4_1376x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Ik9g!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcbfbab7-5eb9-4194-9f6e-22c5d3c601e4_1376x768.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ik9g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcbfbab7-5eb9-4194-9f6e-22c5d3c601e4_1376x768.jpeg" width="1376" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bcbfbab7-5eb9-4194-9f6e-22c5d3c601e4_1376x768.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1376,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:260406,&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://thoughtsbyjoshmabry.substack.com/i/189927237?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcbfbab7-5eb9-4194-9f6e-22c5d3c601e4_1376x768.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_!Ik9g!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcbfbab7-5eb9-4194-9f6e-22c5d3c601e4_1376x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Ik9g!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcbfbab7-5eb9-4194-9f6e-22c5d3c601e4_1376x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Ik9g!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcbfbab7-5eb9-4194-9f6e-22c5d3c601e4_1376x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Ik9g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbcbfbab7-5eb9-4194-9f6e-22c5d3c601e4_1376x768.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>A Parable</h2><p>Two organizations. Same industry. Same market pressure. Same mandate from the board: &#8220;We need AI.&#8221;</p><p>Org A watches what Org B is doing. The influencers say Org B is building a sidewalk &#8212; a nice, visible path forward. So Org A builds a sidewalk too. Fast. They slap concrete down as quickly as possible. Investors love it. The board is thrilled. &#8220;Look how fast we&#8217;re moving. We&#8217;re crushing Org B.&#8221;</p><p>But Org B isn&#8217;t building a sidewalk.</p><p>They&#8217;re building a conveyor belt.</p><p>It looks slower from the outside. There&#8217;s no ribbon to cut, no demo to show off at the next all-hands. They&#8217;re calibrating motors, testing load capacity, making sure every person in the organization understands what happens when the switch flips. It&#8217;s unglamorous work. Nobody writes a LinkedIn post about linting standards.</p><p>Org A is miles ahead &#8212; or so they think. They&#8217;re already spending the money they haven&#8217;t made yet, high-fiving over quarterly reports, dreaming of unicorn valuations.</p><p>Then they hear a sound from across the street. A celebration.</p><p>Org B slots in the final piece, flips a switch, and everything starts moving. Not one thing. Everything. Simultaneously. Continuously. Without anyone pushing it.</p><p>Org A stares at their sidewalk. People are still walking on it. Manually. One step at a time.</p><p>Now they have a choice: rip up the sidewalk and start building a conveyor belt from scratch, or try to chisel out the sloppy concrete and retrofit something that was never designed to move on its own.</p><p>Neither option is good. Both are expensive. And Org B&#8217;s belt is already running.</p><h2>The Wrong Conversation</h2><p>The entire industry is having the wrong conversation about AI.</p><p>&#8220;We need agents.&#8221; &#8220;We need copilots.&#8221; &#8220;We need a chatbot for our customers.&#8221; These are feature requests dressed up as strategy. They&#8217;re the sidewalk.</p><p>The actual challenge was never the AI. Agents aren&#8217;t hard. You can spin one up in an afternoon. The hard part &#8212; the part that leadership doesn&#8217;t want to fund because it doesn&#8217;t photograph well &#8212; is everything underneath.</p><p>It&#8217;s the automation architecture that lets systems talk to each other without a human in the middle. It&#8217;s the data modeling that ensures every agent, every pipeline, every service is working from the same source of truth instead of hallucinating its own. It&#8217;s the organizational readiness &#8212; the part where you actually prepare your people for a world where their job shifts from doing the work to guiding the systems that do it. It&#8217;s the design standards and code quality practices that determine whether an AI agent produces something shippable or something that has to be rewritten by hand. And it&#8217;s the cultural shift &#8212; the hardest one &#8212; from measuring output by hours worked to measuring it by systems orchestrated.</p><p>That&#8217;s the conveyor belt. And it&#8217;s invisible.</p><h2>The Blueprint Was Already Written</h2><p>In September 2022, Robb Wilson published <em>The Age of Invisible Machines</em> &#8212; a blueprint for hyperautomated ecosystems of intelligent digital workers. Two months later, ChatGPT dropped and the world lost its mind.</p><p>I&#8217;d already read the book. It laid out exactly what was coming: interconnected automations, conversational AI as infrastructure, organizations becoming self-driving. Not one flashy chatbot &#8212; an entire ecosystem of invisible systems working in concert. Wilson called them &#8220;invisible machines&#8221; because the point was never for humans to see them work. The point was for humans to stop working.</p><p>That framing changed how I thought about everything. While everyone else was scrambling to figure out what a large language model even was, I was already shaping the skillsets for that future. Building RAG pipelines, orchestrating multi-agent systems, designing the kind of infrastructure that Wilson described &#8212; the boring, critical, invisible stuff that actually makes organizations move.</p><p>Three years later, I have an autonomous AI development studio with a team of specialized agents that ship production code while I sleep. 3,750 commits. 1,300+ pull requests. 430,000 lines of TypeScript. One human.</p><p>That didn&#8217;t happen because I chased the hype. It happened because I followed the technology.</p><h2>The New Job</h2><p>Here&#8217;s the part that sounds like science fiction but is already real: your job is no longer to do the work. Your job is to guide the systems that do the work, verify the output, correct where it&#8217;s wrong, and feed those corrections back in so the system improves itself.</p><p>That&#8217;s it. That&#8217;s the entire shift.</p><p>Here&#8217;s what that looks like in practice. An AI agent on my team picks up a feature, writes the code, opens a pull request. CI runs. The linter catches something. The agent reads the failure, fixes it, pushes again. If the PR gets review feedback, the agent addresses it. If it fails twice, the system escalates to a more capable model and tries a different approach. My role is to set the standards, review the output, and correct the system where it drifts. Every correction makes the next run better. The system learns.</p><p>But none of that works without the invisible infrastructure. Linting standards. Design rules. Consistent data models. Pipeline architecture. Organizational discipline. The kind of investment that doesn&#8217;t show up in a demo but determines whether your conveyor belt runs or jams.</p><h2>The Race to the Bottom</h2><p>I&#8217;ve been talking about this for years. Stop what you&#8217;re doing. Pay attention. Learn how these systems work. Not the surface-level prompt engineering &#8212; the actual architecture underneath.</p><p>But people are too distracted by the shiny things. Every week there&#8217;s a new model, a new wrapper, a new startup claiming they&#8217;ve solved AGI with a React app and a system prompt. The influencers chase it. The investors fund it. The sidewalks multiply.</p><p>There is a stable path forward. It requires work, foresight, patience, and collective collaboration. It means investing in the invisible infrastructure that nobody wants to fund because you can&#8217;t put it in a pitch deck.</p><p>So here&#8217;s what you do Monday morning: audit your automation layer. Can an AI agent plug into your system tomorrow and start shipping work? If the answer is no &#8212; if there&#8217;s no consistent data model, no CI pipeline, no design standards, no clear interface between human review and machine execution &#8212; then you don&#8217;t have infrastructure. You have a sidewalk.</p><p>The organizations that figure this out will flip their switch and watch everything move. The ones that don&#8217;t will be standing on their sidewalk, wondering why they&#8217;re still walking.</p><p>The age of invisible machines is already here. The question is whether you&#8217;re building one, or just pouring concrete.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thoughtsbyjoshmabry.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="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[The Squeeze. Trademark pending.]]></title><description><![CDATA[I've been saying this for years. Most people nodded politely and went back to their Jira boards.]]></description><link>https://thoughtsbyjoshmabry.substack.com/p/the-squeeze-trademark-pending</link><guid isPermaLink="false">https://thoughtsbyjoshmabry.substack.com/p/the-squeeze-trademark-pending</guid><dc:creator><![CDATA[josh mabry]]></dc:creator><pubDate>Tue, 17 Feb 2026 20:57:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vwPx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a5a90cd-545c-4d98-9a4a-d2b3fe313771_460x460.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_!zQ2L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5fc9fa5-ef29-43ab-a69d-f13be3e50fad_1492x420.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zQ2L!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5fc9fa5-ef29-43ab-a69d-f13be3e50fad_1492x420.png 424w, https://substackcdn.com/image/fetch/$s_!zQ2L!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5fc9fa5-ef29-43ab-a69d-f13be3e50fad_1492x420.png 848w, https://substackcdn.com/image/fetch/$s_!zQ2L!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5fc9fa5-ef29-43ab-a69d-f13be3e50fad_1492x420.png 1272w, https://substackcdn.com/image/fetch/$s_!zQ2L!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5fc9fa5-ef29-43ab-a69d-f13be3e50fad_1492x420.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zQ2L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5fc9fa5-ef29-43ab-a69d-f13be3e50fad_1492x420.png" width="1456" height="410" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b5fc9fa5-ef29-43ab-a69d-f13be3e50fad_1492x420.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:410,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:70485,&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://thoughtsbyjoshmabry.substack.com/i/188309173?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5fc9fa5-ef29-43ab-a69d-f13be3e50fad_1492x420.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_!zQ2L!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5fc9fa5-ef29-43ab-a69d-f13be3e50fad_1492x420.png 424w, https://substackcdn.com/image/fetch/$s_!zQ2L!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5fc9fa5-ef29-43ab-a69d-f13be3e50fad_1492x420.png 848w, https://substackcdn.com/image/fetch/$s_!zQ2L!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5fc9fa5-ef29-43ab-a69d-f13be3e50fad_1492x420.png 1272w, https://substackcdn.com/image/fetch/$s_!zQ2L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5fc9fa5-ef29-43ab-a69d-f13be3e50fad_1492x420.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">You can see where the singularity began. Welcome to The Squeeze (TM)</figcaption></figure></div><p></p><p>Now it&#8217;s here, and they&#8217;re not ready.</p><p>The shift isn&#8217;t coming. It shifted. While you were debating whether AI could &#8220;really&#8221; write production code, the ground moved under you.</p><p>Here&#8217;s what the landscape looks like right now:</p><p><strong>From above</strong>, the big labs are shipping. Not demos. Not blog posts about what&#8217;s &#8220;possible.&#8221; Shipping. Anthropic released Claude Code &#8212; an autonomous coding agent that writes, tests, and commits production software. Google and OpenAI are doing the same. These teams produce more working code in a day than most mid-size companies ship in a quarter. They have the models, the talent, and the infrastructure to move at a speed that makes your sprint velocity look like a rounding error.</p><p><strong>From below</strong>, the one-person startups are eating your lunch. And here&#8217;s the part that should keep you up at night &#8212; they&#8217;re powered by the same talent that walked out of your building. The engineers who left in 2023 and 2024 while companies chased the hype cycle, trying to &#8220;pivot to AI&#8221; without understanding what that actually meant. Those people didn&#8217;t disappear. They learned to orchestrate. Now one person with the right systems ships what your team of forty can&#8217;t.</p><p>You are being squeezed from both directions, and the window to respond is closing fast.</p><p><strong>The middle is dying.</strong> Not slowly. Not in some theoretical future state. Right now. If you&#8217;re a 50-200 person company still running the 2019 playbook &#8212; two-week sprints, manual code review, feature factories staffed by humans doing work that machines do better and cheaper &#8212; you are already behind. You just don&#8217;t see it in your quarterly numbers yet. You will.</p><p><strong>What does &#8220;move fast&#8221; actually look like?</strong></p><p>I&#8217;ll tell you what it looks like for me. I define features on a Kanban board with acceptance criteria and dependency chains. AI agents claim those features, work in isolated git worktrees, and ship through the same CI pipeline any human engineer would &#8212; linting, type checking, tests, code review, auto-merge. If they fail, they retry with more context or escalate to a more capable model. If they succeed, the PR lands on main while I&#8217;m asleep.</p><p>2,600+ commits. 580+ pull requests. 370,000 lines of production TypeScript. One architect directing AI execution.</p><p>That&#8217;s not a decade of work. That&#8217;s a few months. And every month, the tools get better, the models get smarter, and the gap between &#8220;people who get it&#8221; and &#8220;people who don&#8217;t&#8221; gets wider.</p><p>The companies that survive the squeeze will be the ones who stop debating whether this is real and start rebuilding how they work. The playbook exists. The question is whether you&#8217;ll run it before or after your competitors do.</p><p>The squeeze doesn&#8217;t wait. Sign up below to make sure you don&#8217;t get left behind.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://thoughtsbyjoshmabry.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://thoughtsbyjoshmabry.substack.com/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[I Quit Coding. So Can You.]]></title><description><![CDATA[The best architects don't write code. They design systems that write themselves.]]></description><link>https://thoughtsbyjoshmabry.substack.com/p/i-quit-coding-so-can-you</link><guid isPermaLink="false">https://thoughtsbyjoshmabry.substack.com/p/i-quit-coding-so-can-you</guid><dc:creator><![CDATA[josh mabry]]></dc:creator><pubDate>Tue, 17 Feb 2026 07:27:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vwPx!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6a5a90cd-545c-4d98-9a4a-d2b3fe313771_460x460.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I haven&#8217;t hand-written code in months. Two weeks ago I stopped thinking about the code altogether. I just architect. My AI team ships.</p><p>500+ PRs. 700 commits. 366K lines. 12 days.</p><p>Those numbers aren&#8217;t hypothetical. They&#8217;re from production repositories with CI pipelines, branch protection, code review, and real users. The git log doesn&#8217;t lie.</p><div><hr></div><h2>The Journey Here</h2><p>I&#8217;ve been building AI systems for three years. Not using AI tools &#8212; <em>building AI systems</em>. RAG pipelines with LangChain and Pinecone. Multi-agent research platforms with knowledge graphs handling thousands of nodes. Generative gaming engines. I was copy-pasting code into 4K context windows and telling anyone who&#8217;d listen that this was going to change everything.</p><p>Before that, I spent 6 years as a software architect &#8212; design systems for Fortune 500 clients, AI integration lead at a SaaS platform. I got good at holding systems in my head. Data flows, failure modes, the places where abstractions leak.</p><p>AI tools 10x&#8217;d my workflow. I could ship in a week what used to take a month. But I was still the bottleneck &#8212; just a faster one. Then the question shifted. Not &#8220;how can AI help me code faster?&#8221; but &#8220;what if I designed a system where I don&#8217;t need to code at all?&#8221;</p><p>The insight wasn&#8217;t technical. It was organizational. An architect&#8217;s leverage comes from the quality of their design, not the speed of their typing. AI agents are &#8212; right now, today &#8212; capable of being those engineers. But only if you build the right scaffolding around them.</p><p>I didn&#8217;t stumble into this. I&#8217;ve been building toward it for three years.</p><div><hr></div><h2>The Architecture</h2><p>The system is called protoLabs. Here&#8217;s how it works:</p><p><strong>The Board.</strong> Everything starts with a Kanban board of features. Each one has a title, description, acceptance criteria, complexity rating, and dependency chain. I define these. This is where my architecture work lives.</p><p><strong>Agent Assignment.</strong> When a feature moves to in-progress, an AI agent claims it. The agent gets the feature spec, project context, and the full codebase. Not a vague prompt &#8212; a scoped assignment with clear boundaries.</p><p><strong>Worktree Isolation.</strong> Each agent works in an isolated git worktree &#8212; a completely separate working directory. Agents can&#8217;t step on each other. They can&#8217;t corrupt main.</p><p><strong>CI Validation.</strong> Every PR goes through the same pipeline any human PR would. Linting. Type checking. Tests. Format checks. If it doesn&#8217;t pass, it doesn&#8217;t merge. Agents don&#8217;t get special treatment.</p><p><strong>Antagonistic Review.</strong> Before a major feature gets built, a separate AI agent reviews the plan. Its only job is to find flaws. It catches architectural mistakes and scope creep before implementation begins.</p><p><strong>Trust Gates.</strong> The system stops and asks me to approve at the moments that matter: merging to main, approving a project plan, authorizing a new dependency. Trust is earned incrementally.</p><p><strong>Model Hierarchy.</strong> Small tasks get the fast model. Standard features get the balanced one. Architectural decisions get the most capable. Features that fail twice automatically escalate. The system adapts.</p><div><hr></div><h2>The Products</h2><p>Three real products have shipped through this system:</p><p><strong>protoLabs itself.</strong> The tool builds itself. New features are defined on its own board, implemented by its own agents, merged through its own CI. 94 features shipped this way.</p><p><strong>MythXEngine.</strong> An AI-powered tabletop RPG engine. Complex domain &#8212; narrative generation, game state management, character systems. Not a todo app.</p><p><strong>SVGVal.</strong> An ai powered generative SVG toolkit and evaluation platform. Smaller scope, but a complete product shipped start to finish by AI agents.</p><p>These aren&#8217;t demos at a conference. They&#8217;re deployed software with git histories you can read.</p><div><hr></div><h2>What My Day Looks Like</h2><p>I wake up. I check the board. I read through what shipped overnight. I review any PRs that hit a trust gate. I define new features or adjust priorities. I think about how components should interact, where the interfaces are, what the failure modes look like.</p><p>I spend maybe an hour a day on what used to take twelve. The rest of the time I&#8217;m thinking about the product, talking to users, or writing this.</p><p>The system works not because AI is magic, but because the engineering around the AI is sound. The guardrails are real. The failure recovery is tested. The trust is earned, not assumed.</p><div><hr></div><h2>Try It</h2><p><strong>protoLabs</strong> is source-available. The code is at <a href="https://github.com/proto-labs-ai">github.com/proto-labs-ai</a>. You can read the architecture, run it locally, and build on top of it.</p><p>If you want help setting up your own autonomous development pipeline, that&#8217;s what <a href="https://protolabs.studio">protolabs.studio</a> is for. No subscriptions. No per-seat pricing. Just the methodology and the tools.</p><p>The question isn&#8217;t whether AI can write code. It obviously can. The question is whether you can design a system that makes that capability reliable, safe, and autonomous.</p><p>I did. And I stopped coding.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://thoughtsbyjoshmabry.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="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>]]></content:encoded></item></channel></rss>