<?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[The Intent Layer]]></title><description><![CDATA[Where Software Takes Shape in the Age of Agents]]></description><link>https://intentlayer.to</link><image><url>https://substackcdn.com/image/fetch/$s_!7ub1!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd87631d4-edee-4114-9a09-c4a7976c10b6_1254x1254.png</url><title>The Intent Layer</title><link>https://intentlayer.to</link></image><generator>Substack</generator><lastBuildDate>Mon, 20 Jul 2026 19:33:22 GMT</lastBuildDate><atom:link href="https://intentlayer.to/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Matt Trifiro]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[intentlayerthe@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[intentlayerthe@substack.com]]></itunes:email><itunes:name><![CDATA[Matt Trifiro]]></itunes:name></itunes:owner><itunes:author><![CDATA[Matt Trifiro]]></itunes:author><googleplay:owner><![CDATA[intentlayerthe@substack.com]]></googleplay:owner><googleplay:email><![CDATA[intentlayerthe@substack.com]]></googleplay:email><googleplay:author><![CDATA[Matt Trifiro]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Cheap to Build, Expensive to Keep]]></title><description><![CDATA[The new economics of software in an age of effortless creation.]]></description><link>https://intentlayer.to/p/cheap-to-build-expensive-to-keep</link><guid isPermaLink="false">https://intentlayer.to/p/cheap-to-build-expensive-to-keep</guid><dc:creator><![CDATA[Matt Trifiro]]></dc:creator><pubDate>Mon, 20 Jul 2026 00:00:35 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!zrdu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ec9f0e0-f1d9-4fd5-81b0-a0e1abf7cdf3_1312x736.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_!zrdu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ec9f0e0-f1d9-4fd5-81b0-a0e1abf7cdf3_1312x736.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zrdu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ec9f0e0-f1d9-4fd5-81b0-a0e1abf7cdf3_1312x736.png 424w, https://substackcdn.com/image/fetch/$s_!zrdu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ec9f0e0-f1d9-4fd5-81b0-a0e1abf7cdf3_1312x736.png 848w, https://substackcdn.com/image/fetch/$s_!zrdu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ec9f0e0-f1d9-4fd5-81b0-a0e1abf7cdf3_1312x736.png 1272w, https://substackcdn.com/image/fetch/$s_!zrdu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ec9f0e0-f1d9-4fd5-81b0-a0e1abf7cdf3_1312x736.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zrdu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ec9f0e0-f1d9-4fd5-81b0-a0e1abf7cdf3_1312x736.png" width="1312" height="736" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1ec9f0e0-f1d9-4fd5-81b0-a0e1abf7cdf3_1312x736.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:736,&quot;width&quot;:1312,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:567232,&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://intentlayer.to/i/207714940?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ec9f0e0-f1d9-4fd5-81b0-a0e1abf7cdf3_1312x736.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_!zrdu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ec9f0e0-f1d9-4fd5-81b0-a0e1abf7cdf3_1312x736.png 424w, https://substackcdn.com/image/fetch/$s_!zrdu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ec9f0e0-f1d9-4fd5-81b0-a0e1abf7cdf3_1312x736.png 848w, https://substackcdn.com/image/fetch/$s_!zrdu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ec9f0e0-f1d9-4fd5-81b0-a0e1abf7cdf3_1312x736.png 1272w, https://substackcdn.com/image/fetch/$s_!zrdu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ec9f0e0-f1d9-4fd5-81b0-a0e1abf7cdf3_1312x736.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>In the early 1970s, a mathematician named <a href="https://ethw.org/Oral-History:Meir_Lehman">Meir Lehman</a> sat inside IBM and did something almost no one thought to do with software. He watched it age. Most of his colleagues treated a program the way a mason treats a wall, as a finished thing, mortar set, purpose fixed. Lehman had access to the release histories of <a href="https://en.wikipedia.org/wiki/OS/360_and_successors">IBM&#8217;s OS/360</a>, one of the largest and most ambitious operating systems ever attempted, and when he laid the successive versions one after another he saw not a wall but a river. The thing would not hold still. Each release grew more tangled than the last. Fixes bred fixes. Structure that had once been clean silted up with exceptions, patches, workarounds, the accumulated debris of contact with a changing world. Left alone, the software did not simply endure. It rotted.</p><p>From this Lehman drew a set of <a href="https://en.wikipedia.org/wiki/Lehman%27s_laws_of_software_evolution">laws</a>, and two of them still hum with a strange authority. A program that is used must be continually changed, or it grows progressively less useful. And as it changes, its complexity increases, unless deliberate work is done to hold that complexity down. He had, without quite saying so, imported an old and terrible idea out of physics and into the world of code.</p><h2>An Old and Terrible Idea</h2><p><a href="https://www.cs.kent.edu/~jmaletic/cs63902/Papers/Lehman96.pdf">Rudolf Clausius</a> had given it its name in 1865: entropy. He invented a word to describe the one direction in which the universe seemed unwilling to run, which was backward. Heat flows from hot to cold and never the reverse. Order, left to itself, decays into disorder. Every transfer of energy pays a tax, and the tax is never refunded. Clausius was thinking about steam engines, about the melancholy fact that no engine can ever be perfect. But the second law does not care about engines. It is a statement about time itself, about the way any organized thing, a crystal, a cell, a company, an operating system, tends to slide toward sludge the moment you stop pushing against the slide.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://intentlayer.to/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 The Intent Layer! 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><h2>A Program Is Not an Object</h2><p>No one tells you this when you learn to build. A program is a process held briefly against entropy by human attention, and the moment the attention wanders, the decay resumes. The dependency you never chose ships a change and your careful structure cracks. The interface you built against quietly moves. The model underneath your clever workflow shifts by a fraction of a degree, and the assistant that summarized your inbox flawlessly in June begins, in July, to invent meetings that never happened. Nothing broke, exactly. The world simply moved, as worlds do, and your creation did not move with it.</p><p>This decay was hidden, for most of my career, behind a larger cost, and the larger cost was the building. Writing the code was slow, expensive, the long middle of every project, and because it dominated the front of the ledger it dominated the imagination. We came to believe that construction was the hard thing. We built our entire mythology of the engineer around the act of creation, the lone author at the keyboard translating thought into instruction, line after line, and we let the quieter labor that came afterward, the tending, the patching, the endless small resistances against entropy, fall into shadow. Maintenance was janitorial. Building was art.</p><p>The accountants knew better, and had known for years. Barry Boehm spent the 1970s measuring where the money in a large system actually went, and he kept arriving at the same uncomfortable figure: more than half of a program&#8217;s lifetime cost, in many systems closer to seventy percent, was spent after it shipped. The keeping already cost more than the making. We never felt it, because the building arrived as a single dramatic bill and the keeping came diffuse, spread thin across years, a line item no one dreads the way they dread a construction budget. The larger cost was hiding in plain sight, at the bottom of a ledger we refused to read all the way down.</p><h2>The Toll Booth Removed</h2><p>Then the agents arrived, and they went straight for the part we had mistaken for the whole. Describe a tool in a paragraph and it exists before lunch. The long middle of <a href="https://www.cs.kent.edu/~jmaletic/cs63902/Papers/Lehman96.pdf">Lehman&#8217;s river</a>, the expensive stretch of pure construction, has narrowed almost to nothing. The tide has gone out, and the rocks lie bare. Creation was never where the entropy lived. Entropy lives in persistence, in the days and months after the thing works, and no agent has repealed the second law. It has only removed the toll booth that used to stand in front of it, the two weeks of effort that once made you ask, before you built a thing, whether it truly deserved to exist. Take that friction away and you take away the question. What remains is a person, a machine that never refuses, and a growing shelf of small programs, each one a process quietly demanding to be fed, each one sliding, the instant it is forgotten, back toward sludge.</p><h2>The Coal Question</h2><p>In 1865, while Clausius was naming the tax the universe levies on order, an English economist named <a href="https://en.wikipedia.org/wiki/Jevons_paradox">William Stanley Jevons</a> was worrying about coal. The engineers of his century had made the steam engine far more efficient, wringing more work from every lump, and everyone assumed the obvious would follow: a more efficient engine would burn less coal. Jevons watched the opposite happen. Cheaper power multiplied the uses power could be put to, until Britain was burning more coal than it ever had, precisely because each ton now did more.</p><p>Make a thing cheap enough and you do not get less of it. You get a flood, and every drop in the flood carries its own long tail of consequence. The cost of producing software has fallen the way the cost of mechanical work fell in Jevons&#8217;s England, and we are answering it exactly as the Victorians did, by building everything: a personal tool for every passing annoyance, a script for every whim, a small app to solve a problem we will have forgotten we ever had. Each of those creations is cheap to build and expensive to keep. We have manufactured a fleet of small engines, every one of them running down, every one of them demanding to be fed. The bill for making fell to almost nothing. The bill for keeping went up, because now there is so much more that has to be kept.</p><p>The vibe coders are learning this now, one abandoned project at a time, and they are learning it in the oldest possible way, which is by paying for it. What they are rediscovering is not a fact about software. It is a fact about the universe, one Clausius saw in his steam engines and Lehman saw in his <a href="https://www.bitsavers.org/pdf/ibm/360/360_OS_Release_Dates.txt">release notes</a> and every one of us eventually meets a long list full of things we built because we could. The making was never the cost. The keeping is the cost. It always was.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://intentlayer.to/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://intentlayer.to/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[Organized Panic, Standardized Systems]]></title><description><![CDATA[How a nineteenth-century kitchen offers a blueprint for modern software]]></description><link>https://intentlayer.to/p/organized-panic-standardized-systems</link><guid isPermaLink="false">https://intentlayer.to/p/organized-panic-standardized-systems</guid><dc:creator><![CDATA[Matt Trifiro]]></dc:creator><pubDate>Thu, 16 Jul 2026 02:17:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!RQ3L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29566a05-b565-4b1e-8c97-3e44d51c42d9_1312x736.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_!RQ3L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29566a05-b565-4b1e-8c97-3e44d51c42d9_1312x736.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RQ3L!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29566a05-b565-4b1e-8c97-3e44d51c42d9_1312x736.png 424w, https://substackcdn.com/image/fetch/$s_!RQ3L!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29566a05-b565-4b1e-8c97-3e44d51c42d9_1312x736.png 848w, https://substackcdn.com/image/fetch/$s_!RQ3L!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29566a05-b565-4b1e-8c97-3e44d51c42d9_1312x736.png 1272w, https://substackcdn.com/image/fetch/$s_!RQ3L!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29566a05-b565-4b1e-8c97-3e44d51c42d9_1312x736.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RQ3L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29566a05-b565-4b1e-8c97-3e44d51c42d9_1312x736.png" width="1312" height="736" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/29566a05-b565-4b1e-8c97-3e44d51c42d9_1312x736.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:736,&quot;width&quot;:1312,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1067158,&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://intentlayer.to/i/207232267?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29566a05-b565-4b1e-8c97-3e44d51c42d9_1312x736.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_!RQ3L!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29566a05-b565-4b1e-8c97-3e44d51c42d9_1312x736.png 424w, https://substackcdn.com/image/fetch/$s_!RQ3L!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29566a05-b565-4b1e-8c97-3e44d51c42d9_1312x736.png 848w, https://substackcdn.com/image/fetch/$s_!RQ3L!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29566a05-b565-4b1e-8c97-3e44d51c42d9_1312x736.png 1272w, https://substackcdn.com/image/fetch/$s_!RQ3L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29566a05-b565-4b1e-8c97-3e44d51c42d9_1312x736.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>The kitchen of the <a href="https://en.wikipedia.org/wiki/Savoy_Hotel">Savoy Hotel</a>, in the winter of 1890, ran on organized panic.</p><p>Professional kitchens then worked by a method called <em>service &#224; la fran&#231;aise</em>. It looked magnificent from the dining room and it was an operational nightmare behind the door. When a party ordered a feast, the kitchen prepared as many as thirty dishes to reach the table in the same moment. One cook chased a single dish the whole way: roast the bird, build the sauce, cut the garnish, plate it, then start again. The line was full of shouting and collisions and scorched copper. Food went out cold. When the dining room filled, the whole operation seized. To the guests in the velvet booths this was the price of luxury. The front of the house was calm and the back was a brawl, and the two were understood to be separate worlds.</p><p><a href="https://en.wikipedia.org/wiki/Auguste_Escoffier">Georges Auguste Escoffier</a> decided everyone had the problem backward. They were all looking at the dishes. He looked at the flow of work instead.</p><p>His answer was the <em>brigade de cuisine</em>. He cut the kitchen into stations, one for sauces, one for roasting, and one for pastry, each cook responsible for a narrow part of every plate. The part that mattered most was a new job: the <em>aboyeur</em>, the announcer. The aboyeur stood at the pass, the counter between the dining room and kitchen. Waiters did not shout orders across the line. They handed them to the aboyeur, who turned the noise of the room into a fixed set of calls the stations could execute.</p><p>Now the front of the house could do anything. A guest could eat in the grand room, order to a private suite, or ask for supper in the parlor at midnight. The request always arrived at the same place. Escoffier had not only built a faster kitchen. He had built a single point of entry that let wildly different rooms drive one engine of production. He standardized the core.</p><h2>The industry is celebrating the wrong thing</h2><p>Enterprise software is standing in that kitchen right now and calling it the headless revolution.</p><p>Listen to any stage at a developer conference and the future belongs to the headless application. The premise is simple: remove the presentation layer, the graphical interface people click through, and keep a pure API.</p><p>Sold that way, it reads as liberation. Strip off the rigid web pages and desktop screens and developers are free to build a mobile app, a smartwatch widget, and a feed into an autonomous assistant. The head is gone and the surfaces are limitless.</p><p>That framing praises the wrong half of the change. It counts what got removed and ignores what now has to hold. An API gets treated as a magic doorway that dissolves the integration problem, when cutting off the head does nothing to make the body work. If every new experience needs its own bespoke API to reach your data, you have not built a flexible system. You have built a web of one-off connections that fails under its own weight.</p><h2>The surface underneath</h2><p>Call the thing that actually matters the unified surface: a deep, capability-rich layer under everything, exposing every service through one identical face. It does not care what is calling. A legacy web portal, a phone app, a voice assistant, and an autonomous agent running inside an MCP session, each one hits the same structural boundary.</p><p>Watch a single transaction to see why that boundary earns its keep. A customer is buying a limited item in a flash sale, not from a browser but from a chat window, through an agent that authenticates over an MCP session and queries inventory. The customer says buy. In the same second, a continent away, another customer clicks buy on the same item from an ordinary website. If those two requests travel different code paths, if the headless system has splintered into separate service layers, the database sees two truths. Inventory disagrees with itself and one sale collapses. That failure is not exotic; it is the ordinary result of letting each channel own its own copy of the rules.</p><p>Zoom out from the one transaction. A modern enterprise system is not a block of code on one machine. It is a sprawl of services across hybrid clouds and distributed databases, dozens of platforms that have to move data in near real time. At that scale the physics change. You inherit the hard part: keeping state consistent across nodes when the network is slow and always partly failing.</p><p>A single surface is what makes that survivable. Route every request through one layer and the system can enforce the guarantees that keep it honest, atomicity and isolation among them. A state change in one place is visible everywhere because there is only one place. Let the headless app be a pile of endpoints built by different teams on different sprints and you lose that. Send every request, from the mobile app or the chatbot or the enterprise service bus, into the same surface, and the system keeps control of its own state. It holds performance as volume climbs. It bends under load instead of breaking.</p><h2>The core, not the screen</h2><p>Escoffier&#8217;s brigade did not succeed by hiding the kitchen. It succeeded by forcing the whole hotel through one orchestrated interface, the pass, where every order became the same kind of instruction. That standard is what kept the food consistent from the station to the plate, however the guest chose to order.</p><p>So the thing worth celebrating about headless software is not the discarded screen. The missing interface is trivia. What matters is the surface underneath: one layer that brings order to a distributed system that would otherwise drift out of agreement with itself. Look past the absent head and mind the integrity of the body, and you can build systems that stay consistent while everything about how they get reached keeps changing. The power was never in how the software looked. It is in what happens below the surface and whether that one place can be trusted.</p>]]></content:encoded></item><item><title><![CDATA[Decoding the AI Cost Curve]]></title><description><![CDATA[A framework for understanding what actually drives spend once automation reaches millions of users.]]></description><link>https://intentlayer.to/p/decoding-the-ai-cost-curve</link><guid isPermaLink="false">https://intentlayer.to/p/decoding-the-ai-cost-curve</guid><dc:creator><![CDATA[Matt Trifiro]]></dc:creator><pubDate>Mon, 13 Jul 2026 15:24:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ZXxz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7081c48c-0052-413e-902f-bd9d7c8c6234_1024x574.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_!ZXxz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7081c48c-0052-413e-902f-bd9d7c8c6234_1024x574.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZXxz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7081c48c-0052-413e-902f-bd9d7c8c6234_1024x574.png 424w, https://substackcdn.com/image/fetch/$s_!ZXxz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7081c48c-0052-413e-902f-bd9d7c8c6234_1024x574.png 848w, https://substackcdn.com/image/fetch/$s_!ZXxz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7081c48c-0052-413e-902f-bd9d7c8c6234_1024x574.png 1272w, https://substackcdn.com/image/fetch/$s_!ZXxz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7081c48c-0052-413e-902f-bd9d7c8c6234_1024x574.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ZXxz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7081c48c-0052-413e-902f-bd9d7c8c6234_1024x574.png" width="1024" height="574" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7081c48c-0052-413e-902f-bd9d7c8c6234_1024x574.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:574,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:604023,&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://intentlayer.to/i/206347597?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7081c48c-0052-413e-902f-bd9d7c8c6234_1024x574.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_!ZXxz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7081c48c-0052-413e-902f-bd9d7c8c6234_1024x574.png 424w, https://substackcdn.com/image/fetch/$s_!ZXxz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7081c48c-0052-413e-902f-bd9d7c8c6234_1024x574.png 848w, https://substackcdn.com/image/fetch/$s_!ZXxz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7081c48c-0052-413e-902f-bd9d7c8c6234_1024x574.png 1272w, https://substackcdn.com/image/fetch/$s_!ZXxz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7081c48c-0052-413e-902f-bd9d7c8c6234_1024x574.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></p><p>If you&#8217;re a software company and you ship an AI feature to a few thousand internal users, the cost is a rounding error you can ignore. Ship the same feature to a few million of your users and the line goes vertical, fast, in a way the pilot gave no warning of. Many are surprised by this spike because during a rollout everyone is optimizing for the demo and the deadline, not the invoice, so the first real signal that anything is wrong tends to arrive as a bill nobody can explain. You can&#8217;t manage that bill because it isn&#8217;t one thing. It&#8217;s an aggregate, and aggregates hide exactly the decisions that created them.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://intentlayer.to/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 The Intent Layer! 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><h2>Three Buckets, Not One Bill</h2><p>Production costs for a serious AI application separates into three structural buckets that behave nothing alike. The first is LLM tokens, the per-request cost of the model doing its work. The second is the vector database, the specialized store that holds your data as embeddings and searches it by meaning rather than by keyword, which is how retrieval-augmented systems find relevant context. The third is ordinary cloud infrastructure: compute, network, storage, and the logs that quietly pile up underneath everything.</p><p>Deployed without any constraints, each of these scales on its own clock, and the total obscures which one is actually running away. A team staring at a single climbing number will often assume it&#8217;s tokens because tokens are the part everyone talks about and miss that the vector database has quietly become half the bill. You don&#8217;t manage the sum. You manage the three things that add up to it, which means you first have to see them as three things.</p><h2>The Triangle Every Workload Sits Inside</h2><p>The real unit of AI cost isn&#8217;t the monthly total. It&#8217;s the individual workload, and every workload sits somewhere inside a three-way trade-off between accuracy, latency, and cost. Push for higher accuracy and you reach for a larger model or longer reasoning chains, which raises both the time each request takes and the price you pay for it. Pull costs down by moving the work to a smaller, lighter model and output quality drops in a way your users will feel. Speed, quality, and price are tied together, and you cannot maximize all three at once.</p><p>This is why the rolled-up bill is unmanageable as a rolled-up bill. It&#8217;s the sum of hundreds or thousands of separate placements inside that triangle, each one a design decision someone made about a specific workload: how good does this answer need to be, how fast, and what&#8217;s it worth paying for? A summarization that feeds an overnight report can sit in the cheap, slow, good-enough corner. A fraud check in a live checkout flow cannot. Averaging those two into one line item and trying to optimize the average gets you nowhere because there&#8217;s no single lever attached to it. The levers are all one level down on the workloads.</p><h2>Why Ambient Agents Break the Model</h2><p>The transactional chatbot had one merciful property: a predictable cost per interaction. A user sends a message, you pay for a call and maybe a retrieval, you return an answer, and the meter stops. You could multiply cost-per-conversation by expected conversations and get a number you could plan around.</p><p>Ambient agents throw that model out. An ambient agent is a continuous, background process wired into a live data stream, watching and acting rather than waiting to be spoken to: the agent that monitors every support ticket as it lands, or every transaction, or every code change. There is no discrete interaction to price because the thing never stops. Its cost is a function of how often it wakes, how many internal loops it runs to reason through a situation, and how often it hits an exception and retries the whole scenario. A single upstream data glitch can send a fleet of ambient agents into repeated retry loops, and that retry storm is a cost event nothing in the chatbot era taught anyone to watch for. The workloads that create the most value are precisely the ones whose spend is hardest to predict, and the old mental model of cost-per-message goes quiet right when you need it most.</p><h2>The Vector Database Is Its Own Discipline</h2><p>One of the three buckets deserves singling out because it scales silently and punishes neglect. Optimizing a vector database isn&#8217;t a knob you turn; it&#8217;s a data-engineering practice with real choices. You decide between exact nearest-neighbor search, which checks every candidate and is accurate but expensive, and approximate nearest-neighbor indexing, which trades a sliver of recall for a large drop in cost and latency. You apply quantization, which stores the embeddings at lower numerical precision to shrink their memory footprint and the compute needed to search them. You manage traffic and right-size instances instead of provisioning for a peak you rarely hit.</p><p>Done with care, these disciplines let the underlying data store grow enormously while its structural cost stays nearly flat. Ignored, the same store scales its cost straight up with its data, and one day you notice that semantic search, not the model, is the biggest number on the page. The bucket that&#8217;s easiest to forget is the one most likely to surprise you.</p><h2>Training and Inference Are Two Economies</h2><p>Even the raw hardware line hides two economies that shouldn&#8217;t share a row. Training is the upfront, data-heavy phase, and its cost is driven by dataset volume, gradient checkpointing, and the optimizer state parked in GPU memory while the model learns. Inference is the ongoing phase, where a finished model serves live requests, and its cost is driven by how you reserve capacity, how fully you use it, and how well you handle bursty real-time demand. The optimization moves for one do almost nothing for the other. Fold them into a single &#8220;GPU spend&#8221; number and you lose the ability to pull the right lever because you can no longer see which economy the money is going to.</p><h2>The Bill Is a Shape You Design</h2><p>None of this yields to management as a bill because it was never a bill. It&#8217;s the accumulated shape of decisions: three buckets scaling on separate clocks, a triangle placement chosen for every workload, a new class of always-on agents whose spend moves in ways the transactional era never modeled, and two hardware economies wearing one label. Every one of those is set in the design of the system, weeks or months before the invoice reflects it.</p><p>So the vertical spike that shows up after a big rollout isn&#8217;t really a billing surprise. It&#8217;s a set of design decisions you made earlier without pricing them, arriving all at once now that a million users are exercising them. You can meet those decisions on the invoice, after they&#8217;re load-bearing and expensive to change, or you can make them on purpose at the workload level, while they&#8217;re still just choices. The bill will tell you what you decided. It was never going to decide anything for you.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://intentlayer.to/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://intentlayer.to/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[The AI Cost Black Box]]></title><description><![CDATA[Why most companies have no idea what their AI spend is actually buying.]]></description><link>https://intentlayer.to/p/the-ai-cost-black-box</link><guid isPermaLink="false">https://intentlayer.to/p/the-ai-cost-black-box</guid><dc:creator><![CDATA[Matt Trifiro]]></dc:creator><pubDate>Sat, 11 Jul 2026 14:41:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!IhDC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb152c8c-eb62-49d6-9988-e1983b3f6272_1024x574.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_!IhDC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb152c8c-eb62-49d6-9988-e1983b3f6272_1024x574.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IhDC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb152c8c-eb62-49d6-9988-e1983b3f6272_1024x574.png 424w, https://substackcdn.com/image/fetch/$s_!IhDC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb152c8c-eb62-49d6-9988-e1983b3f6272_1024x574.png 848w, https://substackcdn.com/image/fetch/$s_!IhDC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb152c8c-eb62-49d6-9988-e1983b3f6272_1024x574.png 1272w, https://substackcdn.com/image/fetch/$s_!IhDC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb152c8c-eb62-49d6-9988-e1983b3f6272_1024x574.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IhDC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb152c8c-eb62-49d6-9988-e1983b3f6272_1024x574.png" width="1024" height="574" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bb152c8c-eb62-49d6-9988-e1983b3f6272_1024x574.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:574,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:624928,&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://intentlayer.to/i/206335405?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb152c8c-eb62-49d6-9988-e1983b3f6272_1024x574.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_!IhDC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb152c8c-eb62-49d6-9988-e1983b3f6272_1024x574.png 424w, https://substackcdn.com/image/fetch/$s_!IhDC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb152c8c-eb62-49d6-9988-e1983b3f6272_1024x574.png 848w, https://substackcdn.com/image/fetch/$s_!IhDC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb152c8c-eb62-49d6-9988-e1983b3f6272_1024x574.png 1272w, https://substackcdn.com/image/fetch/$s_!IhDC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb152c8c-eb62-49d6-9988-e1983b3f6272_1024x574.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>Ask a company what its cloud bill was last month and someone pulls the figure in a minute, split by team, service, and environment. Ask what its AI spend actually bought, which features, which teams, which of those made money, and you&#8217;ll usually get a lump sum and a shrug. The spend arrived faster than any instrument to watch it, and it&#8217;s still climbing: Gartner expects worldwide AI spending to <a href="https://www.gartner.com/en/newsroom/press-releases/2026-05-19-gartner-forecasts-worldwide-ai-spending-to-grow-47-percent-in-2026">grow 47% in 2026</a>. So most AI deployments run on a fuel gauge with one number on it: bigger than last month. You can&#8217;t optimize what you can&#8217;t see, and right now most companies can&#8217;t see much.</p><p>The most useful way to organize the response is a three-part framework, borrowing from the <a href="https://www.finops.org/wg/finops-for-ai-overview/">FinOps Foundation&#8217;s work on AI cost</a>. The order matters, because it&#8217;s a maturity ladder, not three dashboards you stand up at once. Visibility, then economics, then value. Each pillar answers a harder question than the last, and skipping ahead doesn&#8217;t work: you can&#8217;t tie cost to revenue before you can explain what&#8217;s driving cost, and you can&#8217;t explain the drivers before you can see the total.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://intentlayer.to/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 The Intent Layer! 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><h2>Pillar One: See the Spend</h2><p>The first pillar is basic tracking. Total AI spend, average daily cost, and enough anomaly detection to catch a runaway job before it becomes a five-figure surprise on the invoice. The metrics are unglamorous and most companies still don&#8217;t have them.</p><p>Its real job is less technical than it looks. Getting a single credible spend number onto an executive&#8217;s screen is what turns AI costs from an abstraction into something with an owner. The baseline it establishes is the thing every later optimization gets measured against. Until the number is visible to someone with the authority to ask why it moved, nobody is accountable for the answer, and the spend just compounds quietly in the background.</p><h2>Pillar Two: Explain the Spend</h2><p>Once you can see the total, you need to know what&#8217;s moving it, and this is where the metrics get operational. Cost per token, input-to-output ratios, cache-hit ratios, and one worth giving a name: call it token-to-spend drift. When the bill climbs, there are two possible causes, and they call for opposite responses. Either you&#8217;re consuming more tokens, or your traffic has drifted toward more expensive models. Drift separates the two.</p><p>The distinction is the whole value of the pillar because the symptom is identical and the right response is not. If cost is up because volume is up, you&#8217;re looking at either healthy adoption or a Jevons runaway, and the question is whether the consumption is producing anything. If cost is up because requests that used to run on a cheap model migrated to a frontier one, the answer is routing, not throttling. Same rising line, two different problems, and without the metric you&#8217;re guessing which one you have and applying the wrong fix half the time.</p><h2>Pillar Three: Steer the Spend</h2><p>The third pillar is the hard one and the point of the whole exercise. Cost per use case, and inference cost measured against the revenue each capability actually drives. This is where you find out which AI features pay for themselves and which are burning capital inside a demo everyone admires.</p><p>A support agent that deflects a thousand tickets a week has an inference cost you can set directly against the salaries and the churn it saves. A generative feature that ships to everyone and delights nobody has an inference cost with no revenue on the other side of the ledger, and no dashboard of token counts will tell you that; only cost-per-value will. This pillar changes what AI spend even is. Managed at the visibility level, it&#8217;s a cost center to be minimized. Managed at the value level, it&#8217;s capital allocation: you fund the capabilities that earn and starve the ones that don&#8217;t, and &#8220;spend less on AI&#8221; stops being the goal because it was never the right one.</p><h2>Automate It: The Control Plane</h2><p>A framework you run by hand, in spreadsheets and monthly exports and a standing review, is where every organization should start, because doing it manually is how you learn what&#8217;s worth measuring. Once it works, you automate it into an internal platform, the control plane.</p><p>The market already sells part of this as the <a href="https://portkey.ai/buyers-guide/ai-gateway-solutions">AI gateway</a>, a proxy that fronts every provider behind one API and tracks tokens, spend, and routing; Portkey, TrueFoundry, Kong, LiteLLM, and Cloudflare all ship one. A control plane is broader. It unifies data across providers, because almost nobody is single-vendor anymore, and puts spend, token economics, GPU fleet utilization, and business value on one surface. No off-the-shelf product covers all of that yet, which is why the teams that want it build their own. It&#8217;s the instrument panel the three pillars imply once you&#8217;re tired of assembling them by hand every month. The pillars tell you what to measure; the control plane is what measures it continuously instead of in arrears.</p><h2>Build It at Agent Speed</h2><p>Here&#8217;s the part specific to this moment. The teams that build these control planes build them with AI assistance, fast, and the speed isn&#8217;t a vanity metric. It&#8217;s the requirement because the thing being governed doesn&#8217;t wait for a normal release cycle.</p><p>Internal AI adoption doesn&#8217;t grow on a smooth curve. It lurches. Roll a coding agent out to the engineering org on a Tuesday and token usage can multiply by Friday in a pattern no capacity plan saw coming, because the people adopting it are precisely the people who build fast and share what works. A governance platform that takes two quarters to ship is obsolete the week it lands, since the adoption it was designed to watch has already outgrown it. The only development pace that keeps up with agent-speed adoption is agent-speed development. You end up building the meter with the same tools that are blowing up the bill, and that symmetry is the point rather than an irony: the org that can deploy agents fast enough to explode its own token usage is the same org that can build the instrument to watch the explosion, if it decides to.</p><h2>Structural Viability Is the Real Target</h2><p>The goal here was never a smaller bill. It&#8217;s a deployment that stays viable as it scales, which is a different and harder thing. Visibility so you can see the spend, economics so you can explain it, value so you can steer it, and a control plane quick enough to keep up with how violently the usage moves. Take those in order and AI stops being a line item that surprises you and becomes a system you actually run.</p><p>The companies that treat all of this as a reporting chore they&#8217;ll get to later will keep meeting their own AI economics for the first time on the invoice after the decisions are made and the architecture is set. The ones that build the instrument panel while the spend is still small get to steer, and steering early, while the numbers are small enough to move, is the whole advantage. The bill is coming either way. Whether you&#8217;re reading it or writing it is the choice.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://intentlayer.to/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://intentlayer.to/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[Jevons Was Right About Your Token Bill]]></title><description><![CDATA[How cheaper models manufacture demand you didn't plan for.]]></description><link>https://intentlayer.to/p/jevons-was-right-about-your-token</link><guid isPermaLink="false">https://intentlayer.to/p/jevons-was-right-about-your-token</guid><dc:creator><![CDATA[Matt Trifiro]]></dc:creator><pubDate>Fri, 10 Jul 2026 12:54:02 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wTBU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F680da70e-96ac-443c-8656-23eacff0439a_1024x574.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_!wTBU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F680da70e-96ac-443c-8656-23eacff0439a_1024x574.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wTBU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F680da70e-96ac-443c-8656-23eacff0439a_1024x574.png 424w, https://substackcdn.com/image/fetch/$s_!wTBU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F680da70e-96ac-443c-8656-23eacff0439a_1024x574.png 848w, https://substackcdn.com/image/fetch/$s_!wTBU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F680da70e-96ac-443c-8656-23eacff0439a_1024x574.png 1272w, https://substackcdn.com/image/fetch/$s_!wTBU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F680da70e-96ac-443c-8656-23eacff0439a_1024x574.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wTBU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F680da70e-96ac-443c-8656-23eacff0439a_1024x574.png" width="1024" height="574" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/680da70e-96ac-443c-8656-23eacff0439a_1024x574.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:574,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:628072,&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://intentlayer.to/i/206330980?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F680da70e-96ac-443c-8656-23eacff0439a_1024x574.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_!wTBU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F680da70e-96ac-443c-8656-23eacff0439a_1024x574.png 424w, https://substackcdn.com/image/fetch/$s_!wTBU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F680da70e-96ac-443c-8656-23eacff0439a_1024x574.png 848w, https://substackcdn.com/image/fetch/$s_!wTBU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F680da70e-96ac-443c-8656-23eacff0439a_1024x574.png 1272w, https://substackcdn.com/image/fetch/$s_!wTBU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F680da70e-96ac-443c-8656-23eacff0439a_1024x574.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>Every AI budget I&#8217;ve seen rests on one assumption nobody writes down: that tokens will keep getting cheaper faster than the company can find new ways to burn them. It&#8217;s an easy bet to make, because the first part is visibly true. The price of a normalized token has been falling for two years, pushed down by better models, cheaper inference, quantization, and competition among providers who all want your default. Anyone watching the per-unit numbers sees a line sloping toward zero and reasonably concludes the cost problem will solve itself if they just wait. Both halves of that bet are shakier than they look, and they fail for different reasons.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://intentlayer.to/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 The Intent Layer! 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><h2>Jevons and the Coal Paradox</h2><p>William Stanley Jevons worked out the first failure in 1865, looking at coal. The efficiency of steam engines had improved dramatically, and the sensible expectation was that Britain would therefore burn less coal per unit of work and stretch its reserves. The opposite happened. Cheaper, more efficient steam power made coal worth using for a hundred things it hadn&#8217;t been worth before, and total consumption climbed. Efficiency didn&#8217;t conserve the resource. It expanded the appetite for it.</p><p>Token spend follows the same curve, and the enterprise version is almost comically direct. A provider cuts the price of its model in half, and a finance team reasonably expects the AI line item to ease. Instead it grows, because the moment a token gets cheaper, three teams who couldn&#8217;t justify a feature at the old price can justify it at the new one. The support agent that was too expensive to run on every ticket now runs on every ticket. The summarization that was reserved for premium accounts now ships to everyone. The nightly job that scanned a sample of the codebase now scans all of it, twice. Each of those is a rational decision, made by someone looking at a unit price that finally cleared their bar. Added up across the company, they mean consumption grows faster than the price falls, month over month, and the bill goes up while every vendor email says prices went down. Both statements are true, and reconciling them is the whole job.</p><p>A team that understands this can at least plan for it. You stop treating each price cut as savings and start treating it as a demand trigger, because that&#8217;s what it is. You assume that cheaper tokens mean more tokens, not the same tokens for less, and you budget for the growth instead of being surprised by it every quarter. This is uncomfortable but manageable. It&#8217;s the second half of the bet that&#8217;s genuinely dangerous, because it&#8217;s the half people don&#8217;t examine at all.</p><h2>The Physical Reality Underneath the Price Curve</h2><p>The unexamined assumption is that the price line keeps sloping down, smoothly, more or less forever. It feels like a law, the way Moore&#8217;s Law felt like a law, and people extrapolate it the same way: draw the curve out three years, assume next year&#8217;s ambitious feature will be affordable by the time it ships, architect accordingly. But a token price is not a pure software abstraction that trends to zero because software wants to. It&#8217;s the retail price of a physical process, and underneath every fraction of a cent sit three things that don&#8217;t obey software&#8217;s economics: electricity, memory, and buildings.</p><p>Electricity is the one that&#8217;s already biting. The models run in data centers, the data centers draw enormous and growing amounts of power, and the grid is not expanding on the same timeline. Interconnection queues stretch for years in the regions where the capacity would go. Some jurisdictions have started slowing or blocking new data-center hookups because the load threatens residential supply. Power is the input that scales worst, and it&#8217;s the one the whole edifice needs most.</p><p>Memory is the second. Modern accelerators depend on high-bandwidth memory, a specialized component made by a short list of suppliers, and that kind of concentrated supply chain doesn&#8217;t respond gently to a demand spike. When everyone wants the same scarce part at once, the price of that part doesn&#8217;t glide downward on a nice curve; it jumps, and the jump lands in the cost of every token served on hardware that needs it.</p><p>Buildings are the third and slowest. A data center is a multi-year construction project with permits, land, cooling, and a power agreement that may not exist yet. You cannot conjure capacity in a quarter to meet a surge in demand, so when demand runs ahead of the concrete, the shortage shows up as price, and it stays there until the next wave of buildings comes online years later.</p><p>None of this means tokens get expensive and stay expensive. It means the smooth decline people are mentally banking is not something physics has agreed to. The realistic shape of token pricing over the next few years is lumpy: stretches of decline as new capacity and better models arrive, punctuated by flat periods and outright spikes when power, memory, or capacity binds. Structural volatility, not a glide path. And a budget built on a glide path breaks the first time the curve does something the spreadsheet didn&#8217;t allow for.</p><h2>Treating Tokens Like a Commodity, Not a Line Item</h2><p>So the move is to plan for a commodity, not a software line item. Treat tokens the way a manufacturer treats a volatile raw input: something with a price you don&#8217;t control, that can move against you, that you hedge and monitor rather than assume away. Concretely, that means a few things. Don&#8217;t ship features whose unit economics only work at a price you&#8217;re projecting rather than paying today; if it&#8217;s underwater at the current price, it&#8217;s a bet on the curve, and you should know you&#8217;re making a bet. Build the ability to throttle and degrade on purpose so that when a price spike hits you can drop to a cheaper model or a smaller context on your terms instead of eating the increase. Keep your workload portable across providers, because volatility is rarely synchronized and the ability to move to whoever&#8217;s cheapest this month is worth real money when one supplier&#8217;s costs jump. Watch consumption growth as closely as unit price, since the Jevons effect means the growth is where your bill actually lives.</p><p>The companies that get hurt here won&#8217;t be the ones who assumed AI was expensive. They&#8217;ll be the ones who assumed it was on an escalator to free and built a cost structure that only balances if the escalator keeps moving. The per-token price probably does keep falling on average. But average is not a plan, and the physical world underneath the abstraction has a vote it hasn&#8217;t finished casting. Budget for the price to misbehave, and the misbehaving won&#8217;t be the thing that breaks you.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://intentlayer.to/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://intentlayer.to/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[Model Arbitrage]]></title><description><![CDATA[Once model routing becomes table stakes, the advantage shifts to knowing the cheapest execution path that reliably clears each task&#8217;s quality, latency, and safety bar.]]></description><link>https://intentlayer.to/p/model-arbitrage</link><guid isPermaLink="false">https://intentlayer.to/p/model-arbitrage</guid><dc:creator><![CDATA[Matt Trifiro]]></dc:creator><pubDate>Thu, 09 Jul 2026 16:57:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!WbXg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45398834-af41-4365-afbb-fad425f9067c_1024x574.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_!WbXg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45398834-af41-4365-afbb-fad425f9067c_1024x574.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WbXg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45398834-af41-4365-afbb-fad425f9067c_1024x574.png 424w, https://substackcdn.com/image/fetch/$s_!WbXg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45398834-af41-4365-afbb-fad425f9067c_1024x574.png 848w, https://substackcdn.com/image/fetch/$s_!WbXg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45398834-af41-4365-afbb-fad425f9067c_1024x574.png 1272w, https://substackcdn.com/image/fetch/$s_!WbXg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45398834-af41-4365-afbb-fad425f9067c_1024x574.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!WbXg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45398834-af41-4365-afbb-fad425f9067c_1024x574.png" width="1024" height="574" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/45398834-af41-4365-afbb-fad425f9067c_1024x574.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:574,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:529554,&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://intentlayer.to/i/206288448?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45398834-af41-4365-afbb-fad425f9067c_1024x574.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_!WbXg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45398834-af41-4365-afbb-fad425f9067c_1024x574.png 424w, https://substackcdn.com/image/fetch/$s_!WbXg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45398834-af41-4365-afbb-fad425f9067c_1024x574.png 848w, https://substackcdn.com/image/fetch/$s_!WbXg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45398834-af41-4365-afbb-fad425f9067c_1024x574.png 1272w, https://substackcdn.com/image/fetch/$s_!WbXg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45398834-af41-4365-afbb-fad425f9067c_1024x574.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>A year ago, the price of a token was a rounding error in most engineering budgets. You wrote the prompt, you got the answer, and the bill at the end of the month was small enough that nobody in finance asked about it. That era is over. Token spend is now a line item that VPs interrogate, and the reason is simple arithmetic: when a product makes millions of model calls a day, the difference between a frontier model like Claude Opus 4.8 at $25 per million output tokens. Claude Fable 5 is priced higher at $50 per million output tokens. By comparison, you can route to SpaceXAI&#8217;s Grok 4.5, its first model trained alongside Cursor, at $6 per million output tokens. That alone can be the difference between a healthy gross margin and a board meeting about unit economics.</p><p>The response to that pressure has a name now. It&#8217;s called model routing, and it&#8217;s spreading faster than almost any infrastructure pattern I&#8217;ve watched. In roughly ninety days it went from something a handful of cost-obsessed startups did to something nearly every serious shop does. Route the easy request to the cheap model, route the hard one to the expensive model, and send the ambiguous one to whichever model your data says handles that shape of problem best. The mechanics vary, but the move is the same: stop sending every request to one model and start choosing per request.</p><p>That this happened so fast tells you something. Routing isn&#8217;t a clever optimization a few teams discovered. It&#8217;s the natural consequence of a market that finally has more than one credible product. When OpenAI shipped GPT-4 in March 2023, it was the only place to buy frontier reasoning, and there was nothing to route between. Now there&#8217;s a deep bench: a frontier tier from three or four labs, a fast-and-cheap tier under each of them, open-weight models you can host yourself, and a long tail of specialized models tuned for code, extraction, or classification. The moment a real menu existed, routing was inevitable. The only surprise is that anyone expected it to take longer.</p><p>So routing is settled. Within a year it will be as unremarkable as a load balancer, a piece of plumbing nobody brags about. Which means the interesting question has already moved. Once everyone routes, routing itself stops being an advantage. The advantage moves to the decision the router makes. The question is no longer whether you route. It&#8217;s what you route to and how you know.</p><p>That question is where model arbitrage lives.</p><h2>What arbitrage actually means here</h2><p>Borrow the word from finance because the structure is identical. An arbitrage is a price difference between two things that are, for your purposes, the same. The classic version: a stock trades at one price in London and a slightly different price in New York, and someone with fast pipes buys in one market and sells in the other until the gap closes. The profit comes not from predicting anything but from noticing that two prices that should be equal aren&#8217;t.</p><p>Model arbitrage is the same trade applied to capability. For a given task, several models will produce an answer good enough to ship, and they do not charge the same price for that answer. A summarization job that GPT-4 handled at $60 per million output tokens in 2023 gets done just as well today by Claude Haiku 4.5 at five dollars, or by an open-weight model you run yourself for the cost of the GPU. If the cheaper model clears the bar the task actually requires, the difference between what you could pay and what you do pay is pure margin. You captured a price gap between two things that, for this task, were equivalent.</p><p>The catch is the phrase &#8220;for this task.&#8221; In finance the two stocks are provably identical; a share is a share. In models, equivalence is something you have to establish, task by task, and it&#8217;s rarely obvious. A cheap model that nails 95% of your customer-support replies might botch the 5% that involve a refund policy, and that 5% might be the only part that costs you money when it&#8217;s wrong. Equivalence isn&#8217;t a property of the model. It&#8217;s a property of the model against your specific task at your specific tolerance for error. The whole game is figuring out where the line sits.</p><h2>The arbitrage is real, and it&#8217;s large</h2><p>Take a document-extraction pipeline that pulls the vendor name, the total, and the due date off an invoice. A frontier model does this perfectly and charges accordingly. But extraction from semi-structured text is not a hard reasoning problem. A model a tenth the price will hit the same accuracy, and you can prove it by running both against a few hundred labeled invoices and comparing the fields. If the cheap model matches on your test set, every invoice you process on the expensive model from then on is money set on fire.</p><p>Now multiply that across every distinct task in a product. Classification, routing of support tickets, first-draft generation, reranking search results, tagging, translation. Each one has its own difficulty, its own error tolerance, and its own cheapest sufficient model. A team that has measured all of them and matches each task to the floor that clears it can run the same product at a fraction of the cost of a team that sends everything to the best model out of caution. Same output, wildly different bill. That spread is the arbitrage, and right now it&#8217;s enormous because most teams haven&#8217;t done the measuring. They route on vibes, or they don&#8217;t route at all and pay the frontier rate for invoice parsing.</p><div class="pullquote"><p>&#8220;The asset is the measurement: a standing evaluation harness that knows, for each task you run, exactly how cheap a model you can drop to before quality falls through the floor.&#8221;</p></div><h2>Why this won&#8217;t simply close</h2><p>The finance analogy bends in a useful way at exactly this point. In real markets, arbitrage is self-erasing. The traders who exploit a price gap also close it; their buying and selling pushes the two prices together until the opportunity is gone. The reward for finding an arbitrage is to destroy it.</p><p>Model arbitrage doesn&#8217;t close, and the reason is that the underlying prices won&#8217;t hold still. GPT-4 launched in March 2023 at $60 per million output tokens. Three years on, GPT-5 does more than that model ever could at five dollars, and a nano tier sits a little above a dollar: close to a fiftyfold drop in the price of a capable token, and the curve hasn&#8217;t flattened since. A new model ships roughly every few weeks, and each release redraws the map. A model that was frontier-only last month gets a cheap-tier cousin this month that does 90% of the job, which moves the floor for every task you&#8217;d routed to the expensive tier. Prices drop in steps, not smoothly, and capabilities jump in clusters. The cheapest model that clears a given task is a moving target that moves on the labs&#8217; release schedule, not yours.</p><p>That&#8217;s what makes this durable rather than a one-time saving. The arbitrage isn&#8217;t a gap you find once and pocket. It&#8217;s a gap that reopens every time the menu changes, which is constantly. The teams that win aren&#8217;t the ones who found the right routing table in early 2026. They&#8217;re the ones who can re-derive it next month and the month after, without a heroic manual effort each time.</p><p>The actual asset, then, isn&#8217;t the router. Routing logic is a weekend&#8217;s work, and every cloud will sell you one. It isn&#8217;t a relationship with a particular lab either; that relationship is a liability the moment a competitor undercuts them. The asset is the measurement: a standing evaluation harness that knows, for each task you run, exactly how cheap a model you can drop to before quality falls through the floor. The team that has that can re-price its entire stack the day a new model lands. The team that doesn&#8217;t is guessing and paying for the guess.</p><p>This reframes what&#8217;s scarce. We spent the last two years treating access to the best model as the thing worth having, the way you&#8217;d treat a faster CPU. Access is no longer scarce; there are four best models and they all have an API. What&#8217;s scarce is knowing precisely how good a model your task actually needs, because that knowledge is the only thing that converts a falling price into a captured margin. The model is a commodity you rent by the token. Your understanding of your own workload is the position you hold.</p><p>Which means the eval harness has to come before the router, not after it. Label your tasks, measure where each one breaks, and keep the test set fresh enough that you can re-run it the morning a new model drops. The routing falls out of the measurement; it can&#8217;t lead it. Everyone is about to be routing. The teams that know what they&#8217;re routing to and re-check it every time the prices move will quietly run the same product for a fraction of what their competitors pay, and the gap will widen every week neither side is looking.</p>]]></content:encoded></item><item><title><![CDATA[Pricing the Prompt]]></title><description><![CDATA[AI broke the assumption that cost lives in the infrastructure layer]]></description><link>https://intentlayer.to/p/pricing-the-prompt</link><guid isPermaLink="false">https://intentlayer.to/p/pricing-the-prompt</guid><dc:creator><![CDATA[Matt Trifiro]]></dc:creator><pubDate>Wed, 08 Jul 2026 22:21:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ab1R!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff35bc229-4bca-4be5-a5c1-3896ddab7676_1024x574.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_!ab1R!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff35bc229-4bca-4be5-a5c1-3896ddab7676_1024x574.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ab1R!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff35bc229-4bca-4be5-a5c1-3896ddab7676_1024x574.png 424w, https://substackcdn.com/image/fetch/$s_!ab1R!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff35bc229-4bca-4be5-a5c1-3896ddab7676_1024x574.png 848w, https://substackcdn.com/image/fetch/$s_!ab1R!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff35bc229-4bca-4be5-a5c1-3896ddab7676_1024x574.png 1272w, https://substackcdn.com/image/fetch/$s_!ab1R!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff35bc229-4bca-4be5-a5c1-3896ddab7676_1024x574.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ab1R!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff35bc229-4bca-4be5-a5c1-3896ddab7676_1024x574.png" width="1024" height="574" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f35bc229-4bca-4be5-a5c1-3896ddab7676_1024x574.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:574,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:653566,&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://intentlayer.to/i/206208087?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff35bc229-4bca-4be5-a5c1-3896ddab7676_1024x574.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_!ab1R!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff35bc229-4bca-4be5-a5c1-3896ddab7676_1024x574.png 424w, https://substackcdn.com/image/fetch/$s_!ab1R!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff35bc229-4bca-4be5-a5c1-3896ddab7676_1024x574.png 848w, https://substackcdn.com/image/fetch/$s_!ab1R!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff35bc229-4bca-4be5-a5c1-3896ddab7676_1024x574.png 1272w, https://substackcdn.com/image/fetch/$s_!ab1R!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff35bc229-4bca-4be5-a5c1-3896ddab7676_1024x574.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>The board told the company to adopt AI this quarter, and the mandate arrived with a number attached. Ship the agent features, wire up the copilots, and get something in front of customers before the competition does. What the mandate did not include was a way to govern what any of it would cost, because the automated systems that watch AI spend are still being built while the spend is already happening. Every company running this play right now is flying a plane it is also assembling.</p><h2>Why the Cloud FinOps Playbook Falls Short</h2><p>The instinct is to reach for the FinOps playbook that already worked. Cloud taught a generation of engineers how to bring runaway infrastructure bills under control, and the discipline is mature: tag your resources, watch your dashboards, rightsize your instances, buy reserved capacity for the steady state, and autoscale the rest. That playbook assumes something specific about where cost lives. It assumes cost is a property of the infrastructure and that infrastructure sits downstream of the decisions that created it. You design the system, you build it, and then you tune what it costs to run. The tuning is a separate job, done by a separate team, after the fact.</p><p>AI breaks that assumption at the root. The cost of an AI feature is not a downstream property of its infrastructure. It&#8217;s decided in the design, committed the moment someone chooses a model, a prompt structure, a context strategy, and an agent loop. By the time the feature reaches the infrastructure layer where cloud FinOps knows how to operate, the expensive decisions have already been made and the levers that matter are behind you.</p><h2>Infrastructure Costs vs. Design Costs</h2><p>Consider what actually drives a cloud bill. A virtual machine costs the same per hour whether it&#8217;s computing a payroll run or sitting idle. The price is stable, published, and easy to reason about. Optimization means matching supply to demand: fewer machines when traffic is low, cheaper machines when the workload allows, and committed contracts when the baseline is known. These are legitimate engineering problems, but they&#8217;re bounded ones. The unit price is a constant you optimize around.</p><p>Now consider what drives an AI bill. Two engineers can build the same summarization feature and see their costs differ by an order of magnitude, and neither one touched the infrastructure. One passes a tight, retrieved slice of the document into a small model and gets an answer in a single call. The other stuffs the entire document into a frontier model&#8217;s context window, runs an agent that reasons across four turns, retries twice on malformed output, and calls three tools along the way. Same feature from the user&#8217;s chair. Ten times the cost, or fifty, and the difference was set entirely by design choices: model selection, context size, how many round trips the agent takes, how retries are handled, and how much retrieval the system does before it ever generates a token.</p><h2>The Decisions That Drive the Bill</h2><p>None of those are infrastructure knobs. They&#8217;re product and architecture decisions, and they&#8217;re made by people who have historically never had to think about a per-request bill. A product manager who adds &#8220;and it explains its reasoning&#8221; to a feature spec has just multiplied the output tokens on every call. An engineer who decides to give an agent broad autonomy instead of a single scoped prompt has traded a fixed cost for an open-ended one that scales with how hard the problem turns out to be. A designer who chooses a chat interface that invites long back-and-forth conversations has committed the company to paying for context that grows with every turn. Each of these is a financial decision. None of them looks like one from where it&#8217;s made.</p><h2>Why Monitoring Alone Won&#8217;t Save You</h2><p>This is why bolting a cloud-style governance layer onto AI spend catches the problem too late. A dashboard that alerts when token spend crosses a threshold is telling you about architecture that shipped weeks ago. An anomaly detector that flags a costly endpoint is flagging a design decision that&#8217;s now load-bearing in production, wired into the user experience, hard to unwind without a rewrite. The monitoring works exactly as designed and still fails because it lives at the infrastructure layer and the cost was birthed three layers up. You can watch the meter spin. You can&#8217;t easily change what it&#8217;s metering.</p><h2>Who Owns AI Cost?</h2><p>The stakeholder map is the other thing cloud got to keep simple. Cloud cost had a natural owner. It was infrastructure spend, so the infrastructure and platform teams owned it, and the optimization work stayed inside a group that spoke the same language and read the same dashboards. AI cost has no such tidy home. It&#8217;s set by product managers scoping features, by engineers choosing architectures, by designers shaping interactions, and only finally realized by the platform team that gets the invoice and has the least power to change what&#8217;s on it. Governance that names the platform team as the owner has named the one group that can watch the cost and not the groups that create it.</p><h2>Treating Cost as a Design Constraint</h2><p>So the move is to put the unit economics in front of the people who commit the spend at the moment they commit it. That means cost becomes a first-class constraint in the design review, sitting alongside latency and correctness and user experience, not a report that arrives after launch. It means product specs carry a rough token budget the way they already carry a performance budget, so &#8220;explain your reasoning on every call&#8221; gets priced before it gets built. It means engineers can see, while they&#8217;re choosing between a single scoped call and an autonomous multi-turn agent, what each option does to the marginal cost of a request. It means the architecture decisions that fix costs in place &#8212; model tiering, context discipline, when to cache, and when to retrieve instead of stuff, when a cheap model with a good spec beats an expensive one with a vague one &#8212; get made deliberately rather than discovered on the bill.</p><h2>The Real Cost of Moving Fast</h2><p>This is more work than watching a dashboard, and it lands on people who didn&#8217;t sign up to think about money. That&#8217;s the actual cost of moving fast on a mandate: the governance can&#8217;t be a layer you add underneath the product because the thing you&#8217;re governing was decided inside the product. The companies that treat AI spend as an infrastructure problem will keep building elegant monitoring on top of architectures they can no longer afford to change. The ones that treat it as a design problem will price the decision while it&#8217;s still a decision, when moving a number is still cheap. The bill is not where the AI cost is determined. It&#8217;s just where you find out what you already chose.</p>]]></content:encoded></item><item><title><![CDATA[You Were the Scheduler]]></title><description><![CDATA[The next productivity leap comes from designing loops, not juggling workers.]]></description><link>https://intentlayer.to/p/you-were-the-scheduler</link><guid isPermaLink="false">https://intentlayer.to/p/you-were-the-scheduler</guid><dc:creator><![CDATA[Matt Trifiro]]></dc:creator><pubDate>Fri, 03 Jul 2026 22:17:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!80wo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56876b33-a975-46e7-8bda-94ca72658a28_2560x1440.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_!80wo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56876b33-a975-46e7-8bda-94ca72658a28_2560x1440.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!80wo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56876b33-a975-46e7-8bda-94ca72658a28_2560x1440.png 424w, https://substackcdn.com/image/fetch/$s_!80wo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56876b33-a975-46e7-8bda-94ca72658a28_2560x1440.png 848w, https://substackcdn.com/image/fetch/$s_!80wo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56876b33-a975-46e7-8bda-94ca72658a28_2560x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!80wo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56876b33-a975-46e7-8bda-94ca72658a28_2560x1440.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!80wo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56876b33-a975-46e7-8bda-94ca72658a28_2560x1440.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/56876b33-a975-46e7-8bda-94ca72658a28_2560x1440.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;:6447064,&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://intentlayer.to/i/204529727?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56876b33-a975-46e7-8bda-94ca72658a28_2560x1440.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_!80wo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56876b33-a975-46e7-8bda-94ca72658a28_2560x1440.png 424w, https://substackcdn.com/image/fetch/$s_!80wo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56876b33-a975-46e7-8bda-94ca72658a28_2560x1440.png 848w, https://substackcdn.com/image/fetch/$s_!80wo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56876b33-a975-46e7-8bda-94ca72658a28_2560x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!80wo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56876b33-a975-46e7-8bda-94ca72658a28_2560x1440.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>A year ago, the most productive engineer you knew had ten terminal windows open and believed that was the frontier. Each window ran an agent. Each agent stalled the moment it finished a task and waited for a human to hand it the next one. The poor soul running all ten felt like an orchestrator, moving between windows, keeping every agent fed. He wasn&#8217;t orchestrating. He was polling. He was the scheduler, the router, and the memory of a small system, and he was holding all three roles together with nothing but his own attention.</p><p>We built agents to take the typing away, and the typing did leave. What arrived to replace it was a job nobody applied for: dispatcher. Ten agents is a team of direct reports, and managing ten direct reports one keystroke at a time is a worse job than doing the work yourself. The productivity gain was real and the workflow was still broken. The human had been promoted into the one position in the system that doesn&#8217;t scale.</p><p>To see why that position exists at all, it helps to separate the two loops that agentic work actually runs on. There&#8217;s an inner loop: read the issue, write the code, run the tests, read the failure, and try again. And there&#8217;s an outer loop: decide what&#8217;s worth building, judge whether the result is correct, and choose what happens next. The agent runs the inner loop. You run the outer one. For most of the last two years those loops were welded together because the models couldn&#8217;t be trusted to run the inner loop alone. You watched the work stream past, caught the moment it went the wrong direction, hit escape, and steered it back.</p><p>That babysitting was rational when the models needed it. It isn&#8217;t rational now. The current generation reads intent well enough that watching it type is like standing behind a competent colleague and reading each line over their shoulder as they write it. You wouldn&#8217;t do that to a person you trusted, and the reason you still do it to the agent is habit, not necessity. The reflex to watch was a workaround for a weakness the models mostly grew out of. Keeping the reflex after the weakness is gone just burns the one resource you can&#8217;t refill.</p><h2>Managing one manager</h2><p>Once you stop watching the worker, the shape of the job changes. You stop managing ten workers and start managing one manager. Picture a single long-lived agent that never closes. An issue lands on an open-source repo. The manager wakes, reads the issue against the project&#8217;s stated goals and notes, and decides whether it&#8217;s even a fit. If it is, it spins up a worker. The worker investigates, writes the change, and runs the tests. A second agent reviews the diff. You don&#8217;t see any of that. What reaches you is a pull request with the original issue, the proposed change, and maybe a running build you can open over VNC and click around in yourself. You leave one note. You approve, or you don&#8217;t. The loop keeps going and the change lands after the checks pass.</p><p>Three things make that arrangement hold together, and none of them are the model. The first is persistent context: server-side compaction, which compresses a long task&#8217;s history so the work doesn&#8217;t collapse when the context window fills. Before that existed, every long job had to be nursed back from a fresh session, which is why people optimized their whole workflow around short tasks. The second is delegation: one thread that can create and steer sub-projects instead of doing everything itself. The third is triggers, some event that can wake the manager when an issue arrives or a build breaks, so the loop starts without you starting it. Persistent memory, delegation, a way to be woken. That&#8217;s a loop. One engineer already runs a &#8220;chief of staff&#8221; agent that wakes every ten minutes to coordinate his repository and opens a thread in the sidebar whenever it needs a human decision. He isn&#8217;t watching it. He&#8217;s answering it.</p><h2>The bottleneck keeps moving</h2><p>The interesting part is what happens to the bottleneck once the loop is running, because it doesn&#8217;t disappear. It moves. The first wall people hit was tokens: not enough model budget to run the work they wanted. Solve that and the next wall is compute, ten threads running at once until the laptop sounds like it&#8217;s about to take off, which is why agents started shipping their test runs to separate machines. Solve compute and the wall you hit is your own attention, and that one has no upgrade path. You can add tokens. You can rent compute. You cannot buy a second person to sit in your chair and make your judgment calls. Every constraint you remove promotes the next one, and the human is always the last constraint standing.</p><p>Which is the actual point, and it&#8217;s easy to miss while admiring the models. The models are improving faster than anything built around them. The harness the agent runs inside, the org chart of agents that decides who does what, the triggers that wake them, and the review gates that let a change land safely without you reading every line: all of that is underbuilt, and it&#8217;s underbuilt because we spent the last two years staring at the model instead of the structure. A model that can write a correct pull request in ten seconds is worth very little to you if it still requires you to be personally present for every one of them. The gap between what the model can do and what your workflow lets it do is now the whole game.</p><h2>Engineering the loop</h2><p>So the thing worth engineering has changed underneath us. It used to be the feature. Then, for a brief and clarifying while, it was the pull request, the unit of reviewable change. Now the object worth designing is the loop itself: the standing arrangement of manager and workers and triggers and review that turns an incoming issue into a landed change while you&#8217;re doing something else. That&#8217;s a design problem with real decisions in it. What does the manager escalate and what does it decide alone? Which work runs in the cloud and which needs your machine? What has to be true before a change lands without a human reading it? Those questions have the texture of architecture, because that&#8217;s what they are.</p><p>The engineer juggling ten terminals wasn&#8217;t behind because he lacked good agents. He had good agents. He was behind because he was still the loop, doing by hand the coordination that should have been built once and left to run. The future isn&#8217;t twenty terminals open at once, each one waiting for you to notice it. It&#8217;s the loop you build so the twentieth terminal never has to open.</p>]]></content:encoded></item><item><title><![CDATA[Build the Product an Agent Can Operate]]></title><description><![CDATA[Why the next great software products will be built for machines that act, not humans who click]]></description><link>https://intentlayer.to/p/build-the-product-an-agent-can-operate</link><guid isPermaLink="false">https://intentlayer.to/p/build-the-product-an-agent-can-operate</guid><dc:creator><![CDATA[Matt Trifiro]]></dc:creator><pubDate>Tue, 30 Jun 2026 12:25:02 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!c8UM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9757a565-e04e-4741-864d-a6f435634ec1_1312x736.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_!c8UM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9757a565-e04e-4741-864d-a6f435634ec1_1312x736.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!c8UM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9757a565-e04e-4741-864d-a6f435634ec1_1312x736.png 424w, https://substackcdn.com/image/fetch/$s_!c8UM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9757a565-e04e-4741-864d-a6f435634ec1_1312x736.png 848w, https://substackcdn.com/image/fetch/$s_!c8UM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9757a565-e04e-4741-864d-a6f435634ec1_1312x736.png 1272w, https://substackcdn.com/image/fetch/$s_!c8UM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9757a565-e04e-4741-864d-a6f435634ec1_1312x736.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!c8UM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9757a565-e04e-4741-864d-a6f435634ec1_1312x736.png" width="1312" height="736" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9757a565-e04e-4741-864d-a6f435634ec1_1312x736.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:736,&quot;width&quot;:1312,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:934763,&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://intentlayer.to/i/204106397?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9757a565-e04e-4741-864d-a6f435634ec1_1312x736.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_!c8UM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9757a565-e04e-4741-864d-a6f435634ec1_1312x736.png 424w, https://substackcdn.com/image/fetch/$s_!c8UM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9757a565-e04e-4741-864d-a6f435634ec1_1312x736.png 848w, https://substackcdn.com/image/fetch/$s_!c8UM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9757a565-e04e-4741-864d-a6f435634ec1_1312x736.png 1272w, https://substackcdn.com/image/fetch/$s_!c8UM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9757a565-e04e-4741-864d-a6f435634ec1_1312x736.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>Nearly every app you use was built for a person who looks at a screen, points at things, and fixes small mistakes by eye before they matter. An agent doesn&#8217;t look. It reads, it acts, and it acts for someone who isn&#8217;t watching it work. So the product that wins the agent&#8217;s business won&#8217;t be the one with the prettiest dashboard. It&#8217;ll be the one an agent can pick up and run correctly on the first try, with nobody in the room to catch the error.</p><p>Design your product as if an agent is one of your most important users. That doesn&#8217;t mean ripping out your interface and bolting on a chat box; a prompt box on top of a confused product just gives the confusion a friendlier face. It means exposing the real structure of what your software does, clearly enough that a person and an agent can both run it. Four things make that possible, and most products today get all four wrong.</p><h2>The API is the product, not a side door</h2><p>The API used to be where you put the features that were convenient to expose. The clean ones. The ones that didn&#8217;t touch messy internal state or force a user through a three-step wizard with a warning to read and click past. The full product lived in the UI, and the API got a tidy excerpt of it, enough to integrate against but never the whole machine.</p><p>An agent works through that contract and nothing else. If a job your users do every day takes four actions and you exposed three, the agent can&#8217;t finish. It gets most of the way and stalls. Or worse: it finds a creative path through the three you did expose and leaves your data somewhere no human would have put it. Whatever your API leaves out, the agent can&#8217;t do, no matter how central it is to your product.</p><p>So expose the real actions, including the ones that felt too risky or too fiddly to publish. The wizard with the scary warning becomes an endpoint with a confirm flag. The thing a person does by shift-selecting forty rows and hitting delete becomes one call that takes forty IDs. The test is simple: if a person can do it in your product, an agent should be able to ask for it through the API.</p><p>Documentation has to change shape too. Most API docs only describe endpoints: here&#8217;s the route, here are the fields, here&#8217;s what comes back. An agent needs to know what the thing means, not just what it accepts. What&#8217;s an &#8220;account&#8221; in your system, and how is it different from an &#8220;organization&#8221; and a &#8220;workspace&#8221;? When does a charge become an invoice? Docs that explain the business concepts, and the rules connecting them, let an agent reason about a task instead of guessing at field names. Endpoint reference tells it how to call; concept docs tell it when and why.</p><p>And the object model has to be one model. The same entity should carry the same name and the same shape in the UI, the API, the exports, the webhooks, and the audit log. When a &#8220;customer&#8221; in the interface is an &#8220;account&#8221; in the API, a &#8220;user&#8221; in the CSV export, and a &#8220;party&#8221; in the webhook payload, a human shrugs and pattern-matches across the inconsistency without noticing. An agent can&#8217;t. It reads all five surfaces literally and concludes you have five different things. One concept with five names is five chances for the agent to act on the wrong one.</p><h2>Make actions visible and reversible</h2><p>Agents make mistakes.</p><p>So do people, and we&#8217;ve built our whole relationship with software around that fact: undo buttons, confirmation dialogs, the half-second of hesitation before someone clicks delete. But a person carries something an agent doesn&#8217;t. They remember what they did and roughly why. Ask them an hour later and they can reconstruct the decision and walk it back by hand, even if it takes a while to retrace.</p><p>An agent has no memory you can count on. The reasoning that produced an action may be gone the moment the action completes. If your product is the only durable record of what happened, that record has to be a good one. That means a trace for every action: what was attempted, what context informed it, which tool or endpoint was called, what changed, and how to undo it. Not a log line that reads <code>PATCH /accounts/8821 200</code>. A record a human reviewer, or another agent, can read later and understand: this agent, acting for this person, changed this field from this to that, because it was working on this task.</p><p>Often the reader isn&#8217;t a person at all. A supervising agent checks the work it delegated, or a compliance system scans for actions that crossed a line, and once in a while a human skims a week of agent activity over coffee, looking for anything that smells wrong. None of them can reconstruct what the agent was thinking, because that&#8217;s gone. So the trace has to carry the why, in a form the next reader can act on, whoever that reader turns out to be. A trace written for a developer staring at a stack trace at midnight won&#8217;t cut it.</p><p>Reversibility is the harder half. Plenty of products can tell you what happened; far fewer can put it back. The teams agents get trusted with will be the ones where a wrong action costs a rollback instead of a weekend. A product that can&#8217;t undo an agent&#8217;s mistake is one no sensible person lets an agent near for anything that matters. Action-level observability isn&#8217;t a feature you build for your own debugging; it&#8217;s the price of being let into the loop at all.</p><h2>Permissions that assume delegated work</h2><p>Almost every permission system in production today encodes one idea: a user is a person, and a person either can or can&#8217;t do a thing. Roles, scopes, access levels, all of it built around a human identity making a human decision in real time. Agentic work breaks that model, and not by needing more access. It needs access with more shape to it.</p><p>A founder building for this should be asking one precise question: what can an agent safely do on behalf of a user, a team, a whole company? The honest answer sits between &#8220;everything its owner can&#8221; and &#8220;nothing,&#8221; and the product has to give that middle ground a vocabulary.</p><p>Some of it is scope: an agent gets exactly the slice of authority its task needs and none of the rest. Some of it is time. A grant for Tuesday&#8217;s migration should expire Wednesday morning, not sit live for a year because nobody revoked it. Thresholds matter too: let the agent move forty dollars on its own, but make it stop and find a human for forty thousand. Give it a dry-run mode so it can show what it would do and wait for a yes. And put the rules in the system itself, enforced on every call, instead of in some operator&#8217;s head where they only get enforced when that operator happens to be watching.</p><p>None of this is exotic. A finance team already understands spending limits and approval chains; an ops team already understands temporary access. The work is taking those instincts, the ones we apply to people through process and trust, and turning them into mechanisms the product enforces on a non-human actor that won&#8217;t get tired, won&#8217;t feel awkward exceeding its mandate, and will do exactly what its permissions allow, ten thousand times, at three in the morning.</p><h2>Data quality is now product surface</h2><p>There&#8217;s a comfortable idea that data quality is an internal problem. Stale records, ambiguous fields, three duplicate copies of the same customer, an edge case nobody wrote down: messy, embarrassing, but contained. A human operator routes around all of it without thinking. They know the &#8220;status&#8221; field went unused after 2023, that the real email is in the second record and not the first, that when the amount is zero it actually means &#8220;pending&#8221; because of a bug from years ago that hardened into a convention.</p><p>An agent knows none of that, and it has no instinct to be suspicious. It reads your data as true and acts. Hand it the stale record and it emails someone who left the company a year ago. Give it two fields that both look like an email and it picks the wrong one. And when it meets that zero-means-pending charge, it tells the customer they owe nothing. Where your ops team quietly routes around the mess, the agent runs straight through it and multiplies it across every record you have.</p><p>So data quality has moved. It used to be something your operations team absorbed quietly behind the interface. Now it&#8217;s surface area, as much a part of what you ship as any endpoint. The duplicate entities, the fields whose meaning drifted, the edge cases that live only in tribal knowledge: every one of them is a place an agent can go wrong on a user&#8217;s behalf. An agent is only as good as the context it can trust, and your product is that context. Cleaning up the records, making the names mean one thing, writing down the conventions that only live in someone&#8217;s head: that used to be housekeeping for a slow afternoon. Now it decides whether an agent comes to rely on your product or quietly learns to route around it.</p><h2>What you&#8217;re actually building</h2><p>These four pieces are the same piece seen from four sides. An honest API, traces you can read and reverse, permissions built for delegation, data clean enough to act on: each one answers whether a thing that reads instead of looks can run your software without wrecking it or getting wrecked by it.</p><p>Identity already got the agent through your door; that part&#8217;s mostly solved. What it finds on the other side is still up to you. Build it so a non-human operator can see the structure, undo its own mistakes, hold exactly the authority you handed it, and trust the data in front of it, and agents will get sent to you to do real work. Skip it, and you become one more tool agents quietly learn to avoid, and you won&#8217;t even get a bug report to tell you why; the traffic just thins out and then it&#8217;s gone.</p>]]></content:encoded></item><item><title><![CDATA[Model Arbitrage: The New AI Margin Game]]></title><description><![CDATA[The durable advantage is knowing, task by task, how far down the model stack you can go before quality breaks.]]></description><link>https://intentlayer.to/p/model-arbitrage-the-new-ai-margin</link><guid isPermaLink="false">https://intentlayer.to/p/model-arbitrage-the-new-ai-margin</guid><dc:creator><![CDATA[Matt Trifiro]]></dc:creator><pubDate>Tue, 30 Jun 2026 02:20:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Y0Gx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa020a836-2291-44ff-9737-4ec2534ba790_1312x736.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_!Y0Gx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa020a836-2291-44ff-9737-4ec2534ba790_1312x736.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Y0Gx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa020a836-2291-44ff-9737-4ec2534ba790_1312x736.png 424w, https://substackcdn.com/image/fetch/$s_!Y0Gx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa020a836-2291-44ff-9737-4ec2534ba790_1312x736.png 848w, https://substackcdn.com/image/fetch/$s_!Y0Gx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa020a836-2291-44ff-9737-4ec2534ba790_1312x736.png 1272w, https://substackcdn.com/image/fetch/$s_!Y0Gx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa020a836-2291-44ff-9737-4ec2534ba790_1312x736.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Y0Gx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa020a836-2291-44ff-9737-4ec2534ba790_1312x736.png" width="1312" height="736" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a020a836-2291-44ff-9737-4ec2534ba790_1312x736.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:736,&quot;width&quot;:1312,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:510869,&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://intentlayer.to/i/204212485?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa020a836-2291-44ff-9737-4ec2534ba790_1312x736.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_!Y0Gx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa020a836-2291-44ff-9737-4ec2534ba790_1312x736.png 424w, https://substackcdn.com/image/fetch/$s_!Y0Gx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa020a836-2291-44ff-9737-4ec2534ba790_1312x736.png 848w, https://substackcdn.com/image/fetch/$s_!Y0Gx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa020a836-2291-44ff-9737-4ec2534ba790_1312x736.png 1272w, https://substackcdn.com/image/fetch/$s_!Y0Gx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa020a836-2291-44ff-9737-4ec2534ba790_1312x736.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>A year ago, the price of a token was a rounding error in most engineering budgets. You wrote the prompt, you got the answer, and the bill at the end of the month was small enough that nobody in finance asked about it. That era is over. Token spend is now a line item that VPs interrogate, and the reason is simple arithmetic: when a product makes millions of model calls a day, the difference between a frontier model like Claude Opus 4.8 at twenty-five dollars per million output tokens and a budget tier at a dollar or two is the difference between a healthy gross margin and a board meeting about unit economics.</p><p>The response to that pressure has a name now. It&#8217;s called model routing, and it spread faster than almost any infrastructure pattern I&#8217;ve watched. In roughly ninety days it went from something a handful of cost-obsessed startups did to something nearly every serious shop does. Route the easy request to the cheap model, route the hard one to the expensive model, and send the ambiguous one to whichever model your data says handles that shape of problem best. The mechanics vary, but the move is the same: stop sending every request to one model and start choosing per request.</p><p>That this happened so fast tells you something. Routing isn&#8217;t a clever optimization a few teams discovered. It&#8217;s the natural consequence of a market that finally has more than one credible product. When OpenAI shipped GPT-4 in March 2023, it was the only place to buy frontier reasoning, and there was nothing to route between. Now there&#8217;s a deep bench: a frontier tier from three or four labs, a fast-and-cheap tier under each of them, open-weight models you can host yourself, and a long tail of specialized models tuned for code, extraction, or classification. The moment a real menu existed, routing was inevitable. The only surprise is that anyone expected it to take longer.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://intentlayer.to/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 The Intent Layer! 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>So routing is settled. Within a year it will be as unremarkable as a load balancer, a piece of plumbing nobody brags about. Which means the interesting question has already moved. Once everyone routes, routing itself stops being an advantage. The advantage moves to the decision the router makes. The question is no longer whether you route. It&#8217;s what you route to, and how you know.</p><p>That question is where model arbitrage lives.</p><h2>What arbitrage actually means here</h2><p>Borrow the word from finance, because the structure is identical. An arbitrage is a price difference between two things that are, for your purposes, the same. The classic version: a stock trades at one price in London and a slightly different price in New York, and someone with fast pipes buys in one market and sells in the other until the gap closes. The profit comes not from predicting anything but from noticing that two prices that should be equal aren&#8217;t.</p><p>Model arbitrage is the same trade applied to capability. For a given task, several models will produce an answer good enough to ship, and they do not charge the same price for that answer. A summarization job that GPT-4 handled at sixty dollars per million output tokens in 2023 gets done just as well today by Claude Haiku 4.5 at five dollars, or by an open-weight model you run yourself for the cost of the GPU. If the cheaper model clears the bar the task actually requires, the difference between what you could pay and what you do pay is pure margin. You captured a price gap between two things that, for this task, were equivalent.</p><p>The catch is the phrase &#8220;for this task.&#8221; In finance the two stocks are provably identical; a share is a share. In models, equivalence is something you have to establish, task by task, and it&#8217;s rarely obvious. A cheap model that nails 95% of your customer-support replies might botch the 5% that involve a refund policy, and that 5% might be the only part that costs you money when it&#8217;s wrong. Equivalence isn&#8217;t a property of the model. It&#8217;s a property of the model against your specific task at your specific tolerance for error. The whole game is figuring out where the line sits.</p><h2>The arbitrage is real, and it&#8217;s large</h2><p>Take a document-extraction pipeline that pulls the vendor name, the total, and the due date off an invoice. A frontier model does this perfectly and charges accordingly. But extraction from semi-structured text is not a hard reasoning problem. A model a tenth the price will hit the same accuracy, and you can prove it by running both against a few hundred labeled invoices and comparing the fields. If the cheap model matches on your test set, every invoice you process on the expensive model from then on is money set on fire.</p><p>Now multiply that across every distinct task in a product. Classification, routing of support tickets, first-draft generation, reranking search results, tagging, translation. Each one has its own difficulty, its own error tolerance, and its own cheapest sufficient model. A team that has measured all of them and matches each task to the floor that clears it can run the same product at a fraction of the cost of a team that sends everything to the best model out of caution. Same output, wildly different bill. That spread is the arbitrage, and right now it&#8217;s enormous, because most teams haven&#8217;t done the measuring. They route on vibes, or they don&#8217;t route at all and pay the frontier rate for invoice parsing.</p><h2>Why this won&#8217;t simply close</h2><p>The finance analogy bends in a useful way at exactly this point. In real markets, arbitrage is self-erasing. The traders who exploit a price gap also close it; their buying and selling pushes the two prices together until the opportunity is gone. The reward for finding an arbitrage is to destroy it.</p><p>Model arbitrage doesn&#8217;t close, and the reason is that the underlying prices won&#8217;t hold still. GPT-4 launched in March 2023 at sixty dollars per million output tokens. Three years on, GPT-5 does more than that model ever could at five dollars, and a nano tier sits a little above a dollar: close to a fiftyfold drop in the price of a capable token, and the curve hasn&#8217;t flattened since. A new model ships roughly every few weeks, and each release redraws the map. A model that was frontier-only last month gets a cheap-tier cousin this month that does 90% of the job, which moves the floor for every task you&#8217;d routed to the expensive tier. Prices drop in steps, not smoothly, and capabilities jump in clusters. The cheapest model that clears a given task is a moving target that moves on the labs&#8217; release schedule, not yours.</p><p>That&#8217;s what makes this durable rather than a one-time saving. The arbitrage isn&#8217;t a gap you find once and pocket. It&#8217;s a gap that reopens every time the menu changes, which is constantly. The teams that win aren&#8217;t the ones who found the right routing table in early 2026. They&#8217;re the ones who can re-derive it next month, and the month after, without a heroic manual effort each time.</p><p>The actual asset, then, isn&#8217;t the router. Routing logic is a weekend&#8217;s work, and every cloud will sell you one. It isn&#8217;t a relationship with a particular lab either; that relationship is a liability the moment a competitor undercuts them. The asset is the measurement: a standing evaluation harness that knows, for each task you run, exactly how cheap a model you can drop to before quality falls through the floor. The team that has that can re-price its entire stack the day a new model lands. The team that doesn&#8217;t is guessing, and paying for the guess.</p><p>This reframes what&#8217;s scarce. We spent the last two years treating access to the best model as the thing worth having, the way you&#8217;d treat a faster CPU. Access is no longer scarce; there are four best models and they all have an API. What&#8217;s scarce is knowing precisely how good a model your task actually needs, because that knowledge is the only thing that converts a falling price into a captured margin. The model is a commodity you rent by the token. Your understanding of your own workload is the position you hold.</p><p>Which means the eval harness has to come before the router, not after it. Label your tasks, measure where each one breaks, and keep the test set fresh enough that you can re-run it the morning a new model drops. The routing falls out of the measurement; it can&#8217;t lead it. Everyone is about to be routing. The teams that know what they&#8217;re routing to, and re-check it every time the prices move, will quietly run the same product for a fraction of what their competitors pay, and the gap will widen every week neither side is looking.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://intentlayer.to/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://intentlayer.to/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Why Every Lab Is Building a Coding Agent (And None of It Is About Code)]]></title><description><![CDATA[Frontier labs are betting on code as a proxy for general computer use, aiming to automate all knowledge work, not just programming.]]></description><link>https://intentlayer.to/p/why-every-lab-is-building-a-coding</link><guid isPermaLink="false">https://intentlayer.to/p/why-every-lab-is-building-a-coding</guid><dc:creator><![CDATA[Matt Trifiro]]></dc:creator><pubDate>Mon, 29 Jun 2026 02:20:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Clw7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ad0c4e-bf53-4f7f-adcd-94959ea8f64e_1312x736.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_!Clw7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ad0c4e-bf53-4f7f-adcd-94959ea8f64e_1312x736.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Clw7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ad0c4e-bf53-4f7f-adcd-94959ea8f64e_1312x736.png 424w, https://substackcdn.com/image/fetch/$s_!Clw7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ad0c4e-bf53-4f7f-adcd-94959ea8f64e_1312x736.png 848w, https://substackcdn.com/image/fetch/$s_!Clw7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ad0c4e-bf53-4f7f-adcd-94959ea8f64e_1312x736.png 1272w, https://substackcdn.com/image/fetch/$s_!Clw7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ad0c4e-bf53-4f7f-adcd-94959ea8f64e_1312x736.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Clw7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ad0c4e-bf53-4f7f-adcd-94959ea8f64e_1312x736.png" width="1312" height="736" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a5ad0c4e-bf53-4f7f-adcd-94959ea8f64e_1312x736.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:736,&quot;width&quot;:1312,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:799312,&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://intentlayer.to/i/204049487?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ad0c4e-bf53-4f7f-adcd-94959ea8f64e_1312x736.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_!Clw7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ad0c4e-bf53-4f7f-adcd-94959ea8f64e_1312x736.png 424w, https://substackcdn.com/image/fetch/$s_!Clw7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ad0c4e-bf53-4f7f-adcd-94959ea8f64e_1312x736.png 848w, https://substackcdn.com/image/fetch/$s_!Clw7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ad0c4e-bf53-4f7f-adcd-94959ea8f64e_1312x736.png 1272w, https://substackcdn.com/image/fetch/$s_!Clw7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ad0c4e-bf53-4f7f-adcd-94959ea8f64e_1312x736.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>Every frontier lab shipped a coding agent in the last year. OpenAI, Anthropic, Google, the open-weight teams behind Kimi and DeepSeek. If you only watched the launches, you&#8217;d think the world ran out of software to write and these companies were racing to serve the same few million programmers. That&#8217;s not what&#8217;s happening. The coding agent is the most general bet any of these labs has placed, and the fact that it writes code is almost incidental.</p><p>Here&#8217;s what the launches don&#8217;t say out loud: coding is a proxy for computer use. A command line, a handful of scripts, and an API on nearly every service get you most of the way to automating any knowledge work, not just software. When a model can write and run code, it can rename ten thousand files, reconcile two spreadsheets, pull a report from an internal tool, reformat it, and email the result. None of that is &#8220;programming&#8221; in the sense we picture when we imagine an engineer at a standup. It&#8217;s office work. The coding agent just happens to be the body that can do it.</p><p>Watch a capable one work and the disguise gets obvious. It writes a three-line script to do what a person would have done with forty clicks across three windows, runs it, reads the output, and decides what to do next. The code is scaffolding it throws away the moment the task is done. What&#8217;s left is the result, which is the only part anyone wanted.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://intentlayer.to/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 The Intent Layer! 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><h2>The computer was always programmable</h2><p>We forgot that the computer was always programmable. For its first few decades, that&#8217;s all it was. You typed instructions and it followed them. The graphical interface was an act of translation built for people: it took the machine&#8217;s native programmability and hid it behind buttons and windows so someone who never wanted to learn a shell could still get work done. That translation was a gift to us and a tax on the machine. Every menu, every modal, and every drag target exists because a human needs to see it and point at it.</p><p>An agent needs none of that. Give a model a shell and it talks to the computer in the computer&#8217;s own language, the one we papered over forty years ago because it was too hard for most people. So the labs aren&#8217;t teaching agents to code because code is the goal. They&#8217;re teaching agents to code because code is the widest door into the machine. Once you&#8217;re through that door, the question stops being &#8220;what can this model write&#8221; and becomes &#8220;what can this model reach.&#8221;</p><h2>The file system is the working primitive</h2><p>That&#8217;s why the file system matters so much right now. It&#8217;s the working primitive of this era, and it earns the role by asking nothing new of anyone. It&#8217;s already on every machine. It&#8217;s ready for a command line. An agent can move through it, read from it, and act on it without a single special interface built first. A folder of PDFs is a database the agent already knows how to query. A directory of notes is memory it can update between tasks.</p><p>Andrej Karpathy&#8217;s idea of an agent keeping its own wiki on disk works precisely because the file system demands no setup. You don&#8217;t provision it. You don&#8217;t define a schema or stand up a service. The simplest abstraction wins, and today the simplest abstraction that lets an agent touch real work is a folder it can open. That simplicity is the whole point, and it&#8217;s also the catch. The file system works because it&#8217;s text, and text is what these models were born fluent in. But most of the world&#8217;s work doesn&#8217;t live in text you can read off a page. It lives behind screens.</p><h2>Vision breaks the text ceiling</h2><p>Vision is the next layer, and it&#8217;s the one that breaks the ceiling. A coding agent can do anything you can express as a script. It still can&#8217;t do the thing a temp does on their first morning: look at an unfamiliar screen, find the button that says &#8220;Approve,&#8221; and click it. Plenty of software offers no API, no command line, and no clean way in except the pixels a person stares at. When an agent can read a screen the way it reads a file, the reachable surface stops being &#8220;everything programmable&#8221; and becomes &#8220;everything visible.&#8221; That&#8217;s a far larger number. It includes the legacy desktop app the finance team won&#8217;t give up, the internal tool nobody documented, and the vendor portal that ships no integration on purpose.</p><p>Vision doesn&#8217;t replace the coding layer. It extends that layer to the parts of the computer we never bothered to make programmable, because the only user was ever a human with eyes. You can read the order of operations in how the labs are moving. Coding first, because it&#8217;s the cheapest and most reliable way to reach the programmable majority of tasks. Vision second, because it&#8217;s harder and the models aren&#8217;t quite there, but it&#8217;s the only path to the rest. The endpoint isn&#8217;t a smarter autocomplete. It&#8217;s an agent that operates a computer the way you do, through whatever interface happens to be in front of it.</p><h2>What this means for what you build</h2><p>This should change what you build. The instinct, when a new capability appears, is to wrap it. Put a clean interface on the coding agent, add a few buttons, and ship a product. But look at what the agents are converging toward. They&#8217;re learning to use the computer directly, the same surfaces a person uses. The wrapper you build to sit between the agent and the work is the exact thing the next model release makes unnecessary. We used to add value by being the friendly layer over a hard system. The friendly layer is now the thing getting automated.</p><p>What survives is the opposite of a wrapper. It&#8217;s whatever makes the underlying surface richer for an agent that&#8217;s already standing on it. If your software is the system of record, the durable move is making it something an agent can read and act on cleanly, not bolting an AI button onto the screens you already have. If your value is locked inside documents, the play isn&#8217;t a chatbot stretched over them; it&#8217;s turning those documents into context an agent can trust. The labs are handing every builder a worker who already uses a command line and will soon use a screen. The work left for the rest of us isn&#8217;t building the worker. It&#8217;s making sure that when the worker shows up, the thing it needs to touch is ready to be touched.</p><p>This is why the coding agent is a bigger deal than it looks, and why reading it as a tool for programmers misses the point. Code was never the territory. It&#8217;s the road: paved, already running almost everywhere, and the few places it can&#8217;t reach are the places vision is being built to cover. If you&#8217;re deciding where to spend the next two years, don&#8217;t spend them smoothing the on-ramp to that road. Build the destination worth driving to, and make sure an agent can get in the door.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://intentlayer.to/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://intentlayer.to/subscribe?"><span>Subscribe now</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Nobody Reads the Code Anymore]]></title><description><![CDATA[Code review was the last human checkpoint before production. Now, it's a bottleneck that can't scale.]]></description><link>https://intentlayer.to/p/nobody-reads-the-code-anymore</link><guid isPermaLink="false">https://intentlayer.to/p/nobody-reads-the-code-anymore</guid><dc:creator><![CDATA[Matt Trifiro]]></dc:creator><pubDate>Sun, 21 Jun 2026 13:35:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!8l8i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaaeb137-0fd8-4871-b85c-fdfec2f40872_2560x1440.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_!8l8i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaaeb137-0fd8-4871-b85c-fdfec2f40872_2560x1440.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8l8i!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaaeb137-0fd8-4871-b85c-fdfec2f40872_2560x1440.png 424w, https://substackcdn.com/image/fetch/$s_!8l8i!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaaeb137-0fd8-4871-b85c-fdfec2f40872_2560x1440.png 848w, https://substackcdn.com/image/fetch/$s_!8l8i!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaaeb137-0fd8-4871-b85c-fdfec2f40872_2560x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!8l8i!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaaeb137-0fd8-4871-b85c-fdfec2f40872_2560x1440.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8l8i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaaeb137-0fd8-4871-b85c-fdfec2f40872_2560x1440.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aaaeb137-0fd8-4871-b85c-fdfec2f40872_2560x1440.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;:7390642,&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://intentlayer.to/i/202954989?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaaeb137-0fd8-4871-b85c-fdfec2f40872_2560x1440.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_!8l8i!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaaeb137-0fd8-4871-b85c-fdfec2f40872_2560x1440.png 424w, https://substackcdn.com/image/fetch/$s_!8l8i!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaaeb137-0fd8-4871-b85c-fdfec2f40872_2560x1440.png 848w, https://substackcdn.com/image/fetch/$s_!8l8i!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaaeb137-0fd8-4871-b85c-fdfec2f40872_2560x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!8l8i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faaaeb137-0fd8-4871-b85c-fdfec2f40872_2560x1440.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>The code review is a dying art. It used to be the last checkpoint before production. A human pulled up the diff, read it line by line, asked the questions that mattered, and signed off. That person was why you could sleep at night. They&#8217;d seen the failure before, so they caught it before your customers did.</p><p>That checkpoint is gone, and most teams haven&#8217;t admitted it yet.</p><p>The code still gets written, more of it than ever. An agent ships in an afternoon what used to take a week. It compiles, the tests pass, it looks right, so it merges. The diff that lands in the review queue is too big to read with any care, and there are forty more behind it. The person who used to read every line now skims for whatever looks obviously wrong. Nothing looks obviously wrong. That&#8217;s the problem.</p><h2>Why reading harder won&#8217;t save you</h2><p>The instinct is to read more carefully. Hire reviewers, buy a review tool that summarizes the diff and flags the risky parts, slow down and look.</p><p>It won&#8217;t hold. The bottleneck used to be typing; now it&#8217;s reading, and reading is the part that doesn&#8217;t scale. A reviewer can read a function and confirm it&#8217;s internally consistent. What they can&#8217;t do, at the speed agents now produce code, is hold every invariant of a live distributed system in their head and check each new function against all of them. The invariant that got violated lives in a different file, a different service, last week&#8217;s deploy. It isn&#8217;t in the diff, and no amount of staring will put it there.</p><p>Better review tools answer the reviewer&#8217;s questions faster. They don&#8217;t reduce the number of questions, and every question is about an invariant the code might have broken. Does this fire once? Does it roll back if it crashes halfway? Can these two writes race? The list is long, and it grows with every service you add. You&#8217;ll never read your way to the bottom of it.</p><h2>Where the question goes next</h2><p>If you can&#8217;t read your way out, the question has to change. Not &#8220;how do we review this code well enough to trust it,&#8221; but &#8220;how do we make the code trustworthy whether or not anyone reads it.&#8221;</p><p>That&#8217;s the only version of the question that survives a world where most code is written by agents and skimmed, not authored, by humans. Correctness can&#8217;t keep living in the reviewer&#8217;s head, because the reviewer can&#8217;t keep up. It has to move down a layer, into the substrate the code runs on: where retries fire once because the runtime makes them idempotent, where a crash halfway through a write rolls back because the transaction is atomic, where two writes can&#8217;t race because the system serializes them. Put correctness in the runtime, and the agent can write naive code on top of it while the system stays correct anyway. Not because someone caught the bug in review, but because the bug was never possible to write.</p><p>The fear is real, and reading harder won&#8217;t make it go away. The last human who read every line isn&#8217;t coming back. What can come back is the thing that person gave you: confidence that the code in production won&#8217;t betray you six weeks from now. That confidence used to come from a careful pair of eyes on a diff. Now it has to come from the ground the code stands on.</p>]]></content:encoded></item><item><title><![CDATA[Your Job Was Never the Code]]></title><description><![CDATA[The developer's true job is turning requirements into value.]]></description><link>https://intentlayer.to/p/your-job-was-never-the-code</link><guid isPermaLink="false">https://intentlayer.to/p/your-job-was-never-the-code</guid><dc:creator><![CDATA[Matt Trifiro]]></dc:creator><pubDate>Sat, 20 Jun 2026 10:06:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jKdF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8531118-99eb-454a-977b-545cd8c65afe_2016x2138.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_!jKdF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8531118-99eb-454a-977b-545cd8c65afe_2016x2138.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jKdF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8531118-99eb-454a-977b-545cd8c65afe_2016x2138.jpeg 424w, https://substackcdn.com/image/fetch/$s_!jKdF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8531118-99eb-454a-977b-545cd8c65afe_2016x2138.jpeg 848w, https://substackcdn.com/image/fetch/$s_!jKdF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8531118-99eb-454a-977b-545cd8c65afe_2016x2138.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!jKdF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8531118-99eb-454a-977b-545cd8c65afe_2016x2138.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jKdF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8531118-99eb-454a-977b-545cd8c65afe_2016x2138.jpeg" width="1456" height="1544" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b8531118-99eb-454a-977b-545cd8c65afe_2016x2138.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1544,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2565237,&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://intentlayer.to/i/202352168?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8531118-99eb-454a-977b-545cd8c65afe_2016x2138.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_!jKdF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8531118-99eb-454a-977b-545cd8c65afe_2016x2138.jpeg 424w, https://substackcdn.com/image/fetch/$s_!jKdF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8531118-99eb-454a-977b-545cd8c65afe_2016x2138.jpeg 848w, https://substackcdn.com/image/fetch/$s_!jKdF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8531118-99eb-454a-977b-545cd8c65afe_2016x2138.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!jKdF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb8531118-99eb-454a-977b-545cd8c65afe_2016x2138.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><a href="https://www.microsoft.com/en-us/research/wp-content/uploads/2019/04/devtime-preprint-TSE19.pdf">A 2019 study co-authored by Microsoft Research</a> gathered nearly 6,000 self-reports from professional developers about what they actually do all day. The answers did not surprise anyone who has sat through countless sprint meetings, architecture reviews, and requirements conversations.</p><p>Writing code turns out to be one of the smaller things developers do. Estimates vary widely by study, anywhere from nine percent of the day to sixty-one percent. Either way, a large share of every day goes to something other than typing: figuring out what to build, and whether it&#8217;s the right thing to build at all.</p><h2>Most of the day isn&#8217;t code</h2><p>Which is why you can double your rate of code production and watch the gain evaporate. Typing was never what slowed delivery. You produce more code, which puts pressure on things like the review process. Turn the firehose up and the question becomes whether your review can absorb the flow at quality. Most teams never measure that before they turn up the volume.</p><p>Agentic engineering is that valve thrown wide open. It pours code into the pipeline you already have, faster, and magnifies the debt you were already carrying. You feel quick in the one place you can see, lines appearing on screen, while the parts that actually gate delivery get slower.</p><h2>The job behind the keyboard</h2><p>Your role was always translation, turning requirements from the business into something that adds value to your users. The keyboard work was the visible proxy for that, the thing you could point to at the end of the day. Now the proxy is cheap and the real work stands exposed.</p><p>Does this match the requirement? Which constraints apply? Writing for an embedded device with kilobytes of memory and writing for a cloud platform at scale are different problems, and an agent will solve the wrong one with great fluency. Knowing which problem you&#8217;re in is the judgment that doesn&#8217;t go away.</p><h2>What was actually scarce</h2><p>None of this reads as loss once you see what was actually scarce. The craft pride of the profession attached itself to the code, because the code was the hard part you could hold up and show someone.</p><p>That pride is looking for its real object now. It was never the syntax or the speed of your hands. It was the judgment about what to build, and the taste to reject a fluent wrong answer by asking for options before you commit to one.</p><p>Keep those and the agent becomes the best junior engineer you&#8217;ve ever managed. Lose track of them and it&#8217;s a faster way to ship the wrong thing, with screenshots to prove how fast you got there.</p>]]></content:encoded></item><item><title><![CDATA[One Product, Many Surfaces]]></title><description><![CDATA[Model the application once, and each new channel becomes a projection instead of another implementation.]]></description><link>https://intentlayer.to/p/one-product-many-surfaces</link><guid isPermaLink="false">https://intentlayer.to/p/one-product-many-surfaces</guid><dc:creator><![CDATA[Matt Trifiro]]></dc:creator><pubDate>Thu, 18 Jun 2026 16:17:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!oRdq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6bb9f17-dfae-4387-a99d-14199799c1b9_2560x1600.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_!oRdq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6bb9f17-dfae-4387-a99d-14199799c1b9_2560x1600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oRdq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6bb9f17-dfae-4387-a99d-14199799c1b9_2560x1600.png 424w, https://substackcdn.com/image/fetch/$s_!oRdq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6bb9f17-dfae-4387-a99d-14199799c1b9_2560x1600.png 848w, https://substackcdn.com/image/fetch/$s_!oRdq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6bb9f17-dfae-4387-a99d-14199799c1b9_2560x1600.png 1272w, https://substackcdn.com/image/fetch/$s_!oRdq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6bb9f17-dfae-4387-a99d-14199799c1b9_2560x1600.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oRdq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6bb9f17-dfae-4387-a99d-14199799c1b9_2560x1600.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b6bb9f17-dfae-4387-a99d-14199799c1b9_2560x1600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6746295,&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://intentlayer.to/i/202602444?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6bb9f17-dfae-4387-a99d-14199799c1b9_2560x1600.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_!oRdq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6bb9f17-dfae-4387-a99d-14199799c1b9_2560x1600.png 424w, https://substackcdn.com/image/fetch/$s_!oRdq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6bb9f17-dfae-4387-a99d-14199799c1b9_2560x1600.png 848w, https://substackcdn.com/image/fetch/$s_!oRdq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6bb9f17-dfae-4387-a99d-14199799c1b9_2560x1600.png 1272w, https://substackcdn.com/image/fetch/$s_!oRdq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb6bb9f17-dfae-4387-a99d-14199799c1b9_2560x1600.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>For most of the web&#8217;s history, &#8220;shipping the app&#8221; meant shipping a website. If you had budget, you added an iOS build, maybe an Android one, and a public API so partners could pull data. The list of ways someone could touch your product was short, and it stayed short for years. A team could hand-build each entry because there were three or four of them and they rarely changed.</p><h2>The surface count keeps growing</h2><p>That list isn&#8217;t short anymore, and it changes every quarter. You still have web and mobile. You have a REST API and probably a GraphQL one beside it. You have webhooks. You have an MCP server now because your users want their agents to reach your product without a human clicking through a UI. You have a Slack app, a browser extension, a CLI, and an embeddable widget that lives inside someone else&#8217;s dashboard. Each of these is a surface: a distinct way a human or a machine touches the same underlying product.</p><p>Most teams treat each surface as its own project. The web app has its own state management, its own notion of what a &#8220;project&#8221; is and which buttons should be disabled when. The mobile app reimplements that logic in Swift and Kotlin. The API has its own serializers and its own idea of which fields are writable. The MCP server, bolted on last quarter, has a third interpretation of the same rules. Five teams, or five sprints, each building a slightly different model of the same business.</p><h2>The second change is where you pay</h2><p>The cost of that isn&#8217;t the first build. It&#8217;s the second change. A product manager decides that an archived project can be restored within thirty days but not after. That&#8217;s one rule. Now it has to be re-expressed in the web client&#8217;s state machine, the mobile view models, the API&#8217;s permission checks, the MCP tool&#8217;s input schema, and the Slack command handler. Five implementations of one idea, written by different people at different times werre tested to different standards. They drift. The web app enforces the thirty-day window; the API forgot; the agent calling your MCP server happily restores a project from last year and corrupts a report. Nobody decided that behavior. It&#8217;s the residue of five surfaces each owning a copy of logic that should have lived in one place.</p><h2>One state, many projections</h2><p>The alternative is a single canonical representation of what your application is and what it can do, with each surface as a thin projection of that representation. The state lives in one place: what entities exist, what fields they carry, which transitions are legal, and who&#8217;s allowed to perform them. No surface owns any of that. A surface is a view onto it. The web client renders the state as HTML and interactive controls. The API renders it as JSON over HTTP. The MCP server renders the same legal transitions as tools an agent can call, with the same permission checks the web UI runs. When &#8220;restore within thirty days&#8221; becomes a rule, you define it once, against the canonical model, and every surface inherits it the moment you deploy. The agent can&#8217;t restore the year-old project because the state machine it&#8217;s projecting through won&#8217;t allow the transition. Not because someone remembered to add a guard in the MCP handler.</p><p>This sounds like ordinary good architecture, and at a small scale you can argue it&#8217;s premature. You can&#8217;t anymore. The objection used to be &#8220;you&#8217;re building an abstraction for surfaces you don&#8217;t have yet.&#8221; But you do have them, and you&#8217;re getting more whether you plan for them or not. MCP didn&#8217;t exist before Anthropic published it in November 2024. By 2026 it&#8217;s a surface your users expect, the same way they expected a mobile app in 2012 and a public API in 2016. You&#8217;re going to pay the cost of supporting these surfaces regardless. The only decision left is whether you pay it once, against a shared model, or N times, once per surface, plus the compounding tax of keeping N copies in sync forever.</p><h2>New surfaces are distribution channels</h2><p>That&#8217;s the defensive case. The offensive case is where this turns into an actual advantage, and it&#8217;s about speed.</p><p>Every surface is a distribution channel. It&#8217;s a place your product can be reached that it couldn&#8217;t before, by a kind of user or a kind of software that wasn&#8217;t in the room last year. When agents became real buyers of software functionality in 2025, the products that already exposed their capabilities as clean, callable transitions got reached. The products whose logic was trapped inside a React bundle did not. An agent can&#8217;t click a button that only exists as a rendered component with three hundred lines of event handlers behind it. It can call a tool. If your capabilities are already modeled as transitions on a shared state, exposing them as tools is a projection you write in days. If they&#8217;re scattered across client code, it&#8217;s a quarter of untangling, and you ship the integration after the moment that mattered has passed.</p><p>Speed on surfaces compounds. The architecture that makes your fifth surface cheap makes your eighth surface nearly free because the expensive part (deciding what your app actually is and means) is already done and reused. The team that can light up a new surface in a week while a competitor takes two quarters isn&#8217;t just faster. It&#8217;s present in places the competitor is absent: inside the agent that became the default way a customer segment gets work done, inside the partner&#8217;s dashboard, on the platform that didn&#8217;t exist when either company wrote its first line of code. Being early to a surface is worth what being early to the App Store was in 2009 or early to having any web presence was in 1996. The norms get set, the integrations get built, and the default gets chosen while the latecomers are still refactoring.</p><h2>One place to reason about the product</h2><p>There&#8217;s a quieter benefit too. When the state is canonical and surfaces are projections, you can reason about your whole product from one place. You can answer &#8220;who can do what&#8221; by reading the model, not by auditing five codebases and hoping they agree. New surfaces become a question of how to render existing truth, not what the truth is. That separation is what lets a small team behave like a large one: the work of defining the product happens once and the work of exposing it scales out cheaply.</p><h2>Prepare for the surface without a name</h2><p>The next surface is already coming, and you don&#8217;t know its name yet. Two years ago nobody was provisioning for MCP; two years from now there&#8217;s a channel we&#8217;re not describing here because it hasn&#8217;t shipped. The question that decides whether you reach it in time isn&#8217;t how clever your web app is. It&#8217;s whether your product is one thing with many views or a pile of views pretending to be one thing. </p>]]></content:encoded></item><item><title><![CDATA[In the Age of AI, the Bottleneck Isn't the Code—It's the Review Process]]></title><description><![CDATA[You must automate what you cannot afford to miss.]]></description><link>https://intentlayer.to/p/in-the-age-of-ai-the-bottleneck-isnt</link><guid isPermaLink="false">https://intentlayer.to/p/in-the-age-of-ai-the-bottleneck-isnt</guid><dc:creator><![CDATA[Matt Trifiro]]></dc:creator><pubDate>Wed, 17 Jun 2026 22:28:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!r3Gr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae360024-6d42-48e3-be67-ae1182fab27d_1306x816.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_!r3Gr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae360024-6d42-48e3-be67-ae1182fab27d_1306x816.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!r3Gr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae360024-6d42-48e3-be67-ae1182fab27d_1306x816.png 424w, https://substackcdn.com/image/fetch/$s_!r3Gr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae360024-6d42-48e3-be67-ae1182fab27d_1306x816.png 848w, https://substackcdn.com/image/fetch/$s_!r3Gr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae360024-6d42-48e3-be67-ae1182fab27d_1306x816.png 1272w, https://substackcdn.com/image/fetch/$s_!r3Gr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae360024-6d42-48e3-be67-ae1182fab27d_1306x816.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!r3Gr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae360024-6d42-48e3-be67-ae1182fab27d_1306x816.png" width="1306" height="816" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ae360024-6d42-48e3-be67-ae1182fab27d_1306x816.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:816,&quot;width&quot;:1306,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1830397,&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://intentlayer.to/i/202503153?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae360024-6d42-48e3-be67-ae1182fab27d_1306x816.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_!r3Gr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae360024-6d42-48e3-be67-ae1182fab27d_1306x816.png 424w, https://substackcdn.com/image/fetch/$s_!r3Gr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae360024-6d42-48e3-be67-ae1182fab27d_1306x816.png 848w, https://substackcdn.com/image/fetch/$s_!r3Gr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae360024-6d42-48e3-be67-ae1182fab27d_1306x816.png 1272w, https://substackcdn.com/image/fetch/$s_!r3Gr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae360024-6d42-48e3-be67-ae1182fab27d_1306x816.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><a href="https://en.wikipedia.org/wiki/Fred_Brooks">Fred Brooks</a> published <em><a href="https://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/B0DKZGPNPR/ref=sr_1_1">The Mythical Man-Month</a></em> in 1975, and every working engineer has absorbed its central lesson whether they&#8217;ve read it or not: adding people to a late software project makes it later. The reason is communication. Each new engineer multiplies the number of conversations the team has to hold in its collective head, and at some point the conversations cost more than the code they produce. Fifty years later we quote Brooks like scripture and build as if he were wrong.</p><p>The trap only springs on the projects that work. Software that fails never has this problem. The moment you have revenue, you have users, and users hand you feature requests and bug reports and a competitor shipping something you don&#8217;t have yet. Any company worth running takes on technical debt on purpose, as a bet, because the alternative is losing. So success is what generates the demands that wear down the thing that made you successful.</p><p>You don&#8217;t get to opt out. The bill arrives precisely because you won.</p><p>What you&#8217;re paying down, as the code grows, is cohesion. Early on a system has a few authors who share an unspoken model of how things should work: where logic belongs, what the error-handling convention is, which abstractions are sacred and which are throwaway. None of it is written down because none of it needs to be. The architecture lives in three or four people&#8217;s heads, and those heads talk every day.</p><p>Then you hire, because the feature requests don&#8217;t stop, and each new contributor shows up without the shared model. They write reasonable code in a slightly different dialect. The seniors review what they can, but review is a bottleneck and the queue grows faster than the reviewers do. Standards that were obvious become standards that are merely documented, and a documented standard is one that gets skipped at 11pm the night before a release. Give it a few years and the codebase no longer expresses one point of view. It expresses the running average of everyone who ever touched it, which is to say it expresses almost nothing.</p><p>We&#8217;ve spent decades calling this a people problem and throwing people-shaped fixes at it. Style guides. Onboarding decks. Architecture review boards. The staff engineer who personally reads every pull request until the week they quit. All of these help a little, and all of them share one flaw: they need a human holding the standard in mind at the exact moment the standard is at risk. We&#8217;re bad at that. We get tired, we get rushed, we want to be agreeable to the colleague whose code we&#8217;re reviewing at 11pm. The standard doesn&#8217;t collapse because someone decided to abandon it. It just erodes, one reasonable exception at a time, because no single decision was ever made to hold the line.</p><div class="pullquote"><p>Agents write code, and they write a lot of it, fast. Whatever drift you used to get from a new hire over six months you can now get from an agent over an afternoon.</p></div><p>Now the same dynamic is arriving faster than anything we&#8217;ve had to absorb before. Agents write code, and they write a lot of it, fast. Whatever drift you used to get from a new hire over six months you can now get from an agent over an afternoon. The agent has no model of your system. It has a general model of all systems, which is worse, because its output is plausible. It will hand you code that looks like it belongs and quietly breaks the convention you&#8217;ve protected for three years. Put a handful of agents behind every engineer on the team and the old review bottleneck doesn&#8217;t just strain, it gives.</p><p>Declarative enforcement changes the shape of the problem. The idea predates AI and it&#8217;s simpler than it sounds. The people responsible for the system, the architects and senior engineers, write down the constraints that must hold across the codebase, and the machine enforces them instead of human memory. Not as a guideline anyone can talk their way past, but as a rule the build itself checks. The architect&#8217;s judgment stops living only in a head and starts living in a form the system can apply on its own.</p><p>What matters is <em>when</em> the check fires. A rule that only runs in review runs too late: the code&#8217;s written, the author&#8217;s moved on, the reviewer is the bottleneck all over again. A rule that runs inside the editor, while the code is being typed, changes the whole economy of the thing. The constraint becomes a wall you hit in the moment instead of a verdict you get back a day later. And it doesn&#8217;t care who&#8217;s writing. A human in the editor and an agent generating a thousand lines hit the same wall at the same place. You stop having to trust that the agent absorbed your conventions, because trust never enters into it. The code passes or it doesn&#8217;t. And that&#8217;s the part that takes a minute to sit with, because we&#8217;ve spent this whole transition asking how to make the model write code that meets our standards, as if the answer were somewhere inside the model. It isn&#8217;t, and it can&#8217;t be, because the model doesn&#8217;t know your standards and won&#8217;t ever know them in a way you can rely on. The answer sits outside the model, in the constraints you&#8217;ve made explicit enough for a machine to check. You stop trying to grow a better author and start defining what acceptable output looks like, then let anything that wants to contribute clear that bar or fail trying. The author gets interchangeable. The specification is the thing you actually maintain now.</p><p>For a big organization this reprices a kind of work that has always felt like dead weight. Compliance: the rules a regulated company has to hold on every line it ships, access controls, data-handling requirements, the audit trail. None of it ships a single feature to a single customer. It&#8217;s the work developers do so the company is allowed to keep operating, and for years it&#8217;s been enforced through documentation, training, and a quiet hope that everyone remembers the policy under deadline. Write it as constraints the editor checks, and that entire class of requirement stops being something people have to remember and becomes something the system won&#8217;t let them violate in the first place. The compliance rule and the architectural rule turn out to be the same kind of object. Both are intent, written down, made enforceable.</p><p>Brooks&#8217;s law was never really about headcount. It was about the cost of keeping many minds aligned around one design, and how that cost climbs faster than the team that&#8217;s paying it. For fifty years the only move we had was to align the minds: hire slowly, document everything, review until your eyes bled. That move is failing under a load it was never built for, because the new contributors aren&#8217;t minds and they show up by the thousand.</p><p>So you move the alignment out of the minds and into the system. Write the constraint once, where the judgment actually lives, and let it hold against every author the same way. The seniors don&#8217;t review more. They decide what&#8217;s allowed to be true, and the codebase keeps enforcing that decision at three in the morning when nobody&#8217;s awake to defend it. The cohesion tax doesn&#8217;t go away. You just stop paying it one tired reviewer at a time.</p>]]></content:encoded></item><item><title><![CDATA[The Hidden Costs of Agentic Engineering]]></title><description><![CDATA[The price of AI-generated code fell to near zero; the cost relocated to the failure paths nobody specified.]]></description><link>https://intentlayer.to/p/the-hidden-costs-of-agentic-engineering</link><guid isPermaLink="false">https://intentlayer.to/p/the-hidden-costs-of-agentic-engineering</guid><dc:creator><![CDATA[Matt Trifiro]]></dc:creator><pubDate>Tue, 16 Jun 2026 16:42:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!lX0n!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50c699c2-7e5b-4962-a867-e37cbb2f143e_1280x800.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_!lX0n!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50c699c2-7e5b-4962-a867-e37cbb2f143e_1280x800.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lX0n!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50c699c2-7e5b-4962-a867-e37cbb2f143e_1280x800.png 424w, https://substackcdn.com/image/fetch/$s_!lX0n!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50c699c2-7e5b-4962-a867-e37cbb2f143e_1280x800.png 848w, https://substackcdn.com/image/fetch/$s_!lX0n!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50c699c2-7e5b-4962-a867-e37cbb2f143e_1280x800.png 1272w, https://substackcdn.com/image/fetch/$s_!lX0n!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50c699c2-7e5b-4962-a867-e37cbb2f143e_1280x800.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lX0n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50c699c2-7e5b-4962-a867-e37cbb2f143e_1280x800.png" width="1280" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/50c699c2-7e5b-4962-a867-e37cbb2f143e_1280x800.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1298847,&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://intentlayer.to/i/202307198?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50c699c2-7e5b-4962-a867-e37cbb2f143e_1280x800.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_!lX0n!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50c699c2-7e5b-4962-a867-e37cbb2f143e_1280x800.png 424w, https://substackcdn.com/image/fetch/$s_!lX0n!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50c699c2-7e5b-4962-a867-e37cbb2f143e_1280x800.png 848w, https://substackcdn.com/image/fetch/$s_!lX0n!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50c699c2-7e5b-4962-a867-e37cbb2f143e_1280x800.png 1272w, https://substackcdn.com/image/fetch/$s_!lX0n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50c699c2-7e5b-4962-a867-e37cbb2f143e_1280x800.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>The price of a working line of code has been falling for many years, and this year it landed near zero. Each step took a slice of the work out of human hands: the compiler, the high-level language, the package registry, the answer already posted on Stack Overflow, and the autocomplete that finished your line. Agents took what was left. You describe a feature and the code comes back, compiling, passing the tests for the cases you named, clean when you run the demo. Translating intent into code, the skill that used to define the job, has stopped being scarce.</p><p>But now there is a new cost, and it moved somewhere harder to see.</p><h2>The bug is in what nobody wrote</h2><p>Picture a money transfer: debit one account, credit another. Routine. An agent writes it in seconds, and the code is right for every case you&#8217;d think to check. A customer moves $200 from checking to savings. Four months later that customer notices the $200 left checking and never arrived in savings. The server had restarted in the quarter-second between the two writes. The debit committed; the credit never ran. Nothing was logged, because from the program&#8217;s point of view nothing went wrong. It did exactly what it was told, right up until the moment it stopped existing.</p><p>That bug isn&#8217;t in the diff. You can read every line the agent produced and never find it because the defect is a line that was never written: the one that makes the debit and the credit succeed or fail together. The agent wrote what the prompt described. The prompt described a transfer, not a crash halfway through one.</p><p>This is the shape of nearly every expensive bug now. Not a wrong instruction sitting in the code where a reviewer can catch it, but a missing one. The retry that fires twice and charges twice. Two buyers both told yes for the last unit in stock. An event that arrives before the event it depends on. Engineers who&#8217;ve been burned carry these cases as instinct; they flinch at a write that isn&#8217;t idempotent the way you flinch at a hot stove. An agent has no scar tissue. It has a prompt.</p><h2>Absence is the one thing our tools can&#8217;t catch</h2><p>The blindness is structural. A demo exercises the path you built it to show. A test suite checks the cases someone thought to write down. Code review reads what&#8217;s on the screen. All three are good at judging what&#8217;s present and useless against what&#8217;s absent, and the bugs that reach production have always lived in the absence. We tolerated that for decades because the human author was also a slow author, and slowness worked as a filter. You couldn&#8217;t ship a thousand unconsidered edge cases in a week; you didn&#8217;t have the hours to write them.</p><p>That filter is gone. Code generation happens at machine speed and the omissions ride along with it, while the work of catching them, reading carefully and imagining what breaks runs at the same speed it always did. So a senior engineer starts reading every change line by line because the green checkmarks stopped meaning what they used to. Team throughput collapses to whatever that one careful person can vet in a day. The bill that never showed up as a bug shows up as a bottleneck instead, and the rest of it arrives later still: a support ticket, a day spent reproducing a fault that only fires when the network stalls at the wrong instant, a refund, a customer who quietly takes their next order somewhere else. None of it lands on the line item marked &#8220;engineering.&#8221;</p><h2>The oldest move in computing</h2><p>The instinct is to make the agent more careful. Sharper prompts, more tests, a second agent reviewing the first one&#8217;s output. That treats an omission as a mistake, and it isn&#8217;t one. You can&#8217;t reliably prompt your way to remembering every failure mode of every distributed operation any more than you could train every programmer to never once leak a pointer.</p><p>We&#8217;ve beaten problems with exactly this shape before, and never by trying harder. We moved them. Scheduling lived inside each application until the operating system took it over and handed out time slices. Memory safety was a discipline you kept by hand until virtual memory gave every process its own address space and made one program physically unable to corrupt another&#8217;s. Crash recovery meant a custom repair script bolted onto every accounting system until the database swallowed transactions whole and gave back one promise: the write happened completely, or it didn&#8217;t happen at all. Each of these began as careful, error-prone handiwork. Each ended as a layer beneath the application, where the failure it guarded against could no longer occur.</p><p>The hard problem still sitting up in the application, unmoved, is distributed correctness, the work of retrying without duplicating, surviving a crash mid-write, ordering events that have to arrive in sequence, and letting only one of two racing requests win. Every program that touches more than one machine solves this for itself, unevenly, and now generates that code at agent speed. Libraries help, but a library sits beside your code, not beneath it; you can call it wrong or forget to call it at all.</p><h2>Make the failure impossible by construction</h2><p>So put the model one layer down. The agent writes business logic against a runtime that owns the dangerous paths, and a verifier holds that logic to the rules you declared. Every write is idempotent by default, so the transfer that runs twice does nothing the second time. A process that dies mid-operation resumes where it stopped, the debit and the credit still bound to each other. When two requests reach for the last unit at once, the runtime serializes them and exactly one hears yes. The agent never has to remember any of this because the runtime doesn&#8217;t give it room to get it wrong.</p>]]></content:encoded></item><item><title><![CDATA[The Ops Budget Nobody Approved]]></title><description><![CDATA[When the cost of generating code drops to nearly zero, you don't just write code faster; you end up with ten times more of it, turning software from an asset into a liability.]]></description><link>https://intentlayer.to/p/the-ops-budget-nobody-approved</link><guid isPermaLink="false">https://intentlayer.to/p/the-ops-budget-nobody-approved</guid><dc:creator><![CDATA[Matt Trifiro]]></dc:creator><pubDate>Mon, 15 Jun 2026 23:55:33 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ejl5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937853fa-7d15-4275-b7a3-83ed5f1fc3c7_2560x1440.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_!ejl5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937853fa-7d15-4275-b7a3-83ed5f1fc3c7_2560x1440.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ejl5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937853fa-7d15-4275-b7a3-83ed5f1fc3c7_2560x1440.png 424w, https://substackcdn.com/image/fetch/$s_!ejl5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937853fa-7d15-4275-b7a3-83ed5f1fc3c7_2560x1440.png 848w, https://substackcdn.com/image/fetch/$s_!ejl5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937853fa-7d15-4275-b7a3-83ed5f1fc3c7_2560x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!ejl5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937853fa-7d15-4275-b7a3-83ed5f1fc3c7_2560x1440.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ejl5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937853fa-7d15-4275-b7a3-83ed5f1fc3c7_2560x1440.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/937853fa-7d15-4275-b7a3-83ed5f1fc3c7_2560x1440.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;:5879203,&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://intentlayer.to/i/202210267?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937853fa-7d15-4275-b7a3-83ed5f1fc3c7_2560x1440.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_!ejl5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937853fa-7d15-4275-b7a3-83ed5f1fc3c7_2560x1440.png 424w, https://substackcdn.com/image/fetch/$s_!ejl5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937853fa-7d15-4275-b7a3-83ed5f1fc3c7_2560x1440.png 848w, https://substackcdn.com/image/fetch/$s_!ejl5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937853fa-7d15-4275-b7a3-83ed5f1fc3c7_2560x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!ejl5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F937853fa-7d15-4275-b7a3-83ed5f1fc3c7_2560x1440.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>The efficiencies of agentic code generation are real, but the true costs are poorly understood. An agent writes a service in four minutes that would have cost a senior engineer two days, and the line item drops from two days of salary to a few dollars of tokens. That money didn&#8217;t disappear. It moved downstream, into the build farm, the test fleet, the release pipeline, and the pager rotation, and none of those line items sits next to the four-minute win where anyone would think to add it back. You booked the discount at the keyboard. The bill comes due everywhere else.</p><p>This is the part of the agentic-engineering pitch that nobody puts on the slide. The productivity is genuine and the savings on code generation are genuine, and both are measured at exactly the wrong point in the system. You booked the discount at the keyboard. The bill arrives everywhere else.</p><h2>The cheapest thing got cheaper, so we made more of it</h2><p><a href="https://en.wikipedia.org/wiki/Jevons_paradox">Jevons noticed it with coal in 1865</a>: make a resource cheaper to use and you don&#8217;t spend less on it, you use far more of it. Tokens are coal now. When generating code drops to near-free, you don&#8217;t end up with the same amount of code written faster. You end up with ten times the code, and <a href="https://news.ycombinator.com/item?id=10979240">Jeff Atwood&#8217;s old line</a> stops being a quip and starts being a budget: software is a liability, not an asset. Every line is something to compile, test, review, deploy, secure, and eventually debug at three in the morning.</p><p>So start with the part everyone forgets to multiply. Five engineers each driving a swarm of agents don&#8217;t write five times the code. They write ten or twenty times more, and &#8220;write code&#8221; is only the first step in a long pipeline that now has to swallow all of it: build, test, review, deploy, operate. Walk that pipeline one stage at a time and apply a single test at each: take the number, multiply it by ten, and ask whether the stage holds. Most of them don&#8217;t, even in shops with the best tooling in the industry, and the ones that buckle first are the ones nobody was watching.</p><h2>Testing is where the bill lands first</h2><p>Compilation isn&#8217;t free, in wall-clock or in compute, and most engineers have never once looked at how much of their test infrastructure eats. They are about to find out. Here is the number that should scare you: at scale, the dependency graph grows quadratically with the codebase, not linearly. Ten times more code does not mean ten times more tests to run. It means a hundred times, maybe a thousand, because every change has to prove it didn&#8217;t break everything downstream of it, and the set of things downstream exploded.</p><p>That turns a background cost into a line item. A test suite that used to be an afterthought becomes one of the largest compute consumers in the company, and it has to run on every one of those ten-times-more commits, because the agents themselves love running tests. Tests are how an agent knows it did good work, so it runs them constantly, on its own initiative, burning your fleet to check its own homework.</p><p>And the old shipping rule quietly breaks. Today you ship when every test passes: a long conjunction of Booleans, all of them green. That works while the suite is small enough that the infrastructure running it is reliable. Run a hundred thousand tests on hardware that flakes even a little, and the odds that all all hundred thousand come back green at once approach zero. You can&#8217;t ship anything. So the rule that kept you safe, everything must be true, becomes a rule you have to abandon for something statistical, and now you are guessing which tests are the ones that matter. That is a different and much scarier way to live.</p><h2>Deploys, and the safety valve nobody priced</h2><p>Push the same multiplier into release and a load-bearing assumption gives way. Ask why rollbacks work at all today, and the honest answer is timing: you release software slightly slower than it takes you to detect a problem in production. That gap is the whole safety valve. A bad change lands, the graphs go red, you roll back to the last good state before too much piled on top.</p><p>Now speed up releases so they&#8217;re happening faster than detection. The bad change lands, and before your monitoring even notices, three more changes have shipped on top of it, each one entangled with the last. The rollback you reach for has to contend with all of them. The valve that made fast deployment survivable was never the deploy speed. It was the margin between shipping and noticing, and cheap code generation is the thing eating that margin.</p><h2>Locally correct, globally wrong</h2><p>The nastiest costs aren&#8217;t capacity at all. They&#8217;re the second-order ones, the bugs that compile clean and pass review and surface six weeks later in production. Agents are good at writing code that is easy to write. They are not reliably good at code that is easy to maintain, and they don&#8217;t carry the long-horizon judgment that keeps a system coherent. Each change can be locally correct, defensible on its own, reviewed and merged, and the whole still drifts toward globally wrong.</p><p>Distributed systems are where this gets expensive, and it helps to see why. A single program either works or it doesn&#8217;t, and you can usually reproduce the failure on your laptop. A network of services fails differently. Each service can be correct on its own and the system can still break in the seams between them: a call that times out and gets retried twice, a message that arrives out of order, two services that each hold a defensible view of the same record and disagree the moment they compare notes under load. Now multiply the parts. Ten times more services means ten times more of those seams, more retries colliding with more timeouts, more partial failures where half the system has the new state and half has the old. These are the bugs that don&#8217;t show up in any one service&#8217;s tests, because no one service is wrong. They appear only when the pieces run together at scale, which makes them the hardest failures in the field to reproduce and the most expensive to chase.</p><p>The same multiplier reaches the doors between services. An internal API that you left unhardened because &#8220;only our own code calls it&#8221; is now called by agents, and an agent doesn&#8217;t read your README or honor your conventions. It finds the endpoint, calls it, and reaches whatever data the endpoint will hand back. Every internal interface is effectively public the moment an agent can reach it, and the hardening you deferred because it felt safe inside the perimeter is suddenly load-bearing.</p><h2>The team that never made it into the spreadsheet</h2><p>Trace the chain and notice who is standing at the end of it. Bigger build fleets, exploding test compute, riskier deploys, a brittle million-line system where one bad config flag takes everything down, distributed bugs that take a war room to find. The people who absorb all of that are the operations and SRE teams, and their cost rarely gets entered against the agentic productivity win. The savings land on the engineering ledger. The new load lands on a team in a different org with a different budget, and the two numbers are never put on the same page.</p><p>There is a darker version, too. If a token engine becomes load-bearing, weird things happen. Picture a rollback path that depends on an agent having budget, and someone burns that budget dry an hour before the incident. The cheapest resource in the system, the thing you stopped metering because it felt free, is now the thing standing between you and recovery.</p><p>None of this argues for slowing down. The productivity is real and it is not going back in the box. The argument is narrower and harder to dodge: the savings and the costs live in different places, and a discount you book in one node while the bill comes due in five others is not a discount. It&#8217;s a transfer. The teams getting credit for the speed and the teams paying for it should at least be looking at the same ledger. Right now they aren&#8217;t, and the gap between the four-minute service and its true cost is exactly the size of an ops budget nobody approved.</p>]]></content:encoded></item><item><title><![CDATA[Your Most Valuable User Can't Sign Up for Your Product]]></title><description><![CDATA[The most valuable user for your product is not a person, but an AI agent that operates on a person's behalf.]]></description><link>https://intentlayer.to/p/your-most-valuable-user-cant-sign</link><guid isPermaLink="false">https://intentlayer.to/p/your-most-valuable-user-cant-sign</guid><dc:creator><![CDATA[Matt Trifiro]]></dc:creator><pubDate>Sat, 13 Jun 2026 02:46:29 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!SLL_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f7f33eb-6ad0-4275-93f0-a8a964705ebb_2560x1440.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_!SLL_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f7f33eb-6ad0-4275-93f0-a8a964705ebb_2560x1440.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SLL_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f7f33eb-6ad0-4275-93f0-a8a964705ebb_2560x1440.png 424w, https://substackcdn.com/image/fetch/$s_!SLL_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f7f33eb-6ad0-4275-93f0-a8a964705ebb_2560x1440.png 848w, https://substackcdn.com/image/fetch/$s_!SLL_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f7f33eb-6ad0-4275-93f0-a8a964705ebb_2560x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!SLL_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f7f33eb-6ad0-4275-93f0-a8a964705ebb_2560x1440.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SLL_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f7f33eb-6ad0-4275-93f0-a8a964705ebb_2560x1440.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1f7f33eb-6ad0-4275-93f0-a8a964705ebb_2560x1440.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;:1209672,&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://intentlayer.to/i/201826957?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f7f33eb-6ad0-4275-93f0-a8a964705ebb_2560x1440.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_!SLL_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f7f33eb-6ad0-4275-93f0-a8a964705ebb_2560x1440.png 424w, https://substackcdn.com/image/fetch/$s_!SLL_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f7f33eb-6ad0-4275-93f0-a8a964705ebb_2560x1440.png 848w, https://substackcdn.com/image/fetch/$s_!SLL_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f7f33eb-6ad0-4275-93f0-a8a964705ebb_2560x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!SLL_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1f7f33eb-6ad0-4275-93f0-a8a964705ebb_2560x1440.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>The most valuable user your product will ever have can&#8217;t sign up for it. It can&#8217;t read your onboarding tour, and it&#8217;ll never see your pricing page the way you designed it. It&#8217;s an agent, and it&#8217;s already choosing, registering for, and operating software on someone&#8217;s behalf. It does none of the things your product was built to expect.</p><p>Software has spent its whole life bent toward one creature: a human at a screen. We made the signup form short because people hate typing. We added the password reset because people forget. We wrote the empty-state nudges and the three-tier pricing page with the middle option highlighted, all of it tuned to a person deciding whether to hand over their attention and their credit card. The user was assumed. The user had a body.</p><h2>How an agent shows up</h2><p>Instead, consider how an agent arrives. A human finds your product through a friend, a search, a talk at some conference. An agent finds it by reading a list of tools and matching capabilities to a task. It doesn&#8217;t care about your brand. It cares whether your API does the thing, whether the docs are precise enough to act on, and whether it can authenticate without a human in the loop. The funnel you spent a decade tuning is invisible to it. What it can see is the contract: what you do, stated exactly, in a form a machine can consume.</p><p>Signup is worse, because we&#8217;ve treated it as almost sacred and the whole ritual assumes a person. A name. An email. A verification link clicked from an inbox. A CAPTCHA built for the sole purpose of proving you aren&#8217;t what&#8217;s now your most important customer. An agent has no inbox and no patience for a checkbox asking it to confirm it&#8217;s human. So either you build a path for it to register and get its own credentials, or it routes around you to whoever did. The signup form, that careful little gate, turns into a wall against the exact traffic you want.</p><h2>The real problem is identity</h2><p>Most teams reach for the wrong frame here. They assume an agent is a faster human, a power user who reads the docs and hammers the API, so they rate-limit it, treat its traffic as a threat, and bolt on a service account as an afterthought. But it&#8217;s a different kind of actor with a different set of needs, and the need it cares about most is the one your product probably handles worst: identity.</p><p>An agent operating your stack is acting for someone, a person or a company, but it isn&#8217;t that person. It needs its own identity, scoped to exactly what it&#8217;s allowed to do and nothing more. It needs permissions you can grant in narrow slices and revoke the second something looks off. It needs an audit trail, because when an autonomous thing moves money or deletes records, &#8220;the user did it&#8221; stops being a true sentence. The old model gave one identity per human and called it done. The new one has a human who delegates to an agent that may delegate to three more, and every link in that chain has to be provable.</p><p>The agent is becoming the customer, and the software that wins will be the software an agent can adopt without asking a person for help at every step. That&#8217;s an auth problem, a permissions problem, a question of whether you can hand a non-human actor a real, governable identity. Get it right and an agent can choose you, sign up, and start working in seconds. Get it wrong and it never makes it past your front door, however good the thing behind the door happens to be.</p><h2>What changes for the teams building</h2><p>This changes the work. For years the obsession was reducing friction for humans: shaving fields off the form, smoothing the path to the first click. That work doesn&#8217;t vanish, but it&#8217;s no longer where the game gets won. The advantage now goes to making your product legible and operable by something that reads instead of looks, delegates instead of clicks, and has to prove who it is and on whose behalf. The teams that win the next decade won&#8217;t have the prettiest onboarding. They&#8217;ll have products an agent can pick up and run with, safely, without anyone holding its hand.</p><p>There&#8217;s a temptation to treat all this as niche, a thing for the AI-native startups to fuss over while everyone else keeps serving people. Comfortable, and wrong. The agent isn&#8217;t a new segment bolted onto your existing customers. It&#8217;s a layer quietly moving in between you and them, deciding which tools get used and which get skipped. Your real customer is starting to delegate the choosing.</p><p>The question was never whether to support agents. It&#8217;s whether your most valuable user can get through the door at all. For most products today the honest answer is no. It can&#8217;t sign up, can&#8217;t authenticate, can&#8217;t be trusted with a scoped slice of power. That gap is the whole difference between a tool agents reach for and one they quietly route around.</p>]]></content:encoded></item><item><title><![CDATA[The Dark Factory of Code]]></title><description><![CDATA[The bottleneck has moved from our hands to our judgment.]]></description><link>https://intentlayer.to/p/the-dark-factory-of-code</link><guid isPermaLink="false">https://intentlayer.to/p/the-dark-factory-of-code</guid><dc:creator><![CDATA[Matt Trifiro]]></dc:creator><pubDate>Thu, 11 Jun 2026 15:59:35 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!x-4E!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f095015-74a6-493d-ab2b-1792515195a5_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!x-4E!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f095015-74a6-493d-ab2b-1792515195a5_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!x-4E!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f095015-74a6-493d-ab2b-1792515195a5_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!x-4E!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f095015-74a6-493d-ab2b-1792515195a5_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!x-4E!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f095015-74a6-493d-ab2b-1792515195a5_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!x-4E!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f095015-74a6-493d-ab2b-1792515195a5_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!x-4E!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f095015-74a6-493d-ab2b-1792515195a5_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4f095015-74a6-493d-ab2b-1792515195a5_1672x941.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;:2061309,&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://intentlayer.to/i/201614903?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f095015-74a6-493d-ab2b-1792515195a5_1672x941.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_!x-4E!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f095015-74a6-493d-ab2b-1792515195a5_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!x-4E!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f095015-74a6-493d-ab2b-1792515195a5_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!x-4E!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f095015-74a6-493d-ab2b-1792515195a5_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!x-4E!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f095015-74a6-493d-ab2b-1792515195a5_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg 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 is a kind of factory that runs without light. The Japanese built the first ones decades ago: robotic arms assembling other robotic arms in windowless halls, in the dark, because a machine has no eyes to spare and no need of the sun. Lights-out manufacturing, the trade called it. The phrase carried a faint dread, the suggestion of a place where the work continued after everyone went home, where the human had become not the worker but the absence the work was designed around.</p><p>Agentic engineers have carried the phrase into software. A software dark factory is a codebase tended by swarms of agents instead of hands, writing and rewriting itself around the clock, shipping faster than any person can read the diff.</p><h2>The bottleneck is always paid</h2><p>The idea is older than the silicon. It begins in the cotton country of the English north, where the first scarcity to die was not the weaver&#8217;s but the spinner&#8217;s. For centuries it took several spinners to keep a single weaver in yarn, and then the jenny and the water frame arrived and the yarn became a flood. The strange consequence, the one nobody predicted, is that the machines made the weaver rich. For a span of about twenty years a man who could throw a shuttle was among the best-paid laborers in England, because the bottleneck had moved to him, and the bottleneck is always paid.</p><p>Then the power loom came for the weaver too, and the scarcity moved again, upstream, into the man who decided what the mill should make and what it should refuse to make. The weaver, who had been the whole story, became a footnote to a machine.</p><h2>A wall of terminals</h2><p>An AI-pilled engineer will spin up what the trade calls swim lanes, five or ten or twenty of them at once, each a separate agent gnawing at a separate corner of the code: one on the failing tests, one on a feature, one chasing the defects that surface at night. The work, from the outside, looks like nothing. A man at a desk before a wall of terminals, each scrolling its own monologue, and him moving down the row the way a chess master walks a simul, ten seconds at a board, a glance, a nod, typing almost nothing, now and then killing a process mid-sentence with the briskness of a man who has heard enough.</p><p>He does not write the code. He cannot read all of it. One such engineer described a night that began as exhaustion and a bad idea at two in the morning and ended, by his own count, in twenty-seven hundred commits, a million lines changed, eighty-two percent of the core rewritten.</p><p>The tokens, which everyone assumed would be the constraint, are cheap. The constraint is the one resource the mill cannot manufacture, which is his attention, the finite span of a single mind trying to hold twenty machines in view at once. The bottleneck has climbed all the way up to taste.</p><h2>The factory has no floor</h2><p>Taste is a strange word to find at the end of an engineering story, but it is the right one. Engineers who live this way say they can feel when an agent has gone wrong. Not by what it produces but by how it talks, the way a manager senses that a clever subordinate has begun to bluff. The reasoning waffles. It loses the thread of its own intention. What they are catching is signal pulled from noise by an instinct nobody taught them, and here the story turns uneasy, because the instinct was not earned in the dark factory. It was earned in the years before, in the decades of writing code by hand, of being close to the cloth.</p><p>The mills knew this problem, though they never had to solve it. The owner&#8217;s eye for cloth was not a gift; it was a residue. He could tell good cambric from bad at a glance because he had spent his youth on the floor among the looms, had handled the stuff, had ruined some. His judgment was the sediment of labor, and when the labor moved into the machines there was still a floor downstairs, still a place a young man could go to ruin cloth and learn.</p><p>The dark factory has no floor. The judgment that supervises the machines was built by the very labor the machines have eliminated, and nobody can say where the next generation&#8217;s taste is supposed to come from, when no one types and there is nothing left to apprentice to. The first cohort of listeners may also be the last that knows what it is listening for.</p><h2>No refuge is permanent</h2><p>The dark factory, then, is not a story about speed. It is a story about where the human goes when the hands are no longer needed. We thought the engineer was the one who wrote the code. It turns out the engineer was always the one who decided what was worth keeping, and only now, with the writing given away, can we see that this was the work all along.</p><p>But the weaver believed his scarcity was sacred too, in the brief golden years when the machines were making him rich, and the rule the mills teach is that no refuge is permanent. Taste is where the scarcity lives now, not where it dies.</p><p>The lights are off. Someone is still in the building. He is not typing. He is listening for the one machine that has started to lie.</p>]]></content:encoded></item><item><title><![CDATA[Agentic Engineering: A Definition]]></title><description><![CDATA[The value of engineering has moved from possessing implementation knowledge to mastering the architecture of intent.]]></description><link>https://intentlayer.to/p/agentic-engineering-a-definition</link><guid isPermaLink="false">https://intentlayer.to/p/agentic-engineering-a-definition</guid><dc:creator><![CDATA[Matt Trifiro]]></dc:creator><pubDate>Mon, 08 Jun 2026 18:55:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Tu4o!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb56d80-4556-4b43-a7de-c2b98eb879c6_1280x720.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_!Tu4o!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb56d80-4556-4b43-a7de-c2b98eb879c6_1280x720.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Tu4o!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb56d80-4556-4b43-a7de-c2b98eb879c6_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Tu4o!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb56d80-4556-4b43-a7de-c2b98eb879c6_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Tu4o!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb56d80-4556-4b43-a7de-c2b98eb879c6_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Tu4o!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb56d80-4556-4b43-a7de-c2b98eb879c6_1280x720.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Tu4o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb56d80-4556-4b43-a7de-c2b98eb879c6_1280x720.jpeg" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3eb56d80-4556-4b43-a7de-c2b98eb879c6_1280x720.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:231787,&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://intentlayer.to/i/201189595?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb56d80-4556-4b43-a7de-c2b98eb879c6_1280x720.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_!Tu4o!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb56d80-4556-4b43-a7de-c2b98eb879c6_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Tu4o!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb56d80-4556-4b43-a7de-c2b98eb879c6_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Tu4o!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb56d80-4556-4b43-a7de-c2b98eb879c6_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Tu4o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb56d80-4556-4b43-a7de-c2b98eb879c6_1280x720.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>For as long as I&#8217;ve known software development, the work was translation. Someone (a customer, a product manager, sometimes yourself) held an intent in their head: build a billing system, index this corpus, ship this feature. The job of the engineer was to take that intent and produce something a computer could execute. Lines of code. Schemas. Configuration. Deployment scripts. The translation was the craft. We hired for it, interviewed for it, and built whole industries around teaching it.</p><p>That work has stopped being scarce.</p><p>I want to be careful what I&#8217;m claiming. Translation didn&#8217;t vanish. Models still get it wrong. Production systems still need people who understand memory layouts, distributed consistency, and why a 200ms tail latency might be load-bearing for a business. But the act of writing the code (the daily, hourly motion that defined what software engineering felt like for two generations) has been removed from the critical path. Around late 2024, the output of frontier models crossed a quiet threshold. The code they produced started being more often right than wrong, more often readable than not, and good enough that engineers started shipping it without rewriting it. That&#8217;s a different relationship to the machine than we had a year before.</p><p>What&#8217;s left, when translation isn&#8217;t the bottleneck, is a discipline without a name.</p><p>This essay is an attempt to give it one. Call it <strong>agentic engineering</strong>: the practice of producing reliable software by directing AI agents through specification, implementation, review, testing, deployment, and maintenance, while retaining human ownership of intent, architecture, and correctness.</p><h2>Why the old names don&#8217;t fit</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5oBL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ee7435d-a77d-431f-aea8-f45d3abf6181_1280x720.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5oBL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ee7435d-a77d-431f-aea8-f45d3abf6181_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!5oBL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ee7435d-a77d-431f-aea8-f45d3abf6181_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!5oBL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ee7435d-a77d-431f-aea8-f45d3abf6181_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!5oBL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ee7435d-a77d-431f-aea8-f45d3abf6181_1280x720.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5oBL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ee7435d-a77d-431f-aea8-f45d3abf6181_1280x720.jpeg" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3ee7435d-a77d-431f-aea8-f45d3abf6181_1280x720.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:94488,&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;:false,&quot;internalRedirect&quot;:&quot;https://intentlayer.to/i/201189595?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ee7435d-a77d-431f-aea8-f45d3abf6181_1280x720.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_!5oBL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ee7435d-a77d-431f-aea8-f45d3abf6181_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!5oBL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ee7435d-a77d-431f-aea8-f45d3abf6181_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!5oBL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ee7435d-a77d-431f-aea8-f45d3abf6181_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!5oBL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ee7435d-a77d-431f-aea8-f45d3abf6181_1280x720.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>We&#8217;ve been working without vocabulary for almost two years, and it shows. Every team I talk to calls what they&#8217;re doing something different, and most of them are wrong in the same way: they pick a name that describes the tool and pretend it describes the practice.</p><p>&#8220;AI-assisted coding&#8221; was the first attempt. It&#8217;s the name a coding tool gives itself when it wants to sound non-threatening. The metaphor is the autocomplete bar. The engineer drives; the AI suggests. This was true in 2023. It stopped being true the moment you could hand an agent a repo and a task and walk away for an hour. A practice where the AI is doing most of the typing isn&#8217;t &#8220;assisted.&#8221;</p><p>&#8220;Vibe coding&#8221; captured something real. It went viral because it gave a name to the moment anyone could ship a working app by describing what they wanted. That story about lowering the floor matters. It&#8217;s not the story of how serious software gets built. Karpathy drew the line cleanly: vibe coding raises the floor; agentic engineering raises the ceiling. They use the same infrastructure and they&#8217;re not the same activity. Conflating them is how production systems end up with bugs no one can find because no one ever read the code.</p><p>&#8220;Prompt engineering&#8221; had a six-month run as a job title in 2023 and has since collapsed back into being a skill, not a discipline. Writing a good prompt is part of agentic engineering the way writing a good function name is part of software engineering. Table stakes. Not the work.</p><p>What&#8217;s missing from all of these names is the part that&#8217;s actually hard: getting a stochastic, fallible, occasionally brilliant collaborator to produce software that holds together when ten thousand users hit it on a Tuesday morning. That&#8217;s a discipline. It deserves a name. The name is agentic engineering.</p><h2>What an agent is</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!atgU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F159e5147-2661-4800-9204-071d5725df54_1280x720.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!atgU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F159e5147-2661-4800-9204-071d5725df54_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!atgU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F159e5147-2661-4800-9204-071d5725df54_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!atgU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F159e5147-2661-4800-9204-071d5725df54_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!atgU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F159e5147-2661-4800-9204-071d5725df54_1280x720.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!atgU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F159e5147-2661-4800-9204-071d5725df54_1280x720.jpeg" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/159e5147-2661-4800-9204-071d5725df54_1280x720.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:300000,&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://intentlayer.to/i/201189595?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F159e5147-2661-4800-9204-071d5725df54_1280x720.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_!atgU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F159e5147-2661-4800-9204-071d5725df54_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!atgU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F159e5147-2661-4800-9204-071d5725df54_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!atgU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F159e5147-2661-4800-9204-071d5725df54_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!atgU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F159e5147-2661-4800-9204-071d5725df54_1280x720.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>A quick clarification before going further, because the word &#8220;agent&#8221; has been smeared across about fifteen different things in the trade press.</p><p>An <strong>agent</strong>, here, is an AI system that takes a goal expressed in natural language, plans its own intermediate steps, calls tools, reads the results, and revises its plan until the goal is met or a budget runs out. It is not a chatbot. It is not a single LLM call inside an IDE. It is a loop. The loop is the thing that makes the work feel different from anything we&#8217;ve called &#8220;AI&#8221; before.</p><p>The agent reads the codebase you point it at. It runs the tests it wrote. It opens a pull request. If the build fails, it reads the failure and tries again. That loop is doing the typing now.</p><p>The discipline of agentic engineering is the discipline of being the human at the other end of that loop.</p><h2>The four practices</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0tq2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e3a238b-7ecd-4226-8635-d53c76757d8b_1280x720.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0tq2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e3a238b-7ecd-4226-8635-d53c76757d8b_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0tq2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e3a238b-7ecd-4226-8635-d53c76757d8b_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0tq2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e3a238b-7ecd-4226-8635-d53c76757d8b_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0tq2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e3a238b-7ecd-4226-8635-d53c76757d8b_1280x720.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0tq2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e3a238b-7ecd-4226-8635-d53c76757d8b_1280x720.jpeg" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9e3a238b-7ecd-4226-8635-d53c76757d8b_1280x720.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:86721,&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://intentlayer.to/i/201189595?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e3a238b-7ecd-4226-8635-d53c76757d8b_1280x720.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_!0tq2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e3a238b-7ecd-4226-8635-d53c76757d8b_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0tq2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e3a238b-7ecd-4226-8635-d53c76757d8b_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0tq2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e3a238b-7ecd-4226-8635-d53c76757d8b_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0tq2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e3a238b-7ecd-4226-8635-d53c76757d8b_1280x720.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>Four practices distinguish agentic engineering from what came before. I&#8217;ll claim each one is necessary and that the four together are sufficient &#8212; at least at the resolution at which I can see the field today, in 2026.</p><h3>1. Specifying intent precisely enough that an agent can act on it</h3><p>The first thing that changes when an agent can write code is that the spec stops being a comms artifact and starts being the actual program.</p><p>In the old world, a spec was a thing you wrote so that humans on your team would understand what you wanted. Engineers reading the spec did the hard interpretive work, filling in the gaps, asking clarifying questions, making judgment calls about what the writer probably meant. The code was the source of truth. The spec was scaffolding.</p><p>In agentic engineering, the spec gets executed. Not literally. But what the agent produces is downstream of how clearly you described what you wanted, and the agent doesn&#8217;t ask the clarifying questions a junior engineer would. It guesses. And it guesses confidently. A spec that says &#8220;the user should be able to recover their account&#8221; produces wildly different code depending on whether the agent assumed email recovery, SMS recovery, security questions, or all three.</p><p>This is the central skill of the new discipline: writing intent that survives a long agent run. Specs that survive have a few properties. They distinguish what&#8217;s load-bearing from what&#8217;s incidental. They name the failure modes the engineer cares about. They say what the system is <em>not</em> supposed to do. They tell the agent which tradeoffs the engineer has already made, so the agent doesn&#8217;t relitigate them halfway through.</p><p>You don&#8217;t learn this by writing prompts. You learn it by reading the code an agent produced from a vague spec, and watching where it went wrong.</p><h3>2. Architecting systems the agent can verify itself against</h3><p>The second practice is about what you build <em>around</em> the agent so it can tell whether it&#8217;s done.</p><p>A coder who can&#8217;t tell whether their code is working is a liability. The same is true of an agent. Most of the work of getting agents to ship production-grade software is in giving them feedback loops short enough and sharp enough that they can self-correct before they go off the rails.</p><p>What does that look like in practice? Type systems the agent has to satisfy before tests even run. Test suites that run in seconds, not minutes. Linters that fail loudly on the patterns the agent is prone to. Schemas that make malformed data impossible to commit. Observability that lets the agent read what its own code did in production. The shape of the codebase changes when its primary author is a machine that can&#8217;t yet tell good from bad without help.</p><p>This is the part of agentic engineering that looks most like traditional software architecture, and it&#8217;s the part most teams underinvest in. They focus on the model and the prompt. They neglect the question of how the agent knows when it&#8217;s wrong. Then they wonder why their agent-written code passes review but breaks in production.</p><p>A useful working rule: if your test suite takes ten minutes to run, your agent is flying blind. Get it under sixty seconds or accept that the agent will produce code that compiles, passes review, and silently breaks.</p><h3>3. Steering the agent through the work without micromanaging the code</h3><p>The third practice is the hardest to teach because it looks, from the outside, like doing nothing.</p><p>An engineer steering an agent well spends most of their time reading. Reading the agent&#8217;s plan before it executes. Reading its commit messages. Reading the diff. Catching the moment the agent went off the road two steps ago, before it builds the next ten steps on a wrong foundation. The steering happens in interruptions. Stop, you&#8217;re solving the wrong problem. Or: stop, the idea is right, but use the existing service instead of writing a new one.</p><p>This is the skill that separates engineers who get production-grade output from agents and engineers who don&#8217;t. It&#8217;s a taste-level skill, not a syntax-level one. The engineer doesn&#8217;t need to remember the API. The agent has the API. The engineer needs to recognize, in two lines of code, whether the agent has understood the problem or is improvising plausibly around it.</p><p>There&#8217;s a corollary worth pulling out, because it changes how teams should hire: the engineers best at this are not the ones who can type the fastest. They&#8217;re the ones who&#8217;ve spent ten years reading other people&#8217;s code and developing an instinct for when something is subtly wrong. Code review used to be a tax. It&#8217;s now the job.</p><h3>4. Owning everything that ships, including what the agent got subtly wrong</h3><p>The last practice is the one most teams haven&#8217;t internalized, and it&#8217;s the one that turns agentic engineering into a discipline rather than a workflow.</p><p>If an agent writes the code, who&#8217;s responsible when it breaks?</p><p>The engineer is. Always. Every time. There is no version of agentic engineering where the answer is &#8220;the model did it.&#8221; The engineer set the spec. The engineer accepted the diff. The engineer&#8217;s name is on the commit. When the billing system charges customers twice on the first of the month, no court and no customer cares whether the bug was in the engineer&#8217;s spec, the agent&#8217;s interpretation, or the model&#8217;s training data.</p><p>This is not a complaint about the technology. It&#8217;s a structural property of how accountability works. The model is not a legal person. It cannot be sued, fired, or asked to explain itself under oath. Responsibility flows to the human who decided what to ship. It always has and it always will.</p><p>The implication is that agentic engineering, done well, is a more demanding discipline than what came before, not a less demanding one. The engineer is now responsible for a much larger volume of code produced at a much faster rate, with the same standard of correctness applied at the end. The model speeds up the production. It does not change the quality bar. If anything, it raises it, because the team next door is shipping at the same speed.</p><p>The engineer&#8217;s job is no longer &#8220;wrote the code.&#8221; It&#8217;s &#8220;owns the system.&#8221; The latter is harder.</p><h2>What it isn&#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_!aCcu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa70e022a-c56c-47d9-9ac6-bbca115e1df4_1280x720.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aCcu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa70e022a-c56c-47d9-9ac6-bbca115e1df4_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!aCcu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa70e022a-c56c-47d9-9ac6-bbca115e1df4_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!aCcu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa70e022a-c56c-47d9-9ac6-bbca115e1df4_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!aCcu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa70e022a-c56c-47d9-9ac6-bbca115e1df4_1280x720.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aCcu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa70e022a-c56c-47d9-9ac6-bbca115e1df4_1280x720.jpeg" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a70e022a-c56c-47d9-9ac6-bbca115e1df4_1280x720.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:71275,&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://intentlayer.to/i/201189595?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa70e022a-c56c-47d9-9ac6-bbca115e1df4_1280x720.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_!aCcu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa70e022a-c56c-47d9-9ac6-bbca115e1df4_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!aCcu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa70e022a-c56c-47d9-9ac6-bbca115e1df4_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!aCcu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa70e022a-c56c-47d9-9ac6-bbca115e1df4_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!aCcu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa70e022a-c56c-47d9-9ac6-bbca115e1df4_1280x720.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>A definition gets sharper when you say what it excludes.</p><p>Agentic engineering is not AI-pair programming. Pair programming assumes a peer relationship; the agent isn&#8217;t a peer, it&#8217;s a tool with high variance. Treating it like a peer (&#8221;let me hear your opinion on the design&#8221;) misallocates the relationship. The agent doesn&#8217;t have opinions. It has distributions over completions. The engineer&#8217;s job is to know which distribution to draw from and when to override it.</p><p>It is not vibe coding. Vibe coding is describing what you want and shipping what comes back without reading it. That&#8217;s fine for a weekend toy. It&#8217;s malpractice for a system that handles money or health data or anything else where being wrong has consequences. The discipline of agentic engineering is exactly the discipline of reading what comes back, and the people who skip that step aren&#8217;t doing agentic engineering. They&#8217;re gambling.</p><p>It is not prompt engineering. Prompt engineering is a tactic inside the practice. Calling agentic engineering &#8220;prompt engineering&#8221; is like calling software engineering &#8220;typing.&#8221;</p><p>And it is not, despite a lot of recent press to the contrary, something only large research teams or model labs can do. The agents are commodities now. The discipline of using them well is open to anyone willing to learn it. That openness is the most interesting thing about this moment.</p><h2>What used to matter, and what matters now</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DupS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe604fee9-ce77-41a6-ad66-4acbaea4bac6_1280x720.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DupS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe604fee9-ce77-41a6-ad66-4acbaea4bac6_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!DupS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe604fee9-ce77-41a6-ad66-4acbaea4bac6_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!DupS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe604fee9-ce77-41a6-ad66-4acbaea4bac6_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!DupS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe604fee9-ce77-41a6-ad66-4acbaea4bac6_1280x720.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DupS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe604fee9-ce77-41a6-ad66-4acbaea4bac6_1280x720.jpeg" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e604fee9-ce77-41a6-ad66-4acbaea4bac6_1280x720.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:77626,&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://intentlayer.to/i/201189595?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe604fee9-ce77-41a6-ad66-4acbaea4bac6_1280x720.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_!DupS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe604fee9-ce77-41a6-ad66-4acbaea4bac6_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!DupS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe604fee9-ce77-41a6-ad66-4acbaea4bac6_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!DupS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe604fee9-ce77-41a6-ad66-4acbaea4bac6_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!DupS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe604fee9-ce77-41a6-ad66-4acbaea4bac6_1280x720.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>For most of software&#8217;s history, the engineer&#8217;s edge came from being able to produce code other people couldn&#8217;t. Knowing the language deeply. Knowing the library. Knowing the trick. The engineer&#8217;s career was built on a stockpile of implementation knowledge that other people didn&#8217;t have.</p><p>That stockpile is worth less now. The model has the library in its head. It has the trick. It can produce in three seconds a working implementation of something it would have taken a senior engineer three hours to write a year ago.</p><p>What&#8217;s worth more is the part the engineer carries that the model can&#8217;t fake.</p><p>Knowing what to build. The model can write the code for a feature; it can&#8217;t tell you the feature is the wrong feature for the product to ship this quarter. Product judgment was always part of engineering. It&#8217;s now the larger part.</p><p>Knowing what good looks like in this codebase. The model has seen ten million codebases. It hasn&#8217;t seen yours. It doesn&#8217;t know which patterns this team uses, which it&#8217;s tried and abandoned, which conventions are load-bearing because of an outage six months ago. The engineer who carries the institutional memory of a system steers an agent in that system better than any engineer who doesn&#8217;t.</p><p>Knowing when to stop. The model will keep building. It will write tests, refactor structures, add features, until the budget runs out. The engineer is the one who says: this is enough; ship it; the next thing is more important. Saying &#8220;enough&#8221; was always part of engineering. It&#8217;s now decisive.</p><p>The shorthand: we used to optimize the code. We now optimize the intent, and let the code follow.</p><h2>Why this needs to be a discipline, not a workflow</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YZ6t!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac486dda-aec4-411d-a34a-df8cf6030704_1280x720.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YZ6t!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac486dda-aec4-411d-a34a-df8cf6030704_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!YZ6t!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac486dda-aec4-411d-a34a-df8cf6030704_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!YZ6t!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac486dda-aec4-411d-a34a-df8cf6030704_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!YZ6t!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac486dda-aec4-411d-a34a-df8cf6030704_1280x720.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YZ6t!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac486dda-aec4-411d-a34a-df8cf6030704_1280x720.jpeg" width="1280" height="720" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ac486dda-aec4-411d-a34a-df8cf6030704_1280x720.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:720,&quot;width&quot;:1280,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:105990,&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://intentlayer.to/i/201189595?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac486dda-aec4-411d-a34a-df8cf6030704_1280x720.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_!YZ6t!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac486dda-aec4-411d-a34a-df8cf6030704_1280x720.jpeg 424w, https://substackcdn.com/image/fetch/$s_!YZ6t!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac486dda-aec4-411d-a34a-df8cf6030704_1280x720.jpeg 848w, https://substackcdn.com/image/fetch/$s_!YZ6t!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac486dda-aec4-411d-a34a-df8cf6030704_1280x720.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!YZ6t!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac486dda-aec4-411d-a34a-df8cf6030704_1280x720.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>I&#8217;ll close on the part of the argument I most want to fix in place because it determines what we build next.</p><p>A workflow is something you adopt. A discipline is something you train for. A workflow has tips and tricks. A discipline has a body of knowledge, a set of failure modes the field has learned to anticipate, and standards that distinguish a practitioner from someone who&#8217;s winging it.</p><p>Presently, agentic engineering looks like a workflow. Every team is figuring it out independently. The patterns that work are being rediscovered in different shapes inside every company. Failure modes recur (agents fabricate API calls; agents delete files they shouldn&#8217;t have touched) and the lessons get written up in private Slacks and then forgotten because nobody owns the body of knowledge.</p><p>That doesn&#8217;t last. It can&#8217;t. The economic gravity is too large. Every team in production software in 2026 is doing some version of this, and the gap between teams that do it well and teams that don&#8217;t is going to widen quickly. When the gap is wide enough, the discipline coalesces. People will start calling themselves agentic engineers the way they started calling themselves machine learning engineers in the 2010s, or site reliability engineers a decade before that. There will be conferences and benchmarks, and a canon of mistakes practitioners are expected to have read about so they don&#8217;t repeat them in production.</p><p>We can let that happen passively over the next five years, or we can name the discipline now and start writing down what we&#8217;ve learned. That&#8217;s the bet I&#8217;m taking with The Intent Layer and with the Center for Agentic Engineering. The bet is that the field is ready for the vocabulary, and the people writing the vocabulary will shape what the field becomes.</p><p>So here&#8217;s the definition again, and it&#8217;s the definition I&#8217;d like to see cited:</p><blockquote><p><strong>Agentic engineering</strong> is the practice of producing reliable software by directing AI agents through specification, implementation, review, testing, deployment, and maintenance, while retaining human ownership of intent, architecture, and correctness.</p></blockquote><p>The four practices: specify intent the agent can act on; architect systems the agent can verify itself against; steer the agent through the work without micromanaging the code; own everything that ships.</p><p>If you&#8217;re already doing this, you have a name for it now. If you&#8217;re not, you have a target to train for.</p><p>The next decade of software gets built by the people who take it seriously.</p>]]></content:encoded></item></channel></rss>