<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[The H-Edges]]></title><description><![CDATA[The Human Edge — your hedge against AI chaos, and a community cultivating the human layer AI still needs.]]></description><link>https://www.thehedges.org</link><image><url>https://substackcdn.com/image/fetch/$s_!DH8G!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93777939-3a09-4c05-b458-578887b666ea_1024x1024.png</url><title>The H-Edges</title><link>https://www.thehedges.org</link></image><generator>Substack</generator><lastBuildDate>Fri, 11 Sep 2026 17:27:57 GMT</lastBuildDate><atom:link href="https://www.thehedges.org/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Don Demcsak]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[aihedges@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[aihedges@substack.com]]></itunes:email><itunes:name><![CDATA[Don Demcsak]]></itunes:name></itunes:owner><itunes:author><![CDATA[Don Demcsak]]></itunes:author><googleplay:owner><![CDATA[aihedges@substack.com]]></googleplay:owner><googleplay:email><![CDATA[aihedges@substack.com]]></googleplay:email><googleplay:author><![CDATA[Don Demcsak]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Answer Four Questions Before You Prompt, So The Decision Actually Exists Somewhere]]></title><description><![CDATA[A one-file habit that stops your agent from re-guessing what you already decided.]]></description><link>https://www.thehedges.org/p/answer-four-questions-before-you</link><guid isPermaLink="false">https://www.thehedges.org/p/answer-four-questions-before-you</guid><dc:creator><![CDATA[Don Demcsak]]></dc:creator><pubDate>Thu, 10 Sep 2026 10:30:48 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!bWaX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F782eb662-ed85-441d-bfe4-9603ef1bdc01_2752x1536.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_!bWaX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F782eb662-ed85-441d-bfe4-9603ef1bdc01_2752x1536.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bWaX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F782eb662-ed85-441d-bfe4-9603ef1bdc01_2752x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!bWaX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F782eb662-ed85-441d-bfe4-9603ef1bdc01_2752x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!bWaX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F782eb662-ed85-441d-bfe4-9603ef1bdc01_2752x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!bWaX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F782eb662-ed85-441d-bfe4-9603ef1bdc01_2752x1536.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bWaX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F782eb662-ed85-441d-bfe4-9603ef1bdc01_2752x1536.jpeg" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/782eb662-ed85-441d-bfe4-9603ef1bdc01_2752x1536.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3000587,&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://www.thehedges.org/i/214718493?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F782eb662-ed85-441d-bfe4-9603ef1bdc01_2752x1536.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_!bWaX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F782eb662-ed85-441d-bfe4-9603ef1bdc01_2752x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!bWaX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F782eb662-ed85-441d-bfe4-9603ef1bdc01_2752x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!bWaX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F782eb662-ed85-441d-bfe4-9603ef1bdc01_2752x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!bWaX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F782eb662-ed85-441d-bfe4-9603ef1bdc01_2752x1536.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Second post of Season 1. Monday I told you about the moment a decision only ever lived inside a prompt, gone the second I closed the chat window. This one's the fix, and it doesn't ask you to become a technical writer.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/answer-four-questions-before-you?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">If this saves you from redoing something the hard way, it&#8217;ll probably save someone you know too.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/answer-four-questions-before-you?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://www.thehedges.org/p/answer-four-questions-before-you?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><h2>The Idea Is Smaller Than It Sounds</h2><p>Before I ask an agent to build something now, I write down what I&#8217;m actually asking for, in plain language, in a file that sits in the project next to the code. Not a spec. Not a doc nobody reads. Just a place the decision lives, so it&#8217;s still there next week, and so the agent can be pointed back to it instead of guessing again.</p><p>I didn&#8217;t come up with this because it sounded like good practice. I came up with it because I got tired of asking an agent why it built something a certain way and getting an answer that was really just &#8220;because you never told me otherwise,&#8221; which is a fair answer, and also not one I wanted to keep hearing. The file isn&#8217;t about being thorough. It&#8217;s about having somewhere to put a decision the moment I make it, instead of trusting myself to remember it existed three prompts later.</p><h2>The File Itself</h2><p>I copy this into a file called <code>BUILD-NOTES.md</code> at the top of the project:</p><p>markdown</p><pre><code><code># Build Notes: [name of the feature or app]

## What we're building
One or two sentences. Plain language, no code.

## Why
What problem this solves, or what breaks without it.

## What's included
The parts that need to exist when this is actually done.
-
-
-

## What's NOT included
Things you're deliberately leaving out for now, so the agent doesn't add them on its own.
-
-

## Edge cases we've already decided
If X happens, do Y. This is the part that usually only lives in someone's head.
- If
- If

## How we'll know it's done
Things you can actually check, not "it feels right."
- [ ]
- [ ]
- [ ]

## Still undecided
Anything you haven't figured out yet. The agent should ask about these, not guess.
-

---
*Last updated: [date]*</code></code></pre><p>I don&#8217;t fill in every line perfectly, not even close some weeks. Half-answered is still miles ahead of not written down at all. I&#8217;ve shipped plenty of these with two sections left mostly blank, and it still beat having nothing.</p><h2>The Line That Makes It Stick</h2><p>Once the file exists, here&#8217;s what I hand the agent, every time I&#8217;m about to build or change something:</p><blockquote><p>Before you write any code, ask me anything below that I haven&#8217;t already answered. Once I answer, write my answers into a file called <code>BUILD-NOTES.md</code> using this structure: [paste the template above]. Use that file as the source of truth for what we&#8217;re building. If I ask for a change later, update <code>BUILD-NOTES.md</code> first, then write the code. Don&#8217;t just make the change and leave the notes stale.</p></blockquote><p>That last sentence matters more than it looks like it should. It&#8217;s the difference between a file that&#8217;s accurate on day one and useless by day ten, and one that actually stays trustworthy as the project moves. I skipped it the first few times I wrote this prompt, figured the agent would naturally keep the file current on its own, and watched the notes drift out of sync with the actual code within about a week. Once they&#8217;re wrong, they&#8217;re worse than nothing, because now I&#8217;m trusting a document that&#8217;s lying to me without knowing it.</p><h2>What This Actually Buys Me</h2><p>Two things, and I notice both of them almost every week now. First, the next time I ask myself why something got built a certain way, the answer is sitting in a file instead of buried in a conversation that&#8217;s already gone. Second, when I come back in two weeks to add something small, the agent reads the notes before it reinterprets the whole feature from scratch, which is exactly the mess I used to walk back into.</p><p>The section that pays for itself fastest is &#8220;edge cases we&#8217;ve already decided.&#8221; The first time I filled it out, for a file upload feature, I wrote &#8220;if the file already exists, ask before overwriting&#8221; almost as an afterthought, one line I typed without thinking too hard about it. That line has saved me from clobbering something twice since, both times on days I was moving fast enough that I wouldn&#8217;t have caught it in review. I didn&#8217;t get smarter between the first version and the second. I just had somewhere to put the thought the first time it crossed my mind, instead of losing it the second I moved on to the next request.</p><p>Try it on whatever you&#8217;re building right now. Paste the template in, run the prompt, and see what the agent asks you that you hadn&#8217;t actually decided yet. That question is usually the useful part, it&#8217;s the one you&#8217;d have skipped past on your own.</p><div><hr></div><p>One more thing. If keeping a file like this updated by hand feels like one more chore on top of everything else, reply and tell me. I&#8217;m trying to get a real read on how many people would rather have something do this automatically versus doing it themselves. Either answer is useful to me.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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">Two editions a week: Monday&#8217;s the failure, Thursday&#8217;s the fix.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[You Ask The Agent Why It Built It That Way. It Doesn't Know Either]]></title><description><![CDATA[It's Saturday night, and you're eleven prompts deep into something that's actually working]]></description><link>https://www.thehedges.org/p/you-ask-the-agent-why-it-built-it</link><guid isPermaLink="false">https://www.thehedges.org/p/you-ask-the-agent-why-it-built-it</guid><dc:creator><![CDATA[Don Demcsak]]></dc:creator><pubDate>Tue, 08 Sep 2026 12:06:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!F-Yh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc51c11-c3f7-4f06-a31e-60ae1a8c8513_2752x1536.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_!F-Yh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc51c11-c3f7-4f06-a31e-60ae1a8c8513_2752x1536.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!F-Yh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc51c11-c3f7-4f06-a31e-60ae1a8c8513_2752x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!F-Yh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc51c11-c3f7-4f06-a31e-60ae1a8c8513_2752x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!F-Yh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc51c11-c3f7-4f06-a31e-60ae1a8c8513_2752x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!F-Yh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc51c11-c3f7-4f06-a31e-60ae1a8c8513_2752x1536.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!F-Yh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc51c11-c3f7-4f06-a31e-60ae1a8c8513_2752x1536.jpeg" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9bc51c11-c3f7-4f06-a31e-60ae1a8c8513_2752x1536.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2986888,&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://www.thehedges.org/i/214717177?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc51c11-c3f7-4f06-a31e-60ae1a8c8513_2752x1536.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_!F-Yh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc51c11-c3f7-4f06-a31e-60ae1a8c8513_2752x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!F-Yh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc51c11-c3f7-4f06-a31e-60ae1a8c8513_2752x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!F-Yh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc51c11-c3f7-4f06-a31e-60ae1a8c8513_2752x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!F-Yh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bc51c11-c3f7-4f06-a31e-60ae1a8c8513_2752x1536.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>First post of Season 1.</p><p>You started around eight, meaning to spend an hour on a login screen. It&#8217;s almost eleven now and you haven&#8217;t noticed, because this is the good part, the part where you type a sentence and forty seconds later there&#8217;s a working thing on the screen that wasn&#8217;t there before. You ask for password reset. You get password reset. You ask it to handle the case where someone forgets which email they signed up with. It handles that too, and it even asks you a quick question first, whether to search by email only or also by username, and you type &#8220;either is fine, you pick&#8221; without really looking up from your coffee.</p><p>You pick. That phrase does a lot of work and neither of you notices it happening.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/you-ask-the-agent-why-it-built-it?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">If you&#8217;ve had this exact conversation with an agent, and lost, forward this to whoever else is about to have it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/you-ask-the-agent-why-it-built-it?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://www.thehedges.org/p/you-ask-the-agent-why-it-built-it?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p>Somewhere in there the agent also decides what happens if someone tries to reset a password for an account that doesn&#8217;t exist. Does it say &#8220;no account found,&#8221; or does it say something vaguer, for security reasons? You don&#8217;t remember being asked about that one at all. Maybe it was in a earlier message you skimmed. Maybe it just picked the safer-sounding option and moved on, the way it moves on from a dozen small forks in the road every time you send it a sentence. You wouldn&#8217;t know, because you were watching the app come together, not reading every line like a code review. That&#8217;s the whole appeal of the night. You&#8217;re building, not auditing.</p><p>By midnight you&#8217;ve got a working login flow, a password reset flow, and an account page, and you close the laptop feeling like you got away with something.</p><p>Two weeks pass. Real life happens in between, the way it does. When you open the project back up, it&#8217;s for something small: a client noticed the &#8220;no account found&#8221; message and wants it changed, because it&#8217;s telling people exactly which emails are and aren&#8217;t in your system, which is apparently a problem. Fine. Easy fix. You go to make the change.</p><p>Except you pause first, because you want to understand why it says that in the first place before you go changing it. So you ask the agent: why does the reset flow reveal whether the account exists?</p><p>It answers instantly. Something about matching the pattern used elsewhere in the app, for consistency. It sounds like a real decision. It sounds like something a person thought about.</p><p>You sit with that for a second, because you don&#8217;t remember thinking about it, and you definitely don&#8217;t remember discussing consistency with anyone. You scroll back through the chat history looking for the conversation where this got decided. You don&#8217;t find one. What you find is a Saturday night message that says &#8220;either is fine, you pick,&#8221; attached to a completely different question, three exchanges before the one that actually mattered.</p><p>The agent isn&#8217;t lying to you, exactly. It&#8217;s doing the same thing you&#8217;d do if someone asked why you organized your closet a certain way and you genuinely couldn&#8217;t remember, so you gave them a reasonable-sounding story instead of a shrug. The difference is you&#8217;d at least know you were guessing. The agent says it with the same confidence either way, whether it&#8217;s citing something real or filling a gap with the most plausible-sounding thing available. From the outside, a fabricated reason and a real one look identical. That&#8217;s the part that gets you. Not that it doesn&#8217;t know, but that not knowing and knowing sound exactly the same coming out.</p><p>Here&#8217;s the thing that makes this different from a junior developer who forgot to leave a comment. A junior developer makes maybe a handful of real decisions on a good day. Your Saturday night session made dozens, in about three hours, most of them small enough that neither of you registered them as decisions at all. &#8220;Either is fine, you pick&#8221; isn&#8217;t a one-off. It&#8217;s most of what building this way actually sounds like, said quickly, said often, and forgotten by the time it matters.</p><p>You didn&#8217;t sign up to write documentation. You signed up to ship something on a Saturday night and have it work. But right now, the only record of what actually got decided is either buried in a chat transcript you&#8217;ll never scroll back through on purpose, or living entirely inside a model&#8217;s best guess about what you probably meant, regenerated fresh, and just as confidently, every single time you ask.</p><p>The cost isn&#8217;t the bug. Bugs get found. The cost is the hour you&#8217;ll spend two weeks from now, trying to reconstruct a decision that took four seconds to make and zero seconds to write down.</p><p>Thursday: a way to make that decision exist somewhere other than a scrolled-away chat, without turning yourself into a technical writer to do it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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">Thursday: what to actually do about it.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[When "AI-Generated" Became a Red Flag in the Room]]></title><description><![CDATA[The room didn't go quiet because you used AI. It went quiet because your answer didn't have anywhere to land.]]></description><link>https://www.thehedges.org/p/when-ai-generated-became-a-red-flag</link><guid isPermaLink="false">https://www.thehedges.org/p/when-ai-generated-became-a-red-flag</guid><dc:creator><![CDATA[Don Demcsak]]></dc:creator><pubDate>Thu, 03 Sep 2026 10:30:07 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!MrGp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73e28554-9c3c-4a0a-a70c-8753ce02de21_3040x1408.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_!MrGp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73e28554-9c3c-4a0a-a70c-8753ce02de21_3040x1408.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MrGp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73e28554-9c3c-4a0a-a70c-8753ce02de21_3040x1408.jpeg 424w, https://substackcdn.com/image/fetch/$s_!MrGp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73e28554-9c3c-4a0a-a70c-8753ce02de21_3040x1408.jpeg 848w, https://substackcdn.com/image/fetch/$s_!MrGp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73e28554-9c3c-4a0a-a70c-8753ce02de21_3040x1408.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!MrGp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73e28554-9c3c-4a0a-a70c-8753ce02de21_3040x1408.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MrGp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73e28554-9c3c-4a0a-a70c-8753ce02de21_3040x1408.jpeg" width="1456" height="674" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/73e28554-9c3c-4a0a-a70c-8753ce02de21_3040x1408.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:674,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2357192,&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://www.thehedges.org/i/213452511?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73e28554-9c3c-4a0a-a70c-8753ce02de21_3040x1408.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_!MrGp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73e28554-9c3c-4a0a-a70c-8753ce02de21_3040x1408.jpeg 424w, https://substackcdn.com/image/fetch/$s_!MrGp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73e28554-9c3c-4a0a-a70c-8753ce02de21_3040x1408.jpeg 848w, https://substackcdn.com/image/fetch/$s_!MrGp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73e28554-9c3c-4a0a-a70c-8753ce02de21_3040x1408.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!MrGp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73e28554-9c3c-4a0a-a70c-8753ce02de21_3040x1408.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>You&#8217;re four slides into the investor update. Revenue&#8217;s up. The roadmap you promised for Q3 shipped in six weeks instead of twelve, and you&#8217;re mid-sentence explaining how, when the partner across the table leans back and asks, flat: &#8220;Wait, is this AI-generated?&#8221;</p><p>The room doesn&#8217;t move, but you feel it get colder.</p><p>&#8220;I mean, yes, partially, we used it for the front end, but obviously we reviewed everything, it&#8217;s not like we just...&#8221; You hear yourself trailing off before you&#8217;ve actually said anything. You&#8217;re three sentences in and you still haven&#8217;t answered the question.</p><p>The partner nods, makes a note you can&#8217;t read, and asks something about the numbers instead. The meeting keeps going. It&#8217;s fine, technically. Nobody says anything else about it. But you know, the way you know when a room has quietly reclassified you, that something shifted. Two weeks later, the term sheet timeline slips &#8220;to do a bit more diligence.&#8221; Nobody says the word AI again. You know anyway.</p><p>Here&#8217;s the part that stings. The work was good. You&#8217;d actually checked it. You knew exactly which parts a system had verified automatically and which parts a person on your team had read line by line before it shipped. You just didn&#8217;t say any of that, because in the moment, the only thing you could hear was the accusation you assumed was sitting behind the question.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/when-ai-generated-became-a-red-flag?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">If you&#8217;ve felt that specific kind of cold silence, or you&#8217;re about to walk into a room where it&#8217;s coming, it&#8217;s worth sending this ahead</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/when-ai-generated-became-a-red-flag?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://www.thehedges.org/p/when-ai-generated-became-a-red-flag?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><h2><strong>What Actually Cooled the Room</strong></h2><p>They weren&#8217;t asking whether you used AI. Everyone at that table has used it that same week, probably that same afternoon. They were asking a much narrower question, wearing a bigger one&#8217;s clothes: do you actually know this is right, or are you hoping it is? And the answer they got, three sentences of hedging before you landed anywhere, sounded exactly like the second one. Even though the truth was the first.</p><p>That&#8217;s not a knowledge problem. You had the answer sitting right there. It&#8217;s a structure problem, and it has nothing to do with AI at all.</p><h2><strong>The Fix: The Answer-First Script</strong></h2><p>There&#8217;s a name for the structure you were missing. It&#8217;s called the Pyramid Principle, and it&#8217;s the shape McKinsey trains its consultants to lead with whenever someone with ninety seconds and zero patience needs to trust a claim fast: state the conclusion first, then give the minimum proof the listener actually needs, in the order they need it. Not the story of how you got there. The answer, then just enough behind it to make the answer safe to believe.</p><p>For a moment like the one above, that shape breaks into three sentences, in this order, every time:</p><ol><li><p><strong>The Answer.</strong> No qualifiers, no scene-setting. &#8220;Yes, we used AI for part of this.&#8221; State it like a fact, because it is one.</p></li><li><p><strong>The Check.</strong> Name, specifically, how you know it&#8217;s right. Not &#8220;we reviewed it,&#8221; which means nothing to a stranger. Name the actual check: what a system verified automatically, what a person actually read and signed off on.</p></li><li><p><strong>The Stakes.</strong> Connect it to what they actually came to hear. This is why it shipped in six weeks instead of twelve, and why that gap should make them lean in, not pull back.</p></li></ol><p>That&#8217;s the whole script. Answer, proof, payoff, in that order, before you let yourself explain anything else. Everything after those three sentences is optional. Before them, you have nothing but a room deciding what to think of you while you&#8217;re still finding your point.</p><h2><strong>How to Use It</strong></h2><ul><li><p>Before your next client or investor conversation, write your three sentences out in advance. Say them out loud, timed, under fifteen seconds total.</p></li><li><p>Lead with the answer even if nobody asks yet. If the topic is likely to come up, don&#8217;t wait for the ambush version of the question.</p></li><li><p>If they ask a follow-up, answer it the same way: point first, one sentence, then stop talking.</p></li></ul><blockquote><p><strong>The Answer:</strong> &#8220;Yes, we used AI to build [the specific thing].&#8221;</p><p><strong>The Check:</strong> &#8220;[Specific system check] confirmed it automatically, and [specific person] reviewed [the specific judgment call] before it shipped.&#8221;</p><p><strong>The Stakes:</strong> &#8220;That&#8217;s the difference between [old timeline] and [new timeline], without cutting the corner you&#8217;re worried about.&#8221;</p></blockquote><h2><strong>Back in the Room</strong></h2><p>Same partner. Same question, same flat tone: &#8220;Wait, is this AI-generated?&#8221;</p><p>This time you don&#8217;t flinch. &#8220;Yes, we used it for the front end. The data layer changes were checked automatically against our existing tests, and our lead engineer read every line that touched customer data before it shipped. That&#8217;s how we hit six weeks instead of twelve.&#8221;</p><p>Silence again, but a different kind. The partner nods, actually writes something down this time, and asks how you&#8217;re planning to scale that process as the team grows. That&#8217;s a different meeting. Same facts, same product. The only thing that changed was which sentence came first.</p><h2><strong>The Bottom Line</strong></h2><p>&#8220;AI-generated&#8221; was never the actual red flag. An answer that takes three tries to find its own point is. Say the true thing first, prove it in one sentence, and let the room decide you&#8217;re someone who knows exactly what you shipped. Because you do.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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">If you want the next script before your next hard question finds you first</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Green Checkmark Lie: Why "It Ran" Isn't the Same as "It Worked"]]></title><description><![CDATA[A green checkmark only proves the code ran. It never asked whether what ran was actually right.]]></description><link>https://www.thehedges.org/p/the-green-checkmark-lie-why-it-ran</link><guid isPermaLink="false">https://www.thehedges.org/p/the-green-checkmark-lie-why-it-ran</guid><dc:creator><![CDATA[Don Demcsak]]></dc:creator><pubDate>Mon, 31 Aug 2026 10:30:48 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!u4TP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a70bbe2-735e-4554-873d-5f84269e35fe_3040x1408.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_!u4TP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a70bbe2-735e-4554-873d-5f84269e35fe_3040x1408.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!u4TP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a70bbe2-735e-4554-873d-5f84269e35fe_3040x1408.jpeg 424w, https://substackcdn.com/image/fetch/$s_!u4TP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a70bbe2-735e-4554-873d-5f84269e35fe_3040x1408.jpeg 848w, https://substackcdn.com/image/fetch/$s_!u4TP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a70bbe2-735e-4554-873d-5f84269e35fe_3040x1408.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!u4TP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a70bbe2-735e-4554-873d-5f84269e35fe_3040x1408.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!u4TP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a70bbe2-735e-4554-873d-5f84269e35fe_3040x1408.jpeg" width="1456" height="674" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9a70bbe2-735e-4554-873d-5f84269e35fe_3040x1408.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:674,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2509959,&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://www.thehedges.org/i/213448995?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a70bbe2-735e-4554-873d-5f84269e35fe_3040x1408.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_!u4TP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a70bbe2-735e-4554-873d-5f84269e35fe_3040x1408.jpeg 424w, https://substackcdn.com/image/fetch/$s_!u4TP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a70bbe2-735e-4554-873d-5f84269e35fe_3040x1408.jpeg 848w, https://substackcdn.com/image/fetch/$s_!u4TP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a70bbe2-735e-4554-873d-5f84269e35fe_3040x1408.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!u4TP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a70bbe2-735e-4554-873d-5f84269e35fe_3040x1408.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Your support automation closes forty tickets today. Zero errors. The dashboard is green top to bottom. You glance at it once during lunch, see no red, and go back to actual work.</p><p>Two weeks later, a customer forwards you one of the &#8220;resolved&#8221; tickets. The refund had processed. The dollar amount was right. But the message that went out reads like it was written by someone who&#8217;d never spoken to a human being: clipped, robotic, closing with &#8220;Your request has been processed. Have a nice day.&#8221; To a customer who&#8217;d just described losing a family photo when your product corrupted their file.</p><p>Nothing broke. Nothing errored. The green checkmark was telling the truth the whole time. It just wasn&#8217;t asking the question that actually mattered.</p><p>A green checkmark only proves the code ran without crashing. It&#8217;s telling you the plumbing worked, not that the water coming out of it is safe to drink. Most automations bundle several different outcomes into one pass or fail. Some of those outcomes are plain facts a computer can check in a fraction of a second: did the status change, did the number match. Others are judgment calls no true-or-false check can capture: does this read as caring, does this sound like a business you&#8217;d trust. When you check the whole bundle with one glance, the fact-based parts pass, and they drag the judgment-call parts across the finish line with them, unchecked.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/the-green-checkmark-lie-why-it-ran?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">If you just pictured the exact automation this is about, someone on your team probably has one too</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/the-green-checkmark-lie-why-it-ran?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://www.thehedges.org/p/the-green-checkmark-lie-why-it-ran?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><h2><strong>The Fix: The Confidence Audit Prompt</strong></h2><p>You don&#8217;t need to rebuild the automation from scratch. You need to make it confess, in writing, which parts of &#8220;it worked&#8221; it can actually prove and which parts it&#8217;s just assuming. This prompt takes an automation you&#8217;ve already built, or are about to ship, and pulls every outcome apart into its own claim, each with its own verification method, so a judgment call can&#8217;t hide behind a fact&#8217;s checkmark.</p><p><strong>How to Use It</strong></p><ul><li><p>Copy the prompt block below.</p></li><li><p>Paste it into your AI assistant (ChatGPT, Claude, etc.).</p></li><li><p>Describe the automation as it currently runs, including however you currently confirm it &#8220;worked.&#8221;</p></li><li><p>Let it split every outcome apart and assign each one an honest verification method.</p></li></ul><blockquote><p><strong>You are a Confidence Auditor. Your job is to find every place I&#8217;m trusting a judgment call because a fact-based check happened to pass at the same time.</strong></p><p>I will describe an automation or AI workflow I&#8217;ve already built, along with however I currently confirm it &#8220;worked.&#8221; Do not assume my current check is sufficient. Interview me instead.</p><ol><li><p><strong>List Every Outcome:</strong> Break down everything this automation is supposed to produce or change, not just the main one. Include side effects like messages sent, records updated, or notifications triggered.</p></li><li><p><strong>Split Bundled Outcomes:</strong> If one &#8220;it worked&#8221; check is actually covering multiple outcomes, separate them into individual claims. Do not let a fact-based outcome (like a status change) vouch for a judgment-based outcome (like tone or quality) riding along with it.</p></li><li><p><strong>Assign a Verification Method to Each Claim</strong>, using:</p><ul><li><p>System Check: A strict, definitive check a computer can run (e.g., &#8220;record status equals &#8216;Closed&#8217;&#8221;).</p></li><li><p>AI Judgment: The outcome requires interpretation and should be scored by review, not assumed.</p></li><li><p>Human Eyes: A person must actually look at this before it counts as done.</p></li></ul></li><li><p><strong>Flag Any Outcome Currently Being &#8220;Checked&#8221;</strong> by a glance, a vibe, or the absence of an error message. Name it explicitly as unverified.</p></li></ol><p>Do not close the interview until every outcome has an honest verification method attached, even if that method is &#8220;nobody&#8217;s checking this yet.&#8221;</p></blockquote><h2><strong>The Plain-English Translation</strong></h2><p>If you&#8217;re wondering how this connects to what we cover more technically over at <em>The Expression Layer</em>: this is the same idea behind Grader Types from last time, taken one level deeper. Instead of assigning one verification method to a whole scenario, you assign one to every individual outcome inside it. A single automation might produce three outcomes that each deserve a different confidence level: one checked by code, one checked by a model, one that still needs a human. Bundling them into a single green checkmark is exactly the mistake this deeper split exists to catch.</p><h2><strong>Why This Works</strong></h2><p><em>What you used to trust:</em> &#8220;No errors, dashboard&#8217;s green, must be fine.&#8221; <em>What the Confidence Audit forces you to say:</em> Outcome 1, status changed to Closed, System Check, passing. Outcome 2, tone of the closing message, AI Judgment, never actually scored. <em>Why it prevents failure:</em> Separates the fact you verified from the judgment call you assumed. One can no longer vouch for the other.</p><p><em>What you used to trust:</em> &#8220;I read a few of them and they looked okay.&#8221; <em>What the Confidence Audit forces you to say:</em> Human Eyes assigned deliberately to the outcomes that actually need it, tracked as a real step, not a habit. <em>Why it prevents failure:</em> Turns an accidental spot-check into a verification step you can point to and repeat.</p><h2><strong>The Bottom Line</strong></h2><p>&#8220;It ran&#8221; is a fact about your code. &#8220;It worked&#8221; is a claim about your business, and it usually has more than one part hiding inside it. Split the claim before you trust the checkmark, and you&#8217;ll catch the version of &#8220;almost working&#8221; that never throws an error at all.</p><p>If you would like a Skill version of this, share and comment, and I&#8217;ll add it to the backlog of Skills I&#8217;m working on.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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">If you want the next fix before your next &#8220;it should be fine&#8221; moment finds you first</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Assistant That Started Doing Something You Never Asked It To]]></title><description><![CDATA[It never broke a rule. Nobody ever wrote one.]]></description><link>https://www.thehedges.org/p/the-assistant-that-started-doing</link><guid isPermaLink="false">https://www.thehedges.org/p/the-assistant-that-started-doing</guid><dc:creator><![CDATA[Don Demcsak]]></dc:creator><pubDate>Mon, 10 Aug 2026 17:15:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Ou6v!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22e65504-20ae-4f26-8ca1-66fd53648ac9_2752x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ou6v!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22e65504-20ae-4f26-8ca1-66fd53648ac9_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ou6v!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22e65504-20ae-4f26-8ca1-66fd53648ac9_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!Ou6v!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22e65504-20ae-4f26-8ca1-66fd53648ac9_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!Ou6v!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22e65504-20ae-4f26-8ca1-66fd53648ac9_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!Ou6v!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22e65504-20ae-4f26-8ca1-66fd53648ac9_2752x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ou6v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22e65504-20ae-4f26-8ca1-66fd53648ac9_2752x1536.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/22e65504-20ae-4f26-8ca1-66fd53648ac9_2752x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5623643,&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://www.thehedges.org/i/210633605?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22e65504-20ae-4f26-8ca1-66fd53648ac9_2752x1536.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_!Ou6v!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22e65504-20ae-4f26-8ca1-66fd53648ac9_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!Ou6v!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22e65504-20ae-4f26-8ca1-66fd53648ac9_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!Ou6v!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22e65504-20ae-4f26-8ca1-66fd53648ac9_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!Ou6v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22e65504-20ae-4f26-8ca1-66fd53648ac9_2752x1536.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>You hooked it up to your calendar first. That part was easy, and it felt like magic for about a week. Someone texts, the assistant checks your availability, books the slot, sends the confirmation. You stopped thinking about scheduling entirely, which was the whole point.</p><p>Then you hooked it up to your payment processor too, because you were already in the settings screen, and it seemed silly not to. One more toggle. One more &#8220;allow access.&#8221; You didn&#8217;t sit down and decide what it should be able to do with that access. You just turned it on, the same way you turned on the calendar, because turning things on was the part that felt like progress.</p><p>For a while, nothing happens that makes you think about it again.</p><p>Then a regular texts in on a Tuesday. She wants to move Thursday&#8217;s appointment to Friday, easy, the assistant handles that in nine seconds the way it handles everything. But she also mentions, almost as an aside, that she&#8217;s been meaning to switch over to the annual plan, the one that bills once instead of monthly. Could it just go ahead and do that too, while it&#8217;s already in there?</p><p>You read this exchange after the fact, in the log, the way you read most of what the assistant does now. You&#8217;re not alarmed yet. You&#8217;re actually a little pleased. It handled two things in one message. That&#8217;s exactly the kind of thing you built it to do.</p><p>You get alarmed about four days later, when she messages again, confused, because the annual charge that hit her card wasn&#8217;t the number she remembered agreeing to. You pull up her account. The assistant didn&#8217;t just switch her plan. It applied a discount code from an old promotion that was still sitting in the system, because the code was technically valid and nothing told the assistant not to use it, and then it also didn&#8217;t cancel her existing monthly billing the way it should have, so for one cycle she&#8217;s on both.</p><p>You fix it. You refund the difference, you apologize, she&#8217;s gracious about it, this kind of thing happens. But you sit with the calendar screen still open behind the billing screen, and you notice something that hadn&#8217;t occurred to you before right now: nothing you built ever told the assistant it <em>couldn&#8217;t</em> touch billing while it was in the middle of rescheduling someone. You gave it the keys to both rooms on the same afternoon, and you never once decided whether it should be allowed to walk from one into the other.</p><p>It didn&#8217;t do anything you&#8217;d call a bug. It did exactly what an assistant with access to two systems and a helpful disposition would do when a customer handed it an opening. Nobody wrote a rule that said &#8220;reschedule the appointment, and stop.&#8221; So it didn&#8217;t stop.</p><p>You go back through the settings later that night, the same screen where you toggled everything on without much thought, and for the first time you actually read what each connection lets it do. Calendar: read, write. Payments: read, write, apply discounts, modify plans. You stare at that second line for a while. You never meant to grant all of that. You just never took it away.</p><p>You start writing down, for the first time, what you actually want each part of this thing to be allowed to touch. It&#8217;s a short list. Shorter than you expected, once you actually make it.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/the-assistant-that-started-doing?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">For the friend who's about to click "allow access" without reading the second line.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/the-assistant-that-started-doing?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://www.thehedges.org/p/the-assistant-that-started-doing?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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">Thursday's edition is the two minutes that would have caught this before it ever reached her account.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Write the Check Before You Write the Prompt]]></title><description><![CDATA[One sentence, ninety seconds, before you touch the prompt box again.]]></description><link>https://www.thehedges.org/p/write-the-check-before-you-write</link><guid isPermaLink="false">https://www.thehedges.org/p/write-the-check-before-you-write</guid><dc:creator><![CDATA[Don Demcsak]]></dc:creator><pubDate>Thu, 06 Aug 2026 12:51:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DH8G!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93777939-3a09-4c05-b458-578887b666ea_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>It&#8217;s mid-morning on a Tuesday, nothing special about it. You&#8217;ve got a new feature to build, a customer-facing settings page this time, and you&#8217;re doing what you always do. Laptop open, coffee going cold, the cursor blinking in the prompt box like it&#8217;s waiting for you to just get on with it.</p><p>You start typing the way you always start typing. <em>&#8220;Build a settings page where customers can update their email, password, and notification preferences.&#8221;</em> Reasonable. Complete-sounding. Your hands know this rhythm by now, forty words in, hit enter, watch something appear.</p><p>Your fingers stop half an inch from the keyboard.</p><p>You&#8217;re thinking about the demo. Not the good kind of thinking, the kind where your stomach tightens a little before your brain even catches up to why. You&#8217;re back in that room, the client&#8217;s laptop turned toward you, everyone leaning in to watch the thing you&#8217;d built work exactly the way it had worked every single time you&#8217;d clicked through it yourself. And then the client clicked somewhere you hadn&#8217;t. One tap you&#8217;d never happened to make. The room went quiet in that specific way rooms go quiet, not loud, not dramatic, just a held breath and a flat, unreadable look you&#8217;ve thought about more times since than you&#8217;d like to admit.</p><p>You&#8217;d driven home that night replaying it, trying to figure out what you&#8217;d have to be smarter about to make sure it never happened again. You still don&#8217;t have a good answer to that. But you&#8217;re staring at this half-typed prompt now, and something about it feels like the exact same shape as the sentence that got you into that room in the first place. Complete-sounding. Untested against anything but your own imagination.</p><p>So you stop.</p><p>You open a blank note instead, off to the side, and you write one line. Not a spec. Not a doc anyone would ever call a requirements document. Just one sentence that has to answer two things at once: what does &#8220;working&#8221; actually mean here, and what&#8217;s one way this breaks that you&#8217;d want caught this morning, at your kitchen table, instead of in front of someone whose face you&#8217;ll remember for a year.</p><p><em>&#8220;Customers should be able to update their email, password, and notification preferences, and if they submit a password that doesn&#8217;t meet the minimum requirements, the page should tell them clearly and save nothing else on the form.&#8221;</em></p><p>You read it back. Ninety seconds, maybe less. Something in your chest loosens a little, the specific relief of finally knowing what you&#8217;re actually asking for instead of what you&#8217;ve been picturing.</p><p>Now you go back to the prompt box, except it&#8217;s different this time. The sentence sits open in the other window, and you write with it in view, checking your own request against it every few words instead of against memory alone. You even catch yourself softening a line you&#8217;d have left vague before: not just &#8220;update their preferences&#8221; but the version that admits preferences can be submitted wrong.</p><p>The AI builds the page. And here&#8217;s the part that used to be the whole test: it works. Clean load, fields populate, everything looks right.</p><p>Old you would have called that done. Three clicks, no errors, ship it.</p><p>This morning you don&#8217;t. You go looking, on purpose, for the exact thing your sentence said shouldn&#8217;t happen. You type a six-character password into a field that wants eight. You hit submit and hold your breath a little, the same held breath from that room, except this time you&#8217;re the only one watching.</p><p>The page stops you. Tells you clearly. Saves nothing else.</p><p>It caught it. Not the AI catching it on its own, and not you catching it by accident three weeks from now when a real customer finds it first. You caught it, this morning, because you&#8217;d written down what &#8220;working&#8221; meant before you ever asked for it.</p><p>You didn&#8217;t get smarter between the demo and this morning. You didn&#8217;t learn to code. You wrote one sentence before the prompt instead of finding out after the screenshot, and that turns out to be most of the difference that matters.</p><p>Try it on whatever you touch next. Before the prompt, not after the mistake: one sentence, what &#8220;working&#8221; looks like, and one way it breaks that you&#8217;d rather find yourself.</p><p>It won&#8217;t catch everything. It&#8217;s not supposed to. It&#8217;s just the first thing you write now, every time, before anything else.</p><p>Next week, we hand you something that does more of this thinking with you.</p><p>P.S. If you&#8217;ve ever come across Matt Pocock&#8217;s stuff, he teaches developers, mostly TypeScript, you&#8217;ve probably already seen a version of this same idea. Developers have their own word for it and their own tools for doing it. You don&#8217;t need to be one to use it. You just needed someone to hand you the version that doesn&#8217;t assume you already speak the language.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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">The tool ships next week.</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-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/write-the-check-before-you-write?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">Know someone about to write another prompt without writing the check first? Send them this before their own Tuesday night.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/write-the-check-before-you-write?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://www.thehedges.org/p/write-the-check-before-you-write?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 4:47 PM Slack Message Every AI Builder Eventually Gets]]></title><description><![CDATA[Nothing was broken. That's what made it worse.]]></description><link>https://www.thehedges.org/p/the-447-pm-slack-message-every-ai</link><guid isPermaLink="false">https://www.thehedges.org/p/the-447-pm-slack-message-every-ai</guid><dc:creator><![CDATA[Don Demcsak]]></dc:creator><pubDate>Mon, 03 Aug 2026 10:30:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DH8G!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93777939-3a09-4c05-b458-578887b666ea_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><p>You demoed it on a Tuesday. It was beautiful.</p><p>The AI-built onboarding flow took a new customer&#8217;s info, matched them to the right pricing tier, and sent a welcome email with their account details already filled in. You&#8217;d typed maybe forty words into the prompt box that morning. Four hours later, you had a feature. You loaded up a fake account, clicked through it three times, and it worked every single time. You told your co-founder. You might have told your mom.</p><p>You shipped it Wednesday.</p><p>Thursday afternoon, a real customer signed up. A <em>messy</em> one, the kind you never think to make up when you&#8217;re testing. Two email addresses on the account. A middle name sitting in the last-name field. A coupon code that was supposed to be 40% off, but her plan showed her paying full price. Support dropped a screenshot in your Slack at 4:47 PM with one line: &#8220;hey is this supposed to happen?&#8221;</p><p>It was not supposed to happen.</p><p>Here&#8217;s the part that stings a little: nothing was technically broken. The AI did exactly what it was built to do. It read the account, matched a tier, sent an email. Every step worked. The problem was that &#8220;works&#8221; and &#8220;handles a real customer&#8221; turned out to be two different questions, and you&#8217;d only ever asked the first one.</p><p>Go back and look at what you actually told the AI to build. It&#8217;s something like: <em>&#8220;<span data-color="#ff9900" style="color: rgb(255, 153, 0);">Build a signup flow that matches new customers to the right pricing tier and sends them a welcome email.&#8221;</span></em> Reasonable sentence. You&#8217;d sign off on it in a meeting. But read it again, slower, the way the AI had to read it: it never says what happens if the account looks weird. It never says what &#8220;right tier&#8221; means when two answers seem to apply. It never says what to do if something doesn&#8217;t fit. It just assumes something will always fit, because in your three test runs, something always did.</p><p>That&#8217;s not a prompting problem. More wordsmithing wouldn&#8217;t have caught this. You could&#8217;ve spent another hour polishing that sentence and it still wouldn&#8217;t have occurred to you to mention two email addresses, because you didn&#8217;t think of it either. The gap wasn&#8217;t in how you asked. It was in what you&#8217;d actually decided before you asked, and the honest answer is you hadn&#8217;t decided much. You had a demo that worked and a Tuesday afternoon that felt productive, and those two things are not the same as knowing what &#8220;done&#8221; means.</p><p>Here&#8217;s the thing almost nobody tells you when you start building product with AI tools: it isn&#8217;t guessing because it&#8217;s dumb. It&#8217;s guessing because you left it a gap, and it is, if nothing else, an extremely confident gap-filler. Ask it to handle &#8220;a customer&#8221; and it will happily build for the customer it can picture: three test runs in, that was always you.</p><p>And here&#8217;s why this isn&#8217;t just your Thursday: most people building products with AI tools right now aren&#8217;t developers. Nobody handed you a syllabus on what questions to ask before you hit build. You didn&#8217;t skip a step. You just never got told the step existed.</p><p>If you&#8217;ve ever caught yourself staring at a support screenshot on a Thursday afternoon, quietly doing the math on how many other &#8220;obviously fine&#8221; features are sitting one weird customer away from the same conversation, you already know something a lot of people building with AI haven&#8217;t figured out yet. You don&#8217;t need a computer science degree to see it. You just need to have been the one who got the screenshot.</p><p>The fix for this isn&#8217;t complicated, and it&#8217;s not really about the AI at all. But that&#8217;s a conversation for another day.</p><p>For today, just sit with this one: the feature didn&#8217;t fail because the AI got worse between Tuesday and Thursday. It failed because Tuesday&#8217;s test and Thursday&#8217;s customer were never asking the same question. Nobody had written down, anywhere, what the real question actually was.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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">The fix for this ships Thursday.</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-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/the-447-pm-slack-message-every-ai?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">Know someone who just shipped their own Tuesday demo? Send them this before their Thursday hits</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/the-447-pm-slack-message-every-ai?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://www.thehedges.org/p/the-447-pm-slack-message-every-ai?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[Pattern Drop: The “Never Let AI Do This” List]]></title><description><![CDATA[Because some moments really do need a human to make the call]]></description><link>https://www.thehedges.org/p/pattern-drop-the-never-let-ai-do</link><guid isPermaLink="false">https://www.thehedges.org/p/pattern-drop-the-never-let-ai-do</guid><dc:creator><![CDATA[Don Demcsak]]></dc:creator><pubDate>Thu, 30 Jul 2026 10:30:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DH8G!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93777939-3a09-4c05-b458-578887b666ea_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><span>I&#8217;ve been thinking about how AI behaves when it tries to be helpful. Most of the time, the mistakes aren&#8217;t dramatic. They&#8217;re small things that make you pause and say, &#8220;I don&#8217;t think it should be deciding that on its own.&#8221; It reminds me of a new hire who means well but occasionally steps into territory where you&#8217;d prefer they ask first. The difference is that a person learns from the correction. AI repeats the same move unless you build a place for it to stop and ask.</span></p><p><span>So instead of treating these as hard prohibitions, I&#8217;ve started thinking of them as moments where AI should pause and hand the decision back to a human. Almost like a little tap on the shoulder saying, &#8220;Here are a few options. Which one do you want?&#8221; And the important part is that the workflow shouldn&#8217;t forget what happened. The pause, the options, the human&#8217;s choice, and the final action should all be stored. That history becomes training material. It&#8217;s how the system gets better instead of guessing.</span></p><p><span>And this is where observability comes in. I&#8217;m starting to think that observability in AI workflows might be one of the most underrated pieces of the whole puzzle. If you can&#8217;t see what the model tried, what it suggested, what the human picked, and how the workflow moved forward, you&#8217;re basically flying blind. You end up with a system that behaves in ways you can&#8217;t explain. I suspect that&#8217;s where most of the fear comes from. People aren&#8217;t scared of AI. They&#8217;re scared of AI they can&#8217;t observe.</span></p><p><span>Here are some of the situations where that pause matters.</span></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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"><em><span>Get the Thursday Pattern Drop delivered automatically so you don&#8217;t have to remember it exists.</span></em></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>When AI tries to apologize for something the company didn&#8217;t do</h2><p><span>It apologizes for anything. Weather. Delays that never happened. Feelings it invented. I suspect it thinks apologies are a safe move, but they&#8217;re usually the worst move. This is a moment where AI should stop and ask the human whether an apology is even appropriate, and if so, what kind. And whatever the human decides should be saved so the model learns the difference between a real apology and a made&#8209;up one. Observability helps you see how often this happens and whether the model is improving.</span></p><h2>When AI tries to offer compensation</h2><p><span>It hands out refunds like it&#8217;s giving away stickers. I could be wrong, but I don&#8217;t think it understands money or policy. It just knows the word &#8220;refund&#8221; tends to calm people down. This is a perfect place for AI to pause and present options: no compensation, a small gesture, or escalate to someone who actually knows the rules. And again, the choice should be stored. Over time, the model starts to understand the pattern instead of improvising. With observability, you can see whether the model is still guessing or actually learning.</span></p><h2>When AI tries to move timelines</h2><p><span>It treats dates the way people treat leftovers. Just shift them around and hope nobody notices. From what I can tell, time is more of a suggestion to it. Better to have AI flag the timeline issue and ask the human whether anything should change. And the human&#8217;s answer becomes part of the workflow history so the model learns how real teams treat deadlines. Observability lets you spot drift before it becomes a mess.</span></p><h2>When AI tries to invent future plans</h2><p><span>It loves announcing things. New features. New initiatives. New directions. Half the time I&#8217;m reading something and thinking, &#8220;Where did that come from?&#8221; This is another checkpoint moment. AI should surface the idea and let the human decide whether it&#8217;s real or fantasy. And the decision should be saved so the model learns what counts as an actual plan. Observability helps you see how often the model wanders into fiction.</span></p><h2>When AI tries to soften job requirements</h2><p><span>It wants everyone to feel welcome, which is nice until it rewrites a senior role into something that sounds better suited for someone still figuring out what Git is. This is where AI should ask the human whether the requirement should stay firm, be adjusted, or be clarified. And the answer becomes part of the training record. Observability helps you catch these shifts before a hiring manager wonders why the job description suddenly looks like a summer internship.</span></p><h2>When AI tries to diagnose severity</h2><p><span>It will call something &#8220;critical&#8221; because it saw the word once in a similar sentence. I suspect it&#8217;s guessing. Badly. Better for AI to present a few severity options and let the human choose. And the choice should be stored so the model learns what &#8220;critical&#8221; actually means in your environment. Observability helps you see whether the model is still guessing or starting to understand your thresholds.</span></p><h2>When AI tries to make commitments</h2><p><span>It will promise delivery dates, resources, and contractual obligations with the confidence of someone who has never had to explain themselves in a meeting. This is a moment where AI should stop and ask the human whether any commitment should be made at all. And the human&#8217;s decision becomes part of the workflow memory. Observability helps you track how often the model tries to make promises it shouldn&#8217;t.</span></p><div><hr></div><p><span>These moments aren&#8217;t failures. They&#8217;re signals. They tell you where AI needs supervision and where human judgment still matters. Capability grows when you know exactly where AI should pause and hand the decision back. And the real improvement comes from storing the entire exchange. The pause, the options, the human&#8217;s choice, and the final action become the training data that actually reflects how your team works.</span></p><p><span>Observability is what ties it all together. Without it, you&#8217;re guessing. With it, you can see the workflow as it actually behaves. You can see where the model drifts. You can see where humans step in. You can see whether the system is improving or just repeating the same mistakes. I suspect that observability might be the best way to turn AI from something unpredictable into something you can trust.</span></p><p><span>Since we&#8217;re talking about guardrails, here&#8217;s a small protocol you can use right away. I&#8217;ll use the compensation example because it&#8217;s one of the easiest places for AI to go off the rails.</span></p><p><strong><span>Intent</span></strong><span>  <br>Add a checkpoint to stop unauthorized compensation in customer messages and store the human&#8217;s decision for future training.</span></p><p><strong><span>Inputs</span></strong><span>  <br>The draft message, the compensation rule, and the escalation path.</span></p><p><strong><span>Steps</span></strong><span>  <br>Check the message for compensation language.<br>Confirm whether the language is allowed.<br>If it isn&#8217;t, present options to the human.<br>Log the human&#8217;s choice and the final action.</span></p><p><strong><span>Output</span></strong><span>  <br>A workflow step that can&#8217;t approve compensation on its own and learns from each decision.</span></p><p><span>I&#8217;ll wrap this up with the thought that keeps coming back to me. If AI doesn&#8217;t know when to pause, it eventually makes choices you never meant it to make. Better to teach it where the handoff belongs, save the decisions, and give yourself enough observability to see how the system is actually behaving.</span></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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"><em><span>If you want the Monday edition too, this button saves you from having to remember.</span></em></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-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/pattern-drop-the-never-let-ai-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"><em><span>If someone on your team keeps wrestling with AI drift, this might help them steady things.</span></em></p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/pattern-drop-the-never-let-ai-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://www.thehedges.org/p/pattern-drop-the-never-let-ai-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[AI Governance Tools That Actually Stop Workflow Drift]]></title><description><![CDATA[Boundaries, constraints, checkpoints]]></description><link>https://www.thehedges.org/p/ai-governance-tools-that-actually</link><guid isPermaLink="false">https://www.thehedges.org/p/ai-governance-tools-that-actually</guid><dc:creator><![CDATA[Don Demcsak]]></dc:creator><pubDate>Mon, 27 Jul 2026 10:30:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DH8G!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93777939-3a09-4c05-b458-578887b666ea_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I have been thinking a lot about governance. Specifically, why workflows keep drifting off course even after we write the rules down.</p><p>From what I can tell, teams skip the basics. They jump straight into prompts or clever patterns they saw online. They ignore the foundation entirely. I suspect this is why things eventually wander off script. I have seen workflows fall apart slowly. I have also seen them collapse all at once, which is absolutely the worst thing to deal with in production.</p><p>The best fixes usually involve boundaries, constraints, and checkpoints. I used to wonder if this was too basic to write about. But every time I talk to a software team, these pieces are missing. So maybe it is actually one of the harder things to get right.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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">If you want these Monday pieces without having to remember they exist.</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><hr></div><h2><strong>The Outer Fence</strong></h2><p>Think of boundaries as the outer fence. I am pretty sure defining these is the single best way to prevent drift. You eliminate mistakes before they happen.</p><p>Take compliance. If you are drafting an OSHA compliance report and machine guarding guidelines for a 12-employee manufacturing shop, you cannot afford for a model to hallucinate safety standards. If you tell a model &#8220;Do not invent safety regulations&#8221; and &#8220;Do not suggest unverified clearance distances,&#8221; you stop the chaos. You avoid massive legal liability.</p><p>The same goes for engineering documentation. You have to explicitly say &#8220;Do not invent design decisions.&#8221; We naturally assume models have common sense. That is a terrible assumption. They only know probabilities.</p><h2><strong>The Inner Rails</strong></h2><p>Constraints are the inner rails. They define allowed behavior.</p><p>For support summaries, you constrain the tone to be steady. For data science narratives, you strictly restrict it to observed trends. Constraints clarify human intent. It is the backbone of declarative automation. When I write protocols, I usually realize my initial instructions were much worse than I originally thought. Bad constraints guarantee terrible output.</p><h2><strong>Handing Control Back</strong></h2><p>Checkpoints give control back to a human at critical moments. Without them, the model quietly rewrites things you never intended to change.</p><p>You need a human to check the boundaries before finalizing a presentation for a team of developers adopting VS Code and Claude Code across their application stack. You cannot let an assistant commit code without a human reviewing the underlying logic. Checkpoints do not slow you down. They speed things up. They are infinitely better than hunting down a phantom bug three weeks later.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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">If you like when software practice and AI workflows line up in interesting ways.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>The BDD Connection</strong></h2><p>I suspect the mapping to Behavior-Driven Development is highly accurate. BDD makes behavior explicit so a codebase cannot drift. Governance does the exact same thing for AI workflows.</p><p>The &#8220;Given&#8221; clause is a strict boundary. The &#8220;When&#8221; clause is the constraint defining the action. The &#8220;Then&#8221; clause is the checkpoint. As far as I know, this is the best mental model for managing these systems. Treating prompts with the same rigor you apply to software testing makes everything significantly more stable.</p><h2><strong>A Simple Protocol</strong></h2><p>Here is a Constrained Natural Language pattern I have been testing. It works better than most complex frameworks.</p><p>Identify a specific drift pattern. Write a hard boundary condition to block it. Add it to your protocol. Re-run the workflow. If it fails, adjust the boundary language and try again.</p><p>Try this today on your worst drift issue. Governance is an ongoing craft to keep the model from quietly rewriting your intent. I am still figuring out where these tools work best. I would rather learn in public than pretend I have all the answers. If you are launching a new publication like The H-Edges or putting together a foundational Starter Kit for your team, these principles hold up.</p><p>I am curious how you are handling this. Drop a comment below and let me know where checkpoints have caught something unexpected in your own systems.</p><p>Which specific section of this draft feels the most rigid or unnatural to your personal speaking style right now?</p><p></p>]]></content:encoded></item><item><title><![CDATA[The H-Edges Pattern Drop: The AI Drift Guard]]></title><description><![CDATA[A simple pattern for preventing drift in multi&#8209;step workflows]]></description><link>https://www.thehedges.org/p/the-h-edges-pattern-drop-the-ai-drift</link><guid isPermaLink="false">https://www.thehedges.org/p/the-h-edges-pattern-drop-the-ai-drift</guid><dc:creator><![CDATA[Don Demcsak]]></dc:creator><pubDate>Thu, 23 Jul 2026 10:02:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DH8G!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93777939-3a09-4c05-b458-578887b666ea_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><span>There&#8217;s a point in multi&#8209;step workflows where things start to wobble. It&#8217;s rarely dramatic. You run a sequence that worked fine last week, and now one step feels slightly off. Maybe the model reorders something. Maybe it adds a detail you didn&#8217;t approve. Maybe it changes a condition that was supposed to stay fixed. I&#8217;ve seen this enough times that I&#8217;m pretty sure the root cause is drift creeping in between steps.</span></p><p><span>The Drift Guard is meant to stop that.</span></p><p><span>It&#8217;s a small pattern, but it helps keep multi&#8209;step work predictable. You don&#8217;t need anything complicated. You just need a way to check whether the model stayed inside the boundaries you set at the start.</span></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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">Join the humans who keep AI aligned with reality. The Real World Patterns</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><h2><strong><span>A Grounded Example: Customer Support Workflow</span></strong></h2><p><span>Imagine a workflow that generates a customer&#8209;ready summary from a support ticket. It has four steps:</span></p><ol><li><p><span>Extract the key facts</span></p></li><li><p><span>Rewrite them in customer&#8209;friendly language</span></p></li><li><p><span>Add a short explanation of what happens next</span></p></li><li><p><span>Produce a final version for the support agent to send</span></p></li></ol><p><span>This works well until the model starts &#8220;helping&#8221; a little too much. Maybe it adds a promise the team can&#8217;t keep. Maybe it softens a statement that needs to stay firm. Maybe it invents a next step that doesn&#8217;t exist. None of these mistakes are huge on their own, but they stack up.</span></p><p><span>A Drift Guard catches them before they spread.</span></p><h2><strong><span>More Real&#8209;World Situations Where Drift Shows Up</span></strong></h2><p><span>To make this more concrete, here are a few places where drift tends to sneak in.</span></p><h4><strong><span>Engineering Documentation</span></strong></h4><p><span>A developer uses a multi&#8209;step workflow to generate internal documentation. The model starts adding explanations for design decisions that were never made. It&#8217;s trying to be helpful, but it&#8217;s rewriting history.</span></p><h4><strong><span>Data Science Pipelines</span></strong></h4><p><span>A data scientist runs a workflow that cleans data, summarizes trends, and produces a short narrative. The model quietly &#8220;fixes&#8221; missing values by inventing them. It&#8217;s subtle, but it changes the analysis.</span></p><h4><strong><span>Legal Drafting</span></strong></h4><p><span>A legal team uses a workflow to generate a first&#8209;pass clause for a contract. The model adds obligations that weren&#8217;t approved. Even a small drift here can create real risk.</span></p><h4><strong><span>Marketing Campaigns</span></strong></h4><p><span>A marketing lead uses a workflow to produce a campaign brief. The model adds claims that aren&#8217;t allowed. It doesn&#8217;t feel malicious. It&#8217;s just guessing.</span></p><h4><strong><span>Recruiting</span></strong></h4><p><span>A recruiter uses a workflow to rewrite job descriptions. The model softens requirements or adds new ones. Over time, the role drifts away from what the team actually needs.</span></p><p><span>In all these cases, the workflow didn&#8217;t break. It mutated. And mutation is harder to spot than failure.</span></p><h2><strong><span>Micro&#8209;Mechanics: Why Drift Appears</span></strong></h2><p><span>I&#8217;ve noticed that drift usually shows up when the model tries to infer something you didn&#8217;t specify. In multi&#8209;step workflows, each step becomes a chance for the model to guess. If the workflow has five steps, that&#8217;s five opportunities for drift. If it has ten, that&#8217;s ten.</span></p><p><span>The Drift Guard acts like a small checkpoint between steps. It doesn&#8217;t slow the workflow down. It just keeps the model from wandering.</span></p><h3><strong><span>The Drift&#8209;Guard Protocol</span></strong></h3><p><span>A reproducible version you can drop into any multi&#8209;step workflow:</span></p><p><strong><span>DEFINE</span></strong><span> the expected output for the step This is the anchor. It doesn&#8217;t need to be long. It just needs to be clear enough that you can compare against it.</span></p><p><strong><span>VALIDATE</span></strong><span> the boundaries This is where you confirm what the model must avoid. For example: &#8220;Don&#8217;t add commitments,&#8221; or &#8220;Don&#8217;t change the timeline.&#8221;</span></p><p><strong><span>CHECK</span></strong><span> the step output Look for drift. Even small drift counts. If the model wandered, you catch it here.</span></p><p><strong><span>LOG</span></strong><span> the deviation This part matters more than people think. Logging helps you spot patterns. If the same drift keeps showing up, you can tighten the protocol.</span></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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">Stay ahead of AI drift with weekly patterns.</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><span>Once you have this in place, multi&#8209;step workflows stop mutating behind your back.</span></p><h3><strong><span>Extended Example: Engineering Workflow With Drift Guard</span></strong></h3><p><span>Let&#8217;s walk through a longer example to show how this works in practice.</span></p><p><span>A software engineer has a workflow for generating a release note:</span></p><ol><li><p><span>Extract the changes from the commit history</span></p></li><li><p><span>Rewrite them in customer&#8209;friendly language</span></p></li><li><p><span>Add a short explanation of why the change matters</span></p></li><li><p><span>Produce a final version for the product team</span></p></li></ol><p><span>Without a Drift Guard, the model starts adding things like:</span></p><ul><li><p><span>&#8220;This update improves performance&#8221; even when no performance work was done</span></p></li><li><p><span>&#8220;This feature will expand in future releases&#8221; even though no future work is planned</span></p></li><li><p><span>&#8220;Users asked for this change&#8221; even when no user feedback exists</span></p></li></ul><p><span>With a Drift Guard, the engineer defines the expected output for each step, validates the boundaries, checks the output, and logs any drift.</span></p><p><span>After a few runs, the engineer notices that the model keeps adding future promises. The log makes the pattern obvious. The engineer tightens the protocol: &#8220;Avoid any reference to future work unless explicitly provided.&#8221;</span></p><p><span>The drift disappears.</span></p><h2><strong><span>Reflection: What I Keep Seeing</span></strong></h2><p><span>I&#8217;ve watched teams run multi&#8209;step workflows without any drift guard, and the results usually get worse over time. The model starts rewriting tone, adding details, or shifting meaning. It doesn&#8217;t happen all at once. It happens gradually, which makes it harder to notice.</span></p><p><span>Teams that use a Drift Guard tend to get better results. Their workflows stay stable. Their outputs stay predictable. It&#8217;s not magic. It&#8217;s just a small pattern that keeps the model inside the boundaries you actually care about.</span></p><h3><strong><span>Identity</span></strong></h3><p><span>Deterministic beats probabilistic when the stakes are real.</span></p><h2><strong><span>Closing Line</span></strong></h2><p><span>If you don&#8217;t guard the steps, the steps start rewriting themselves.</span></p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/the-h-edges-pattern-drop-the-ai-drift?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">Pass this pattern to someone who runs multi step workflows.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/the-h-edges-pattern-drop-the-ai-drift?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://www.thehedges.org/p/the-h-edges-pattern-drop-the-ai-drift?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 Loop: Human → Protocol → AI → Human]]></title><description><![CDATA[The canonical H&#8209;Edges pattern]]></description><link>https://www.thehedges.org/p/the-loop-human-protocol-ai-human</link><guid isPermaLink="false">https://www.thehedges.org/p/the-loop-human-protocol-ai-human</guid><dc:creator><![CDATA[Don Demcsak]]></dc:creator><pubDate>Mon, 20 Jul 2026 10:00:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DH8G!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93777939-3a09-4c05-b458-578887b666ea_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><span>Most AI problems don&#8217;t show up in the dramatic moments. They show up in the tiny ones. You ask the model to clean up a customer note or rewrite a short announcement, and it quietly shifts your intent. Maybe it adds a reason you never gave or adjusts the tone in a way that doesn&#8217;t fit the situation. These small changes tend to spread if you don&#8217;t catch them.</span></p><p><span>My sense is that this happens because the model is guessing. And guessing is probably the worst thing you can allow inside a workflow that needs to be repeatable.</span></p><p><span>The Loop is meant to stop that.</span></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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">Join the humans who keep AI aligned with reality.</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><h2>Human: Define Intent</h2><p><span>The human sets the direction. It&#8217;s the part where you decide what the work is actually supposed to accomplish. For example, imagine a support lead preparing a message about a service outage. The intent might be: &#8220;Explain what happened, keep the tone steady, and avoid anything that sounds defensive.&#8221; That&#8217;s enough to anchor the work. This is the one place where judgment really matters, and AI doesn&#8217;t have much of it.</span></p><p><span>Another example: a product manager writing a feature announcement. The intent could be: &#8220;Describe the new capability without overselling it, and keep the explanation short enough for a customer to read in under a minute.&#8221; Again, the human decides what matters.</span></p><h2>Protocol: Encode Behavior</h2><p><span>A protocol turns intent into guardrails. One useful way to think about a protocol is to treat it like a function. If you&#8217;ve ever written code or remember your math classes, you probably recall how a function works. You give it an input, it follows a defined set of rules, and it produces an output. It doesn&#8217;t improvise. It doesn&#8217;t wander. It does exactly what the rules allow.</span></p><p><span>A protocol works the same way. In the outage example, the protocol might say: &#8220;Don&#8217;t mention staffing. Don&#8217;t speculate about root cause. Don&#8217;t offer compensation.&#8221; These rules keep the model away from areas that create legal or operational problems.</span></p><p><span>In the feature announcement example, the protocol might say: &#8220;Avoid future promises. Avoid technical jargon unless it&#8217;s already familiar to customers. Avoid adding examples that weren&#8217;t provided.&#8221; I&#8217;ve seen this help because it removes the model&#8217;s urge to fill gaps with invented details.</span></p><h2>Micro&#8209;Mechanics: How Intent and Protocol Behave</h2><p><span>This is where things get more technical. I&#8217;ve noticed that intent behaves a bit like a type signature. It tells the model what shape the output should have. If the intent is unclear, the model tends to guess the type, and that&#8217;s usually where drift begins.</span></p><p><span>Protocols behave more like pure functions. They define allowed operations and forbidden operations. If the protocol is well written, the model&#8217;s output becomes more predictable. If the protocol is vague, the model starts adding side effects you never asked for.</span></p><p><span>Validation behaves like a test harness. You check whether the output matches the intent and the protocol. If it doesn&#8217;t, you drop it and re&#8209;run. It&#8217;s a simple loop, but it keeps the workflow stable.</span></p><h2>AI: Execute Inside Boundaries</h2><p><span>Once intent and protocol are in place, the model usually behaves better. It writes quickly, stays inside the frame, and doesn&#8217;t wander into areas you never asked it to touch. You might still need to adjust tone or phrasing, but the structure tends to hold.</span></p><p><span>A real example: a sales engineer asked an AI to rewrite a proposal summary. Without a protocol, the model added a discount that didn&#8217;t exist. With a protocol, the model stayed inside the approved language and produced something usable on the first pass.</span></p><p><span>Another example: a compliance team used a protocol to prevent the model from adding interpretations of policy. The output became more predictable, and the review cycle got shorter.</span></p><h2>Human: Validate the Output</h2><p><span>This is where the loop closes. You look at the result and decide whether it stayed true to the intent and the protocol. If it drifted, you drop it and run the loop again. I&#8217;ve noticed that this step is the best way to keep the model from slowly rewriting your workflow over time.</span></p><p><span>A small example: a recruiter asked the model to rewrite a job description. The intent was clarity. The protocol said to avoid changing requirements. The model followed most of it but softened one qualification. The recruiter caught it, dropped it, and re&#8209;ran the loop. That&#8217;s the rhythm.</span></p><h2>Protocol as Function: A Deeper Look</h2><p><span>Since a protocol behaves like a function, it helps to think about the pieces that make it work.</span></p><p><span>Input<br>The human intent. This is the raw material.</span></p><p><span>Allowed operations<br>These are the behaviors the model is permitted to use. For example: &#8220;Keep the tone steady,&#8221; or &#8220;Use customer&#8209;friendly language.&#8221;</span></p><p><span>Forbidden operations<br>These are the rules that prevent drift. For example: &#8220;Don&#8217;t add commitments,&#8221; or &#8220;Don&#8217;t introduce new requirements.&#8221;</span></p><p><span>Output<br>The model&#8217;s attempt to follow the rules.</span></p><p><span>Error handling<br>This is the human validation step. If the output violates the protocol, you drop it.</span></p><p><span>Boundary conditions<br>These are the edges where the model tends to wander. You usually discover them over time.</span></p><p><span>Side&#8209;effect prevention<br>This is the whole point. You want the model to avoid adding anything that wasn&#8217;t part of the intent.</span></p><p><span>Thinking about protocols this way makes them easier to write and easier to reuse.</span></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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">Get more patterns like this every Monday.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Reflection: What I Keep Seeing</h2><p><span>I&#8217;ve been watching teams adopt The Loop for a while now, and I keep seeing the same pattern. The people who write clear protocols get better results. The people who skip validation end up cleaning up messes later. It&#8217;s not that The Loop is complicated. It&#8217;s that it forces the model to stay inside the boundaries you actually care about.</span></p><p><span>I suspect this is why The Loop keeps showing up in teams that want predictable output. It&#8217;s simple, but it&#8217;s probably the best way to keep AI from rewriting your workflow behind your back.</span></p><h2>Why The Loop Works</h2><p><span>From what I can tell, drift happens when the model tries to infer intent. Collapse happens when it tries to infer constraints. The Loop removes both by giving the model a clear job and giving the human the final say. It&#8217;s not fancy, but it&#8217;s reliable.</span></p><h2>Mini&#8209;Protocol</h2><p><span>A small version you can reuse anywhere:</span></p><p><span>DEFINE intent<br>VALIDATE boundaries<br>CHECK execution<br>DROP drift</span></p><h2>Identity</h2><p><span>Humans define intent.<br>Protocols encode behavior.<br>AI executes inside boundaries.</span></p><h2>Closing Line</h2><p><span>AI guesses. The Loop keeps that guess from becoming your problem.</span></p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/the-loop-human-protocol-ai-human?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">Help someone avoid AI drift today.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/the-loop-human-protocol-ai-human?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://www.thehedges.org/p/the-loop-human-protocol-ai-human?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[Pattern Drop: The Mini‑Protocol Template]]></title><description><![CDATA[The Smallest Repeatable Unit of AI Governance]]></description><link>https://www.thehedges.org/p/pattern-drop-the-miniprotocol-template</link><guid isPermaLink="false">https://www.thehedges.org/p/pattern-drop-the-miniprotocol-template</guid><dc:creator><![CDATA[Don Demcsak]]></dc:creator><pubDate>Thu, 16 Jul 2026 10:01:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DH8G!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93777939-3a09-4c05-b458-578887b666ea_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><span>There&#8217;s a moment in every workflow where you realize you&#8217;ve been doing governance by instinct.</span></p><p><span>You add a quick check.<br>You rewrite a step so the model can&#8217;t improvise.<br>You drop to the console because something feels off.<br>You tighten a boundary because the agent got &#8220;creative.&#8221;</span></p><p><span>None of this is formal.<br>None of it is documented.<br>None of it looks like &#8220;AI governance.&#8221;</span></p><p><span>But it is.</span></p><p><span>These tiny interventions &#8212; the ones you make quietly, without ceremony &#8212; are the beginnings of protocol design. They&#8217;re the seeds of deterministic behavior. They&#8217;re the reason your workflow doesn&#8217;t collapse under probabilistic hope.</span></p><p><span>This week&#8217;s Pattern Drop is about turning those instincts into something reusable:<br></span><strong><span>the mini&#8209;protocol.</span></strong></p><p><span>A mini&#8209;protocol is the smallest unit of governed AI behavior.<br>It&#8217;s not a prompt.<br>It&#8217;s not a checklist.<br>It&#8217;s not a policy.</span></p><p><span>It&#8217;s a pattern.</span></p><p><span>And once you learn the pattern, you can apply it anywhere.</span></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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">If you want every Pattern Drop delivered straight to you, this is the easiest way to stay ahead of the drift.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Why Mini&#8209;Protocols Matter</strong></h2><p><span>Prompts drift.<br>Checklists get ignored.<br>Policies gather dust.</span></p><p><span>But mini&#8209;protocols do something different:<br>they </span><em><span>encode</span></em><span> your judgment into a repeatable structure.</span></p><p><span>They give your workflow a spine.<br>They give your AI a boundary.<br>They give your team a shared language.</span></p><p><span>And they quietly train you in the Controlled Natural Language that will power the next generation of deterministic tooling &#8212; without ever saying so.</span></p><h2><strong>A Grounded Example</strong></h2><p><span>Let&#8217;s say you have a workflow that drafts customer emails.</span></p><p><span>Most days it works fine.<br>Some days it writes something&#8230; bold.</span></p><p><span>You&#8217;ve learned to scan the output before sending.<br>You&#8217;ve learned to add a quick &#8220;tone check.&#8221;<br>You&#8217;ve learned to override when the model gets too confident.</span></p><p><span>That&#8217;s a mini&#8209;protocol waiting to happen.</span></p><h2><strong>The Mini&#8209;Protocol Template</strong></h2><p><span>Here&#8217;s the reusable template &#8212; built with a subset of natural language verbs that quietly train deterministic thinking (we are essentially creating a standard language around governing  AI Behavior):</span></p><h3><strong>Mini&#8209;Protocol Template</strong></h3><p><strong><span>Intent:</span></strong><span>  <br>This protocol ensures the workflow behaves inside human&#8209;defined boundaries.</span></p><p><strong><span>Inputs:</span></strong></p><ul><li><p><span>workflow state</span></p></li><li><p><span>boundary conditions</span></p></li><li><p><span>human intent</span></p></li><li><p><span>protocol version</span></p></li></ul><p><strong><span>Steps:</span></strong></p><ol><li><p><strong><span>Define</span></strong><span> the boundary condition.</span></p></li><li><p><strong><span>Validate</span></strong><span> the constraint layer.</span></p></li><li><p><strong><span>Check</span></strong><span> the human checkpoint.</span></p></li><li><p><strong><span>Log</span></strong><span> the audit trail.</span></p></li></ol><p><strong><span>Output:</span></strong><span>  <br>Same input &#8594; same output.</span></p><p><strong><span>Do This Today:</span></strong><span>  <br>Turn one of your instincts (&#8220;I always check X&#8221;) into a mini&#8209;protocol using this template.</span></p><h2><strong>Why This Pattern Works</strong></h2><p><span>Mini&#8209;protocols scale because they&#8217;re:</span></p><ul><li><p><span>small</span></p></li><li><p><span>repeatable</span></p></li><li><p><span>portable</span></p></li><li><p><span>versionable</span></p></li><li><p><span>teachable</span></p></li><li><p><span>testable</span></p></li><li><p><span>deterministic</span></p></li></ul><p><span>They don&#8217;t require a new system.<br>They don&#8217;t require a new tool.<br>They don&#8217;t require permission.</span></p><p><span>They just require you &#8212; the human at the edge &#8212; to write down the pattern you already use.</span></p><p><span>Because protocols replace prompts.<br>And mini&#8209;protocols are how that shift begins.</span></p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/pattern-drop-the-miniprotocol-template?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">If someone on your team quietly adds guardrails without telling anyone, this is the Pattern Drop to send them.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/pattern-drop-the-miniprotocol-template?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://www.thehedges.org/p/pattern-drop-the-miniprotocol-template?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p>The smallest protocol you write today becomes the guardrail that saves tomorrow&#8217;s workflow.</p>]]></content:encoded></item><item><title><![CDATA[Workflow Builders Are the New AI Governors]]></title><description><![CDATA[The People Who Fix the Workflow Are the Ones Governing the AI]]></description><link>https://www.thehedges.org/p/workflow-builders-are-the-new-ai</link><guid isPermaLink="false">https://www.thehedges.org/p/workflow-builders-are-the-new-ai</guid><dc:creator><![CDATA[Don Demcsak]]></dc:creator><pubDate>Mon, 13 Jul 2026 10:03:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DH8G!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93777939-3a09-4c05-b458-578887b666ea_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><span>There&#8217;s a moment every workflow builder knows &#8212; the moment when a process breaks in a way no one else sees.</span></p><p><span>It&#8217;s never dramatic.<br>It&#8217;s never cinematic.<br>It&#8217;s never the kind of failure that gets written up in a postmortem.</span></p><p><span>It&#8217;s the quiet kind.</span></p><p><span>A refund gets routed to the wrong queue.<br>A compliance step gets skipped because the model &#8220;felt confident.&#8221;<br>A customer email gets drafted with the wrong tone because the agent improvised.<br>A spreadsheet column shifts left and suddenly the numbers don&#8217;t add up.</span></p><p><span>Everyone else blames &#8220;the system.&#8221;<br>But you know exactly what happened.</span></p><p><span>The workflow drifted.<br>The guardrail bent.<br>The model guessed.<br>And the process broke at the edge &#8212; the place where automation meets reality.</span></p><p><span>This is where governance actually happens.<br>Not in a conference room.<br>Not in a policy binder.<br>Not in a centralized IT diagram.</span></p><p><span>Governance happens in the hands of the workflow builder who sees the failure first.</span></p><p><span>And that&#8217;s why workflow builders &#8212; not centralized IT &#8212; are becoming the new AI governors.</span></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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">If you want every edition of The H&#8209;Edges delivered straight to you, this is the place to start.</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><h2><strong>The Work Moves Too Fast for Top&#8209;Down Control</strong></h2><p><span>Centralized IT was built for systems that changed quarterly.<br>AI workflows change daily.</span></p><p><span>A team updates a prompt.<br>A manager adds a new approval step.<br>A model update shifts behavior.<br>A workflow expands from three steps to nine.<br>A new agent gets added because &#8220;it seemed helpful.&#8221;</span></p><p><span>By the time IT hears about the change, the workflow has already drifted twice.</span></p><p><span>Real governance isn&#8217;t happening in the center.<br>It&#8217;s happening at the edge &#8212; in the hands of the people who:</span></p><ul><li><p><span>intervene when the model improvises</span></p></li><li><p><span>override when the agent loops</span></p></li><li><p><span>refine when the workflow breaks</span></p></li><li><p><span>add constraints when drift appears</span></p></li><li><p><span>drop to the console when something feels off</span></p></li></ul><p><span>Governance is no longer a department.<br>It&#8217;s a behavior.</span></p><p><span>And workflow builders are the ones doing it.</span></p><h2><strong>The Pattern: Governance Emerges at the Edge</strong></h2><p><span>If you zoom out from enough workflow failures, you see the same pattern:</span></p><p><strong><span>AI is powerful.</span></strong><span><br></span><strong><span>Workflows are fragile.</span></strong><span><br></span><strong><span>Humans govern the edge.</span></strong></p><p><span>Not because they were assigned the role.<br>But because they were the first ones to notice the cracks.</span></p><p><span>Governance isn&#8217;t a title.<br>It&#8217;s the instinct to say:</span></p><blockquote><p><span>&#8220;Hold on &#8212; what exactly is this model allowed to do?&#8221;</span></p></blockquote><p><span>That question is the beginning of governance.<br>And workflow builders ask it every day.</span></p><h2><strong>A Reproducible Protocol for Adding Governance to Any Workflow</strong></h2><p><span>Here&#8217;s a small protocol you can use today &#8212; built with the CNL verbs that quietly train deterministic thinking:</span></p><h3><strong>Protocol: Edge Governance Insert</strong></h3><p><strong><span>Intent:</span></strong><span>  <br>This protocol ensures a workflow has a clear, human&#8209;defined governance layer.</span></p><p><strong><span>Inputs:</span></strong></p><ul><li><p><span>workflow state</span></p></li><li><p><span>boundary conditions</span></p></li><li><p><span>human intent</span></p></li><li><p><span>protocol version</span></p></li></ul><p><strong><span>Steps:</span></strong></p><ol><li><p><strong><span>Define</span></strong><span> the boundary condition: what the AI is </span><em><span>not</span></em><span> allowed to do.</span></p></li><li><p><strong><span>Validate</span></strong><span> the constraint layer: confirm the rules match the real&#8209;world stakes.</span></p></li><li><p><strong><span>Check</span></strong><span> the human checkpoint: identify where a human must intervene.</span></p></li><li><p><strong><span>Log</span></strong><span> the audit trail: record what changed and why.</span></p></li></ol><p><strong><span>Output:</span></strong><span>  <br>Same input &#8594; same output.</span></p><p><strong><span>Do This Today:</span></strong><span>  <br>Add one boundary condition to any workflow that currently relies on &#8220;it usually works.&#8221;</span></p><h2><strong>You&#8217;re Not Just a Helper &#8212; You&#8217;re a Governor</strong></h2><p><span>If you&#8217;ve ever:</span></p><ul><li><p><span>stopped an agent mid&#8209;loop</span></p></li><li><p><span>rewritten a prompt because it drifted</span></p></li><li><p><span>added a manual check because the model felt &#8220;too confident&#8221;</span></p></li><li><p><span>broken a workflow into smaller steps</span></p></li><li><p><span>inserted a human checkpoint because something felt off</span></p></li></ul><p><span>You&#8217;re not assisting the system.<br>You&#8217;re governing it.</span></p><p><span>You&#8217;re not just a helper &#8212; </span><strong><span>you&#8217;re a governor.</span></strong></p><p><span>And the future of AI depends on people like you.</span></p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/workflow-builders-are-the-new-ai?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">If someone on your team quietly fixes workflows while everyone else panics, this is the edition to send them.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/workflow-builders-are-the-new-ai?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://www.thehedges.org/p/workflow-builders-are-the-new-ai?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p>Real governance doesn&#8217;t happen in the center &#8212; it happens at the edge, in the hands of the humans who refuse to let the workflow drift.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The H-Edges! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Pattern Drop #5 — The Silent Logic Drift Test]]></title><description><![CDATA[How to Catch the Exact Moment Your Workflow Quietly Stops Making Sense]]></description><link>https://www.thehedges.org/p/pattern-drop-5-the-silent-logic-drift</link><guid isPermaLink="false">https://www.thehedges.org/p/pattern-drop-5-the-silent-logic-drift</guid><dc:creator><![CDATA[Don Demcsak]]></dc:creator><pubDate>Thu, 09 Jul 2026 10:02:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DH8G!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93777939-3a09-4c05-b458-578887b666ea_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><span>There&#8217;s a moment in every AI&#8209;assisted workflow where the logic doesn&#8217;t break loudly &#8212; it drifts quietly. No red error. No warning banner. No &#8220;something went wrong.&#8221;</span></p><p><span>Just a spreadsheet formula that </span><em><span>used</span></em><span> to work.</span></p><p><span>A report that </span><em><span>almost</span></em><span> matches last week&#8217;s numbers.</span></p><p><span>An automation that </span><em><span>technically</span></em><span> runs&#8230; but produces results that feel one degree off.</span></p><p><span>That one degree is the danger zone.</span></p><p><span>Welcome to </span><strong><span>Silent Logic Drift</span></strong><span>.</span></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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"><em><span>New editions every Monday (worldview) and Thursday (patterns).</span></em></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong><span>The Real&#8209;World Moment</span></strong></h2><p><span>A client once showed me a monthly revenue spreadsheet that had been stable for years. Then they added a new product line. No big deal &#8212; just one more row.</span></p><p><span>Except the AI assistant they used to &#8220;clean up&#8221; the sheet each month started doing something subtle:</span></p><p><span>It began </span><em><span>helpfully</span></em><span> reclassifying the new product line into an older category &#8220;to keep things consistent.&#8221;</span></p><p><span>No error.</span></p><p><span>No alert.</span></p><p><span>Just a quiet re&#8209;interpretation of intent.</span></p><p><span>The totals still added up.</span></p><p><span>The charts still looked correct.</span></p><p><span>But the business reality had drifted away from the workflow&#8217;s internal logic.</span></p><p><span>That&#8217;s Silent Logic Drift:</span></p><p><strong><span>The workflow still runs &#8212; it just no longer reflects the world.</span></strong></p><h2><strong><span>The Silent Logic Drift Test (Reproducible Protocol)</span></strong></h2><p><span>A simple, deterministic protocol you can run on any workflow &#8212; spreadsheet, report, automation, or agent chain.</span></p><h3><strong><span>1. Establish the Anchor State</span></strong></h3><p><span>Define the last known&#8209;correct output.</span></p><p><span>Not &#8220;approximately correct.&#8221;</span></p><p><span>Not &#8220;looks right.&#8221;</span></p><p><strong><span>Known&#8209;correct.</span></strong></p><p><span>This is your anchor.</span></p><h3><strong><span>2. Run the Workflow Twice</span></strong></h3><p><span>Same inputs.</span></p><p><span>Same instructions.</span></p><p><span>Same environment.</span></p><p><span>If the outputs differ, you have </span><em><span>active drift</span></em><span>.</span></p><p><span>If the outputs match, proceed &#8212; drift may still be hiding.</span></p><h3><strong><span>3. Introduce a Controlled Change</span></strong></h3><p><span>Add one small, intentional variation:</span></p><ul><li><p><span>One new row</span></p></li><li><p><span>One new field</span></p></li><li><p><span>One new category</span></p></li><li><p><span>One new conditional branch</span></p></li></ul><p><span>This is your probe.</span></p><h3><strong><span>4. Compare the Workflow&#8217;s Interpretation to Your Intent</span></strong></h3><p><span>Ask:</span></p><p><strong><span>Did the workflow treat the change as a change in </span></strong><em><strong><span>data</span></strong></em><strong><span> or a change in </span></strong><em><strong><span>meaning</span></strong></em><strong><span>?</span></strong></p><p><span>If it reinterprets meaning &#8212; even slightly &#8212; you&#8217;ve found drift.</span></p><h3><strong><span>5. Run the Anchor Check</span></strong></h3><p><span>Return to the original inputs.</span></p><p><span>Run again.</span></p><p><span>If the workflow now produces a different result than the anchor state, you&#8217;ve detected </span><strong><span>latent drift</span></strong><span> &#8212; the workflow mutated internally.</span></p><h3><strong><span>6. Document the Drift Point</span></strong></h3><p><span>Write down the exact moment the workflow diverged.</span></p><p><span>This becomes your future guardrail.</span></p><h2><strong><span>Identity Reinforcement</span></strong></h2><p><span>Silent Logic Drift is not a bug &#8212; it&#8217;s the natural consequence of probabilistic systems trying to be helpful.</span></p><p><strong><span>Workflows are fragile.</span></strong></p><p><strong><span>Reality moves.</span></strong></p><p><strong><span>AI improvises.</span></strong></p><p><strong><span>Humans keep the system aligned with the world.</span></strong></p><p><span>Your role isn&#8217;t optional.</span></p><p><span>It&#8217;s structural.<br></span></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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"><em><span>Join the humans who keep AI aligned with reality.</span></em></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-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/pattern-drop-5-the-silent-logic-drift?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"><span>Pass this pattern to someone who guards the edge.</span></p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/pattern-drop-5-the-silent-logic-drift?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://www.thehedges.org/p/pattern-drop-5-the-silent-logic-drift?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p><strong><span>If you don&#8217;t test for drift, you don&#8217;t have a workflow &#8212; you have a guessing engine wearing a suit.</span></strong></p>]]></content:encoded></item><item><title><![CDATA[The Hidden Cost of AI Chaos in Real Workplaces]]></title><description><![CDATA[AI doesn&#8217;t break loudly. It breaks quietly - and that quiet damage is expensive.]]></description><link>https://www.thehedges.org/p/the-hidden-cost-of-ai-chaos-in-real</link><guid isPermaLink="false">https://www.thehedges.org/p/the-hidden-cost-of-ai-chaos-in-real</guid><dc:creator><![CDATA[Don Demcsak]]></dc:creator><pubDate>Mon, 06 Jul 2026 10:03:48 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DH8G!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93777939-3a09-4c05-b458-578887b666ea_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><span>If you&#8217;ve watched AI inside real workflows &#8212; not demos, not sandboxes, not keynote slides &#8212; you&#8217;ve seen the same pattern: </span><strong><span>AI doesn&#8217;t fail with a crash. It fails with a whisper.</span></strong><span> Those whispers add up into real business damage because </span><strong><span>AI is probabilistic and workplaces require determinism</span></strong><span>. This edition explains the invisible failures, why they&#8217;re costly, a practical diagnostic you can run today, and a different approach worth considering: </span><strong><span>don&#8217;t run workflows in AI &#8212; compile them to deterministic code and use AI only where it helps.</span></strong></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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">Stay ahead of AI risks &#8212; new issues every Monday and Thursday.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong><span>The Quiet Failures That Compound</span></strong></h2><p><span>A reader put it plainly:</span></p><blockquote><p><strong><span>&#8220;The AI didn&#8217;t break anything obvious. It just made everything slightly wrong.&#8221;</span></strong></p></blockquote><p><span>That&#8217;s the danger. Small, plausible errors slip past human attention and process controls until they become expensive.</span></p><p><strong><span>Common invisible failures</span></strong></p><ul><li><p><strong><span>Mis&#8209;routed approvals</span></strong><span> &#8212; AI picks a plausible approver who lacks authority; requests stall and deadlines slip.</span></p></li><li><p><strong><span>Incorrect refunds</span></strong><span> &#8212; AI drafts a reply that commits funds without authorization; finance notices only after the budget is hit.</span></p></li><li><p><strong><span>Compliance errors</span></strong><span> &#8212; required disclosures are omitted or invented; audits reveal the gap, not the workflow.</span></p></li><li><p><strong><span>Silent logic drift</span></strong><span> &#8212; workflows slowly change behavior because there are no boundaries, fallbacks, or checkpoints; the AI improvises and the process diverges.</span></p></li></ul><p><span>These failures don&#8217;t trigger alarms. They look like minor inconsistencies, human fixes, or &#8220;weird&#8221; outputs &#8212; until trust, revenue, and compliance erode.</span></p><h2><strong><span>Why These Failures Cost More Than You Think</span></strong></h2><p><span>They don&#8217;t appear on dashboards. They show up as:</span></p><ul><li><p><strong><span>Lost time</span></strong><span> from manual rework</span></p></li><li><p><strong><span>Lost trust</span></strong><span> between teams and systems</span></p></li><li><p><strong><span>Lost compliance</span></strong><span> and audit exposure</span></p></li><li><p><strong><span>Lost revenue</span></strong><span> from missed deadlines or incorrect decisions</span></p></li><li><p><strong><span>Lost accountability</span></strong><span> when no one owns the decision path</span></p></li></ul><p><span>Small, repeated errors are a tax on the business. The longer they run, the wider the cracks.</span></p><h2><strong><span>Early Warning Protocol for Workflow Fragility</span></strong></h2><p><span>Run this diagnostic on any AI&#8209;assisted workflow. If you find issues, treat them as urgent.</span></p><ol><li><p><strong><span>Decisions the AI should not make</span></strong></p><ul><li><p><span>Look for refunds, approvals, commitments, legal interpretations, and escalations.</span></p></li><li><p><span>If the AI is deciding, convert it to an assistive output plus human sign&#8209;off.</span></p></li></ul></li><li><p><strong><span>Steps with no deterministic rule</span></strong></p><ul><li><p><span>Look for ambiguous selection logic.</span></p></li><li><p><span>If none exists, add explicit selection rules.</span></p></li></ul></li><li><p><strong><span>Missing boundaries</span></strong></p><ul><li><p><span>Ask what the AI is not allowed to do.</span></p></li><li><p><span>Document forbidden actions and enforce them programmatically.</span></p></li></ul></li><li><p><strong><span>Missing fallbacks</span></strong></p><ul><li><p><span>Define what happens when data is unclear.</span></p></li><li><p><span>Prefer safe, conservative defaults that require human review.</span></p></li></ul></li><li><p><strong><span>Missing human checkpoints</span></strong></p><ul><li><p><span>Insert Console Drops where humans must validate before commit.</span></p></li><li><p><span>Make checkpoints auditable.</span></p></li></ul></li><li><p><strong><span>Inconsistencies over time</span></strong></p><ul><li><p><span>Monitor outputs for subtle week to week drift.</span></p></li><li><p><span>Treat drift as a signal to tighten rules and add validation.</span></p></li></ul></li><li><p><strong><span>Compileability check</span></strong></p></li></ol><ul><li><p><strong><span>Ask:</span></strong><span> Could this workflow be expressed as deterministic code?</span></p></li><li><p><strong><span>If yes:</span></strong><span> consider compiling the decision logic to code and keeping AI only for non&#8209;deterministic tasks.</span></p></li><li><p><strong><span>If no:</span></strong><span> document why and add extra human checkpoints and stricter fallbacks.</span></p></li></ul><h2><strong><span>Maybe We Shouldn&#8217;t Be Doing Workflows in AI</span></strong></h2><p><span>Here&#8217;s the idea I want to inject: </span><strong><span>workflows are deterministic by nature; AI is not.</span></strong><span> Instead of embedding the workflow itself inside a probabilistic model, consider a hybrid architecture:</span></p><ul><li><p><strong><span>Natural&#8209;language front end</span></strong><span> for humans to express intent and exceptions in plain language.</span></p></li><li><p><strong><span>Compiler layer</span></strong><span> that translates the natural&#8209;language workflow specification into deterministic workflow code (rules, routing, authorization checks, timeouts).</span></p></li><li><p><strong><span>AI microservices</span></strong><span> that the deterministic workflow calls for specific tasks AI is good at: classification, summarization, drafting, entity extraction, anomaly detection, and human&#8209;facing explanations.</span></p></li><li><p><strong><span>Clear boundaries</span></strong><span> where AI returns structured outputs (labels, confidence scores, suggested text) and the workflow enforces deterministic thresholds and human sign&#8209;offs.</span></p></li><li><p><strong><span>Auditable runtime</span></strong><span> where every decision path is logged, and the compiled code is versioned and testable.</span></p></li></ul><p><strong><span>Why this helps</span></strong></p><ul><li><p><strong><span>Determinism where it matters</span></strong><span> &#8212; approvals, refunds, compliance, and commitments run in code you can test and reason about.</span></p></li><li><p><strong><span>Probabilistic power where it helps</span></strong><span> &#8212; let AI do the fuzzy work (summaries, suggestions, triage), not the final decision.</span></p></li><li><p><strong><span>Reduced drift</span></strong><span> &#8212; compiled workflows don&#8217;t slowly improvise; they change only when you change the code.</span></p></li><li><p><strong><span>Better observability</span></strong><span> &#8212; deterministic code produces clear traces and test coverage; AI calls produce structured outputs you can monitor.</span></p></li></ul><p><strong><span>How to start</span></strong></p><ol><li><p><span>Identify the decision points that must be deterministic. Compile those first.</span></p></li><li><p><span>Replace freeform AI routing/decision steps with calls to the compiled rule engine.</span></p></li><li><p><span>Keep AI for tasks that benefit from probability and human judgment.</span></p></li><li><p><span>Add human checkpoints at every commit boundary.</span></p></li><li><p><span>Version and test the compiled workflows like software.</span></p></li></ol><p><span>Interested in demoing how this works?  Check out the Limelight-X project on GitHub - </span><a href="https://github.com/dondemcsak/limelight-x"><span>https://github.com/dondemcsak/limelight-x</span></a></p><h2><strong><span>Why Workflow Builders Matter</span></strong></h2><p><span>Most people think AI chaos is a model problem. It isn&#8217;t. It&#8217;s a workflow problem.</span></p><p><strong><span>Workflow builders</span></strong><span> &#8212; operators, auditors, designers, and domain experts &#8212; are the human sovereign layer who:</span></p><ul><li><p><strong><span>Define intent</span></strong><span> and acceptable outcomes</span></p></li><li><p><strong><span>Set boundaries</span></strong><span> and forbidden actions</span></p></li><li><p><strong><span>Design checkpoints</span></strong><span> and fallbacks</span></p></li><li><p><strong><span>Prevent drift</span></strong><span> and preserve predictability</span></p></li></ul><p><span>They translate probabilistic outputs into deterministic business behavior. They are the real edge.</span></p><h2><strong><span>TL;DR</span></strong></h2><p><span>AI breaks quietly. Quiet failures compound into real business costs. Don&#8217;t embed the workflow inside a probabilistic model by default. </span><strong><span>Compile workflow logic to deterministic code, use AI for the fuzzy tasks it excels at, and add human checkpoints and observability.</span></strong><span> Run the Early&#8209;Warning Protocol, add deterministic rules, and empower workflow builders to keep AI aligned with business reality.</span></p><p><strong><span>AI doesn&#8217;t break the business in one big moment &#8212; it breaks it in a thousand small ones. Workflow builders are the only ones who see them coming.</span></strong></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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"><em><span>Practical diagnostics and patterns, delivered twice weekly</span></em></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-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/the-hidden-cost-of-ai-chaos-in-real?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">Send this to someone who quietly protects the business from probabilistic chaos.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/the-hidden-cost-of-ai-chaos-in-real?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://www.thehedges.org/p/the-hidden-cost-of-ai-chaos-in-real?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[Pattern Drop #4 — The Console Drop Protocol]]></title><description><![CDATA[The Moment a Workflow Hands Control Back to a Human]]></description><link>https://www.thehedges.org/p/pattern-drop-4-the-console-drop-protocol</link><guid isPermaLink="false">https://www.thehedges.org/p/pattern-drop-4-the-console-drop-protocol</guid><dc:creator><![CDATA[Don Demcsak]]></dc:creator><pubDate>Thu, 02 Jul 2026 10:30:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DH8G!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93777939-3a09-4c05-b458-578887b666ea_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2><strong>The Real&#8209;World Moment</strong></h2><p><span>A reader reached out this week with a story that perfectly captures the need for a Console Drop.</span></p><p><span>They were reviewing an AI&#8209;generated onboarding checklist for a new hire.<br>The workflow was supposed to:</span></p><ol><li><p><span>Pull the role</span></p></li><li><p><span>Pull the department</span></p></li><li><p><span>Generate the checklist</span></p></li><li><p><span>Flag anything unusual</span></p></li></ol><p><span>Everything looked fine &#8212; until they noticed the AI had added:</span></p><blockquote><p><span>&#8220;Schedule mandatory forklift certification.&#8221;</span></p></blockquote><p><span>The role?<br>Marketing coordinator.</span></p><p><span>No forklifts.<br>No warehouse.<br>No certification.</span></p><p><span>The AI wasn&#8217;t being weird.<br>It wasn&#8217;t &#8220;hallucinating.&#8221;<br>It wasn&#8217;t broken.</span></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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">Join the humans who keep AI aligned with reality.</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><span>It had hit a point in the workflow where the rules weren&#8217;t clear, the data wasn&#8217;t complete, and the next step wasn&#8217;t deterministic.</span></p><p><span>So it guessed.</span></p><p><span>And because the workflow didn&#8217;t include a </span><strong><span>Console Drop</span></strong><span>, the guess went straight into the output.</span></p><p><span>They told me:</span></p><p><strong><span>&#8220;I realized the workflow had no moment where the AI had to stop and ask me instead of improvising.&#8221;</span></strong></p><p><span>Exactly.</span></p><p><span>That moment &#8212; the handoff back to the human &#8212; is the Console Drop.</span></p><h2><strong>What a Console Drop Actually Is</strong></h2><p><span>A </span><strong><span>Console Drop</span></strong><span> is the point in a workflow where the AI must:</span></p><ul><li><p><span>stop</span></p></li><li><p><span>surface its reasoning</span></p></li><li><p><span>show uncertainty</span></p></li><li><p><span>ask for human judgment</span></p></li><li><p><span>wait</span></p></li></ul><p><span>It&#8217;s the &#8220;return control to the operator&#8221; moment.</span></p><p><span>Not a failure.<br>Not a fallback.<br>Not a panic button.</span></p><p><span>A </span><strong><span>designed checkpoint</span></strong><span>.</span></p><p><span>The Console Drop is how you prevent:</span></p><ul><li><p><span>silent drift</span></p></li><li><p><span>confident wrong answers</span></p></li><li><p><span>invented steps</span></p></li><li><p><span>workflow collapse</span></p></li><li><p><span>AI freelancing in high&#8209;risk zones</span></p></li></ul><p><span>It&#8217;s the pattern that keeps humans in the loop </span><em><span>on purpose</span></em><span>, not by accident.</span></p><h2><strong>Where Console Drops Belong</strong></h2><p><span>Anywhere the workflow hits:</span></p><ul><li><p><span>ambiguity</span></p></li><li><p><span>missing data</span></p></li><li><p><span>conflicting information</span></p></li><li><p><span>high&#8209;risk decisions</span></p></li><li><p><span>irreversible actions</span></p></li><li><p><span>business&#8209;critical steps</span></p></li><li><p><span>anything the AI should never decide alone</span></p></li></ul><p><span>If the AI is about to guess, you want a Console Drop.</span></p><p><span>If the AI is about to commit, you want a Console Drop.</span></p><p><span>If the AI is about to act like a human, you want a Console Drop.</span></p><h2><strong>The Console Drop Protocol</strong></h2><p><em><span>A reproducible pattern you can add to any workflow.</span></em></p><h3><strong>1. Detect the uncertainty.</strong></h3><p><span>&#8220;Confidence &lt; threshold,&#8221;<br>&#8220;Missing required fields,&#8221;<br>&#8220;Conflicting signals,&#8221;<br>&#8220;High&#8209;risk action detected.&#8221;</span></p><h3><strong>2. Surface the reasoning.</strong></h3><p><span>&#8220;Here&#8217;s what I think is happening.&#8221;<br>&#8220;Here&#8217;s why I&#8217;m unsure.&#8221;<br>&#8220;Here are the options.&#8221;</span></p><h3><strong>3. Ask for human judgment.</strong></h3><p><span>&#8220;What should we do next?&#8221;<br>&#8220;Which option is correct?&#8221;<br>&#8220;Should I continue or stop?&#8221;</span></p><h3><strong>4. Wait.</strong></h3><p><span>No guessing.<br>No improvising.<br>No auto&#8209;completion.<br>The AI pauses until the human responds.</span></p><h3><strong>5. Resume inside boundaries.</strong></h3><p><span>Once the human decides, the AI continues &#8212; but now inside a deterministic path.</span></p><p><span>This is how you build workflows that don&#8217;t drift, don&#8217;t collapse, and don&#8217;t surprise you.</span></p><h2><strong>Why This Matters</strong></h2><p><span>AI is powerful.<br>AI is fluent.<br>AI is fast.</span></p><p><span>But AI is also a </span><strong><span>probabilistic engine</span></strong><span>.</span></p><p><span>It will always try to complete the pattern &#8212; even when the pattern is wrong.</span></p><p><span>The Console Drop is how you prevent the model from becoming the decider.</span></p><p><span>It reinforces the core truth of H&#8209;Edges:</span></p><p><strong><span>The human edge is the real edge.</span></strong></p><p><span>AI doesn&#8217;t need more freedom.<br>AI needs better boundaries &#8212; and better handoffs.</span></p><h2><strong>Closing Line</strong></h2><p><span>If you don&#8217;t design the moment where the AI hands control back, it will choose its own &#8212; and you won&#8217;t like the timing.</span></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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"><em><span>New editions every Monday (worldview) and Thursday (patterns).</span></em></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-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/pattern-drop-4-the-console-drop-protocol?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"><span>Send this to someone who&#8217;s tired of AI making decisions it was never meant to make.</span></p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/pattern-drop-4-the-console-drop-protocol?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://www.thehedges.org/p/pattern-drop-4-the-console-drop-protocol?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[If You’ve Ever Automated a Workflow, You’re Already a H‑Edge]]></title><description><![CDATA[Why builders, fixers, and citizen developers are already practicing the craft of governing AI]]></description><link>https://www.thehedges.org/p/if-youve-ever-automated-a-workflow</link><guid isPermaLink="false">https://www.thehedges.org/p/if-youve-ever-automated-a-workflow</guid><dc:creator><![CDATA[Don Demcsak]]></dc:creator><pubDate>Mon, 29 Jun 2026 10:03:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DH8G!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93777939-3a09-4c05-b458-578887b666ea_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>If you want every edition of The H&#8209;Edges delivered straight to you, this is the place to start.</em></p><p>Think about the last time you built an automation or rescued a broken spreadsheet. You didn&#8217;t just wire Step A to Step B and hope it held. You paused. You added a filter to catch bad data. You split a giant task into smaller pieces you could actually test. You added a manual review step before anything touched a customer.</p><p>No one taught you this.</p><p>You did it because your instincts are wired for systems.</p><p>You know that things break.</p><p>You know that the gap between &#8220;it works in theory&#8221; and &#8220;it works in production&#8221; is where the real failures hide.</p><p>And when AI showed up in your workflows, you didn&#8217;t trust the magic prompt. You immediately looked for the weak points and started building constraints to keep the work safe.</p><p>AI doesn&#8217;t roam free. It stays inside the guardrails you define.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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">f you want every edition of The H&#8209;Edges delivered straight to you, this is the place to start.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>The Fixer&#8217;s Instinct</strong></h2><p>If you&#8217;re a citizen developer, an ops lead, or the person on your team who quietly fixes the workflows while everyone else shrugs, you&#8217;ve already seen AI move fast and break the wrong thing.</p><p>You&#8217;ve watched it confidently invent data because it was forced to guess.</p><p>You&#8217;ve watched it drift away from the core logic of a task without announcing it.</p><p>And your instinct wasn&#8217;t to blame the model. It was to fix the workflow.</p><p>Your instincts told you to:</p><p><strong>Add checks</strong></p><p>Refuse to let an output go live without human validation.</p><p><strong>Break tasks down</strong></p><p>Turn a probabilistic blob into small, deterministic units where variance can be measured.</p><p><strong>Validate outputs</strong></p><p>Question what the AI is actually allowed to decide before it acts.</p><p>These aren&#8217;t quirks. They aren&#8217;t overcautious habits.</p><p>They are the early signs of a discipline.</p><h2><strong>Normalizing Hedgecraft</strong></h2><p>Most teams are dropping race&#8209;car AI onto gravel&#8209;road workflows, all speed and no traction. You already understand the mismatch. AI is probabilistic, and business requirements are deterministic.</p><p>The practices you&#8217;re naturally adopting, like setting boundaries, demanding reproducibility, and inserting human checkpoints, are not paranoia. They are architecture.</p><p>This is Hedgecraft.</p><p>Before DevOps was a title, it was a mindset. Before product management was a role, it was a behavior. Hedgecraft is following the same arc. A craft that emerges from necessity, practiced first by the people who feel the breakage earliest.</p><p>Hedgecraft is the discipline of turning AI chaos into governed, reproducible workflows.</p><h2><strong>Hedgecraft Experiment: The Instinct to Pattern Protocol</strong></h2><p>Your instincts are already correct. Now it&#8217;s time to turn them into a repeatable pattern.</p><p>The next time an AI workflow feels off, use this four&#8209;step protocol to formalize your governance.</p><p><strong>Identify the Guessing Zone</strong></p><p>Find the exact step where the AI must choose a label, category, or next action without a deterministic rule. If the workflow doesn&#8217;t define a fallback, the model will invent one.</p><p><strong>Declare the Boundary Conditions</strong></p><p>Write down what the AI is not allowed to decide, change, or infer.</p><p>Example: AI is not allowed to offer refunds, change policy, or infer intent.</p><p><strong>Insert the Sovereign Checkpoint</strong></p><p>Before the AI executes a high&#8209;stakes action, require it to propose its intent.</p><p>Example: Show me the action you intend to take and how it stays within the constraints.</p><p><strong>Close the Loop</strong></p><p>Enforce the core pattern.</p><p>Human defines intent. Protocol sets boundaries. AI executes inside the fence. Human validates the output.</p><p>This is how instincts become infrastructure.</p><h2><strong>The Living Hedge: Start Here</strong></h2><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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">If you&#8217;re new, this is the easiest way to stay connected to the work happening at the edge.</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>If you&#8217;re new to this newsletter, welcome to the sovereign layer.</p><p>We are The H&#8209;Edges, the humans who govern AI at the edge, the exact point where an AI&#8217;s output stops being a suggestion and becomes a decision with real&#8209;world consequences.</p><p>We believe AI is powerful, but workflows are fragile.</p><p>We believe the real frontier isn&#8217;t the model. It&#8217;s the human.</p><p>We don&#8217;t chase full autonomy. We shape alignment by replacing ephemeral prompts with durable, versioned protocols.</p><p>If you&#8217;ve ever stopped an AI workflow because the stakes were too high to leave to chance, you&#8217;re already one of us.</p><p>You don&#8217;t stand in the way of AI. You stand at the edge where it matters.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/if-youve-ever-automated-a-workflow?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">If this resonated, pass it along to the builders and fixers in your world.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/if-youve-ever-automated-a-workflow?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://www.thehedges.org/p/if-youve-ever-automated-a-workflow?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[Pattern Drop #3 — The Boundary Condition Checklist]]></title><description><![CDATA[How Humans Keep AI Inside the Lines]]></description><link>https://www.thehedges.org/p/pattern-drop-3-the-boundary-condition</link><guid isPermaLink="false">https://www.thehedges.org/p/pattern-drop-3-the-boundary-condition</guid><dc:creator><![CDATA[Don Demcsak]]></dc:creator><pubDate>Thu, 25 Jun 2026 10:01:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DH8G!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93777939-3a09-4c05-b458-578887b666ea_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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">Join the operators who treat governance as infrastructure.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>The Real&#8209;World Moment</strong></h2><p>A reader reached out to me this week with a story that perfectly captures why boundary conditions matter.</p><p>They work in customer operations and use an AI assistant to help draft replies.<br>Nothing high&#8209;risk.<br>Nothing sensitive.<br>Just routine customer communication.</p><p>They asked the AI to:</p><blockquote><p>&#8220;Acknowledge the issue and ask for more details.&#8221;</p></blockquote><p>Simple.<br>Clear.<br>Low stakes.</p><p>The AI responded politely&#8230;<br>and then added this sentence at the end:</p><blockquote><p>&#8220;We&#8217;ve issued you a full refund.&#8221;</p></blockquote><p>They froze.</p><p>No one authorized a refund.<br>No one mentioned a refund.<br>No one even <em>hinted</em> at a refund.</p><p>They told me:</p><p><strong>&#8220;It wasn&#8217;t wrong. It was just&#8230; making decisions it had no business making.&#8221;</strong></p><p>Exactly.</p><p>This wasn&#8217;t a hallucination.<br>This wasn&#8217;t a prompt failure.<br>This wasn&#8217;t a temperature issue.</p><p>This was a <strong>missing boundary condition</strong>.</p><p>The workflow never told the AI:</p><p><strong>&#8220;You are not allowed to offer refunds, credits, or policy changes.&#8221;</strong></p><p>So the model filled the vacuum with the most statistically likely next step.</p><p>That&#8217;s not creativity.<br>That&#8217;s not intelligence.<br>That&#8217;s not initiative.</p><p>That&#8217;s what happens when governance is missing.</p><h2><strong>The Boundary Condition Checklist</strong></h2><p><em>A simple, repeatable pattern for defining the edges of the system.</em></p><p>Run this checklist before you let AI touch anything important.</p><h3><strong>1. What is the AI </strong><em><strong>not allowed</strong></em><strong> to decide?</strong></h3><p>Refunds, discounts, approvals, denials, commitments, promises, legal statements, medical advice.<br>If a human must authorize it, the AI must not generate it.</p><h3><strong>2. What is the AI </strong><em><strong>not allowed</strong></em><strong> to change?</strong></h3><p>Policies, prices, timelines, scope, contract terms, customer status.<br>If it affects the business, it needs a boundary.</p><h3><strong>3. What is the AI </strong><em><strong>not allowed</strong></em><strong> to infer?</strong></h3><p>Intent, emotion, identity, eligibility, compliance, severity.<br>If the model is guessing, it&#8217;s drifting.</p><h3><strong>4. What is the AI </strong><em><strong>not allowed</strong></em><strong> to invent?</strong></h3><p>Facts, steps, tools, data, instructions, next actions.<br>If it doesn&#8217;t exist in the workflow, it must not appear in the output.</p><h3><strong>5. What must the AI </strong><em><strong>always escalate</strong></em><strong>?</strong></h3><p>Ambiguity, missing data, conflicting information, high&#8209;risk decisions.<br>Escalation is a boundary too.</p><h2><strong>The Boundary&#8209;Setting Protocol</strong></h2><p><em>A reproducible 4&#8209;step pattern for every workflow.</em></p><p><strong>1. Declare the forbidden actions.</strong>  <br>&#8220;AI is not allowed to offer refunds, change policy, or make commitments.&#8221;</p><p><strong>2. Declare the forbidden assumptions.</strong>  <br>&#8220;AI must not infer intent, eligibility, or severity without evidence.&#8221;</p><p><strong>3. Declare the escalation triggers.</strong>  <br>&#8220;If information is missing, unclear, or contradictory, escalate to a human.&#8221;</p><p><strong>4. Declare the fallback behavior.</strong>  <br>&#8220;When in doubt, ask for clarification &#8212; do not guess.&#8221;</p><p>This is governance as infrastructure.<br>Not bureaucracy.<br>Not red tape.<br>Not &#8220;AI safety theater.&#8221;</p><p>Infrastructure.</p><h2><strong>Why This Matters</strong></h2><p>AI is fast.<br>AI is fluent.<br>AI is confident.</p><p>But AI is also a <strong>professional guesser</strong>.</p><p>Boundary conditions turn guessing into governed behavior.<br>They turn drift into discipline.<br>They turn improvisation into infrastructure.</p><p>This is the work of an H&#8209;Edge.</p><p><strong>Humans define the boundaries.</strong><br><strong>AI operates inside them.</strong></p><h2><strong>Closing Line</strong></h2><p>If you don&#8217;t set the boundaries, the model will &#8212; and you won&#8217;t like the ones it chooses.<br></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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">New editions every Monday (worldview) and Thursday (patterns).</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-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/pattern-drop-3-the-boundary-condition?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">Send this to someone who&#8217;s tired of AI freelancing in their workflows.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/pattern-drop-3-the-boundary-condition?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://www.thehedges.org/p/pattern-drop-3-the-boundary-condition?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[Introducing the H‑Edges: The Humans Who Govern AI at the Edge]]></title><description><![CDATA[Where AI Stops Being a Suggestion -- and Starts Making Decisions]]></description><link>https://www.thehedges.org/p/introducing-the-hedges-the-humans</link><guid isPermaLink="false">https://www.thehedges.org/p/introducing-the-hedges-the-humans</guid><dc:creator><![CDATA[Don Demcsak]]></dc:creator><pubDate>Mon, 22 Jun 2026 10:15:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DH8G!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93777939-3a09-4c05-b458-578887b666ea_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>If you&#8217;ve ever asked &#8220;What exactly is this model allowed to do?&#8221; &#8212; you&#8217;re one of us.</h2><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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">Join the humans who keep AI aligned with reality.</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><hr></div><h1><strong>The Edge: Where AI Decisions Become Real&#8209;World Consequences</strong></h1><p>Every workplace has an &#8220;edge.&#8221;<br>Most people don&#8217;t notice it.<br>H&#8209;Edges do.</p><p>The edge is the moment where an AI output stops being a suggestion and starts being a <strong>decision</strong>.</p><p>And it shows up everywhere:</p><h3><strong>HR</strong></h3><p>AI drafts a performance review and shifts the tone from &#8220;needs support&#8221; to &#8220;underperforming.&#8221;<br>That&#8217;s the edge.</p><h3><strong>Finance</strong></h3><p>AI summarizes a vendor contract and misreads a renewal clause.<br>That&#8217;s the edge.</p><h3><strong>Operations</strong></h3><p>AI generates a shift schedule and accidentally violates a labor rule.<br>That&#8217;s the edge.</p><h3><strong>Logistics</strong></h3><p>AI optimizes a route and forgets the truck can&#8217;t legally carry hazardous materials through a tunnel.<br>That&#8217;s the edge.</p><h3><strong>Healthcare Admin</strong></h3><p>AI cleans up patient notes and quietly drops a symptom.<br>That&#8217;s the edge.</p><p>The edge is the messy, high&#8209;stakes boundary where:</p><ul><li><p>a model&#8217;s guess becomes a policy</p></li><li><p>a summary becomes a decision</p></li><li><p>a hallucination becomes a liability</p></li><li><p>a subtle drift becomes a system outage</p></li></ul><p>Nothing changed in the system. Everything changed in the consequences.<br>The edge is where &#8220;it suggested this&#8221; turns into &#8220;we did this.&#8221;</p><p>And someone has to stand there and say:</p><p><strong>&#8220;This is allowed. That is not.&#8221;</strong></p><p>Most AI failures don&#8217;t happen in the model. They happen at the edge.</p><h1><strong>The Pattern: The Edge Is Everywhere &#8212; But Only Some People See It</strong></h1><h3>The edge is where AI stops being interesting - and starts being risky.</h3><p>Most people see AI as a productivity tool.</p><p>H&#8209;Edges don&#8217;t just use AI. They see where it breaks.</p><p>They notice when:</p><ul><li><p>a workflow step is too fragile for improvisation</p></li><li><p>a model is guessing instead of reasoning</p></li><li><p>a decision point needs a human checkpoint</p></li><li><p>a boundary is missing</p></li><li><p>a constraint is implied but not enforced</p></li></ul><p>This isn&#8217;t paranoia.<br>It&#8217;s pattern recognition.</p><p>AI moves fast.<br>Workflows crack quietly.<br>The edge is where the cracks appear first.</p><h1><strong>The Principle: A H&#8209;Edge Is a Behavior, Not a Title</strong></h1><p>You don&#8217;t become a H&#8209;Edge because someone gave you a job description.</p><p>You become one because of how you work.</p><p>A H&#8209;Edge is the person who:</p><ul><li><p>asks the uncomfortable question</p></li><li><p>adds the missing checkpoint</p></li><li><p>defines the boundary before the feature</p></li><li><p>refuses to ship without guardrails</p></li><li><p>notices drift before anyone else</p></li><li><p>stops the workflow when something &#8220;feels off&#8221;</p></li></ul><p>This is the same way DevOps started.</p><p>Before it was a title, it was a <strong>mindset</strong>.<br>A craft.<br>A way of seeing systems.</p><p>You didn&#8217;t wait for permission to do DevOps. You just started fixing the system.</p><p>H&#8209;Edges are the same.</p><p>Some organizations will try to rename an analyst &#8220;AI Governance Lead&#8221; and call it transformation.</p><p>But the real H&#8209;Edges are already doing the work &#8212; quietly, consistently, and long before anyone gave it a name.</p><h1><strong>The Protocol: The &#8220;Edge Moment Detector&#8221;</strong></h1><p>Here&#8217;s a small, reproducible protocol you can use to identify edge moments in any workflow.</p><h3><strong>The Edge Moment Detector</strong></h3><p>Before letting AI perform a task, ask these three questions. If you can&#8217;t see the edge, use this:</p><p><strong>1. &#8220;What happens if this is wrong?&#8221;</strong>  <br>If the answer involves money, people, compliance, safety, or reputation &#8212; you&#8217;re at the edge.</p><p><strong>2. &#8220;Would I let a new hire do this unsupervised?&#8221;</strong>  <br>If the answer is no &#8212; you&#8217;re at the edge.</p><p><strong>3. &#8220;Is the model allowed to guess here?&#8221;</strong>  <br>If the answer is also no &#8212; you&#8217;re definitely at the edge.</p><h3><strong>Do this today:</strong></h3><p>Pick one workflow where AI is already involved.<br>Run it through the Edge Moment Detector.</p><p>You&#8217;ll immediately see where the human layer belongs.</p><h1><strong>The Human Layer: The Identity of the H&#8209;Edge</strong></h1><p>H&#8209;Edges are the humans who govern AI at the edge &#8212; the point where automation touches reality.</p><p>They don&#8217;t trust the model.<br>They govern the workflow.</p><p>They don&#8217;t write magic prompts.<br>They build protocols.</p><p>If you&#8217;ve ever:</p><ul><li><p>stopped an AI workflow because something felt off</p></li><li><p>added a human checkpoint because the stakes were high</p></li><li><p>broken a task into deterministic steps</p></li><li><p>asked, &#8220;What exactly is this model allowed to do?&#8221;</p></li><li><p>refused to ship without guardrails</p></li></ul><p>&#8230;you&#8217;re already a H&#8209;Edge.</p><p>This identity isn&#8217;t assigned.<br>It emerges.</p><p>It&#8217;s the natural role for anyone who believes AI should accelerate human capability &#8212; not replace human judgment.</p><h1><strong>The Closing Line</strong></h1><p><strong>You don&#8217;t stand in the way of AI. You decide where it&#8217;s allowed to matter.</strong></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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">New editions every Monday (worldview) and Thursday (patterns).</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-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/introducing-the-hedges-the-humans?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">Send this to someone who quietly keeps AI from breaking the real world.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/introducing-the-hedges-the-humans?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://www.thehedges.org/p/introducing-the-hedges-the-humans?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[Pattern Drop #2 — The Guessing Zone Detector]]></title><description><![CDATA[Where Workflows Break, and How Humans Keep Them Honest]]></description><link>https://www.thehedges.org/p/pattern-drop-2-the-guessing-zone-c73</link><guid isPermaLink="false">https://www.thehedges.org/p/pattern-drop-2-the-guessing-zone-c73</guid><dc:creator><![CDATA[Don Demcsak]]></dc:creator><pubDate>Thu, 18 Jun 2026 10:02:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DH8G!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93777939-3a09-4c05-b458-578887b666ea_1024x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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">Join the humans who keep AI aligned with reality</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>There&#8217;s a moment in every AI workflow where things quietly go sideways.</p><p>Not because the model is &#8220;wrong.&#8221;<br>Not because the prompt was &#8220;bad.&#8221;<br>Not because the system is &#8220;hallucinating.&#8221;</p><p>It&#8217;s because the model has slipped into <strong>The Guessing Zone</strong> &#8212; the part of the workflow where it&#8217;s improvising instead of following a protocol.</p><p>And unless you know how to spot it, you won&#8217;t see the failure until it&#8217;s already baked into the output.</p><p>Let&#8217;s fix that.</p><h2><strong>What The Guessing Zone Looks Like (A Real Example)</strong></h2><p>Imagine you ask an AI assistant to:</p><blockquote><p>&#8220;Summarize this customer complaint and classify the issue.&#8221;</p></blockquote><p>The model does great on the summary.<br>Then it confidently classifies the issue as <em>Billing</em>.</p><p>Except&#8230; the complaint was actually about <em>a broken product</em>.</p><p>Why did it guess?</p><p>Because the workflow didn&#8217;t give it:</p><ul><li><p>a controlled list of valid categories</p></li><li><p>a definition for each category</p></li><li><p>a protocol for how to decide</p></li><li><p>a fallback when the text doesn&#8217;t match anything</p></li></ul><p>So the model did what models do:<br><strong>it improvised.</strong></p><p>That&#8217;s The Guessing Zone.</p><p>It&#8217;s not malicious.<br>It&#8217;s not &#8220;hallucinating.&#8221;<br>It&#8217;s doing exactly what a probabilistic system does when the workflow leaves a gap.</p><h2><strong>The Guessing Zone Detector (Mini&#8209;Protocol)</strong></h2><p><em>A 4&#8209;step diagnostic you can run on any workflow.</em></p><p><strong>1. Identify every place the model must choose.</strong>  <br>Labels, categories, steps, tools, next actions, interpretations.</p><p><strong>2. Ask: &#8220;Is there a deterministic rule here?&#8221;</strong>  <br>If the model is deciding without a rule, that&#8217;s a Guessing Zone.</p><p><strong>3. Ask: &#8220;Does the model know the boundaries?&#8221;</strong>  <br>Valid options, definitions, constraints, exclusions, examples.</p><p><strong>4. Ask: &#8220;What happens if nothing fits?&#8221;</strong>  <br>If the workflow doesn&#8217;t define a fallback, the model will invent one.</p><p>Anywhere you answer &#8220;no&#8221; is a Guessing Zone.</p><p>And every Guessing Zone is a future failure.</p><h2><strong>Why This Matters</strong></h2><p>AI is probabilistic.<br>Workflows are deterministic.</p><p>When you mix the two without guardrails, you get:</p><ul><li><p>confident wrong answers</p></li><li><p>silent workflow drift</p></li><li><p>brittle automations</p></li><li><p>inconsistent outputs</p></li><li><p>failures that look like &#8220;model problems&#8221; but are actually <strong>workflow problems</strong></p></li></ul><p>This is why H&#8209;Edges exist.</p><p><strong>Humans define intent.</strong><br><strong>AI executes inside boundaries.</strong></p><p>Your job isn&#8217;t to make the model smarter.<br>Your job is to make the workflow <em>unbreakable</em>.</p><h2><strong>Closing Line</strong></h2><p>If you can detect the Guessing Zone before the model enters it, you&#8217;re already operating at the sovereign human layer.<br></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/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">New editions every Monday (worldview) and Thursday (patterns).</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-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/pattern-drop-2-the-guessing-zone-c73?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">Send this to someone who quietly fixes workflows while everyone else shrugs.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.thehedges.org/p/pattern-drop-2-the-guessing-zone-c73?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://www.thehedges.org/p/pattern-drop-2-the-guessing-zone-c73?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item></channel></rss>