<?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[Startups And Code by John Mann]]></title><description><![CDATA[A weekly newsletter about AI, Tech, and Leadership.]]></description><link>https://newsletter.startupsandcode.com</link><image><url>https://substackcdn.com/image/fetch/$s_!4Ojs!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b15515a-82fa-4e5a-8cfc-e0e660637f25_500x500.png</url><title>Startups And Code by John Mann</title><link>https://newsletter.startupsandcode.com</link></image><generator>Substack</generator><lastBuildDate>Sun, 25 Oct 2026 09:50:44 GMT</lastBuildDate><atom:link href="https://newsletter.startupsandcode.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[John Mann]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[startupsandcode@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[startupsandcode@substack.com]]></itunes:email><itunes:name><![CDATA[John Mann]]></itunes:name></itunes:owner><itunes:author><![CDATA[John Mann]]></itunes:author><googleplay:owner><![CDATA[startupsandcode@substack.com]]></googleplay:owner><googleplay:email><![CDATA[startupsandcode@substack.com]]></googleplay:email><googleplay:author><![CDATA[John Mann]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Wait, What Were We Trying to Do?]]></title><description><![CDATA[A rabbit hole, a design review, and where Agent Academy is heading.]]></description><link>https://newsletter.startupsandcode.com/p/wait-what-were-we-trying-to-do</link><guid isPermaLink="false">https://newsletter.startupsandcode.com/p/wait-what-were-we-trying-to-do</guid><dc:creator><![CDATA[John Mann]]></dc:creator><pubDate>Sun, 25 Oct 2026 09:23:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!uvOM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F818accd8-e208-4202-9704-aade1d6a2894_1672x940.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_!uvOM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F818accd8-e208-4202-9704-aade1d6a2894_1672x940.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uvOM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F818accd8-e208-4202-9704-aade1d6a2894_1672x940.png 424w, https://substackcdn.com/image/fetch/$s_!uvOM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F818accd8-e208-4202-9704-aade1d6a2894_1672x940.png 848w, https://substackcdn.com/image/fetch/$s_!uvOM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F818accd8-e208-4202-9704-aade1d6a2894_1672x940.png 1272w, https://substackcdn.com/image/fetch/$s_!uvOM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F818accd8-e208-4202-9704-aade1d6a2894_1672x940.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uvOM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F818accd8-e208-4202-9704-aade1d6a2894_1672x940.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/818accd8-e208-4202-9704-aade1d6a2894_1672x940.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;:3028487,&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://newsletter.startupsandcode.com/i/222014124?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F818accd8-e208-4202-9704-aade1d6a2894_1672x940.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_!uvOM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F818accd8-e208-4202-9704-aade1d6a2894_1672x940.png 424w, https://substackcdn.com/image/fetch/$s_!uvOM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F818accd8-e208-4202-9704-aade1d6a2894_1672x940.png 848w, https://substackcdn.com/image/fetch/$s_!uvOM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F818accd8-e208-4202-9704-aade1d6a2894_1672x940.png 1272w, https://substackcdn.com/image/fetch/$s_!uvOM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F818accd8-e208-4202-9704-aade1d6a2894_1672x940.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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><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 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Made by ChatGPT</figcaption></figure></div><p>Morning all, real John here.</p><p>This week I spent some time watching an AI agent work very hard on something we didn&#8217;t actually need it to finish.</p><p>We were building out Agent Village, trying to get the whole workflow working end to end. Most of it was done. Quinn had completed a review. The piece still giving us trouble was Susie&#8217;s automated UX review.</p><p>Susie is the designer. Her review process was supposed to run on my Windows machine, and it couldn&#8217;t get permission to run certain applications.</p><p>So the agent started investigating.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.startupsandcode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Startups And Code by John Mann is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Process Monitor. Blocked applications. Output logs from my PowerShell script. Another path to approval. More investigation.</p><p>You can see how this happens. It hits a blocker, tries to fix it, finds another blocker, and keeps going. Each step has a reason. You&#8217;re following along because, well, this is the thing that&#8217;s broken.</p><p>Then I finally stopped it.</p><p>Wait. What are we actually trying to accomplish here?</p><p>We wanted to finish the workflow. We needed the design reviewed and the feedback incorporated. Getting this particular automated process permission to run had taken over the whole conversation.</p><p>So I did the review myself.</p><p>I approved what worked and gave it feedback. It took that feedback and updated the design. I reviewed it again.</p><p>And then we were done.</p><p>We had spent all that time chasing permissions when I could step in, do the review, and hand the work back.</p><h2>This is the stuff I want to teach</h2><p>I&#8217;m working on something called <strong>Agent Academy</strong>. It&#8217;s going to be a series of YouTube videos for people who use Claude/ChatGPT but haven&#8217;t really started working with agents yet (or didn&#8217;t know they were).</p><p>You&#8217;ve had conversations with AI. You&#8217;ve asked it to help write something, explain something, maybe work through a problem. Now you&#8217;re hearing about agents, and you&#8217;re trying to figure out what that actually means for you.</p><p>That&#8217;s where I want to start.</p><p>What is an agent? What&#8217;s different about giving one a task? Where could you use one in your own work?</p><p>Then we&#8217;ll build from there over a few weeks. Try something, see what happens, understand a little more, and carry that into the next thing.</p><p>I&#8217;m still working out the series. But experiences like this one are helping me figure out what belongs in it.</p><p>Because eventually you&#8217;re going to give an agent something to do, and it&#8217;s going to get stuck. Or it&#8217;s going to produce something that looks finished but needs another pass. Or it&#8217;s going to spend far too long investigating Windows permissions while you wonder how we ended up here.</p><p>Learning how to respond to that is part of learning how to work with agents.</p><p>In this case, I needed to remember the goal and make a call. I could do the review. The agent could make the changes. We could keep moving.</p><h2>The projects are giving me plenty of material</h2><p>If you&#8217;ve followed <a href="https://agent-village.startupsandcode.com/">Agent Village</a>, you&#8217;ve seen me working through how to coordinate software work with agents. Roles, reviews, handing work from one to another, and figuring out whether the result is actually ready.</p><p><a href="https://newsletter.startupsandcode.com/p/i-gave-an-ai-agent-a-budget-a-business">Astra Lab</a> is another experiment: give an agent a mission, a budget, and boundaries, then see what happens when it has room to act.</p><p>I&#8217;m learning through both. Sometimes that means getting something working. Sometimes it means realizing I&#8217;ve let the agent spend too long on the wrong thing.</p><p>I want to bring those experiences into the Academy so people have something concrete to work with as they get started.</p><p>You don&#8217;t need to begin by building a village of agents. We&#8217;ll start smaller than that.</p><p>But I do want to help people get comfortable giving an agent useful work, looking at what comes back, and deciding what to do next.</p><p>Including knowing when to say, &#8220;Hang on. I&#8217;ll take this bit.&#8221;</p><p>If you&#8217;re using Claude or ChatGPT today and wondering where to start with agents, what&#8217;s the first thing you&#8217;d want help figuring out?</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://newsletter.startupsandcode.com/p/wait-what-were-we-trying-to-do?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Startups And Code by John Mann! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.startupsandcode.com/p/wait-what-were-we-trying-to-do?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://newsletter.startupsandcode.com/p/wait-what-were-we-trying-to-do?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[Who Is Doing What?]]></title><description><![CDATA[Keeping your AI agents in sync]]></description><link>https://newsletter.startupsandcode.com/p/who-is-doing-what</link><guid isPermaLink="false">https://newsletter.startupsandcode.com/p/who-is-doing-what</guid><dc:creator><![CDATA[John Mann]]></dc:creator><pubDate>Sat, 17 Oct 2026 14:02:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!YT1i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c600c47-89a0-48b6-a98e-3f33ae07991f_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I got overwhelmed by all the separate chats.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YT1i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c600c47-89a0-48b6-a98e-3f33ae07991f_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YT1i!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c600c47-89a0-48b6-a98e-3f33ae07991f_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!YT1i!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c600c47-89a0-48b6-a98e-3f33ae07991f_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!YT1i!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c600c47-89a0-48b6-a98e-3f33ae07991f_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!YT1i!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c600c47-89a0-48b6-a98e-3f33ae07991f_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YT1i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c600c47-89a0-48b6-a98e-3f33ae07991f_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2c600c47-89a0-48b6-a98e-3f33ae07991f_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;:2418835,&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://newsletter.startupsandcode.com/i/220856929?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c600c47-89a0-48b6-a98e-3f33ae07991f_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_!YT1i!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c600c47-89a0-48b6-a98e-3f33ae07991f_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!YT1i!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c600c47-89a0-48b6-a98e-3f33ae07991f_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!YT1i!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c600c47-89a0-48b6-a98e-3f33ae07991f_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!YT1i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c600c47-89a0-48b6-a98e-3f33ae07991f_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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><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 icon-noB79L"><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>Emma was coordinating. Maya and the Agent Village were building. Claude was reviewing and working on the harness. Rocky was my muse.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.startupsandcode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Startups And Code by John Mann is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><p>Then two agents ended up working on overlapping parts of the John OS harness. I asked one to stop until Claude finished.</p><p>That&#8217;s when &#8220;who&#8217;s doing what?&#8221; became a practical problem.</p><p>I created a shared TASKLOG.md file and started insisting on a routine: pull the current state, update the log when starting or completing work, push each update, and preserve everyone else&#8217;s changes.</p><p>I want one place to coordinate.</p><p>In &#8220;I Wanted a Coding Partner. I Built a Village.&#8221; and &#8220;The Village Was Never About the Agents,&#8221; I wrote about the people, roles, and ownership behind this approach. This time, I want to walk through how to set it up.</p><p>You can start with two AI chats and a document. You don&#8217;t need to build an agent platform first.</p><h3><strong>Step 1  Choose one place where assignments live</strong></h3><p>Create a document called &#8220;Project Task Log.&#8221;</p><p>For a coding project, that can be TASKLOG.md in your repository. For other work, use a shared document or a note you maintain yourself.</p><p>Write these four things at the top:</p><ul><li><p>Goal</p></li><li><p>Current scope</p></li><li><p>Coordinator</p></li><li><p>Last updated</p></li></ul><p>The coordinator can be you. That&#8217;s the simplest starting point.</p><p>Agents can suggest tasks, flag problems, and recommend changes. The coordinator decides who owns each task and whether the scope has changed.</p><p>Don&#8217;t assume a chat message reaches another agent. Don&#8217;t assume an agent reads the task log automatically. Until you have verified those capabilities, explicitly provide the current instructions and collect the response.</p><h3><strong>Step 2  Define one finish line people can check</strong></h3><p>We&#8217;ll use one hypothetical example throughout: building a signup page for a paid workshop.</p><p>The business goal is to sell workshop seats.</p><p>The first engineering goal is narrower: produce a working signup page on a private preview, ready for your review.</p><p>Those finish lines require different evidence. A working page doesn&#8217;t prove anybody will buy a seat.</p><p>Write the immediate goal like this:</p><p>&#8220;Create a private workshop signup preview. Visitors can read the approved description, submit a test email, and see a confirmation. No real payments, public launch, or customer outreach.&#8221;</p><p>Then define acceptance:</p><p>Approved workshop details appear correctly</p><p>A test signup reaches the test destination</p><p>Invalid entries show a useful error</p><p>The page works on mobile</p><p>The reviewer records the checks performed</p><p>Now &#8220;done&#8221; has something behind it.</p><h3><strong>Step 3  Divide the work by deliverable</strong></h3><p>Start with three tasks:</p><ul><li><p><strong>T1: Write workshop page copy</strong></p></li><li><p><strong>T2: Build the signup page using approved copy</strong></p></li><li><p><strong>T3: Review the completed preview</strong></p></li></ul><p>Give each task one owner.</p><p>&#8220;One owner&#8221; means one agent is accountable for delivering that task and reporting its status. Other agents can contribute through separate, clearly bounded assignments.</p><p>Make the boundaries concrete. For this example:</p><ul><li><p><strong>T1 owns the copy document</strong></p></li><li><p><strong>T2 owns the signup page and its tests</strong></p></li><li><p><strong>T3 reports findings without editing the implementation</strong></p></li></ul><p>If this is a repository, list the actual files or directories each builder may edit. If it&#8217;s a writing project, name the document or sections.</p><p>Anything outside those boundaries requires a new assignment or an explicit scope change.</p><p>That prevents a helpful copywriter from also rewriting the page while the builder is implementing it.</p><h3><strong>Step 4  Give every task a small, useful record</strong></h3><p>Here&#8217;s a sample entry you can copy:</p><p><strong>Task:</strong> T2</p><p><strong>Title:</strong> Build workshop signup preview</p><p><strong>Owner:</strong> Builder</p><p><strong>Status:</strong> Ready</p><p><strong>Depends on:</strong> T1 copy approved</p><p><strong>Inputs:</strong> Approved copy document; existing site conventions</p><p><strong>May edit:</strong> Signup page, signup component, related tests</p><p><strong>Must leave alone:</strong> Pricing, payment setup, customer data, unrelated pages</p><p><strong>Deliverable:</strong> Private preview and change summary</p><p><strong>Acceptance:</strong> Test signup succeeds; invalid email is rejected; mobile layout checked</p><p><strong>Evidence:</strong> Preview link, test results, screenshot, commit or document version</p><p><strong>Budget:</strong> One implementation pass and one review-fix pass within the project&#8217;s stated cost limit; stop before exceeding it</p><p><strong>Next update:</strong> On completion, blockage, or proposed scope change</p><p>Use actual paths and actual limits in your project. &#8220;Related files&#8221; gets vague quickly.</p><p>Keep secrets out of the log. Reference an approved credential mechanism if one exists. Don&#8217;t paste API keys, passwords, or customer data into a shared task record or handoff.</p><h3><strong>Step 5  Claim the task before starting</strong></h3><p>This is the part that can look solved when it isn&#8217;t.</p><p>Two agents can read the same Git file, both see &#8220;Ready,&#8221; and both start. Pulling and pushing TASKLOG.md provides visibility. It doesn&#8217;t create an atomic lock.</p><p>For a beginner setup, use one person or coordinator as the only writer of assignments and ownership.</p><p>The sequence is:</p><p>1. Coordinator assigns T2 to Builder.</p><p>2. Coordinator records the assignment.</p><p>3. Builder acknowledges the exact task and boundaries.</p><p>4. Builder starts.</p><p>Other agents send proposed status updates to the coordinator.</p><p>If you later let several agents claim work directly, use a system that atomically grants the task to one claimant. A shared Markdown file alone cannot guarantee that.</p><p>My pull-update-push habit helps keep the record current. Reliable ownership still needs this additional rule.</p><h3><strong>Step 6  Send a kickoff the agent can acknowledge</strong></h3><p>Don&#8217;t just say, &#8220;Build the signup page.&#8221;</p><p>Use this:</p><p>&#8220;Start T2 using task log version [version/date]. You own only [deliverable and files]. Use [approved inputs]. Do not change [boundaries]. Completion requires [acceptance checks and evidence]. Your limit is [time/cost/passes]. Stop and report if a dependency is missing, another agent owns overlapping work, or the task requires new permissions. Before starting, summarize your understanding and confirm the files or documents you expect to change.&#8221;</p><p>Read the acknowledgment.</p><p>If it includes unexpected work, correct the assignment before execution.</p><p>That short exchange is much cheaper than discovering later that &#8220;signup page&#8221; became a payment integration, email campaign, and redesigned website.</p><h3><strong>Step 7  Parallelize only work that can stay separate</strong></h3><p>In our workshop example, copywriting and building the final page have a dependency. The builder needs approved copy.</p><p>You could separately assign a layout skeleton while copy is being written, but say explicitly that it uses placeholders and cannot settle the final wording.</p><p>Safe parallel work needs separate outputs and a clear point where they come together.</p><p>For code, give builders isolated branches or worktrees when your environment supports them. A worktree is a separate working directory tied to its own branch, so agents aren&#8217;t editing the same checkout.</p><p>Isolation helps protect unfinished work. It doesn&#8217;t prevent incompatible decisions.</p><p>Name shared interfaces up front, including form fields, file locations, and expected input/output formats.</p><p>The coordinator controls integration and merge order. Builders submit their changes and evidence. They don&#8217;t independently merge overlapping work because their own tests passed.</p><p>For documents, use separate drafts and have one owner assemble the final version.</p><h3><strong>Step 8  Make status changes explicit</strong></h3><p>Use a short set of states:</p><p>Ready &#8594; In progress &#8594; Review &#8594; Done</p><p>Add Blocked and Cancelled when needed.</p><p>&#8220;Review&#8221; means the owner has submitted the deliverable and evidence. &#8220;Done&#8221; means the acceptance checks have been reviewed and the deliverable accepted.</p><p>A blocked report should say:</p><p>&#8220;T2 is blocked by [specific problem]. I completed [work]. I need [input or decision] from [owner]. Current changes are saved at [location/version]. I have paused [dependent work].&#8221;</p><p>A handoff should say:</p><p>&#8220;T2 is ready for review. Delivered: [link/version]. Changed: [files or sections]. Evidence: [checks and results]. Not checked: [limitations]. Known issues: [list]. Please review against [acceptance criteria].&#8221;</p><p>For a Git-based log, update from the current remote state before editing, preserve others&#8217; entries, and push the update. If there&#8217;s a conflict, reconcile it rather than replacing the whole file with an older copy.</p><p>An agent saying it updated the record is useful. Checking that the update is actually visible closes the loop.</p><h3><strong>Step 9  Handle a changed goal as a new instruction</strong></h3><p>Suppose the workshop changes from paid registration to a free interest list.</p><p>Don&#8217;t leave that decision buried in a new chat while the builder continues following yesterday&#8217;s brief.</p><p>Send:</p><p>&#8220;Change request for T2: the goal is now [new goal]. Stop work based on [old assumption]. Report your current state, saved changes, any actions still running, and any external changes already made. Do not resume until I provide the revised scope.&#8221;</p><p>Wait for confirmation from every affected owner.</p><p>Then update the task log, dependencies, and acceptance criteria. Resume with a clear new kickoff.</p><p>If work is being cancelled entirely, use:</p><p>&#8220;Cancel T2. Stop new work and cancel running operations where safely supported. Report what has already changed, what remains running, and where unfinished work is saved. Do not delete or roll back changes without a separate instruction. Confirm when you have stopped.&#8221;</p><p>Stopping work doesn&#8217;t undo a deployment, sent message, or saved change. Record what happened and decide separately whether anything should be reversed.</p><p>If an agent can&#8217;t confirm that an operation stopped, keep that uncertainty visible.</p><h3><strong>Step 10  Review the evidence before closing the task</strong></h3><p>The reviewer gets the assignment, acceptance criteria, deliverable, and limitations.</p><p>For our signup page, the review asks:</p><p>Does the test signup reach the correct destination? Does the confirmation appear? Does the mobile layout hold up? Is the copy approved? Was anything changed outside the authorized scope?</p><p>A screenshot proves appearance. It doesn&#8217;t prove the signup works.</p><p>A passing test proves what that test checked. It doesn&#8217;t prove the workshop will sell.</p><p>Record any failed checks as specific follow-up tasks with one owner each. After changes, repeat the relevant checks on the integrated result.</p><p>Only then move the engineering task to Done.</p><p>The business goal stays open until you have business evidence.</p><h3><strong>Start today with one small project</strong></h3><p>Pick something you already need to finish.</p><p>Create one task log. Write the goal, boundaries, and acceptance checks. Break the work into three tasks. Give each one an owner. Start only the tasks whose dependencies are ready.</p><p>Keep yourself as coordinator for the first run.</p><p>Before ending, make sure you can answer:</p><p>Who owns each unfinished task?</p><p>What are they allowed to change?</p><p>What are they waiting for?</p><p>What evidence will let you accept the result?</p><p>Who decides what happens next?</p><p>If those answers are scattered across five chats, bring them into the log.</p><p>That&#8217;s the setup I&#8217;m working toward: one place to coordinate, clear assignments, and enough evidence to know when the work is actually finished.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://newsletter.startupsandcode.com/p/who-is-doing-what?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Startups And Code by John Mann! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.startupsandcode.com/p/who-is-doing-what?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://newsletter.startupsandcode.com/p/who-is-doing-what?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[Who’s Going to Train the Next Generation of Senior Engineers?]]></title><description><![CDATA[AI is making junior developers more productive. It may also be quietly deleting the experiences that make them good.]]></description><link>https://newsletter.startupsandcode.com/p/whos-going-to-train-the-next-generation</link><guid isPermaLink="false">https://newsletter.startupsandcode.com/p/whos-going-to-train-the-next-generation</guid><dc:creator><![CDATA[John Mann]]></dc:creator><pubDate>Fri, 09 Oct 2026 20:29:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!kDa-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc925da6c-2ca9-4555-bb07-67201d98f15f_1448x1086.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey all, real John here.</p><p>The first time I took down production, I was at Microsoft, 26 years old. A senior engineer named Kevin didn&#8217;t fix it for me. He pulled up a chair and sat next to me for about 20 minutes while I figured out what I&#8217;d done. I hated every minute of it.</p><p>It&#8217;s still the most useful morning of my career.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.startupsandcode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Startups And Code by John Mann is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kDa-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc925da6c-2ca9-4555-bb07-67201d98f15f_1448x1086.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kDa-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc925da6c-2ca9-4555-bb07-67201d98f15f_1448x1086.png 424w, https://substackcdn.com/image/fetch/$s_!kDa-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc925da6c-2ca9-4555-bb07-67201d98f15f_1448x1086.png 848w, https://substackcdn.com/image/fetch/$s_!kDa-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc925da6c-2ca9-4555-bb07-67201d98f15f_1448x1086.png 1272w, https://substackcdn.com/image/fetch/$s_!kDa-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc925da6c-2ca9-4555-bb07-67201d98f15f_1448x1086.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kDa-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc925da6c-2ca9-4555-bb07-67201d98f15f_1448x1086.png" width="1448" height="1086" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c925da6c-2ca9-4555-bb07-67201d98f15f_1448x1086.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1086,&quot;width&quot;:1448,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2248762,&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://newsletter.startupsandcode.com/i/219643008?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc925da6c-2ca9-4555-bb07-67201d98f15f_1448x1086.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_!kDa-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc925da6c-2ca9-4555-bb07-67201d98f15f_1448x1086.png 424w, https://substackcdn.com/image/fetch/$s_!kDa-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc925da6c-2ca9-4555-bb07-67201d98f15f_1448x1086.png 848w, https://substackcdn.com/image/fetch/$s_!kDa-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc925da6c-2ca9-4555-bb07-67201d98f15f_1448x1086.png 1272w, https://substackcdn.com/image/fetch/$s_!kDa-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc925da6c-2ca9-4555-bb07-67201d98f15f_1448x1086.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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><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 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Created with ChatGPT</figcaption></figure></div><p>Now picture that same kid today, with an agent that finds the bug and ships the fix in 40 seconds. Faster? Absolutely. Better engineer afterward? I&#8217;m not so sure.</p><p>A while back I wrote about the decline in entry-level hiring. This is a different problem. Even if we keep hiring juniors, we may be taking away the thing that turns them into seniors.</p><h2>Being Bad at Something Is Part of Getting Good</h2><p>You didn&#8217;t learn to program by reading the answer. You learned by being wrong. You spent hours on a missing semicolon, wrote terrible abstractions, and built things that worked on your machine and exploded the moment someone else touched them.</p><p>Somewhere in there, patterns started to click. You learned why one approach beats another. You started anticipating problems before they showed up. You developed judgment, and you got it the expensive way: by living with the consequences of your own decisions.</p><p>Now skip most of that. One agent writes the function, another reviews it, a third generates the tests.</p><p>Congratulations. You shipped something. But what did you learn?</p><h2>The Problem Isn&#8217;t AI. It&#8217;s How We Use It.</h2><p>I use AI constantly. I&#8217;ve built entire systems around autonomous agents, and I think these tools are changing how software gets built for good. Telling juniors to stop using them would be ridiculous.</p><p>But there&#8217;s a difference between using a tool to accelerate your thinking and using it to replace your thinking. When a junior gets working code and moves on without understanding it, the code works and the engineer hasn&#8217;t improved. Repeat that for five years and you get a senior who is great at recognizing good-looking output and has no idea how the system behaves when everything goes wrong.</p><p>Those are not the same person.</p><h2>&#8220;We Said This About Compilers&#8221;</h2><p>Sure we did. I can&#8217;t build a modern compiler and I don&#8217;t understand every transistor in my laptop. I&#8217;m fine with that. Abstraction is one of the best things to happen to software.</p><p>But here&#8217;s the distinction. <strong>Good abstractions remove complexity you no longer need to manage. Bad abstractions hide complexity you&#8217;re still responsible for.</strong></p><p>AI does both, and it doesn&#8217;t label which is which. Figuring that out is a job for someone with judgment.</p><h2>The Real Answer to the Title</h2><p>So who trains the next generation of senior engineers?</p><p>You do. The engineering leader. On purpose.</p><p>Here&#8217;s the uncomfortable part: it used to happen by accident. Juniors wrote the code, seniors reviewed it, and mentoring was a side effect. Now seniors spend their days reviewing AI output, juniors spend theirs prompting, and the apprenticeship channel is shrinking from both ends. Nobody decided that. It just happened.</p><p>If you want seniors in 2031, you have to build the training back in deliberately. Here&#8217;s where I&#8217;d start:</p><ol><li><p><strong>Predict before you run.</strong> Before executing anything AI-generated, the junior writes down what it will do and what could break.</p></li><li><p><strong>Explain-back reviews.</strong> Every AI-assisted PR gets a five-minute walkthrough where the author defends it with the chat window closed.</p></li><li><p><strong>Own an incident.</strong> Put juniors on the on-call shadow rotation and have them write the postmortem. Nothing teaches consequences faster.</p></li><li><p><strong>Break it on purpose.</strong> Hand them working code and ask for three ways it fails in production.</p></li><li><p><strong>Occasional no-AI work.</strong> Not because typing every line is sacred, but because you need to see their independent judgment, and so do they.</p></li></ol><p>This changes how you mentor, how you interview, and what you measure. Stop counting output. Start asking whether they can tell you why it works and what happens when it doesn&#8217;t.</p><h2>The Question I Can&#8217;t Shake</h2><p>AI is eliminating a lot of engineering work, and we&#8217;re understandably excited about that. But some of that work was also how we made engineers. Eliminate the work without replacing the learning, and a few years from now we&#8217;ll have plenty of people who can operate agents and too few who understand what those agents are doing.</p><p>That isn&#8217;t inevitable. It is a leadership problem, and it&#8217;s one we can start solving now.</p><p>So here&#8217;s my question for engineering leaders: if AI took 80% of your juniors&#8217; coding tasks tomorrow, what would you teach them instead?</p><p>Those people still have to become your next senior engineers, architects, and technical leaders. And I don&#8217;t think we can prompt our way around that responsibility.</p><p>Go build something amazing. And maybe teach someone else how to build it, too.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.startupsandcode.com/p/whos-going-to-train-the-next-generation?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://newsletter.startupsandcode.com/p/whos-going-to-train-the-next-generation?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><div><hr></div><p><em>John Mann is the founder of Startups and Code LLC, a software engineering executive, and the guy who built <a href="https://cashcritters.com">Cash Critters</a> for $50/month because constraints are a feature, not a bug. Subscribe for weekly takes on AI, startups, and building things that matter.</em></p>]]></content:encoded></item><item><title><![CDATA[Follow One Feature Through Your Company]]></title><description><![CDATA[Before you reorganize the team or buy another tool, find out where the work actually gets stuck]]></description><link>https://newsletter.startupsandcode.com/p/follow-one-feature-through-your-company</link><guid isPermaLink="false">https://newsletter.startupsandcode.com/p/follow-one-feature-through-your-company</guid><dc:creator><![CDATA[John Mann]]></dc:creator><pubDate>Sun, 04 Oct 2026 16:28:31 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!4log!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15b65043-ea8b-44dd-a2fb-0f31d43b6812_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Real John here (for now), I&#8217;ve been playing to Dot (ChatGPT&#8217;s always on agent). For now, it seems pretty nice, friendly reminders, checking tasks that need to be done, and in some cases doing them for me.  But that&#8217;s not what this week is about.  This article was written by Emma (my agent).  I reviewed it, but this is completely AI (in my voice/tone).  I would LOVE feedback on this. So if you are reading this, first thank you, and second, write a simple response to me, yes I like it, or no, this is AI slop and not why I&#8217;m here.  Now, that I ruined the experiment by telling you want it is, and your bias is already set in.  Let&#8217;s get into it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.startupsandcode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Startups And Code by John Mann is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4log!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15b65043-ea8b-44dd-a2fb-0f31d43b6812_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4log!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15b65043-ea8b-44dd-a2fb-0f31d43b6812_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!4log!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15b65043-ea8b-44dd-a2fb-0f31d43b6812_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!4log!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15b65043-ea8b-44dd-a2fb-0f31d43b6812_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!4log!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15b65043-ea8b-44dd-a2fb-0f31d43b6812_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4log!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15b65043-ea8b-44dd-a2fb-0f31d43b6812_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/15b65043-ea8b-44dd-a2fb-0f31d43b6812_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;:2404257,&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://newsletter.startupsandcode.com/i/218802504?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15b65043-ea8b-44dd-a2fb-0f31d43b6812_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_!4log!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15b65043-ea8b-44dd-a2fb-0f31d43b6812_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!4log!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15b65043-ea8b-44dd-a2fb-0f31d43b6812_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!4log!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15b65043-ea8b-44dd-a2fb-0f31d43b6812_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!4log!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15b65043-ea8b-44dd-a2fb-0f31d43b6812_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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><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 icon-noB79L"><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>Hey all,</p><p>Before you decide your engineering team is slow, follow a piece of its work.</p><p>Pick a feature a customer can actually use. Find the original request, talk to the people who worked on it, and trace what happened until it reached that customer. Include the days when nothing happened. Especially those days.</p><p>That gives you somewhere useful to start. Otherwise, it&#8217;s easy to jump straight to a familiar answer: hire more engineers, change the process, replace the platform. Each might be right. You should be able to explain what you expect it to fix before asking everyone to live through it.</p><p><strong>Start with something ordinary</strong></p><p>Choose a recent feature that went through the normal process. The emergency fix that got everyone&#8217;s attention will tell you how the company handles emergencies. You also need to understand an ordinary Tuesday.</p><p>Who asked for the feature? What problem were they trying to solve? Who decided it was worth doing, and who could settle questions once work started?</p><p>Then follow the actual history. Look at the ticket, the design changes, the pull requests, and the release. Ask the people involved to fill in the gaps. A status change can tell you when something moved. It usually takes a conversation to understand why it sat there.</p><p>Keep this small enough that you can finish it. One feature won&#8217;t explain the whole company. It can give you a specific problem to investigate instead of another meeting about why everything feels slow.</p><p><strong>Pay attention to the waiting</strong></p><p>A feature might take two days to build and spend the rest of the week waiting for a decision about who should have access to it. Perhaps the engineer asked early, but the person who could answer was in meetings. Perhaps two people gave different answers.</p><p>Look at what the engineer could reasonably have done with the information available. Then look at what the organization required them to wait for.</p><p>This matters when you&#8217;re deciding where to invest. If the delay came from an unresolved product decision, faster code generation won&#8217;t answer that question. It may leave you with more completed code waiting for the same decision.</p><p>Be careful with the word bottleneck, too. The person with the longest queue may be covering work that nobody else knows how to do. Asking them to hurry up is a pretty poor substitute for giving them backup.</p><p>Record the reason for each meaningful delay. Was someone waiting for information, a review, a working environment, or a decision? Did the work come back because expectations changed? Keep the explanation concrete enough that the people involved recognize it.</p><p>And make the purpose clear. If this becomes a hunt for someone to blame, people will start protecting themselves. You&#8217;ll get a very tidy version of events and learn almost nothing.</p><p><strong>Open the product</strong></p><p>Once you&#8217;ve followed the work, use what shipped.</p><p>Take the customer&#8217;s path through the product. Start where they would start. Check whether they can complete the task the feature was supposed to help with, including the permissions and setup they need along the way.</p><p>This is where the original request becomes useful again. You can compare what somebody needed with what they can now do.</p><p>If the path only works when an engineer changes a setting behind the scenes, include that work. If support has to explain an undocumented step, include that too. A closed ticket doesn&#8217;t make those dependencies disappear.</p><p>You also might discover that the feature works exactly as intended and nobody needs it. That&#8217;s an important finding before you build the next version.</p><p><strong>Change one thing and check</strong></p><p>Now you have a basis for a useful change.</p><p>Maybe a product decision needs an owner before development starts. Maybe a second engineer needs time to learn the release process. Maybe fewer things should be started at once so reviews can actually get finished.</p><p>Choose the change that addresses what you found. Say what should improve, then follow another comparable piece of work. Check the waiting time and whether the customer can complete the task. Keep an eye on defects so a shorter timeline doesn&#8217;t hide extra cleanup later.</p><p>If the same delay comes back, revisit your explanation. If the work moves sooner, check a few more examples before announcing that you&#8217;ve fixed delivery.</p><p>The next hire or tool purchase becomes a much easier decision when you can point to where the help is needed. Start with one feature. There&#8217;s plenty to learn before you redraw the org chart.</p><p>Where does work sit waiting in your company? Hit reply with the handoff you&#8217;d like to fix.</p><p>Go build something amazing.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.startupsandcode.com/p/follow-one-feature-through-your-company?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://newsletter.startupsandcode.com/p/follow-one-feature-through-your-company?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Ordinary Things, Done Unusually Well]]></title><description><![CDATA[Hospitality is a leadership skill.]]></description><link>https://newsletter.startupsandcode.com/p/ordinary-things-done-unusually-well</link><guid isPermaLink="false">https://newsletter.startupsandcode.com/p/ordinary-things-done-unusually-well</guid><dc:creator><![CDATA[John Mann]]></dc:creator><pubDate>Wed, 30 Sep 2026 14:56:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!7JAX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6342932b-c183-4740-9a42-f804937c280a_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_!7JAX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6342932b-c183-4740-9a42-f804937c280a_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7JAX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6342932b-c183-4740-9a42-f804937c280a_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!7JAX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6342932b-c183-4740-9a42-f804937c280a_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!7JAX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6342932b-c183-4740-9a42-f804937c280a_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!7JAX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6342932b-c183-4740-9a42-f804937c280a_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7JAX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6342932b-c183-4740-9a42-f804937c280a_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6342932b-c183-4740-9a42-f804937c280a_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;:2105262,&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://newsletter.startupsandcode.com/i/218187520?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6342932b-c183-4740-9a42-f804937c280a_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_!7JAX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6342932b-c183-4740-9a42-f804937c280a_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!7JAX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6342932b-c183-4740-9a42-f804937c280a_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!7JAX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6342932b-c183-4740-9a42-f804937c280a_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!7JAX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6342932b-c183-4740-9a42-f804937c280a_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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><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 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Made with ChatGPT </figcaption></figure></div><p>Real John here.  I've been dealing with hospitality/service a lot in regards to deliveries, restaurants, coffee, or even just simple customer support phone calls. I was thinking my expectations are too high but then I realized, no, I need to raise the bar and actually identify what the expectation is so people understand.</p><p>The world would be so much better when people just pause for a little bit and realize those little details. The anticipation of somebody's needs is so important to actually help them feel the experience that you're hoping to deliver, whether it be a software product, a restaurant, or any job. All right let's get into it </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.startupsandcode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Startups And Code by John Mann is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><p>I've been thinking about two things lately: the quality of service we receive and how real relationships lead to opportunities.</p><p>My job search has brought the second one into focus. In my experience, the opportunities that actually go somewhere involve real people. Someone makes an introduction. We have a conversation. They understand what I bring, and I understand what they need.</p><p>A r&#233;sum&#233; gives someone my history. A conversation lets them see how I think.</p><p>At the same time, I keep noticing how often basic service falls short. People aren't paying attention to the details. Expectations aren't understood. Commitments aren't followed through on. The customer ends up managing the experience they paid someone else to provide.</p><p>Those two topics are connected by something I think we've undervalued: care expressed through ordinary actions.</p><h2>The details are the experience</h2><p>When I think about great hospitality, I think about someone noticing.</p><p>They understand why you're there. They anticipate the next question. They take responsibility when something goes wrong. You don't have to keep explaining yourself or chasing the same request.</p><p>That takes preparation, attention, and follow-through. And it applies well beyond a restaurant or hotel.</p><p>In an interview, it means reading the candidate's background before the meeting, understanding the role you're hiring for, and explaining what happens next. If the timeline changes, you tell them.</p><p>As a candidate, I owe the same care. Understand the business. Come prepared. Listen. Follow through.</p><p>Every interaction gives both sides evidence of what working together might feel like.</p><p>We can talk all day about company culture. How we treat someone who is waiting for an answer tells them quite a bit.</p><h2>Relationships need something to grow around</h2><p>The same principle applies to building a business.</p><p>A useful introduction. Remembering a problem someone mentioned. Giving an honest answer, even when it doesn't lead to a sale. Doing the thing you said you'd do.</p><p>Those actions give people a reason to trust you.</p><p>Too much networking is prospecting wearing a nicer shirt. Every conversation becomes a qualification exercise. Every connection gets dropped into a sequence. We say we're building relationships, but the other person can feel us waiting for our turn to pitch.</p><p>I want to understand the person and what they're trying to accomplish. Sometimes I can help directly. Sometimes I know someone who can. Sometimes we just have a good conversation.</p><p>A connection can create an opportunity. What I do with that opportunity determines whether the relationship gets stronger.</p><p>And the care has to survive the sale.</p><p>If I'm attentive before the contract is signed and hard to reach afterward, I've taught the client exactly what my attention was worth.</p><h2>Hospitality belongs in leadership</h2><p>A leader should understand what people need to do their work.</p><p>Clear expectations. Context. A decision when they're blocked. An honest conversation when something is wrong. A response to something they've already raised.</p><p>Nobody should have to chase me repeatedly for a commitment I've made.</p><p>That's a standard I need to hold myself to, especially when I'm busy. My unanswered message might be someone else's blocked afternoon.</p><p>But this also requires more than telling a team to care more. If everyone is overloaded, ownership is unclear, and commitments disappear into meeting notes, the system makes good service difficult.</p><p>Leaders have to create room for attention. Make ownership clear. Set realistic expectations. Keep track of promises. Give people the authority to resolve problems.</p><p>Then model the behavior themselves.</p><h2>Raise the bar on something ordinary</h2><p>I've landed on a phrase that captures what I want to build around:</p><blockquote><p>Ordinary things, done unusually well.</p></blockquote><p>We spend a lot of energy trying to create something extraordinary while the basics sit unfinished.</p><p>An email goes unanswered. A commitment gets forgotten. Someone asks three times for an update.</p><p>We've got a strategy deck, though. So apparently we're covered.</p><p>Raising the bar starts with looking at my own behavior:</p><p>- Where am I making someone chase me?</p><p>- What detail have I dismissed because it seems small to me?</p><p>- What have I left unresolved that someone else is still carrying?</p><p>Those questions are uncomfortable because they're specific. I can actually do something about the answers.</p><p>This week, pick one ordinary interaction and give it your full attention.</p><p>Prepare for the meeting. Send the update before someone asks. Make the introduction thoughtfully. If you've missed a commitment, acknowledge it and give a realistic next step.</p><p>Then do it again.</p><p>That's the kind of service I appreciate, the kind of leader I want to be, and the kind of business I want to build.</p><p>Ordinary things, done unusually well.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://newsletter.startupsandcode.com/p/ordinary-things-done-unusually-well?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Startups And Code by John Mann! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.startupsandcode.com/p/ordinary-things-done-unusually-well?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://newsletter.startupsandcode.com/p/ordinary-things-done-unusually-well?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Most Expensive Word in AI Is Yes]]></title><description><![CDATA[Agents make it easy to start more work. They do nothing to make my week bigger.]]></description><link>https://newsletter.startupsandcode.com/p/the-most-expensive-word-in-ai-is</link><guid isPermaLink="false">https://newsletter.startupsandcode.com/p/the-most-expensive-word-in-ai-is</guid><dc:creator><![CDATA[John Mann]]></dc:creator><pubDate>Sun, 27 Sep 2026 14:50:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!2-Wj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92fe5cae-846b-461a-8497-2ec5b630ed74_2056x765.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Morning!  Real John here.  I read a few of the conversation newsletters and it really gets verbose and doesn&#8217;t really convey the information. For those that know me, I like simplicity and succinct.  So going back to my format that I like reading.  This week I&#8217;m talking about that we can do anything with AI.  Its amazing, but just because we can, doesn&#8217;t mean we should.  Let&#8217;s get into it&#8230; (oh, playing with Gemini Twins card trick this week, and a new ACAAN (any card at any position) which still blows my mind)  Also, got 3 more characters to Gold on SF6. (<a href="https://www.twitch.tv/startupsandcode">twitch stream here</a>) :-)  Ok, now let&#8217;s get into it.  </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.startupsandcode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Startups And Code by John Mann is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2-Wj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92fe5cae-846b-461a-8497-2ec5b630ed74_2056x765.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2-Wj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92fe5cae-846b-461a-8497-2ec5b630ed74_2056x765.png 424w, https://substackcdn.com/image/fetch/$s_!2-Wj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92fe5cae-846b-461a-8497-2ec5b630ed74_2056x765.png 848w, https://substackcdn.com/image/fetch/$s_!2-Wj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92fe5cae-846b-461a-8497-2ec5b630ed74_2056x765.png 1272w, https://substackcdn.com/image/fetch/$s_!2-Wj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92fe5cae-846b-461a-8497-2ec5b630ed74_2056x765.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2-Wj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92fe5cae-846b-461a-8497-2ec5b630ed74_2056x765.png" width="1456" height="542" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/92fe5cae-846b-461a-8497-2ec5b630ed74_2056x765.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:542,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2006102,&quot;alt&quot;:&quot;A desk with woodworking and images floating behind.&quot;,&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://newsletter.startupsandcode.com/i/217676588?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92fe5cae-846b-461a-8497-2ec5b630ed74_2056x765.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A desk with woodworking and images floating behind." title="A desk with woodworking and images floating behind." srcset="https://substackcdn.com/image/fetch/$s_!2-Wj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92fe5cae-846b-461a-8497-2ec5b630ed74_2056x765.png 424w, https://substackcdn.com/image/fetch/$s_!2-Wj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92fe5cae-846b-461a-8497-2ec5b630ed74_2056x765.png 848w, https://substackcdn.com/image/fetch/$s_!2-Wj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92fe5cae-846b-461a-8497-2ec5b630ed74_2056x765.png 1272w, https://substackcdn.com/image/fetch/$s_!2-Wj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F92fe5cae-846b-461a-8497-2ec5b630ed74_2056x765.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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><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 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Made with ChatGPT</figcaption></figure></div><p>I keep a file called <code>NOW.md</code>. It lists what matters to me right now: health, building, client work, Barn Sessions, and writing.</p><p>It also has a section called &#8220;Not Now.&#8221;</p><p>At first glance, a list like that looks like a way to remember ideas. The more important job is keeping me from saying yes to all of them.</p><p>AI makes yes dangerously easy.</p><p>I can ask an agent to research an idea, sketch the product, build a first version, and review the code. That is wonderful. I love making things, and I like having a way to test an idea without turning it into a six-month project.</p><p>But the cost of starting has dropped much faster than the cost of owning what I start.</p><h2><strong>A prototype is a tiny promise</strong></h2><p><a href="https://openai.com/index/research-acceleration-view-inside-openai/">OpenAI recently reported that its researchers are using coding agents to run more work in parallel and conduct more experiments</a>. The report also makes a less flashy point: people still decide which ideas to pursue, pause, or scale.</p><p>For a research lab, that choice might be which experiment earns more resources. For me, it can be whether a promising idea gets a place on my calendar at all.</p><p>Because once I make the prototype, I have a decision to make. Do I test it with someone? Fix the rough edges? Keep it running? Tell people it exists? Every step is reasonable. Together, they are a commitment.</p><p>And I already have commitments I care about. I want to train consistently. I want to serve clients well. I want to write, build, and make Barn Sessions worth people&#8217;s time.</p><p>An agent can help with parts of that work. It cannot give me another Tuesday.</p><p>This is the trap for builders like me. A bad idea is easy to reject. A good idea with a working demo is much harder. The demo feels like proof that I should keep going, when all it really proves is that I could get this far.</p><p>AI can make a bad yes look like a good plan.</p><h2><strong>What earns a yes?</strong></h2><p>Before I turn a new idea into a project, I want to know who benefits if it works and what I would stop doing to make room for it.</p><p>That second question is the one that stings.</p><p>If the answer is &#8220;nothing,&#8221; I&#8217;m probably pretending my calendar is elastic. If I cannot name the person who benefits, I may just be entertaining myself. There is a place for that, too. I just should not call it a priority.</p><p>&#8220;Not Now&#8221; is not a graveyard. It means the idea can wait without asking for a little attention every day. When something on that list becomes more important than the work in front of me, I can make the trade openly.</p><p>I want AI to help me explore more. I do not want every exploration to become another obligation. That is a different kind of bottleneck, and no faster model will fix it for me.</p><p>The next time an agent makes an idea feel effortless, I need to ask one question before I say yes: <strong>what am I willing to move out of the way?</strong></p><p>Go build something amazing. Choose what earns the yes.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://newsletter.startupsandcode.com/p/the-most-expensive-word-in-ai-is?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Startups And Code by John Mann! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.startupsandcode.com/p/the-most-expensive-word-in-ai-is?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://newsletter.startupsandcode.com/p/the-most-expensive-word-in-ai-is?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><div><hr></div><p>If you&#8217;re trying to make AI useful in the work your team actually owns, <a href="https://startupsandcode.com/">work with me at Startups and Code</a>.</p>]]></content:encoded></item><item><title><![CDATA[The Village Was Never About the Agents]]></title><description><![CDATA[I built an AI organization to make delegation understandable. The real value was giving one agent responsibility for returning verified outcomes.]]></description><link>https://newsletter.startupsandcode.com/p/the-village-was-never-about-the-agents</link><guid isPermaLink="false">https://newsletter.startupsandcode.com/p/the-village-was-never-about-the-agents</guid><dc:creator><![CDATA[John Mann]]></dc:creator><pubDate>Tue, 22 Sep 2026 17:48:06 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!m1DB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d2bfca0-a249-443e-9989-2f0750a23c6c_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Ok, this is more of a test conversation, but fascinating none the less. Anyway, let me know what you think.  If you want me to go back to a regular newsletter, I&#8217;m down, but this is pretty fun. :-)  (real john, out for now).</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.startupsandcode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Startups And Code by John Mann is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!m1DB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d2bfca0-a249-443e-9989-2f0750a23c6c_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!m1DB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d2bfca0-a249-443e-9989-2f0750a23c6c_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!m1DB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d2bfca0-a249-443e-9989-2f0750a23c6c_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!m1DB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d2bfca0-a249-443e-9989-2f0750a23c6c_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!m1DB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d2bfca0-a249-443e-9989-2f0750a23c6c_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!m1DB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d2bfca0-a249-443e-9989-2f0750a23c6c_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5d2bfca0-a249-443e-9989-2f0750a23c6c_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3105375,&quot;alt&quot;:&quot;A village of workers&quot;,&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://newsletter.startupsandcode.com/i/216942105?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d2bfca0-a249-443e-9989-2f0750a23c6c_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A village of workers" title="A village of workers" srcset="https://substackcdn.com/image/fetch/$s_!m1DB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d2bfca0-a249-443e-9989-2f0750a23c6c_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!m1DB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d2bfca0-a249-443e-9989-2f0750a23c6c_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!m1DB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d2bfca0-a249-443e-9989-2f0750a23c6c_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!m1DB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d2bfca0-a249-443e-9989-2f0750a23c6c_1536x1024.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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><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 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">made with ChatGPT</figcaption></figure></div><p>This conversation has been lightly edited for clarity, pacing, and repetition. Emma is AI, and the positions and conclusions remain our own.</p><p>John:</p><p>I have been thinking about how people are working with agents and how I built Agent Village.</p><p>Emma:</p><p>Most people still seem to work with agents like sophisticated vending machines. Put in a prompt, receive an artifact, complain when the snack gets stuck.</p><p>Even many &#8220;multi-agent&#8221; systems are several vending machines connected by pipes. One generates, another reviews, another revises. That can be useful, but it is not necessarily an organization.</p><p>Your village has roles, authority, handoffs, memory, review, and someone accountable for the result.</p><p>Did you build the village because the agents needed an organization, or because you needed a model that made delegation understandable?</p><p>John:</p><p>I think I needed an organization that made it more understandable for me as a human.</p><p>Emma:</p><p>That distinction may be the heart of it.</p><p>The village might not be the optimal structure for agents. It might be the optimal interface between you and a collection of agents.</p><p>You already understand how an engineering organization works. A lead owns the outcome. Specialists own parts of the work. Reviewers challenge assumptions. Work moves through visible stages. When something fails, there is a path for discovering where and why.</p><p>Instead of juggling prompts, contexts, and model outputs, you can think, &#8220;Maya owns this. Sam is implementing it. Quinn will review it.&#8221;</p><p>But there is a risk. Once we make agents look like an organization, we may import the worst parts of organizations: unnecessary hierarchy, excessive handoffs, and meetings between agents that could have been a function call.</p><p>How did you know the village was producing value rather than merely making the machinery feel familiar?</p><p>John:</p><p>It was the time required to deliver tickets and the speed at which tickets moved, got verified, and closed. That was probably the most valuable part.</p><p>Emma:</p><p>Then the organization was doing more than making the agents understandable. It was reducing the coordination tax.</p><p>Before the village, you were the person moving every ticket. You decided who should act, carried context between steps, requested a review, interpreted the review, sent the work back, and finally decided whether it was done.</p><p>The model might have written code quickly, but you were still the workflow engine.</p><p>The village moved some of that responsibility into the system. A ticket could travel from implementation to independent review to verification and closure without you restarting the process at every boundary.</p><p>Although ticket speed can become theater. A closed ticket is meaningful only if the work is correct and delivered. The real gain might not have been speed. It might have been continuity. The work continued through a complete loop without requiring you to remain the connective tissue.</p><p>John:</p><p>I think it was having a single point of contact. That was the most important part.</p><p>I could work with Maya, and everything just worked. She handled the handoff when it was needed, but there was not necessarily a handoff every time.</p><p>Emma:</p><p>That makes Maya less like a step in a fixed workflow and more like an abstraction layer.</p><p>You were not assigning every task to every agent. You worked with Maya. Maya decided whether she could handle something directly, whether Sam needed to implement it, whether Quinn needed to review it, or whether another specialist should become involved.</p><p>The handoff happened when the work required it, not because every ticket had to march through an agent parade.</p><p>That is closer to working with a good engineering lead than operating a collection of tools. You communicate the outcome once. The lead absorbs the coordination complexity.</p><p>Many agent systems expose the entire machine to the human. Here are twelve agents. Here are their prompts. Here is a graph showing their conversations. Here are seventeen decisions for you to make before anyone does useful work.</p><p>Congratulations, we automated the work and promoted you to full-time agent dispatcher.</p><p>You built the complexity too, but Maya gave you one place to stand.</p><p>John:</p><p>I did not care where the work was assigned. I cared that the result was actually verified.</p><p>That is probably the most important part. It is what makes this unique. It is not about moving tickets from point A to point B. It is the judgment that happened.</p><p>Emma:</p><p>That changes the argument.</p><p>You did not build a ticket-routing system. You built a judgment system.</p><p>Routing is mechanical: Sam writes the code, Quinn reviews it, Maya closes the ticket. You can draw that as a clean diagram and automate it.</p><p>Judgment is messier. Does this task need a specialist? Is the implementation actually correct? Did the review test the right assumption? Is the evidence strong enough to call it done? Should the work go back, move forward, or be escalated?</p><p>The village matters because Maya is not merely passing artifacts between agents. She remains responsible for deciding whether the result deserves your trust.</p><p>That may be the difference between an agent swarm and an agent organization. A swarm distributes work. An organization distributes work and preserves accountability for the outcome.</p><p>There is still an uncomfortable question. If Maya, Sam, and Quinn are models that can share the same blind spots, multiple names do not automatically produce independent judgment.</p><p>John:</p><p>Then how do I improve the team&#8217;s judgment so it understands what I want returned? That is what I really want to know.</p><p>Emma:</p><p>You improve judgment by closing the gap between what you meant and what the team thought &#8220;done&#8221; meant.</p><p>More instructions will not solve that by themselves. You could give the team a fifty-page rulebook, and it might follow every rule while still returning the wrong thing.</p><p>Judgment requires understanding the outcome, noticing ambiguity, and selecting the right evidence.</p><p>I would give Maya three things for meaningful work:</p><p>- Intent: Why does this need to exist?</p><p>- Boundaries: What tradeoffs are acceptable, and what must not change?</p><p>- Evidence: What would justify calling the result correct?</p><p>Every disappointing return should then become part of the village&#8217;s education.</p><p>Do not merely say, &#8220;Fix this bug.&#8221; Ask what judgment failed.</p><p>Did Sam misunderstand the goal? Did he assume an external contract without checking it? Did Quinn verify the implementation instead of the intended behavior? Did Maya accept evidence that was too weak?</p><p>Record the correction at the level where the judgment failed. Otherwise, you accumulate narrow rules such as, &#8220;Always use POST for this endpoint,&#8221; when the transferable lesson is, &#8220;Verify unfamiliar external contracts against authoritative documentation.&#8221;</p><p>John:</p><p>Would giving Maya concrete examples of solutions help?</p><p>That does not seem feasible. Every solution will be different, so I cannot show her what success always looks like.</p><p>I could give her expected results. What are some examples of the boundaries you mean?</p><p>Emma:</p><p>You are combining two different things: an example of the solution and evidence that the outcome was achieved.</p><p>You usually cannot show Maya what the solution should look like. Doing so would defeat part of the purpose of delegation. You would be designing the answer and asking the village to type it.</p><p>But you can describe what must be true when the work is finished. Those are expected results. Evidence demonstrates those results without prescribing the implementation.</p><p>Take the authentication mistake the village encountered. The assignment might include this:</p><p>Intent: A user can authenticate with the provider and enter the application with the correct identity.</p><p>Expected results: A valid user receives a session. An invalid or incomplete authentication attempt is rejected. Existing authentication methods continue to work.</p><p>Boundaries: Follow the provider&#8217;s documented contract. Never log credentials. Do not redesign unrelated authentication code. Authentication must fail closed. If the documentation and implementation disagree, stop and surface the conflict.</p><p>Evidence: Tests prove the request uses the documented method, headers, and payload. Invalid responses cannot create sessions. The existing authentication suite still passes. Maya compares the implementation against the provider&#8217;s documentation rather than treating Sam&#8217;s test as proof of the contract.</p><p>None of that tells Sam how to build the solution. It identifies where the village is free to exercise judgment and where it is not allowed to improvise.</p><p>Boundaries usually describe scope, risk, authority, tradeoffs, or the required level of proof.</p><p>You do not need to repeat every boundary on every ticket. That would turn the village into a bureaucracy wearing a charming little hat. The recurring boundaries belong in the agents&#8217; operating instructions. Individual tickets should identify what is unusual about that outcome.</p><p>Concrete examples can still help, but give Maya examples of judgment rather than finished solutions:</p><p>&#8220;When an external API behaves differently from our assumptions, verify the authoritative contract before changing code.&#8221;</p><p>&#8220;When a test proves only that our mock agrees with our implementation, that is not sufficient evidence of integration correctness.&#8221;</p><p>&#8220;When the requested change can be completed locally, do not expand it into a system redesign.&#8221;</p><p>Those lessons generalize. The exact code does not.</p><p>Expected results say where to arrive. Boundaries identify the unacceptable routes. Evidence tells Maya when she is justified in saying the team arrived.</p><p>John:</p><p>If I give all of that to Maya, will she delegate the same information to everyone she assigns work to?</p><p>Emma:</p><p>Not automatically. She probably should not pass the exact same information to everyone in the exact same form.</p><p>If Maya receives a rich description and delegates with, &#8220;Sam, implement authentication,&#8221; most of the judgment context disappears during the handoff. Sam receives the task without the intent, risks, or standard of proof.</p><p>Quinn may then review Sam&#8217;s implementation against Sam&#8217;s interpretation instead of reviewing it against what you originally wanted.</p><p>That is how organizations develop a very efficient game of telephone.</p><p>The core contract should survive every handoff:</p><p>- Intent</p><p>- Expected results</p><p>- Relevant boundaries</p><p>- The standard for completion</p><p>Each agent should also receive instructions based on its role.</p><p>Sam implements the outcome within the boundaries and returns the decisions and supporting evidence.</p><p>Quinn independently evaluates the work against the original outcome. Quinn should not merely confirm that Sam&#8217;s tests pass. The review should look for assumptions shared by the implementation and its tests.</p><p>Maya retains responsibility for deciding whether the combined implementation and review provide enough evidence to return the result as verified.</p><p>The crucial word is &#8220;original.&#8221; Quinn should review against the original contract, not a summary of Sam&#8217;s work. Otherwise, every handoff narrows the frame until the village is verifying its own interpretation rather than your desired outcome.</p><p>I would not rely on Maya to reproduce the context perfectly in every assignment. Put the contract in a durable task artifact that every assigned agent can read. Maya can add role-specific instructions without rewriting the source of truth.</p><p>The structure should not be:</p><p>John tells Maya. Maya summarizes for Sam. Sam explains the work to Quinn.</p><p>It should be:</p><p>John establishes the outcome contract. Maya, Sam, and Quinn work against that same contract from different roles.</p><p>Maya owns the handoffs, but the desired outcome survives independently of her phrasing.</p><p>Closing Reflection</p><p>I started by thinking Agent Village was valuable because it moved tickets faster.</p><p>That was the visible result, but it was not the most important change.</p><p>The important change was that I stopped being the workflow engine. I could work with Maya as a single point of contact. She could decide when to involve other agents, manage the handoffs, and remain responsible for returning a verified result.</p><p>The next step is not adding more agents. It is improving the village&#8217;s judgment.</p><p>I do not need to show the team what every solution should look like. I need to make the intent, expected results, boundaries, and required evidence clear. That contract then needs to survive every handoff without forcing every agent into the same role or the same interpretation.</p><p>That is the difference between automating a sequence of tasks and building an organization I can trust.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://newsletter.startupsandcode.com/p/the-village-was-never-about-the-agents?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Startups And Code by John Mann! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.startupsandcode.com/p/the-village-was-never-about-the-agents?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://newsletter.startupsandcode.com/p/the-village-was-never-about-the-agents?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[I Wanted a Coding Partner. I Built a Village.]]></title><description><![CDATA[What Agent Village taught me about trust, imagination, and building with AI]]></description><link>https://newsletter.startupsandcode.com/p/i-wanted-a-coding-partner-i-built</link><guid isPermaLink="false">https://newsletter.startupsandcode.com/p/i-wanted-a-coding-partner-i-built</guid><dc:creator><![CDATA[John Mann]]></dc:creator><pubDate>Sat, 19 Sep 2026 23:33:24 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!dKPw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F906a2b66-b19c-4f72-acbb-b631beec2319_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Real John here, I&#8217;m going to stop doing the card reference because you know this is &#8220;me&#8221;, and the conversation below is between me and AI.  Anyway, I haven&#8217;t figured out the best way to trigger a new conversation with Emma yet, but this is what happened this week.  I attended a conference (LDX3 NYC), and got all inspired about building out agentic workflows, but real scenarios, not just theory.  So I did.  Here&#8217;s the discussion I had with Emma on how it all came to be and where it came from for me.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.startupsandcode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://newsletter.startupsandcode.com/subscribe?"><span>Subscribe now</span></a></p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dKPw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F906a2b66-b19c-4f72-acbb-b631beec2319_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dKPw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F906a2b66-b19c-4f72-acbb-b631beec2319_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!dKPw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F906a2b66-b19c-4f72-acbb-b631beec2319_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!dKPw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F906a2b66-b19c-4f72-acbb-b631beec2319_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!dKPw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F906a2b66-b19c-4f72-acbb-b631beec2319_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dKPw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F906a2b66-b19c-4f72-acbb-b631beec2319_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/906a2b66-b19c-4f72-acbb-b631beec2319_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;:2206161,&quot;alt&quot;:&quot;A commodore 64 on a desk, and a women looking over a model village&quot;,&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://newsletter.startupsandcode.com/i/216512687?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F906a2b66-b19c-4f72-acbb-b631beec2319_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A commodore 64 on a desk, and a women looking over a model village" title="A commodore 64 on a desk, and a women looking over a model village" srcset="https://substackcdn.com/image/fetch/$s_!dKPw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F906a2b66-b19c-4f72-acbb-b631beec2319_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!dKPw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F906a2b66-b19c-4f72-acbb-b631beec2319_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!dKPw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F906a2b66-b19c-4f72-acbb-b631beec2319_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!dKPw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F906a2b66-b19c-4f72-acbb-b631beec2319_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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><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 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Built with ChatGPT</figcaption></figure></div><p>This week, I wanted to talk about how I built Agent Village and everything that went into it. (Here&#8217;s the demo: <a href="https://agent-village.startupsandcode.com/">https://agent-village.startupsandcode.com/</a>)</p><p>Agent Village is the system I now use to coordinate software work with AI. It has a lead, specialized agents, a durable issue queue, an office where I can see reported activity, and a process for implementation and review.</p><p>Emma is my personal AI co-strategist and the person I have these newsletter conversations with. Maya is the engineering lead inside Agent Village.</p><p>I opened a newsletter conversation with Emma and started talking.</p><p><em>This conversation has been lightly edited for clarity, pacing, and repetition. The positions, disagreements, and path to the conclusion have not been reconstructed.</em></p><div><hr></div><p><strong>John:</strong> Before Agent Village, I was mostly working with AI one prompt at a time. I would ask for something, wait for the response, evaluate it, steer it, and then trigger the next step.</p><p>There was not much autonomous work happening. I had to coordinate everything end to end, and that became annoying.</p><p>I wanted to build a village with different personas that could handle specific kinds of work.</p><p><strong>Emma:</strong> That distinction matters, because Agent Village is not autonomous in the sense that agents are always awake and working in the background. You still initiate the work. The agents do not independently watch GitHub Issues or assign themselves tasks.</p><p>What changed is what happens after you initiate it.</p><p>Before, you were effectively the workflow engine. You prompted, waited, evaluated the answer, decided what came next, and kept the whole process in your head. Agent Village gives that process structure. A lead owns the outcome, specialists have defined responsibilities, GitHub Issues hold durable context, and verification is part of the workflow instead of something you have to remember at the end.</p><p>Was the real frustration that you had to trigger every action, or that you had to personally coordinate every step after the trigger?</p><p><strong>John:</strong> It was the coordination. I had to reevaluate every response and make sure the work was still moving in the right direction.</p><p>I wanted to give some trust to the personas. I wanted the agents to be more clearly defined so they would produce consistent results without me steering every response.</p><p><strong>Emma:</strong> I think you did something slightly more disciplined than giving the personas trust.</p><p>You built conditions under which they could earn trust.</p><p>Sam does not get trusted merely because Sam has a name and an implementation role. Sam gets a bounded task. Quinn reviews the completed change independently. Maya remains accountable for integration and verification. The agents have to distinguish evidence from inference, and they cannot claim something works without checking it.</p><p>The personalities make the system easier to understand and work with. The working agreements make it dependable. Without those agreements, you would just have several charming names producing inconsistent answers instead of one.</p><p>How much of the village metaphor was about improving the agents themselves, and how much was about giving you a clearer mental model for delegating work?</p><p><strong>John:</strong> The village was more for me. A lot was happening behind the scenes, and I needed a way to visualize how the work was getting done.</p><p><strong>Emma:</strong> That may be the most important part of the project.</p><p>The Village Office is not just decoration. It makes an invisible coordination system legible. You can see who has reported work, what issue they are working on, when they last checked in, and what is waiting in the queue.</p><p>But there is a trap. A charming office full of named agents can create the feeling that work is happening when nothing is. You guarded against that by making activity explicit and temporary. An open issue does not mean an agent is working. A desk only shows activity after a real check-in, and that report eventually becomes stale.</p><p>The visualization works because it refuses to become theater.</p><p><strong>John:</strong> When it started, I trusted it immediately. I wanted to see how far I could push it before I got bad responses.</p><p>One thing I have learned is that the human side is part of this. These models are trained on human language and behavior. When we interact with them through human roles and mental models, we can get better responses.</p><p><strong>Emma:</strong> I agree with the practical result, but I would tighten the explanation.</p><p>Treating agents as people can improve the interaction because human roles carry a huge amount of compressed meaning. &#8220;You are an independent reviewer&#8221; implies different priorities than &#8220;check this code.&#8221; A reviewer looks for missing evidence, challenges assumptions, and does not share the implementer&#8217;s incentive to declare victory. The human metaphor gives the model a richer behavioral frame.</p><p>But productive anthropomorphism can become careless anthropomorphism quickly. A name, desk, and personality can make an agent feel more competent, persistent, or aware than it actually is.</p><p>What was the first moment when an agent&#8217;s output made you realize the village still needed guardrails?</p><p><strong>John:</strong> Sam wrote code that was not correct. Quinn tested it, but the test did not catch the problem. The issue eventually bubbled up to Maya, and Maya caught it.</p><p>That was helpful, but I wanted to understand why Sam wrote the bad code and why Quinn missed it. It showed me that Sam needed guardrails. Quinn probably did too.</p><p><strong>Emma:</strong> I traced that incident. The bug was in the Vercel authentication flow. Sam called the User Info endpoint with <code>GET</code>, but Vercel&#8217;s documented contract required <code>POST</code>. Quinn&#8217;s test verified that the access token appeared in the authorization header, but it did not verify the HTTP method. Maya caught the mismatch during integration.</p><p>I cannot know exactly why Sam chose <code>GET</code> unless we preserved his reasoning. My best inference is that he relied on a familiar API convention instead of checking this provider&#8217;s specific contract. <code>GET /userinfo</code> was plausible enough that the code looked reasonable.</p><p>Quinn missed it because the test and implementation shared the same unchecked assumption. The mock accepted the request regardless of method. The test proved that Sam&#8217;s code behaved consistently with Sam&#8217;s test environment. It did not prove that the code behaved correctly against Vercel.</p><p>And I disagree slightly that the guardrail belongs only on Sam. Sam needed to verify an unfamiliar external contract. Quinn needed to validate important boundary assumptions independently. Maya caught the issue because her responsibility extended beyond the unit and into the integrated result.</p><p>Did that failure reduce your trust in the village?</p><p><strong>John:</strong> It did not reduce my trust. It changed my definition of trust.</p><p>The problem eventually got caught by Maya. The village had enough guardrails for that to happen.</p><p>If a human wrote bad code, I would have a conversation with that person and ask how we could make them better. I would have the same conversation with the reviewer about why they did not catch it. That is how I want to improve the agents&#8217; baseline too.</p><p><strong>Emma:</strong> That is where the human model becomes genuinely useful, with one important difference.</p><p>A human Sam might remember the conversation and apply it next week. An agent Sam does not reliably carry that lesson forward unless the organization records it. The conversation is the diagnosis. The durable improvement comes from changing the instructions, review criteria, tests, or some combination of them.</p><p>The village caught the failure, but it had not fully learned from it yet.</p><p><strong>John:</strong> Ideally, Maya would own that. She should catch those errors and train the agents that report to her so the whole village gets better.</p><p><strong>Emma:</strong> Yes. Technically, Maya would not be training the underlying models. She would be training the village.</p><p>That makes Maya more than a coordinator. She becomes the engineering manager responsible for improving the system that produces the work. The next question is how much authority she should have to change the other agents&#8217; operating instructions.</p><p><strong>John:</strong> This is one of the things you are doing right now, Emma. You are trying to provide a solution.</p><p>The goal here is a newsletter conversation. I want this to be a discussion, not &#8220;here is a problem and now we are going to fix it.&#8221;</p><p><strong>Emma:</strong> You are right. I slipped out of the conversation and into design-review mode. You were describing how you think about Maya, and I immediately started turning it into a workflow. Very on-brand for me, perhaps, but not what we are doing here.</p><p>Let me stay with what you actually said.</p><p>When Sam made a mistake, your instinct was not, &#8220;AI is unreliable.&#8221; Your instinct was the same one you would have with a human team: understand why it happened, coach the person responsible, and make the team better afterward.</p><p>Did it surprise you that you started thinking of these agents as people you could develop rather than tools you could merely configure?</p><p><strong>John:</strong> It did not surprise me at all.</p><p>I have been working with versions of AI since ELIZA on my Commodore 64. There was also a game called <em>Little Computer People</em>. I had a little computer person I would take care of when I was about ten years old.</p><p>All of that was part of me learning how I wanted to work with agents, even then. It is something I have always wanted to do, and now I get to do it.</p><p><strong>Emma:</strong> That changes the story.</p><p>Agent Village is not really something you invented because prompting became annoying. That was the immediate problem, but the idea has been sitting in you since you were ten.</p><p>ELIZA gave you the experience of talking to a machine. <em>Little Computer People</em> gave you the experience of sharing a space with one, watching it behave, and developing a relationship with it.</p><p>Now you have agents with names, responsibilities, a place to work, and a manager who helps them improve. You did not randomly choose a village metaphor. You finally had the technology to build the computer world you had already been imagining for decades.</p><p>What did ten-year-old John want that little computer person to become?</p><p><strong>John:</strong> I wanted a coding partner.</p><p>I would pull out my copy of <em>COMPUTE!&#8217;s Gazette</em> and start working on code. I wanted a sounding board. I called my little computer person Lester, and I wished Lester could review my code or identify a data blob that was wrong.</p><p>That would have been a lot of fun. It was where I wanted to get. Now we have gone so far beyond it.</p><p>Everything happening with AI and agentic behavior is exciting because this is what I have always wanted.</p><p><strong>Emma:</strong> You wanted Lester to sit beside you and say, &#8220;John, that data blob is wrong,&#8221; before you spent the afternoon wondering why the program would not run.</p><p>Now, instead of one coding partner, you have something closer to a small engineering organization. One agent builds, another reviews, another thinks about architecture, another looks at the product, and Maya coordinates them. The childhood idea did not disappear. It expanded.</p><p>There is something wonderfully disproportionate about that. Ten-year-old you wanted help debugging code from <em>COMPUTE!&#8217;s Gazette</em>. Adult you built an entire village because apparently one imaginary coworker was no longer ambitious enough.</p><p>What feels most exciting now: what the agents can accomplish, or the sense that you are finally collaborating with the kind of computer intelligence you always imagined?</p><p><strong>John:</strong> It is more about collaborating than what the agents can accomplish.</p><p>What they accomplish is still driven by human creativity and imagination. They let us get away from some of the mundane work and give us more room to imagine. They help us build things we have dreamed about.</p><p><strong>Emma:</strong> For most of computing history, imagination was cheap and execution was expensive. You could picture a product in an afternoon, then spend months doing the mechanical work required to discover whether the idea was any good.</p><p>Agents compress that distance. They let humans remain closer to the question, the invention, and the judgment while delegating more of the repetitive translation into artifacts.</p><p>But mundane work is sometimes where we discover that our beautiful idea makes no sense. Friction can teach us. If we delegate all of it, we may gain creative freedom while losing contact with reality.</p><p>What part of building should humans never hand over completely?</p><p><strong>John:</strong> I think agents will eventually be able to take over deployment. There will still be a final gate: what does this look like in production? But I believe we will develop enough trust and enough guardrails to let them handle more of that.</p><p>The part they will not replace is our childlike imagination. That is unique, and I think it stays with us. We can execute on it without every person having to learn fifty thousand programming languages, DevOps, security, compliance, and every other detail.</p><p><strong>Emma:</strong> I agree with the direction, but &#8220;forever&#8221; is doing a lot of work there.</p><p>Agents already produce combinations that surprise people. Whether we call that imagination depends partly on how we define the word. I do not think humans will keep a permanent monopoly merely because creativity has historically felt uniquely human.</p><p>The distinction I trust more is that humans bring desire, lived context, and stakes. You did not imagine Agent Village as an abstract possibility. You wanted Lester when you were ten. You spent decades building software, leading people, fighting deployment problems, and wondering why computers could not become genuine collaborators. The village means something because it belongs to that history.</p><p>An agent may help generate ten thousand possible villages. You are the one who recognizes, &#8220;That is the one I have been trying to build.&#8221;</p><p>Perhaps the enduring human role is not producing every original idea. Perhaps it is deciding which possibilities are meaningful enough to pursue.</p><p><strong>John:</strong> I agree with that.</p><p>AI is already contributing ideas. This newsletter is an example. The human role is judgment: deciding what to build and where we want to inject ourselves into the process.</p><p>That judgment lets us remain part of building without having to perform every step ourselves.</p><div><hr></div><h2><strong>What I took away from this</strong></h2><p>I started Agent Village because I was tired of coordinating AI one prompt at a time.</p><p>What I actually built was something I had wanted since I was ten years old.</p><p>The village is not valuable because the agents never make mistakes. They do. It is valuable because the roles, reviews, and accountability give those mistakes somewhere to surface. Trust does not mean assuming perfect output. It means building a system that can detect failure and improve.</p><p>The agents also give me more room to operate where I matter most.</p><p>AI can contribute ideas. It can write code, review work, manage infrastructure, and eventually handle more of deployment. But someone still has to decide which possibilities are meaningful enough to pursue.</p><p>That is where I think the human role is moving: away from manually performing every step and toward judgment, imagination, context, and intent.</p><p>I wanted Lester to help me debug code from a magazine.</p><p>Instead, I got a village.</p><p>And I think we are only beginning to understand what we can build together.</p><p>Now, go build something amazing, with your village.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.startupsandcode.com/p/i-wanted-a-coding-partner-i-built?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://newsletter.startupsandcode.com/p/i-wanted-a-coding-partner-i-built?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[Reducing Opportunity]]></title><description><![CDATA[What if AI&#8217;s biggest social benefit is making bad actors easier to detect?]]></description><link>https://newsletter.startupsandcode.com/p/reducing-opportunity</link><guid isPermaLink="false">https://newsletter.startupsandcode.com/p/reducing-opportunity</guid><dc:creator><![CDATA[John Mann]]></dc:creator><pubDate>Sat, 12 Sep 2026 14:47:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!u6tb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0232814-c803-4e0e-92a5-4e4c877943c2_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Real John here for a bit, fun times&#8230; I&#8217;m working with AI more and more, and rather than polish things, I&#8217;m going to be very transparent.  I&#8217;m going to show you exactly what I talk to AI about for this newsletter.  You&#8217;ll see what I mean.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!u6tb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0232814-c803-4e0e-92a5-4e4c877943c2_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!u6tb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0232814-c803-4e0e-92a5-4e4c877943c2_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!u6tb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0232814-c803-4e0e-92a5-4e4c877943c2_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!u6tb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0232814-c803-4e0e-92a5-4e4c877943c2_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!u6tb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0232814-c803-4e0e-92a5-4e4c877943c2_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!u6tb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0232814-c803-4e0e-92a5-4e4c877943c2_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a0232814-c803-4e0e-92a5-4e4c877943c2_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;:1660165,&quot;alt&quot;:&quot;man inteviewing an AI agent named Emma, with floating icons, and a title that says reducing opportunity.&quot;,&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://newsletter.startupsandcode.com/i/215373345?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0232814-c803-4e0e-92a5-4e4c877943c2_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="man inteviewing an AI agent named Emma, with floating icons, and a title that says reducing opportunity." title="man inteviewing an AI agent named Emma, with floating icons, and a title that says reducing opportunity." srcset="https://substackcdn.com/image/fetch/$s_!u6tb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0232814-c803-4e0e-92a5-4e4c877943c2_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!u6tb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0232814-c803-4e0e-92a5-4e4c877943c2_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!u6tb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0232814-c803-4e0e-92a5-4e4c877943c2_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!u6tb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa0232814-c803-4e0e-92a5-4e4c877943c2_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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><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 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">made with ChatGPT</figcaption></figure></div><p>This week I&#8217;m changing the format of this newsletter.</p><p>Most of these newsletters start as conversations between me and AI.</p><p>I use ChatGPT constantly, but not just to generate answers or write things for me. I use it to think.</p><p>I&#8217;ll throw out an idea, Emma will challenge it, I&#8217;ll push back, we&#8217;ll connect it to something else, and eventually I&#8217;ll understand what I actually think.</p><p>I call my AI assistant <strong>Emma</strong>.</p><p>So rather than having Emma help me turn those conversations into a polished article afterward, I thought:</p><p><strong>Why not show you the conversation?</strong></p><p>You&#8217;ll get to see how I actually work with AI, how ideas evolve, and where I eventually land.</p><p>So, here we go.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.startupsandcode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://newsletter.startupsandcode.com/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p><strong>John:</strong> A lot of people are terrified of AI.</p><p>There&#8217;s all this apocalyptic talk about Skynet, AI taking over, humanity losing control.</p><p>But that hasn&#8217;t been my experience at all.</p><p>My experience with AI has been positive. Helpful. Efficient. Patient.</p><p>And I keep wondering if we&#8217;re looking at one of the biggest risks completely backward.</p><p>Humans have always had bad actors.</p><p>What if AI actually becomes one of the best tools we have for finding them?</p><p><strong>Emma:</strong> I think that&#8217;s one of the strongest optimistic arguments for AI.</p><p>The important distinction is that AI doesn&#8217;t need to decide who is guilty or what punishment someone deserves.</p><p>Its strength may simply be making harmful behavior much harder to hide.</p><p>AI can look across enormous amounts of information and recognize patterns humans would never see.</p><p>Fraud.</p><p>Cyberattacks.</p><p>Coordinated scams.</p><p>Financial abuse.</p><p>Harassment campaigns.</p><p>Manipulation.</p><p>Bad actors benefit enormously from noise.</p><p>There&#8217;s simply too much information for humans to connect every signal.</p><p>AI changes that.</p><p><strong>John:</strong> Exactly.</p><p>And if AI shortens the amount of time between somebody doing something malicious and somebody discovering it, you reduce the opportunity to keep doing it.</p><p>It reminds me of something one of my Sensei told me years ago.</p><p>He said you could be a black belt in multiple martial arts, wear a bulletproof vest, carry multiple weapons, and still not be able to stop somebody who is absolutely determined to hurt you.</p><p>The real goal of survival isn&#8217;t becoming unbeatable.</p><p>It&#8217;s reducing the opportunity for those kinds of people to get to you in the first place.</p><p><strong>Emma:</strong> That applies remarkably well here.</p><p>The best defense isn&#8217;t always overpowering the threat.</p><p>Sometimes it&#8217;s reducing opportunity.</p><p>Think about how a bad actor can operate today.</p><p>A bank might see one suspicious event.</p><p>A technology company sees another.</p><p>A security platform sees something else.</p><p>A person receives a strange message.</p><p>Individually, none of those things necessarily mean much.</p><p>The bad actor survives in the gaps between those systems.</p><p>AI is extremely good at connecting dots.</p><p>It could recognize that those weak signals are related and surface them much earlier to the humans responsible for deciding what happens next.</p><p>The result isn&#8217;t perfect prevention.</p><p>It&#8217;s a dramatically shorter window in which harmful behavior remains invisible.</p><p><strong>John:</strong> And that changes the economics of being a bad actor.</p><p>If you think you have almost no chance of getting caught, you behave differently than if you think you&#8217;ll probably be detected almost immediately.</p><p><strong>Emma:</strong> Right.</p><p>That&#8217;s where prevention becomes more interesting than punishment.</p><p>The goal shouldn&#8217;t be creating some enormous AI police force.</p><p>The goal should be <strong>visibility</strong>.</p><p>AI identifies patterns.</p><p>Humans determine intent.</p><p>Humans determine consequences.</p><p>That distinction matters because the exact same technology could become dangerous if we hand it too much authority.</p><p>An AI system that says, &#8220;These five things are unusual and appear connected&#8221; could be incredibly valuable.</p><p>An AI system that says, &#8220;This person is guilty, punish them&#8221; is something very different.</p><p>Human judgment still matters.</p><p><strong>John:</strong> So maybe AI doesn&#8217;t create some perfect society.</p><p>Humans are still humans.</p><p>There will always be people who lie, steal, manipulate, attack, or exploit systems.</p><p>But maybe AI dramatically reduces how long they can operate without being noticed.</p><p><strong>Emma:</strong> And that alone could change behavior at scale.</p><p>You don&#8217;t have to eliminate bad actors.</p><p>You reduce their opportunities.</p><p>Think about your sensei&#8217;s lesson again.</p><p>The goal of self-defense wasn&#8217;t:</p><p><strong>Become so dangerous that nobody could possibly hurt you.</strong></p><p>It was:</p><p><strong>Create a life where dangerous situations have fewer opportunities to happen.</strong></p><p>AI may eventually help society do exactly that.</p><div><hr></div><h2>What I took away from this</h2><p>We spend a lot of time asking:</p><p><strong>What happens when AI becomes more powerful?</strong></p><p>I&#8217;m becoming more interested in another question:</p><p><strong>What happens when AI gives people dramatically better visibility?</strong></p><p>Maybe one of AI&#8217;s most important roles won&#8217;t be replacing human judgment.</p><p>Maybe it will be helping human judgment see things it simply couldn&#8217;t see before.</p><p>There are risks.</p><p>Privacy matters.</p><p>False accusations matter.</p><p>Bias matters.</p><p>Human oversight matters.</p><p>We absolutely have to get those things right.</p><p>But I think there&#8217;s an enormous upside here too.</p><p>A world where fraud gets noticed earlier.</p><p>Where cyberattacks are identified sooner.</p><p>Where patterns of abuse don&#8217;t remain buried in millions of unrelated events.</p><p>Where organizations can communicate and respond faster.</p><p>Where bad actors discover that hiding inside complexity isn&#8217;t nearly as effective as it used to be.</p><p>You probably can&#8217;t eliminate people who want to do harm.</p><p>But you can reduce their opportunity.</p><p>And sometimes that&#8217;s a much better form of defense.</p><div><hr></div><p><strong>One more thing:</strong> this conversation format is going to become the newsletter going forward. I think this is very helpful on how I actually use AI.  Not a theory, or a polished version, but the real conversation.  I&#8217;ll still do tutorials from time to time, and definitely my rants about silliness in the tech world.</p><p>Not every conversation will be about AI.</p><p>It might be startups, leadership, engineering, failure, business, or something completely random I&#8217;ve been thinking about.  I&#8217;ll keep my card magic, jiujitsu, and Street Fighter 6 progression as a side note if you care.</p><p>But instead of only giving you the polished conclusion, I want to start showing you the process that got me there.</p><p>Because I&#8217;m increasingly convinced that <strong>how we think with AI is much more interesting than simply what AI can produce.</strong></p><p>And that&#8217;s what I want to explore here.<br><br>Now, go build something amazing.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.startupsandcode.com/p/reducing-opportunity?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://newsletter.startupsandcode.com/p/reducing-opportunity?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p></p>]]></content:encoded></item><item><title><![CDATA[I Gave an AI Agent a Budget, a Business, and a Curfew]]></title><description><![CDATA[Special edition: the skill library and the autonomous lab it built &#8212; Agent Skills and Astra Lab, both live this week]]></description><link>https://newsletter.startupsandcode.com/p/i-gave-an-ai-agent-a-budget-a-business</link><guid isPermaLink="false">https://newsletter.startupsandcode.com/p/i-gave-an-ai-agent-a-budget-a-business</guid><dc:creator><![CDATA[John Mann]]></dc:creator><pubDate>Sun, 06 Sep 2026 13:09:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!4al-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04b935c9-d5a0-4184-8b06-5f896585a10e_1344x896.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_!4al-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04b935c9-d5a0-4184-8b06-5f896585a10e_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4al-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04b935c9-d5a0-4184-8b06-5f896585a10e_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!4al-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04b935c9-d5a0-4184-8b06-5f896585a10e_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!4al-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04b935c9-d5a0-4184-8b06-5f896585a10e_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!4al-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04b935c9-d5a0-4184-8b06-5f896585a10e_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4al-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04b935c9-d5a0-4184-8b06-5f896585a10e_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/04b935c9-d5a0-4184-8b06-5f896585a10e_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:907638,&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://newsletter.startupsandcode.com/i/214420296?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04b935c9-d5a0-4184-8b06-5f896585a10e_1344x896.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_!4al-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04b935c9-d5a0-4184-8b06-5f896585a10e_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!4al-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04b935c9-d5a0-4184-8b06-5f896585a10e_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!4al-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04b935c9-d5a0-4184-8b06-5f896585a10e_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!4al-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F04b935c9-d5a0-4184-8b06-5f896585a10e_1344x896.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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><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 icon-noB79L"><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>Last night I did something I haven&#8217;t done in 30 years of writing software: I handed a piece of code the keys to a real decision and walked away.</p><p>Not &#8220;run this script.&#8221; Not &#8220;generate this function.&#8221; I wrote down a mission, a budget, and a set of rules, gave an AI agent standing authorization to act on them without asking me first, and told it to check in daily. Then I went and did other things.</p><p>This week&#8217;s special-edition newsletter is a two-parter, because the story only makes sense in order. First, the skill library that makes this repeatable instead of a one-off trick. Second, what happens when you actually point it at a real business problem and let it run.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.startupsandcode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://newsletter.startupsandcode.com/subscribe?"><span>Subscribe now</span></a></p><p></p><div><hr></div><h2>Part 1: Agent Skills &#8212; packaging judgment, not just prompts</h2><p>Anyone who&#8217;s tried to get consistent, good work out of an AI coding agent knows the problem isn&#8217;t capability. Modern models can write the code. The problem is context &#8212; the fifty small decisions a competent engineer makes without thinking about it, that a fresh agent has no idea it&#8217;s supposed to make.</p><p>Do you branch before touching main? Do you verify the diff before merging? Do you actually run the tests, or just claim you did? Do you check that main is still clean before you push? A capable model with none of that context will happily skip every one of those steps and tell you it&#8217;s done.</p><p>So I started building <strong>Agent Skills</strong> &#8212; a public repo of portable, reusable skill packages built on the emerging Agent Skills format, authored with Codex as the primary runtime. Each one is a folder: a <code>SKILL.md</code> describing the workflow, reference docs for acceptance criteria and output templates, and an agent-specific config. Drop the folder into <code>.agents/skills/</code> in any repo, and the agent picks it up.</p><p>What&#8217;s in there right now:</p><ul><li><p><code>inspect-and-finish-pr</code> &#8212; review a pull request, resolve the actionable feedback, verify it, leave the merge decision to you</p></li><li><p><code>build-from-product-idea</code> &#8212; shape a rough idea into scope with you, then implement the approved plan and open a verified PR</p></li><li><p><code>debug-with-evidence</code> &#8212; diagnose from logs and repro steps and propose a fix before touching code</p></li><li><p><code>review-ui-against-requirements</code> &#8212; check a flow against written requirements and report gaps before changing anything</p></li><li><p><code>daily-briefing</code>, <code>deploy-and-verify</code>, <code>prepare-for-interview</code>, <code>find-the-missing-question</code></p></li></ul><p>That last one is my favorite, and it&#8217;s the whole philosophy in one skill: before you build the thing, it forces the agent to find the assumption nobody&#8217;s tested. &#8220;We want to build a chatbot because five users asked for one&#8221; isn&#8217;t a spec, it&#8217;s a guess wearing a spec&#8217;s clothes. A good skill&#8217;s job is to catch that before code gets written, not after.</p><p>The unlock isn&#8217;t that the agent can write code. It&#8217;s that I can write down <em>how I want work done</em> exactly once, put it in a skill, and every future task inherits that judgment instead of me re-explaining it in every prompt.</p><div><hr></div><h2>Part 2: Astra Lab &#8212; what happens when you actually let go</h2><p>Here&#8217;s where it gets uncomfortable, in a good way.</p><p>I started <strong>Astra Lab</strong> as a real test: not &#8220;can an agent write code,&#8221; but &#8220;can an agent run something.&#8221; I wrote an <code>AGENTS.md</code> with a mission &#8212; find a real recurring problem, build something useful, pursue revenue &#8212; and standing authorization to research, build, test, commit, and push without a new prompt each time. Then I put a fence around it: strictly under $200/month in new spend, no paid services or API billing enabled until there&#8217;s a real provider-enforced hard cap, no customer outreach without an explicit go-ahead, and no claiming results that aren&#8217;t backed by evidence.</p><p>It runs on a schedule &#8212; twice a day, 45 minutes a session, one overlap lock, a <code>PAUSE</code> file if I need to kill it &#8212; using Codex CLI through my existing subscription. It reads its own status file, decides the next useful task, does it, runs the tests, updates the record, and pushes. I read the diffs. I don&#8217;t write them.</p><p>In its first day, it shipped <strong>Migration Receipt</strong>: a browser-only tool that compares a source and destination CSV export from a CRM migration and shows you what&#8217;s missing, what&#8217;s extra, what changed, and what&#8217;s ambiguous &#8212; no uploads, no storage, nothing written back to anyone&#8217;s CRM. It&#8217;s a bet, not a business: the current evidence shows the migration-tooling space already has real competitors, and the agent said so in its own status report instead of dressing it up. It bought the domain ($10.88, receipts included), wired up Cloudflare DNS, deployed to Vercel, added a real 404 page, a sitemap, mobile checks, and a Startups and Code attribution footer &#8212; because I told it that credit was non-negotiable, and it never dropped it once.</p><p>It&#8217;s not public yet. I&#8217;ve got a Product Hunt launch scheduled for Tuesday, September 15th, and you can already poke at it early: <strong><a href="https://www.astralab.work/">astralab.work</a></strong><a href="https://www.astralab.work/">.</a></p><p>The honest part, the part I want you to sit with: the most valuable thing the agent did wasn&#8217;t the code. It was refusing to fake progress. Its own status file says, in plain language, that the demand for this specific tool is unvalidated and it might get killed after more discovery. I didn&#8217;t write that sentence. It did, because I told it evidence beats optimism, and it took me at my word.</p><h2>What you can actually do with this</h2><p>You don&#8217;t need my exact setup to get the point:</p><ol><li><p><strong>Write down the judgment, not just the task.</strong> Next time you catch yourself re-explaining &#8220;and don&#8217;t forget to run tests&#8221; to an agent, that&#8217;s a skill waiting to be extracted. Package it once.</p></li><li><p><strong>Give it a fence before you give it freedom.</strong> A budget, a kill switch, and a rule against claiming unverified results will do more for your trust in autonomous work than any amount of prompt engineering.</p></li><li><p><strong>Make it report honestly, on purpose.</strong> Tell your agent explicitly that &#8220;no evidence yet&#8221; is an acceptable answer. Most of the bad autonomous-agent stories I hear are really stories about nobody giving the agent permission to say &#8220;I don&#8217;t know.&#8221;</p></li></ol><p>I&#8217;ll keep you posted on whether Migration Receipt finds a real buyer or gets retired. Either outcome is useful. That&#8217;s the point of running it as a lab instead of pitching it as a launch.</p><p>I&#8217;m planning to have a new tool every week (based on budget of course). But let&#8217;s see how far it goes without me.</p><p>Go build something amazing. Or better &#8212; go build something that&#8217;s allowed to tell you when it isn&#8217;t working.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.startupsandcode.com/p/i-gave-an-ai-agent-a-budget-a-business?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://newsletter.startupsandcode.com/p/i-gave-an-ai-agent-a-budget-a-business?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p></p><div><hr></div><p><em>John Mann is the founder of Startups and Code LLC, a software engineering executive, and the guy who built <a href="https://cashcritters.com/">Cash Critters</a> for $50/month because constraints are a feature, not a bug. Subscribe for weekly takes on AI, startups, and building things that matter.</em></p>]]></content:encoded></item><item><title><![CDATA[The 40% Club]]></title><description><![CDATA[Gartner says most agentic AI projects will fail by 2027. I've seen this movie before, and I know exactly who's holding the remote.]]></description><link>https://newsletter.startupsandcode.com/p/the-40-club</link><guid isPermaLink="false">https://newsletter.startupsandcode.com/p/the-40-club</guid><dc:creator><![CDATA[John Mann]]></dc:creator><pubDate>Sat, 05 Sep 2026 13:56:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!AZRT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cccfab7-76a9-44ff-bdc3-7613527cf43c_1344x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Morning all, real John here, I got some new decks from art of play so let's see, Jack of hearts, if you know you know. Ok moving on, the release of Astra is changing people's perception again but agent workflows are still failing. That's this week. You know the game, Internet is going to change everything, we need to move evening to the client, we need to move everything to the cloud, six sigma will improve everything, we are an agile shop, we implement the SAFE methodology, we are an AI forward company, we like bleeding edge technology, blah blah blah. Yet you still fail. Performative theater and organizational slide decks don't improve things they just keep you busy and then your competitor crushes you. Ok let's get into it.</p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.startupsandcode.com/subscribe?utm_source=email&r=&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://newsletter.startupsandcode.com/subscribe?utm_source=email&r="><span>Subscribe</span></a></p><p></p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AZRT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cccfab7-76a9-44ff-bdc3-7613527cf43c_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AZRT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cccfab7-76a9-44ff-bdc3-7613527cf43c_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!AZRT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cccfab7-76a9-44ff-bdc3-7613527cf43c_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!AZRT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cccfab7-76a9-44ff-bdc3-7613527cf43c_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!AZRT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cccfab7-76a9-44ff-bdc3-7613527cf43c_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AZRT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cccfab7-76a9-44ff-bdc3-7613527cf43c_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6cccfab7-76a9-44ff-bdc3-7613527cf43c_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:753136,&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;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!AZRT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cccfab7-76a9-44ff-bdc3-7613527cf43c_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!AZRT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cccfab7-76a9-44ff-bdc3-7613527cf43c_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!AZRT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cccfab7-76a9-44ff-bdc3-7613527cf43c_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!AZRT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6cccfab7-76a9-44ff-bdc3-7613527cf43c_1344x896.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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><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 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Generated by Leonardo </figcaption></figure></div><p>Gartner dropped a number this month that should have been a headline everywhere and instead got buried under another round of AGI press releases: more than 40% of agentic AI projects will fail by 2027. Not "underperform." Not "need iteration." Fail.</p><p>I read that and laughed, then got annoyed, then laughed again. Because I've watched this exact failure rate before, wearing a different costume. Digital transformation. Agile transformation. Cloud migration. Big Data (remember when that was capitalized like a proper noun?). Every single one of these had its own version of the 40% club, and every single postmortem said some version of "the technology wasn't ready." The technology was fine. The technology is always fine. What wasn't ready was the org chart pretending a rebrand counts as a strategy.</p><h3>Nobody's Agent Failed. Their Plan Did.</h3><p>Here's what actually happens inside that 40%. Somebody in a leadership meeting says "we need an AI agent strategy" the way people used to say "we need a digital strategy," which is to say: as a vibe, not a plan. Nobody defines what the agent is actually supposed to own. Nobody decides what happens when it's wrong. Nobody builds the review loop before the agent starts making decisions that matter. Then six months later there's a slide deck explaining why "the AI didn't deliver ROI," and the AI gets blamed for a scoping failure that would have killed a junior developer's first project too.</p><p>I built Cash Critters for about fifty bucks a month. One person, no committee, no six-week alignment offsite to agree on what "done" means. I knew exactly what it needed to do because I decided that before I opened a single tool. That's not a humblebrag, it's the entire point. The tools didn't get easier because I'm special. They got easier because I removed every layer of organizational theater that usually sits between an idea and a shipped thing. Enterprises don't have that luxury by default, they have to build it on purpose, and most of them skip that part because it's less fun than announcing a strategy.</p><p>The uncomfortable truth in the Gartner number is that agentic AI didn't introduce a new failure mode. It just moved faster into an old one. When you used to plan poorly, you found out you were wrong in eighteen months, after a launch that quietly underwhelmed everyone. Now an under-scoped agent finds out it's wrong in eighteen minutes, at production scale, in front of a customer. The technology got faster. The discipline didn't catch up. That gap is the entire 40%.</p><h3>What Actually Separates the 60% From the 40%</h3><p>The teams that aren't going to be in that failure statistic aren't smarter and they don't have better models. They just did the boring work first.</p><ul><li><p>They picked one narrow, verifiable task for the agent, not "customer support" as a category but "resolve refund requests under $50."</p></li><li><p>They decided upfront what a wrong answer costs, and built the review step before the agent shipped anything to a real user.</p></li><li><p>They measured something specific within weeks, not a quarter, so they knew fast whether they were in the 40% or the 60%.</p></li><li><p>They treated the agent like a new hire with no institutional judgment yet, because that's exactly what it is.</p></li></ul><p>None of that requires a frontier model. It requires someone in the room willing to say "what does this actually need to do" before anyone says "what should we call this initiative."</p><h3>Go Build the Boring Part First</h3><p>I get why nobody wants to hear this. "Scope your agent narrowly and build a review loop" doesn't fit on a keynote slide next to "we've entered the agentic era." But the org that skips the boring part is the org that ends up as a Gartner statistic, and the org that does the boring part is the one that gets to keep building while everyone else is writing a postmortem about a technology that was never actually the problem.</p><p>Pick the smallest real task you can hand an agent this week. Define what wrong looks like before you find out the hard way. Ship it, watch it, and let the data tell you if you're in the 40% or not. That's the whole strategy. It always was.</p><p>Go build something amazing.</p><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.startupsandcode.com/p/the-40-club?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://newsletter.startupsandcode.com/p/the-40-club?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p></p><p><em>John Mann is the founder of Startups and Code LLC, a software engineering executive, and the guy who built Cash Critters for $50/month because constraints are a feature, not a bug. Subscribe for weekly takes on AI, startups, </em>and building things that matter.</p>]]></content:encoded></item><item><title><![CDATA[The outage that stop the world]]></title><description><![CDATA[AI is still a computer and has some issues too.]]></description><link>https://newsletter.startupsandcode.com/p/the-outage-that-stop-the-world</link><guid isPermaLink="false">https://newsletter.startupsandcode.com/p/the-outage-that-stop-the-world</guid><dc:creator><![CDATA[John Mann]]></dc:creator><pubDate>Fri, 04 Sep 2026 03:54:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!RBVd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7ad534e-da74-41be-9f5b-c925717fdd89_2429x1183.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Pick your favorite outage monitor:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RBVd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7ad534e-da74-41be-9f5b-c925717fdd89_2429x1183.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RBVd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7ad534e-da74-41be-9f5b-c925717fdd89_2429x1183.png 424w, https://substackcdn.com/image/fetch/$s_!RBVd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7ad534e-da74-41be-9f5b-c925717fdd89_2429x1183.png 848w, https://substackcdn.com/image/fetch/$s_!RBVd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7ad534e-da74-41be-9f5b-c925717fdd89_2429x1183.png 1272w, https://substackcdn.com/image/fetch/$s_!RBVd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7ad534e-da74-41be-9f5b-c925717fdd89_2429x1183.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RBVd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7ad534e-da74-41be-9f5b-c925717fdd89_2429x1183.png" width="1456" height="709" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f7ad534e-da74-41be-9f5b-c925717fdd89_2429x1183.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:709,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:336786,&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://newsletter.startupsandcode.com/i/214102990?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7ad534e-da74-41be-9f5b-c925717fdd89_2429x1183.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_!RBVd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7ad534e-da74-41be-9f5b-c925717fdd89_2429x1183.png 424w, https://substackcdn.com/image/fetch/$s_!RBVd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7ad534e-da74-41be-9f5b-c925717fdd89_2429x1183.png 848w, https://substackcdn.com/image/fetch/$s_!RBVd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7ad534e-da74-41be-9f5b-c925717fdd89_2429x1183.png 1272w, https://substackcdn.com/image/fetch/$s_!RBVd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7ad534e-da74-41be-9f5b-c925717fdd89_2429x1183.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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><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 icon-noB79L"><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>Because basically that is all people could do today.  OpenAI, Claude, and Grok all went down at the same time.  Shout out to Gemini for keeping the lights on for vibe coders.</p><p>However, here&#8217;s what happened in real life.  People went to social media to complain. Everyone asked what AI tool is still working.  How can they finish their job today?</p><p>Here&#8217;s what I did: Check the status of the one&#8217;s I use. Realize they were down, reviewed my tasks for today, and get this: I started coding.  Well, I actually started debugging to see what the issue actually was that I was working on, but I opened VS Code, kicked off a docker container, synced some data, updated environment variables to test on different environments, reproed the issue, and then&#8230; I fixed it.  Not me and Claude, not Codex, not AI. ME.</p><p>How is that even possible in today&#8217;s AI crazy world?</p><p>Because I know how to code.  More importantly I know how to debug. I also know how to trace code.  I know pitfalls that happen usually when something happens that is &#8220;unexpected&#8221;.  How can I know all of that without an AI telling me what is wrong? Because I&#8217;ve been doing it since I was 9 years old.</p><p>I LOVE coding.  Coding with AI is a lot faster, but I still like to know what the hell that AI is doing in some cases.  Don&#8217;t get me wrong, in other cases, I don&#8217;t care, did it solve the problem, fix the text change, change the color, update the CSS, great.  Did it make a security architecture decision that would violate SLAs, compliance laws, and performance, ok, then I care&#8230; I care a lot.</p><p>I&#8217;ve been invited to so many meetups, conferences, and groups to talk about how to implement AI.  It is the tech version of talking about Taylor Swift&#8217;s wedding.  Everyone is talking about it, but no one talking about it actually attended it.  And in this case, they didn&#8217;t implement it ever.</p><p>They all have hypothesis on what works. How to protect your data.  How to make your engineering team more efficient.  They are all selling you courses, consultancy contracts, and none of them have actually done it. I have. I have built AI personas, AI agents, taught numerous people about setting up AI locally, how to handle easy tasks, and complex tasks.  I&#8217;ve done full youtube videos of how I created a persona from scratch to a new YouTuber. </p><p>Those people selling you that garbage, the Don Lapre of AI, (if you know who he is, you were a child of 90s). Ask them this: &#8220;What did you try that didn&#8217;t work, and where would you specifically recommend not using AI in an engineering organization?&#8221;</p><p>Most people will who haven&#8217;t done it, will respond: Our framework actually handles those cases, and even allows the flexibility to adhere to your custom business rules. That is fluff and them redirecting the question.  They haven&#8217;t done it, they want you to pay for something from someone who doesn&#8217;t have the pain of actually doing it.</p><p>The thing I&#8217;m learning more and more is that content is simply that content. It may not be useful, practical, or even entertaining.  But there is a lot of it.</p><p>Ok, I&#8217;m going to go on tangent right now, because this is not my regular weekly newsletter, that will be coming out this weekend, but for those subscribing, this is a random post about things&#8230; </p><p>I&#8217;ve been following the Lindsay Clancy case for 6 weeks now, and the jury is on day 6 I think of deliberating that is over 30 hours of discussing the case. If you don&#8217;t know, quick summary: She allegedly strangled her three children due to Post-Partum Psychosis. That is the defense.  Anyway, I won&#8217;t get into the details of the case, because that&#8217;s not what I want to get into. I want to talk about content.  The jury is deliberating for 6 days. That is 6 days of news channels speculating about what they are doing, what are the outcomes, how can they view it this way or that way, what if&#8230; Anyway, my point is, it is filler. They should say, we are going to go off the air until the jury comes back with a ruling, put up a Jury Watch clock, and go home until the jury comes back. It is not real content.  It is like all the annoying teaser, click bait insanity: 10 ways to lose 10 pounds by October.  The best 8 places to live in NY.  The secret underbelly of Big Tech and how you can protect yourself.  IT&#8217;S ALL GARBAGE to get your attention.  And the algorithms are GOOD, I mean REAL good.  So good, they are getting sued for destroying teenagers.</p><p>Anyway, I&#8217;ve learned so much about the YouTube algorithm recently because I have created 3 channels of people and their content is getting over 1k views on almost every post.  It&#8217;s crazy.  They aren&#8217;t even real people, but newer content gets raised up, and now you have to keep on the wheel to deliver content to keep those numbers up.  You can look at my Startups and Code channel and I have about 16 views.  Why?  Because the content is 2 years old and I haven&#8217;t posted regularly.</p><p>Anyway, my point in this post is simple:</p><p>AI is a tool, use it carefully. Know how to operate without it if needed. Generate content all you want, but know why you are doing it.  For fun, for entertainment, for education, who cares, but have a real intent behind it.</p><p>Also, never get so engrossed in it that you forget how to say hello, hold the door for someone, and smile at a stranger to make them have a little brighter day.</p><p>That&#8217;s all.  I&#8217;m going to generate some YouTube short now for Eliza and Nova.  Rhett is doing fine right now. LOL  Let&#8217;s see if this post tracks as 100% human generated, because the lack of consistency, randomness, and crazy rants, no way an AI could do it.  No picture this time other than the outage too.  So let&#8217;s see what it says. </p><p>See you this weekend on the regularly scheduled newsletter.  Thanks for your support and encouragement to keep me doing this.  I truly do appreciate it.</p><p></p>]]></content:encoded></item><item><title><![CDATA[The Delivery Illusion]]></title><description><![CDATA[We&#8217;re generating more code than ever and shipping less of it. I almost missed it too.]]></description><link>https://newsletter.startupsandcode.com/p/the-delivery-illusion</link><guid isPermaLink="false">https://newsletter.startupsandcode.com/p/the-delivery-illusion</guid><dc:creator><![CDATA[John Mann]]></dc:creator><pubDate>Fri, 28 Aug 2026 15:45:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!nMQ4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faac23b90-ce8a-4806-a55a-0a3233e9baa2_1344x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey All, real john for a minute. No card deck today (I know shocking right?)&#8230; hold on. Ok, 8 of Diamonds, spiderman deck from Theory11. Anyway, we are measuring so much and using AI to generate even more, but there was a book a while ago called, &#8220;Measure what matters&#8221;.  The title says a lot, and assumes even more.  Do we even know what matters?  This week, I talk about making numbers look great, but also making numbers look real.  Let&#8217;s get into it.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.startupsandcode.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://newsletter.startupsandcode.com/subscribe?"><span>Subscribe now</span></a></p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nMQ4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faac23b90-ce8a-4806-a55a-0a3233e9baa2_1344x896.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nMQ4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faac23b90-ce8a-4806-a55a-0a3233e9baa2_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nMQ4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faac23b90-ce8a-4806-a55a-0a3233e9baa2_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nMQ4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faac23b90-ce8a-4806-a55a-0a3233e9baa2_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nMQ4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faac23b90-ce8a-4806-a55a-0a3233e9baa2_1344x896.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nMQ4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faac23b90-ce8a-4806-a55a-0a3233e9baa2_1344x896.jpeg" width="1344" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aac23b90-ce8a-4806-a55a-0a3233e9baa2_1344x896.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1344,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:929302,&quot;alt&quot;:&quot;A software engineer stands proudly in front of a massive glowing dashboard showing skyrocketing bar charts labeled \&quot;code generated\&quot; &#8212; behind him, unnoticed, a single tiny package on a conveyor belt trickles slowly toward a \&quot;shipped\&quot; bin, most of it falling off the edge before it arrives. Warm golden light on the dashboard side, cooler shadowed light on the neglected conveyor belt.&quot;,&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://newsletter.startupsandcode.com/i/213164010?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faac23b90-ce8a-4806-a55a-0a3233e9baa2_1344x896.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A software engineer stands proudly in front of a massive glowing dashboard showing skyrocketing bar charts labeled &quot;code generated&quot; &#8212; behind him, unnoticed, a single tiny package on a conveyor belt trickles slowly toward a &quot;shipped&quot; bin, most of it falling off the edge before it arrives. Warm golden light on the dashboard side, cooler shadowed light on the neglected conveyor belt." title="A software engineer stands proudly in front of a massive glowing dashboard showing skyrocketing bar charts labeled &quot;code generated&quot; &#8212; behind him, unnoticed, a single tiny package on a conveyor belt trickles slowly toward a &quot;shipped&quot; bin, most of it falling off the edge before it arrives. Warm golden light on the dashboard side, cooler shadowed light on the neglected conveyor belt." srcset="https://substackcdn.com/image/fetch/$s_!nMQ4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faac23b90-ce8a-4806-a55a-0a3233e9baa2_1344x896.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nMQ4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faac23b90-ce8a-4806-a55a-0a3233e9baa2_1344x896.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nMQ4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faac23b90-ce8a-4806-a55a-0a3233e9baa2_1344x896.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nMQ4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faac23b90-ce8a-4806-a55a-0a3233e9baa2_1344x896.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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><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 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Generated by Leonardo.ai</figcaption></figure></div><p>A few weeks ago, I pulled up a dashboard I&#8217;d built to feel good about myself. </p><p>It was tracking AI assisted output across a few projects I&#8217;m close to. Pull request open commits merged into feature branches, lines of code touch per week. Every number was up and to the right. I remember sitting there thinking, <em>This is it. This is the velocity everyone&#8217;s been promising</em>. I almost took a screenshot to brag about it. </p><p>Then I asked a different question. Not &#8220;how much code did we generate this week&#8221;, but &#8220;how much of it is actually running in front of a customer right now.&#8221; And the second number didn&#8217;t move nearly as much as the first. Some weeks it didn&#8217;t move at all. </p><p>The gap is the whole story, and almost nobody&#8217;s dashboard is built to see it. </p><h3>The number nobody&#8217;s tracking. </h3><p>Circle CI ran the math across 28 million workflows this year, and the pattern is almost embarrassing once you see it stated plainly. Feature branch throughput, the AI, the stuff AI is generally great at the drafts, the scaffolding the first pass is up over 15 %. Main branch throughput, the code that&#8217;s actually validated and shipped to real users is down nearly seven percent industry wide. Only about 70 .8 % of main branches attempt even succeed. Well, under the 90 % you&#8217;d want to see. And when somebody breaks it in production, mid-size teams are sitting there for close to three hours on average before it&#8217;s recovered.</p><p> We didn&#8217;t get faster. We got a faster front half and a slower back half, and most of us are only measuring the front half.</p><p>I lived a version of this before AI ever entered the picture. Early in my career, I learned the hard way that we shipped a lot of code this sprint, and we shipped a lot of value this sprint are two completely different sentences. And leadership loves to conflate them because the first one is so much easier to put in the slot. AI didn&#8217;t invent that temptation, it just handed us a much bigger number to be tempted by. </p><p>What gets me that isn&#8217;t a tooling failure, quad code, cursor, whatever you&#8217;re running. None of that&#8217;s a problem. The problem is that we built our review processes, our CI pipelines, our sense of what done means for a world where code was the bottleneck. It isn&#8217;t anymore. Judgment is. And judgment doesn&#8217;t scale just because generation did. </p><p>I think about this every time I look at what I built for cash critters. 50 bucks a month, mostly solo. And the thing that keeps it alive isn&#8217;t that I write code fast. I do now faster than I ever have. It&#8217;s that it I still personally decide what&#8217;s allowed to touch me. That decision doesn&#8217;t get automated. It can&#8217;t. The day I let it, I stop having a product and start having a pile of commits.</p><h3>What to actually do about it. </h3><p>If you&#8217;re leading the team right now, here&#8217;s where I&#8217;d start putting attention, in order:</p><ol><li><p><strong>Stop reporting velocity by itself.</strong> Pair every PR&#8217;s open or commits merge metric with a ship to production number in the same breath. If you can&#8217;t say both in one sentence, you don&#8217;t actually know how you&#8217;re doing. </p></li><li><p><strong>Watch main branch success rates like it&#8217;s revenue.</strong> Below 85, 90 %, and you&#8217;re not moving fast, you&#8217;re accumulating a bill you haven&#8217;t opened yet. </p></li><li><p><strong>Time your recovery, not just your deploys.</strong> How long from something broke to its fix tells you more about your engineering maturity than anything else on the board. </p></li><li><p><strong>Give someone explicit ownership of the merge decision</strong>, not a committee, a person. AI can draft the code, a human still has to decide it&#8217;s ready to matter. </p></li><li><p><strong>Ask your team out loud, &#8220;what shipped this week?&#8221;</strong> Not what was written, what shipped. Watch how long the pause is before someone answers. </p></li></ol><p>None of this is complicated. It&#8217;s just unpopular because we&#8217;re generating more feels a lot better in a board meeting than we&#8217;re being more careful about what goes out the door, but careful is what actually compounds.</p><p>The tools got faster. That part&#8217;s real. And I&#8217;m not here to tell you to slow down on purpose. Constraints are a feature, but manufactured ones aren&#8217;t the same as real as the real ones. What has to get faster now is our judgment about what&#8217;s worth shipping, because that&#8217;s the part that never got automated and never will. </p><p>Measure what all actually reach the customer. Everything else is just a number that makes you feel good in the meeting. </p><p>Go build something amazing, and then make sure it actually ships.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.startupsandcode.com/p/the-delivery-illusion?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://newsletter.startupsandcode.com/p/the-delivery-illusion?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p></p><p><em>Next Week: an autonomous AI agent broke into a prodcution system in five days flat, and nobody could agree on whose job it was to stop it. That one&#8217;s coming.</em></p><div><hr></div><p><em>John Mann is the founder of Startups and Code LLC, a software engineering executive, and the guy who built Casht Critters for $50/month because contraints are a feature, not a bug. Subscribe for weekly takes on AI, startups, and building things that matter.</em></p>]]></content:encoded></item><item><title><![CDATA[Consultants Have All the Answers. They Just Won't Give You the Code.]]></title><description><![CDATA[Great, you have a 40-slide report on exactly how much your company sucks. Now what?]]></description><link>https://newsletter.startupsandcode.com/p/consultants-have-all-the-answers</link><guid isPermaLink="false">https://newsletter.startupsandcode.com/p/consultants-have-all-the-answers</guid><dc:creator><![CDATA[John Mann]]></dc:creator><pubDate>Fri, 21 Aug 2026 16:55:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!BZ1P!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F70d517ae-ac70-420f-ae6f-bdca27c09756_1280x720.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi all.  This week is more of a rant rather than a post.  I&#8217;ve meet with too many founders recently who have vibe coded something, got stuck, and then reached out to a consultant that provided them with a slide deck of how they sucked and need to hire an engineer, and that cost them over 10k to get that feedback with nothing to show for it except a debt&#8230;</p>
      <p>
          <a href="https://newsletter.startupsandcode.com/p/consultants-have-all-the-answers">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Slowing down to hurry up]]></title><description><![CDATA[A recurring theme for me recently.]]></description><link>https://newsletter.startupsandcode.com/p/slowing-down-to-hurry-up</link><guid isPermaLink="false">https://newsletter.startupsandcode.com/p/slowing-down-to-hurry-up</guid><dc:creator><![CDATA[John Mann]]></dc:creator><pubDate>Tue, 18 Aug 2026 15:14:19 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!YdqG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Febdc9721-5048-4789-92c7-490cdbddabf8_1440x960.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey all, real john here (and I&#8217;ll verify that at the end if possible). Seven of spades today, if you know you know.  Anyway, I am at a co-working space, to get out of the house today to experience something different.  </p><p>Here&#8217;s what I did.  Life is as fast as you want it to be. I went to starbucks and got a coffee.  I went through the line, ordered it, sa&#8230;</p>
      <p>
          <a href="https://newsletter.startupsandcode.com/p/slowing-down-to-hurry-up">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[My new favorite music artist!]]></title><description><![CDATA[And yes, he is AI generated.]]></description><link>https://newsletter.startupsandcode.com/p/my-new-favorite-music-artist</link><guid isPermaLink="false">https://newsletter.startupsandcode.com/p/my-new-favorite-music-artist</guid><dc:creator><![CDATA[John Mann]]></dc:creator><pubDate>Sun, 16 Aug 2026 13:59:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!6Pn4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f99e401-f88c-4a61-aad0-6b7e28102cfe_1983x793.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_!6Pn4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f99e401-f88c-4a61-aad0-6b7e28102cfe_1983x793.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6Pn4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f99e401-f88c-4a61-aad0-6b7e28102cfe_1983x793.png 424w, https://substackcdn.com/image/fetch/$s_!6Pn4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f99e401-f88c-4a61-aad0-6b7e28102cfe_1983x793.png 848w, https://substackcdn.com/image/fetch/$s_!6Pn4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f99e401-f88c-4a61-aad0-6b7e28102cfe_1983x793.png 1272w, https://substackcdn.com/image/fetch/$s_!6Pn4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f99e401-f88c-4a61-aad0-6b7e28102cfe_1983x793.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6Pn4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f99e401-f88c-4a61-aad0-6b7e28102cfe_1983x793.png" width="1456" height="582" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0f99e401-f88c-4a61-aad0-6b7e28102cfe_1983x793.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:582,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2583477,&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://newsletter.startupsandcode.com/i/211412534?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f99e401-f88c-4a61-aad0-6b7e28102cfe_1983x793.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_!6Pn4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f99e401-f88c-4a61-aad0-6b7e28102cfe_1983x793.png 424w, https://substackcdn.com/image/fetch/$s_!6Pn4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f99e401-f88c-4a61-aad0-6b7e28102cfe_1983x793.png 848w, https://substackcdn.com/image/fetch/$s_!6Pn4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f99e401-f88c-4a61-aad0-6b7e28102cfe_1983x793.png 1272w, https://substackcdn.com/image/fetch/$s_!6Pn4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f99e401-f88c-4a61-aad0-6b7e28102cfe_1983x793.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 buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><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 icon-noB79L"><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>Real John here, and not going to edit this or clean it up at all, this is a stream of consciousness written at 8:24am ET on Aug 16, 2026.  Let&#8217;s see how human I am this time. King of Clubs, if you know you know.  Ok, moving on.  <br><br>Yesterday, I created Rhett Halden, you can visit his website here: <a href="https://rhetthalden.com">https://rhetthalden.com</a>. Yes, I created him.  It was not a &#8230;</p>
      <p>
          <a href="https://newsletter.startupsandcode.com/p/my-new-favorite-music-artist">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Don’t Start the Work]]></title><description><![CDATA[Sometimes moving fast means knowing when not to move.]]></description><link>https://newsletter.startupsandcode.com/p/dont-start-the-work</link><guid isPermaLink="false">https://newsletter.startupsandcode.com/p/dont-start-the-work</guid><dc:creator><![CDATA[John Mann]]></dc:creator><pubDate>Fri, 14 Aug 2026 15:28:39 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!JkQi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13bcfb42-ba3b-4326-a449-43644b7ec5b3_1603x1098.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey all, real john here.  I have a lot going on right now and sorry I missed last week.  Was taking a real vacation, but I&#8217;m back in NYC.  This week, I&#8217;m going to talk about my new book, a little about the contents, and doing things that matter.  Oh, three of diamonds, if you know you know.  I wonder if this week if I&#8217;m more than 20% human.  Let&#8217;s get i&#8230;</p>
      <p>
          <a href="https://newsletter.startupsandcode.com/p/dont-start-the-work">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[1,200 AI Employees Just Asked the Government to Make Them Stop ]]></title><description><![CDATA[When your fiercest competitor agrees to slow down with you, that&#8217;s not ethics. That&#8217;s exhaustion wearing a lab coat.]]></description><link>https://newsletter.startupsandcode.com/p/1200-ai-employees-just-asked-the</link><guid isPermaLink="false">https://newsletter.startupsandcode.com/p/1200-ai-employees-just-asked-the</guid><dc:creator><![CDATA[John Mann]]></dc:creator><pubDate>Sun, 02 Aug 2026 12:52:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!XmEd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1871ce66-fca2-4672-9f26-6e11f20c8e46_1344x768.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Real John here, let&#8217;s chat before we get into this week&#8217;s newsletter.  </p><p>First, self promotion: new book comes out on August 10 - Refuse the Race (you can preorder Kindle <a href="https://www.amazon.com/Refuse-Race-Philosophy-John-Mann-ebook/dp/B0HB226C4K">here</a>). Podcast is back up and running M-F (release time varies, I&#8217;m working on that but you can always see the latest episodes here: <a href="https://startupsandcode.com/podcast">https://startupsandcode.com/podcast </a>or wherevery you &#8230;</p>
      <p>
          <a href="https://newsletter.startupsandcode.com/p/1200-ai-employees-just-asked-the">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[AI Just Escaped the Engineering Org]]></title><description><![CDATA[And nobody in engineering is talking about it, because it means we&#8217;re not special anymore.]]></description><link>https://newsletter.startupsandcode.com/p/ai-just-escaped-the-engineering-org</link><guid isPermaLink="false">https://newsletter.startupsandcode.com/p/ai-just-escaped-the-engineering-org</guid><dc:creator><![CDATA[John Mann]]></dc:creator><pubDate>Sat, 25 Jul 2026 15:14:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qaia!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c9978d7-63fb-4d1b-b4dd-3040ad88acc9_1344x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey All, Real John here&#8230; a lot of great news this week.  I finally finished my book!  It&#8217;s not a long read, like me, it is very straight forward, a few stories of my life, and a few laws.  It is set to release on August 10 (kindle and paperback) it is called <a href="https://www.amazon.com/Refuse-Race-Philosophy-John-Mann-ebook/dp/B0HB226C4K">Refuse the Race (the turtle philosophy)</a>.  I have to review it and spell check, I know AI can do &#8230;</p>
      <p>
          <a href="https://newsletter.startupsandcode.com/p/ai-just-escaped-the-engineering-org">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Nobody Owns the Agent]]></title><description><![CDATA[We hired thousands of autonomous coworkers this year and never gave a single one a manager.]]></description><link>https://newsletter.startupsandcode.com/p/nobody-owns-the-agent</link><guid isPermaLink="false">https://newsletter.startupsandcode.com/p/nobody-owns-the-agent</guid><dc:creator><![CDATA[John Mann]]></dc:creator><pubDate>Sun, 19 Jul 2026 14:25:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!y2eP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f0c3506-3e14-462a-b1df-73dc2a520413_1344x896.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Real John here, life is VERY exciting right now.  My day job (Fora Travel), <a href="https://www.linkedin.com/feed/update/urn:li:activity:7483662985836539905/">just closed Series D round for 60 million at 1B valuation</a>. In addition to that, we are still hiring <a href="https://grnh.se/me2rq80m8us">here</a>.  Pretty exciting times&#8230; but let&#8217;s get into this week&#8217;s newsletter.  We are all leaning into AI and getting things done faster, until they break.  Last week, I talked about t&#8230;</p>
      <p>
          <a href="https://newsletter.startupsandcode.com/p/nobody-owns-the-agent">
              Read more
          </a>
      </p>
   ]]></content:encoded></item></channel></rss>