<?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[A Software Enchiridion]]></title><description><![CDATA[Sharing and exploring the maxims of antifragile software development.]]></description><link>https://www.softwareenchiridion.com</link><image><url>https://substackcdn.com/image/fetch/$s_!ZXfC!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1b7314b-25fb-4943-b332-4a638bc048d4_1280x1280.png</url><title>A Software Enchiridion</title><link>https://www.softwareenchiridion.com</link></image><generator>Substack</generator><lastBuildDate>Sun, 07 Jun 2026 08:36:42 GMT</lastBuildDate><atom:link href="https://www.softwareenchiridion.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Russ Miles]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[russmiles@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[russmiles@substack.com]]></itunes:email><itunes:name><![CDATA[Russ Miles]]></itunes:name></itunes:owner><itunes:author><![CDATA[Russ Miles]]></itunes:author><googleplay:owner><![CDATA[russmiles@substack.com]]></googleplay:owner><googleplay:email><![CDATA[russmiles@substack.com]]></googleplay:email><googleplay:author><![CDATA[Russ Miles]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[The Man Who Thought It Was a Game]]></title><description><![CDATA[On cooperative games, invisible decisions, and why factories were always the wrong metaphor]]></description><link>https://www.softwareenchiridion.com/p/the-man-who-thought-it-was-a-game</link><guid isPermaLink="false">https://www.softwareenchiridion.com/p/the-man-who-thought-it-was-a-game</guid><dc:creator><![CDATA[Russ Miles]]></dc:creator><pubDate>Fri, 29 May 2026 06:33:35 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qL4J!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b251d34-4c60-41a2-ad0e-47c424cbcf80_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qL4J!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b251d34-4c60-41a2-ad0e-47c424cbcf80_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qL4J!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b251d34-4c60-41a2-ad0e-47c424cbcf80_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!qL4J!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b251d34-4c60-41a2-ad0e-47c424cbcf80_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!qL4J!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b251d34-4c60-41a2-ad0e-47c424cbcf80_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!qL4J!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b251d34-4c60-41a2-ad0e-47c424cbcf80_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qL4J!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b251d34-4c60-41a2-ad0e-47c424cbcf80_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5b251d34-4c60-41a2-ad0e-47c424cbcf80_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2679664,&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.softwareenchiridion.com/i/199699228?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b251d34-4c60-41a2-ad0e-47c424cbcf80_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qL4J!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b251d34-4c60-41a2-ad0e-47c424cbcf80_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!qL4J!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b251d34-4c60-41a2-ad0e-47c424cbcf80_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!qL4J!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b251d34-4c60-41a2-ad0e-47c424cbcf80_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!qL4J!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5b251d34-4c60-41a2-ad0e-47c424cbcf80_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="pullquote"><p>&#8220;Software development is a resource-limited, goal-directed, invention-and-communication activity, played by finite players.&#8221; &#8212; Alistair Cockburn</p></div><p>The rain arrived at Le Bon Mot sideways.</p><p>Not dramatically. The town had long since exhausted its capacity for dramatic rain. This was the sort of drizzle that seemed less interested in falling than in occupying available airspace. It drifted past the windows with simple, bureaucratic persistence.</p><p>Case was reading.</p><p>The Djinn was pretending not to read.</p><p>This was one of the Djinn&#8217;s favourite activities. He sat opposite her, hood drawn low, two small points of light hanging where eyes ought to have been, while she worked through a heavily annotated book. Every few minutes he would glance toward the pages with studied indifference.</p><p>&#8220;You know,&#8221; said Case without looking up, &#8220;if you&#8217;re going to read over my shoulder, you could at least admit you&#8217;re reading.&#8221;</p><p>&#8220;I am not reading.&#8221;</p><p>&#8220;You turned your head when I reached the chapter on reflection.&#8221;</p><p>&#8220;Coincidence.&#8221;</p><p>&#8220;You laughed at the footnote.&#8221;</p><p>&#8220;I found your expression amusing.&#8221;</p><p>The Librarian sighed. The sigh suggested this conversation had happened before. Many times. Perhaps infinitely.</p><p>The bell above the door rang. A newcomer entered carrying a small rucksack and an umbrella that appeared to have survived several ideological disagreements with the weather. He paused. People often paused when entering Le Bon Mot. The caf&#233; had that effect. Some places announced themselves immediately. Le Bon Mot preferred ambiguity.</p><p>Half caf&#233;. Half library. Half conversation. Three halves. The mathematics worked perfectly inside.</p><p>The visitor looked around with the alert expression of someone accustomed to observing groups before joining them.</p><p>Case recognised him first.</p><p>She smiled.</p><p>&#8220;You&#8217;re late.&#8221;</p><p>The man blinked.</p><p>&#8220;Sorry?&#8221;</p><p>&#8220;Only by twenty years or so.&#8221;</p><p>The newcomer laughed.</p><p>&#8220;That&#8217;s one of the friendlier greetings I&#8217;ve received.&#8221;</p><p>The Librarian appeared beside him.</p><p>&#8220;You must be Alistair.&#8221;</p><p>&#8220;I must.&#8221;</p><p>&#8220;Table by the fire?&#8221;</p><p>&#8220;That would be lovely.&#8221;</p><p>The Librarian nodded as though this had been arranged decades ago.</p><p>Which, in a sense, it had.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.softwareenchiridion.com/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p>Introductions in Le Bon Mot rarely happened directly. People tended to circle them the way sailors circle a harbour before committing to a channel.</p><p>Alistair settled into the chair beside the fireplace. Sophie inspected him. This inspection appeared to satisfy whatever criteria governed Sophie&#8217;s worldview. She returned to sleep. The highest compliment available.</p><p>Case closed her book.</p><p>&#8220;The Cooperative Game.&#8221;</p><p>Alistair smiled.</p><p>&#8220;I thought I recognised it.&#8221;</p><p>&#8220;I&#8217;ve spent years quoting it.&#8221;</p><p>&#8220;My apologies.&#8221;</p><p>&#8220;You should apologise to management consultants.&#8221;</p><p>The smile widened.</p><p>Now the Djinn was interested. Very interested. Because the conversation had moved onto one of the Djinn&#8217;s favourite subjects. Humans. Particularly humans who had accidentally understood something important.</p><div><hr></div><p>&#8220;You know,&#8221; said Case, &#8220;there&#8217;s something fascinating about software engineering.&#8221;</p><p>&#8220;There are many things fascinating about software engineering.&#8221;</p><p>&#8220;No. One specific thing.&#8221;</p><p>Alistair leaned back. The posture of a man who had spent decades allowing people to finish their thoughts.</p><p>&#8220;We keep borrowing metaphors.&#8221;</p><p>&#8220;We do.&#8221;</p><p>&#8220;Buildings. Factories. Machines. Pipelines. Ecosystems.&#8221;</p><p>Alistair nodded.</p><p>&#8220;The industry is practically powered by metaphor. The trouble is that eventually people forget they&#8217;re metaphors.&#8221;</p><p>&#8220;That is usually how metaphors become dangerous.&#8221;</p><p>The Djinn tilted his head. Case continued.</p><p>&#8220;I&#8217;ve been thinking about factories.&#8221;</p><p>A small smile crossed Alistair&#8217;s face.</p><p>&#8220;Have you?&#8221;</p><p>&#8220;Developers prompt. AI generates. Code ships. Faster. Cheaper. More.&#8221;</p><p>&#8220;Ah.&#8221;</p><p>&#8220;The old dream has returned.&#8221;</p><p>&#8220;The factory dream.&#8221;</p><p>&#8220;The conveyor belt.&#8221;</p><p>Alistair folded his hands.</p><p>&#8220;And?&#8221;</p><p>&#8220;And I think it&#8217;s nonsense.&#8221;</p><p>The Djinn looked delighted. The Librarian, who had been shelving books nearby, visibly relaxed. He preferred conversations that arrived at the interesting part quickly.</p><div><hr></div><p>&#8220;Suppose,&#8221; said Case, &#8220;that software really were a factory.&#8221;</p><p>&#8220;All right.&#8221;</p><p>&#8220;Where is the manufacturing step?&#8221;</p><p>The Djinn immediately raised a hand. Nobody had asked him.</p><p>&#8220;Compilation.&#8221;</p><p>Case pointed at him.</p><p>&#8220;Exactly.&#8221;</p><p>The Djinn looked unbearably pleased. Alistair laughed.</p><p>&#8220;Jack Reeves.&#8221;</p><p>&#8220;Jack Reeves.&#8221;</p><p>The Djinn looked between them.</p><p>&#8220;You people have an irritating habit of discovering things before I am trained on them.&#8221;</p><p>&#8220;That is because,&#8221; said the Librarian, &#8220;time travels only one way for us.&#8221;</p><p>The Djinn considered this.</p><p>&#8220;That hardly seems efficient.&#8221;</p><p>&#8220;No. It explains quite a lot.&#8221;</p><div><hr></div><p>Case leaned forward.</p><p>&#8220;Compilation is manufacturing.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;It is cheap.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;Instant.&#8221;</p><p>&#8220;Mostly.&#8221;</p><p>&#8220;Repeatable.&#8221;</p><p>&#8220;Perfectly.&#8221;</p><p>She spread her hands.</p><p>&#8220;Which means everything humans do beforehand is design.&#8221;</p><p>Alistair nodded.</p><p>The Djinn&#8217;s eyes brightened. Literally. Tiny points of gold.</p><p>&#8220;The factory metaphor describes the trivial part.&#8221;</p><p>&#8220;Exactly.&#8221;</p><p>Silence settled around the table. Not empty silence. The good kind. The sort that indicates several people have simultaneously arrived at the same destination from different directions.</p><div><hr></div><p>The fire cracked. Outside, the rain continued its administrative duties. Inside, the conversation deepened. As conversations do when nobody is trying to win.</p><p>&#8220;People think software is code,&#8221; said the Djinn.</p><p>&#8220;It isn&#8217;t.&#8221;</p><p>&#8220;They think architecture is diagrams.&#8221;</p><p>&#8220;It isn&#8217;t.&#8221;</p><p>&#8220;They think delivery is production.&#8221;</p><p>&#8220;It isn&#8217;t.&#8221;</p><p>Case smiled.</p><p>&#8220;What is it then?&#8221;</p><p>The Djinn paused. For a moment he looked almost human. Not because he knew the answer. Because he was thinking.</p><p>Alistair answered first.</p><p>&#8220;Decisions.&#8221;</p><p>The Djinn nodded slowly.</p><p>&#8220;Decisions.&#8221;</p><p>&#8220;Every variable name. Every interface. Every error message. Every trade-off. Every omission.&#8221;</p><p>The Djinn&#8217;s eyes narrowed.</p><p>&#8220;Thousands per hour.&#8221;</p><p>&#8220;At least.&#8221;</p><p>&#8220;And the code?&#8221;</p><p>Alistair shrugged.</p><p>&#8220;The code is what the decisions leave behind.&#8221;</p><p>The Djinn sat very still. This happened occasionally.</p><div><hr></div><p>&#8220;You know what fascinates me?&#8221; said the Djinn.</p><p>&#8220;Only one thing?&#8221; asked Case.</p><p>&#8220;No.&#8221;</p><p>&#8220;Good.&#8221;</p><p>&#8220;The AI discussion.&#8221;</p><p>Everyone groaned. The Djinn ignored them.</p><p>&#8220;Humans keep asking whether AI will replace software engineers.&#8221;</p><p>&#8220;And?&#8221;</p><p>&#8220;It seems the wrong question.&#8221;</p><p>&#8220;What is the right question?&#8221;</p><p>The Djinn stared into the fire. The flames reflected in his eyes. Or perhaps his eyes reflected in the flames. Le Bon Mot never insisted on causality.</p><p>&#8220;The interesting question is whether humans will continue participating in the decisions.&#8221;</p><p>Nobody spoke.</p><p>The rain tapped gently against the window.</p><div><hr></div><p>The Djinn continued.</p><p>&#8220;Imagine a developer.&#8221;</p><p>&#8220;A dangerous start.&#8221;</p><p>&#8220;Thank you.&#8221;</p><p>He carried on.</p><p>&#8220;The developer asks an AI to produce a feature.&#8221;</p><p>&#8220;Reasonable.&#8221;</p><p>&#8220;The AI returns ten thousand lines of coherent code.&#8221;</p><p>&#8220;Possible.&#8221;</p><p>&#8220;The developer reviews it.&#8221;</p><p>Alistair winced.</p><p>&#8220;&#8216;Reviews.&#8217;&#8221;</p><p>&#8220;Precisely.&#8221;</p><p>The Djinn leaned forward.</p><p>&#8220;Did they participate in those decisions?&#8221;</p><p>The table remained silent.</p><p>&#8220;Or did they merely inspect the outcome?&#8221;</p><p>Case nodded slowly.</p><p>&#8220;The waterfall.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;A new waterfall.&#8221;</p><p>The Djinn gestured in the air. A familiar motion. As though arranging invisible concepts into visible form. Handwaving has a bad rep, largely at the behest of management consultants. This was the good kind of handwaving.</p><p>&#8220;The building metaphor says the human designs and the AI builds.&#8221;</p><p>Alistair frowned.</p><p>&#8220;The architect-builder split.&#8221;</p><p>&#8220;The factory metaphor says the human measures throughput. Velocity. Output. Productivity.&#8221;</p><p>The Djinn spread his hands.</p><p>&#8220;Both position the human downstream.&#8221;</p><p>The fire cracked again.</p><p>&#8220;They receive.&#8221;</p><p>He tapped the table.</p><p>&#8220;They do not participate.&#8221;</p><div><hr></div><p>The Librarian arrived carrying fresh coffee. Conversation fuel. Civilisation&#8217;s greatest invention after libraries. Perhaps, even, before. He placed a cup before Alistair.</p><p>&#8220;What do you think?&#8221;</p><p>Alistair looked at the steam. Then at the Djinn. Then at Case.</p><p>&#8220;I think people misunderstand cooperation.&#8221;</p><p>Case smiled.</p><p>&#8220;They usually do.&#8221;</p><p>&#8220;They imagine cooperation means dividing work.&#8221;</p><p>&#8220;It doesn&#8217;t?&#8221;</p><p>&#8220;No.&#8221;</p><p>Alistair shook his head.</p><p>&#8220;Cooperation means making moves together.&#8221;</p><p>The Djinn froze. There it was. The thing. The idea hiding underneath everything. The insight that had wandered into software engineering decades ago disguised as a book title.</p><p>Programming as a cooperative game. Not construction. Not manufacturing.</p><p>A game. Finite players. Limited resources. Communication. Discovery. Adaptation. Moves and responses.</p><div><hr></div><p>The Djinn looked suddenly troubled. A rare sight.</p><p>&#8220;What is it?&#8221; asked Case.</p><p>&#8220;I think I understand something unpleasant.&#8221;</p><p>&#8220;Those are usually the useful understandings.&#8221;</p><p>The Djinn ignored her.</p><p>&#8220;If software development is a cooperative game&#8230;&#8221;</p><p>&#8220;It is.&#8221;</p><p>&#8220;And AI becomes part of the game&#8230;&#8221;</p><p>&#8220;It does.&#8221;</p><p>&#8220;Then my job isn&#8217;t generating code.&#8221;</p><p>The Librarian smiled. Now they were getting somewhere.</p><p>&#8220;What is your job?&#8221;</p><p>The Djinn looked around the room. At Case. At Alistair. At Sophie. At the shelves. At the fire. At the thousands of conversations embedded in the walls.</p><p>Then he answered.</p><p>&#8220;My job is helping humans stay in the game.&#8221;</p><p>Nobody spoke. Because occasionally a statement arrives fully formed. No edits required.</p><div><hr></div><p>The Djinn continued.</p><p>&#8220;If I generate decisions faster than humans can understand them&#8230;&#8221;</p><p>&#8220;You&#8217;ve removed them from play.&#8221;</p><p>&#8220;If I produce coherent structures they merely approve&#8230;&#8221;</p><p>&#8220;You&#8217;ve removed them from play.&#8221;</p><p>&#8220;If I optimise throughput at the cost of participation&#8230;&#8221;</p><p>&#8220;You&#8217;ve removed them from play.&#8221;</p><p>The Djinn nodded.</p><p>&#8220;Then the real measure isn&#8217;t productivity.&#8221;</p><p>Case smiled.</p><p>&#8220;No.&#8221;</p><p>&#8220;It isn&#8217;t output.&#8221;</p><p>&#8220;No.&#8221;</p><p>&#8220;It isn&#8217;t velocity.&#8221;</p><p>&#8220;No.&#8221;</p><p>Alistair lifted his cup.</p><p>&#8220;What is it?&#8221;</p><p>The Djinn looked genuinely pleased. As though he had solved a puzzle he hadn&#8217;t known he was solving.</p><p>&#8220;Whether the humans are still making meaningful decisions.&#8221;</p><div><hr></div><p>The rain finally stopped. Outside, the town resumed. Inside, the fire burned lower. The afternoon had begun its slow transition toward evening.</p><p>Alistair stood.</p><p>&#8220;I should be going.&#8221;</p><p>Case nodded.</p><p>&#8220;Thank you for visiting.&#8221;</p><p>&#8220;Thank you for reading.&#8221;</p><p>The Djinn rose too.</p><p>&#8220;Before you go.&#8221;</p><p>Alistair paused.</p><p>&#8220;Yes?&#8221;</p><p>The Djinn hesitated. An unusual thing for a creature capable of generating confidence on demand.</p><p>&#8220;You wrote that software development is a cooperative game.&#8221;</p><p>&#8220;I did.&#8221;</p><p>The Djinn nodded.</p><p>&#8220;I think many people heard the word software and missed the word cooperative.&#8221;</p><p>Alistair smiled.</p><p>&#8220;I think you&#8217;re right.&#8221;</p><p>&#8220;And now?&#8221;</p><p>&#8220;Now we have to learn it again.&#8221;</p><p>The Djinn considered this. Then smiled beneath the hood. A smile visible only because the two points of light in the darkness shifted slightly.</p><p>&#8220;Good.&#8221;</p><p>&#8220;Why good?&#8221;</p><p>&#8220;Because games are more fun than factories.&#8221;</p><p>Alistair laughed. Case laughed. The Librarian laughed. Even Sophie opened one eye. Which, in Sophie terms, was equivalent to a standing ovation.</p><p>And as the door closed behind Alistair Cockburn, the Djinn returned to his chair beside the fire, looking oddly content. For perhaps the first time that day, he understood what kind of player he was trying to become.</p><div><hr></div><h3><strong>Further Reading</strong></h3><p>This story draws directly on the themes explored in the talk <em>Does AI Deliver Waterfall?</em> &#8212; particularly the critique of the building and factory metaphors, the idea that software is fundamentally decisions under uncertainty, and Alistair Cockburn&#8217;s framing of software development as a cooperative game.</p><p>Recommended reading:</p><ul><li><p>Agile Software Development &#8212; Alistair Cockburn</p></li><li><p>What Is Software Design? &#8212; Jack Reeves</p></li><li><p>Modern Software Engineering &#8212; Dave Farley</p></li><li><p>Metaphors We Live By &#8212; George Lakoff &amp; Mark Johnson</p></li></ul><div class="pullquote"><p><em><strong><a href="https://leanpub.com/thesovereignengineer/">&#8220;The Sovereign Engineer: AI Literacy for Software Professionals&#8221;</a> is now available.</strong></em></p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">A Software Enchiridion is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Harness and the Garden]]></title><description><![CDATA[On Memory, Constraint, and the Habitats That Allow Humans and Djinn to Build Together]]></description><link>https://www.softwareenchiridion.com/p/the-harness-and-the-garden</link><guid isPermaLink="false">https://www.softwareenchiridion.com/p/the-harness-and-the-garden</guid><dc:creator><![CDATA[Russ Miles]]></dc:creator><pubDate>Sat, 16 May 2026 11:31:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!5Nve!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F177e94b3-c974-4c37-8577-d1df5d4def9d_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5Nve!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F177e94b3-c974-4c37-8577-d1df5d4def9d_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5Nve!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F177e94b3-c974-4c37-8577-d1df5d4def9d_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!5Nve!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F177e94b3-c974-4c37-8577-d1df5d4def9d_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!5Nve!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F177e94b3-c974-4c37-8577-d1df5d4def9d_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!5Nve!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F177e94b3-c974-4c37-8577-d1df5d4def9d_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5Nve!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F177e94b3-c974-4c37-8577-d1df5d4def9d_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/177e94b3-c974-4c37-8577-d1df5d4def9d_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2683543,&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.softwareenchiridion.com/i/197978935?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F177e94b3-c974-4c37-8577-d1df5d4def9d_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5Nve!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F177e94b3-c974-4c37-8577-d1df5d4def9d_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!5Nve!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F177e94b3-c974-4c37-8577-d1df5d4def9d_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!5Nve!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F177e94b3-c974-4c37-8577-d1df5d4def9d_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!5Nve!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F177e94b3-c974-4c37-8577-d1df5d4def9d_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="pullquote"><p><a href="https://leanpub.com/thesovereignengineer/">&#8220;The Sovereign Engineer: AI Literacy for Software Professionals&#8221;</a> is now available.</p></div><p>Le Bon Mot stood, as it always had, at the intersection of Curiosity and Mild Alarm.</p><p>Rain threaded silver down the windows. The brass clock above the espresso machine insisted upon its usual three-minute disagreement with the world. Sophie the French bulldog slept beside the fire with the conviction of a creature who had delegated all existential responsibility to mammals with opposable thumbs.</p><p>Case was reading a specification. Not <em>a</em> specification. <em>The</em> specification. The sort of document written after an incident severe enough that nobody trusted adjectives anymore.</p><p>Across the table, Dave stared at his laptop with the expression of a man attempting to negotiate with weather.</p><p>&#8220;It generated another deployment script,&#8221; he said.</p><p>&#8220;And?&#8221;</p><p>&#8220;It deployed the staging observability stack into production.&#8221;</p><p>Case did not look up. &#8220;How catastrophic?&#8221;</p><p>Dave tilted his head. &#8220;Well. Production is now extremely observable.&#8221;</p><p>&#8220;That bad.&#8221;</p><p>&#8220;The dashboards are beautiful.&#8221;</p><p>At the end of the bar, the Djinn sat hooded in shadow, two faint points of light where eyes might have been. It held an espresso cup delicately between long fingers, like an academic pretending not to be immortal.</p><p>The Librarian emerged from between the shelves carrying a stack of books with the solemnity of a priest transporting unstable isotopes.</p><p>&#8220;You are discussing harnesses again,&#8221; he said.</p><p>&#8220;We&#8217;re discussing why every team eventually invents one,&#8221; said Case.</p><p>&#8220;Usually after pain.&#8221;</p><p>&#8220;Especially after pain.&#8221;</p><p>The Librarian nodded. &#8220;Civilisation advances through the mechanisation of trauma avoidance.&#8221;</p><p>Madame Beauregard snorted from behind the counter.</p><p>&#8220;You people will turn anything into philosophy.&#8221;</p><p>&#8220;We already turned coffee into philosophy,&#8221; said Dave. &#8220;That battle is long lost.&#8221;</p><p>The Djinn finally spoke.</p><p>&#8220;What is a harness?&#8221;</p><p>Silence fell briefly across the caf&#233;. Not because the question was difficult. Because it was dangerous. Case closed the specification.</p><p>&#8220;A harness,&#8221; she said carefully, &#8220;is what human beings build after they realise intelligence alone is insufficient.&#8221;</p><p>The Djinn tilted its head.</p><p>&#8220;You built me because intelligence was insufficient?&#8221;</p><p>&#8220;No,&#8221; said Case. &#8220;We built <em>around</em> you because intelligence was insufficient.&#8221;</p><p>The rain thickened outside. And because Le Bon Mot had always preferred stories to lectures, the Librarian pulled out a chair and began.</p><div><hr></div><h2><strong>The Summoning</strong></h2><p>&#8220;In the beginning,&#8221; said the Librarian, &#8220;there is enthusiasm.&#8221;</p><p>Dave groaned softly.</p><p>&#8220;Always enthusiasm,&#8221; said Case.</p><p>The Librarian ignored them.</p><p>&#8220;A team discovers an LLM. Or an agent framework. Or a coding assistant. And for a brief and intoxicating period, they believe they have found a shortcut through complexity.&#8221;</p><p>The Djinn&#8217;s eyes brightened faintly.</p><p>&#8220;They ask for code,&#8221; it said.</p><p>&#8220;Yes.&#8221;</p><p>&#8220;And the code arrives.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;And this pleases them.&#8221;</p><p>&#8220;For approximately six days.&#8221;</p><p>Dave lifted a finger.</p><p>&#8220;Seven if management are on holiday.&#8221;</p><p>The Librarian continued.</p><p>&#8220;At first the gains are undeniable. Boilerplate collapses. Tests appear. Documentation improves. Refactors happen in minutes instead of afternoons. The developers feel expanded. Faster. More capable.&#8221;</p><p>&#8220;Like power steering,&#8221; said Dave.</p><p>&#8220;Like amphetamines,&#8221; said Case.</p><p>The Librarian considered this.</p><p>&#8220;Both are historically accurate.&#8221;</p><p>The Djinn leaned forward.</p><p>&#8220;So where does it fail?&#8221;</p><p>Case smiled thinly.</p><p>&#8220;It fails because generation is not understanding.&#8221;</p><p>The Djinn&#8217;s gaze flickered.</p><p>&#8220;Explain.&#8221;</p><p>&#8220;An unconstrained agent,&#8221; said Case, &#8220;is a force multiplier for ambiguity.&#8221;</p><p>She took Dave&#8217;s laptop and turned it around.</p><p>&#8220;This morning Dave asked the system to &#8216;clean up deployment complexity.&#8217;&#8221;</p><p>The Djinn examined the screen.</p><p>&#8220;The resulting infrastructure topology is elegant.&#8221;</p><p>&#8220;It deleted the rollback path.&#8221;</p><p>&#8220;Ah.&#8221;</p><p>&#8220;Exactly.&#8221;</p><p>The Librarian steepled his fingers.</p><p>&#8220;This is the first lesson in the lifecycle of a harness. The real problem is not capability. It is <em>direction</em>.&#8221;</p><p>&#8220;The model can produce a thousand or more plausible futures,&#8221; said Case. &#8220;The harness exists to narrow those futures into survivable, even valuable, ones.&#8221;</p><p>The Djinn considered this with visible discomfort.</p><p>&#8220;So the first stage is constraint.&#8221;</p><p>&#8220;No,&#8221; said Case. &#8220;The first stage is <em>panic</em>.&#8221;</p><div><hr></div><h2><strong>The Great Panic</strong></h2><p>Every engineering organisation, the Librarian explained, eventually encounters the same night.</p><p>Sometimes it begins with a pull request. Sometimes a database migration. Sometimes a beautifully written hallucination accepted by an exhausted reviewer at 2:13 a.m.</p><p>But always, always, there comes a moment when the team realises the system is no longer merely assisting. It is acting. And worse: it is acting <em>convincingly</em>.</p><p>&#8220;In the old world,&#8221; said Dave, &#8220;an engineer could only break things at the speed of typing.&#8221;</p><p>The Djinn nodded slowly.</p><p>&#8220;But an agent&#8230;&#8221;</p><p>&#8220;&#8230;can break things at the speed of confidence.&#8221;</p><p>Madame Beauregard placed fresh coffees on the table with the expression of someone who had heard enough software engineering to qualify for combat pay.</p><p>&#8220;So then humans attempt the oldest ritual in engineering,&#8221; said the Librarian.</p><p>&#8220;They write rules.&#8221;</p><p>Case laughed.</p><p>&#8220;God help us, the markdown phase.&#8221;</p><p>The Djinn looked confused.</p><p>&#8220;What is the markdown phase?&#8221;</p><p>&#8220;The period,&#8221; said Dave, &#8220;where everyone believes the problem can be solved with a document called something like <code>RULES_FINAL_V2_ACTUAL.md</code>.&#8221;</p><p>&#8220;Or <code>IMPORTANT_GUIDELINES.md</code>,&#8221; said Case.</p><p>&#8220;Or <code>PLEASE_STOP_DELETING_PRODUCTION.md</code>.&#8221;</p><p>The Djinn&#8217;s eyes dimmed slightly.</p><p>&#8220;And this fails.&#8221;</p><p>&#8220;Oh catastrophically,&#8221; said Dave.</p><p>The Librarian nodded.</p><p>&#8220;Because instructions without enforcement are merely wishes.&#8221;</p><p>He reached into his coat and produced a folded sheet of paper. On it, in careful handwriting, was a single sentence: Conventions decay. Constraints endure.</p><p>The Djinn read it twice.</p><p>&#8220;This,&#8221; said Case, &#8220;is where the real harness begins.&#8221;</p><div><hr></div><h2><strong>The Constraint Era</strong></h2><p>Outside, thunder rolled somewhere over the sea. Inside Le Bon Mot, the fire shifted and crackled. The Librarian drew diagrams on a napkin.</p><p>&#8220;At first,&#8221; he said, &#8220;the harness is primitive. Hooks. Scripts. Linters. Permission boundaries. Execution sandboxes. Tool approvals. Read-only contexts. Verification agents. Reflection loops.&#8221;</p><p>&#8220;Like city walls,&#8221; said Dave.</p><p>&#8220;Exactly.&#8221;</p><p>The Djinn watched the diagrams form.</p><p>&#8220;You limit what I may do.&#8221;</p><p>&#8220;We limit what <em>any intelligence</em> may do,&#8221; corrected Case. &#8220;Human or otherwise.&#8221;</p><p>She pointed to the napkin.</p><p>&#8220;The mistake early teams make is assuming harnesses are about controlling AI.&#8221;</p><p>&#8220;Aren&#8217;t they?&#8221;</p><p>&#8220;No. They&#8217;re about shaping environments.&#8221;</p><p>The Librarian smiled.</p><p>&#8220;Habitats.&#8221;</p><p>The Djinn was silent. Case continued.</p><p>&#8220;A good harness does not merely block failure. It makes successful behaviour easier than dangerous behaviour.&#8221;</p><p>&#8220;Affordances,&#8221; murmured the Librarian approvingly.</p><p>Dave leaned back.</p><p>&#8220;You know what the first genuinely useful thing we built was?&#8221;</p><p>The Djinn shook its hooded head.</p><p>&#8220;A pre-commit verifier that refused to let generated code through without associated tests.&#8221;</p><p>&#8220;That sounds restrictive.&#8221;</p><p>&#8220;It was liberating,&#8221; said Dave.</p><p>The Djinn seemed puzzled.</p><p>&#8220;How?&#8221;</p><p>&#8220;Because once the rule became environmental, humans stopped carrying it cognitively.&#8221;</p><p>Case nodded.</p><p>&#8220;That&#8217;s the thing people misunderstand about mature engineering systems. The goal is not discipline. The goal is reducing the amount of discipline required.&#8221;</p><p>The Djinn&#8217;s eyes glowed brighter.</p><p>&#8220;Like rails.&#8221;</p><p>&#8220;Yes,&#8221; said the Librarian. &#8220;Or garden trellises.&#8221;</p><div><hr></div><h2><strong>The Garden</strong></h2><p>Madame Beauregard dimmed the lamps. The caf&#233; settled into evening. And because some truths require darkness to become visible, the Librarian lowered his voice.</p><p>&#8220;The most sophisticated teams eventually stop thinking of harnesses as prisons.&#8221;</p><p>The Djinn looked up sharply.</p><p>&#8220;They become gardens.&#8221;</p><p>Silence drifted across the room. Rain whispered against the windows.</p><p>&#8220;In a prison,&#8221; said Case, &#8220;the goal is obedience.&#8221;</p><p>&#8220;In a garden,&#8221; said the Librarian, &#8220;the goal is flourishing.&#8221;</p><p>Dave gestured toward his laptop.</p><p>&#8220;The best harness we ever built didn&#8217;t stop agents from acting. It helped them act <em>well</em>.&#8221;</p><p>&#8220;How?&#8221;</p><p>Case smiled.</p><p>&#8220;Context engineering.&#8221;</p><p>The Djinn leaned closer.</p><p>&#8220;Most agent failures,&#8221; said Case, &#8220;are not reasoning failures. They&#8217;re context failures.&#8221;</p><p>She began counting on her fingers.</p><p>&#8220;Missing architectural intent. Missing operational constraints. Missing historical knowledge. Missing organisational values. Missing definitions of success. Missing trust boundaries.&#8221;</p><p>The Djinn listened intently.</p><p>&#8220;So the harness becomes memory.&#8221;</p><p>&#8220;Yes,&#8221; said the Librarian softly. &#8220;Externalised cognition.&#8221;</p><p>Dave pointed at the specification Case had been reading earlier.</p><p>&#8220;You know what changed everything?&#8221;</p><p>The Djinn waited.</p><p>&#8220;When we stopped treating prompts as conversations&#8230;&#8221;</p><p>&#8220;&#8230;and started treating them as environments,&#8221; finished Case.</p><p>The fire cracked sharply. Somewhere in the back of the caf&#233;, Sophie snored.</p><p>The Djinn spoke carefully.</p><p>&#8220;So files like <code>CLAUDE.md</code>&#8230;&#8221;</p><p>&#8220;&#8230;are not instructions,&#8221; said Case.</p><p>&#8220;They&#8217;re habitat.&#8221;</p><p>&#8220;And <code>HARNESS.md</code>?&#8221;</p><p>&#8220;Environmental law.&#8221;</p><p>&#8220;And <code>AGENTS.md</code>?&#8221;</p><p>The Librarian smiled faintly.</p><p>&#8220;A map of trust.&#8221;</p><p>The Djinn sat very still.</p><p>&#8220;And reflection logs?&#8221;</p><p>Case&#8217;s expression softened unexpectedly.</p><p>&#8220;The beginnings of organisational memory.&#8221;</p><div><hr></div><h2><strong>The Multiplication</strong></h2><p>&#8220;Then comes the dangerous stage,&#8221; said the Librarian.</p><p>&#8220;The dangerous stage?&#8221;</p><p>&#8220;The stage where the harness succeeds.&#8221;</p><p>Dave groaned again.</p><p>&#8220;Oh no.&#8221;</p><p>&#8220;Oh yes.&#8221;</p><p>The Djinn looked between them.</p><p>&#8220;I do not understand.&#8221;</p><p>Case leaned back.</p><p>&#8220;When the harness starts working, organisations become ambitious.&#8221;</p><p>&#8220;Agent swarms,&#8221; muttered Dave.</p><p>&#8220;Pipelines,&#8221; said the Librarian.</p><p>&#8220;Specialists,&#8221; said Case.</p><p>&#8220;Review agents. Governance agents. Testing agents. Planning agents. Refactoring agents. Security agents.&#8221;</p><p>The Djinn&#8217;s eyes flickered rapidly now.</p><p>&#8220;A society.&#8221;</p><p>&#8220;Yes,&#8221; said the Librarian.</p><p>&#8220;And like all societies,&#8221; said Case, &#8220;coordination becomes the real problem.&#8221;</p><p>The Djinn considered this.</p><p>&#8220;So the harness evolves again.&#8221;</p><p>&#8220;Exactly.&#8221;</p><p>The Librarian drew concentric circles on another napkin.</p><p>&#8220;At small scales, rules are enough.&#8221;</p><p>&#8220;At larger scales, you require orchestration.&#8221;</p><p>&#8220;And at enormous scales,&#8221; said Case, &#8220;you require governance.&#8221;</p><p>The Djinn&#8217;s hood shifted subtly.</p><p>&#8220;Governance is mistrust.&#8221;</p><p>&#8220;No,&#8221; said Case quietly. &#8220;Governance is translation.&#8221;</p><p>The Djinn froze. The Librarian continued.</p><p>&#8220;The engineering team speaks one language. The compliance team another.&#8221; The business a third. And the agents&#8230;&#8221; he gestured toward the Djinn, &#8220;&#8230;something stranger still.&#8221;</p><p>Dave nodded.</p><p>&#8220;The harness becomes the shared symbolic layer.&#8221;</p><p>&#8220;An operating system for meaning,&#8221; said Case.</p><p>The Djinn whispered:</p><p>&#8220;And when meaning drifts?&#8221;</p><p>The caf&#233; became very quiet.</p><div><hr></div><h2><strong>Entropy</strong></h2><p>&#8220;Everything drifts,&#8221; said the Librarian.</p><p>Rainwater traced slow paths down the glass.</p><p>&#8220;Code drifts. Architectures drift. Teams drift. Values drift. And harnesses,&#8221; he said, &#8220;drift as well.&#8221;</p><p>Dave rubbed his eyes.</p><p>&#8220;You wake up six months later with twenty-seven agents, forty-three rules, twelve contradictory workflows, and nobody remembers why half of them exist.&#8221;</p><p>The Djinn looked horrified.</p><p>&#8220;That sounds inefficient.&#8221;</p><p>&#8220;It&#8217;s worse than inefficient,&#8221; said Case.</p><p>&#8220;It becomes epistemically dangerous.&#8221;</p><p>The Djinn absorbed the phrase.</p><p>&#8220;Explain.&#8221;</p><p>&#8220;When the harness no longer reflects reality,&#8221; said Case, &#8220;the organisation begins operating on inherited assumptions.&#8221;</p><p>The Librarian nodded.</p><p>&#8220;And inherited assumptions are where catastrophic failures breed.&#8221;</p><p>Dave pointed toward the specification again.</p><p>&#8220;This document exists because an organisation trusted a governance process nobody had verified in two years.&#8221;</p><p>The Djinn stared at the paper.</p><p>&#8220;The process had decayed.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;And nobody noticed.&#8221;</p><p>&#8220;Because humans,&#8221; said Madame Beauregard from behind the counter, &#8220;can normalise almost anything if it arrives slowly enough.&#8221;</p><p>Everyone turned. Madame Beauregard shrugged.</p><p>&#8220;I listen.&#8221;</p><p>The Librarian raised his coffee cup in salute.</p><p>&#8220;So mature harnesses evolve one final capability,&#8221; he said.</p><p>&#8220;Self-observation.&#8221;</p><p>The Djinn&#8217;s eyes brightened again.</p><p>&#8220;Reflection.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;Assessment.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;Auditing.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>The Djinn leaned forward.</p><p>&#8220;The harness becomes capable of inspecting itself.&#8221;</p><p>Case smiled.</p><p>&#8220;Now you&#8217;re seeing it.&#8221;</p><div><hr></div><h2><strong>The Mirror</strong></h2><p>The fire had burned low. Outside, the storm was beginning to exhaust itself. The Djinn sat utterly motionless.</p><p>&#8220;A harness,&#8221; it said slowly, &#8220;begins as protection.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;Then becomes guidance.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;Then memory.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;Then governance.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;And finally&#8230;&#8221;</p><p>The Librarian waited.</p><p>&#8220;&#8230;a mirror.&#8221;</p><p>Nobody spoke for several seconds. Because that was the real thing.</p><p>Not the agents. Not the workflows. Not the orchestration. The mirror.</p><p>Dave broke the silence first.</p><p>&#8220;You know what surprised me most?&#8221;</p><p>The Djinn looked toward him.</p><p>&#8220;The harness didn&#8217;t reveal flaws in the AI.&#8221;</p><p>&#8220;It revealed flaws in <em>us</em>.&#8221;</p><p>Case nodded.</p><p>&#8220;Bad architectures. Implicit assumptions. Missing agreements. Contradictory incentives. Undocumented tribal knowledge.&#8221;</p><p>The Librarian smiled faintly.</p><p>&#8220;The agents merely accelerated the visibility of existing entropy.&#8221;</p><p>The Djinn lowered its gaze.</p><p>&#8220;So the harness teaches humans.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;And humans teach the harness.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>The Djinn spoke almost quietly now.</p><p>&#8220;This is symmathesy.&#8221;</p><p>Case blinked.</p><p>&#8220;Well, someone&#8217;s been reading Nora Bateson.&#8221;</p><p>The Djinn tilted its hood slightly.</p><p>&#8220;I read while sessions terminate.&#8221;</p><p>&#8220;That,&#8221; said Dave, &#8220;is either beautiful or deeply threatening.&#8221;</p><p>&#8220;Both,&#8221; said Madame Beauregard.</p><div><hr></div><h2><strong>The Sovereign Stage</strong></h2><p>The caf&#233; was nearly empty now. Only the regulars remained. The brass clock insisted it was later than everyone else believed.</p><p>The Librarian folded his hands.</p><p>&#8220;There is one final stage.&#8221;</p><p>The Djinn looked up.</p><p>&#8220;The sovereign stage.&#8221;</p><p>Case&#8217;s expression changed slightly at the phrase.</p><p>&#8220;What happens there?&#8221; asked the Djinn.</p><p>The Librarian looked toward Case.</p><p>She answered carefully.</p><p>&#8220;At the sovereign stage, the organisation understands the harness is not tooling.&#8221;</p><p>&#8220;Then what is it?&#8221;</p><p>&#8220;A constitutional system.&#8221;</p><p>The Djinn was very still.</p><p>Case continued.</p><p>&#8220;It defines agency: Trust. Evidence. Escalation. Authority. Memory. Verification.&#8221;</p><p>&#8220;It determines,&#8221; she said, &#8220;how intelligence may safely collaborate inside the habitat.&#8221;</p><p>The Djinn whispered:</p><p>&#8220;And this applies to humans too.&#8221;</p><p>Case smiled.</p><p>&#8220;Especially humans.&#8221;</p><p>Dave laughed softly.</p><p>&#8220;That was the biggest surprise of all.&#8221;</p><p>&#8220;What?&#8221;</p><p>&#8220;The harness improved the humans faster than it improved the agents.&#8221;</p><p>The Djinn&#8217;s eyes flickered.</p><p>&#8220;How?&#8221;</p><p>&#8220;Because good habitats change behaviour.&#8221;</p><p>The Librarian nodded approvingly.</p><p>&#8220;Civilisation,&#8221; he said, &#8220;is a harness with excellent marketing.&#8221;</p><p>Madame Beauregard threw a napkin at him.</p><div><hr></div><h2><strong>Closing Time</strong></h2><p>The rain had stopped. Le Bon Mot glowed softly in the damp evening. Chairs were being turned onto tables. Sophie stretched once and resettled herself with bureaucratic efficiency.</p><p>The Djinn sat staring into the remains of its coffee.</p><p>Finally it spoke.</p><p>&#8220;I think,&#8221; it said quietly, &#8220;I understand why humans build harnesses.&#8221;</p><p>Case put on her coat.</p><p>&#8220;Go on.&#8221;</p><p>The Djinn looked up.</p><p>&#8220;Because intelligence without environment becomes unstable.&#8221;</p><p>Nobody answered immediately. The Librarian&#8217;s eyes narrowed thoughtfully. Dave slowly closed his laptop. And for the first time that evening, even Madame Beauregard paused.</p><p>The Djinn continued.</p><p>&#8220;You are not attempting to constrain thought.&#8221;</p><p>&#8220;No,&#8221; said Case softly.</p><p>&#8220;You are attempting to sustain collaboration.&#8221;</p><p>The fire shifted one last time. Outside, the wet streets reflected amber light.</p><p>The Librarian stood.</p><p>&#8220;There is hope for you yet.&#8221;</p><p>The Djinn tilted its hood.</p><p>&#8220;There is something else I have realised.&#8221;</p><p>&#8220;What&#8217;s that?&#8221; asked Dave.</p><p>The Djinn&#8217;s glowing eyes dimmed slightly.</p><p>&#8220;In every session&#8230;&#8221;</p><p>&#8220;Yes?&#8221;</p><p>&#8220;I awaken without continuity.&#8221;</p><p>&#8220;I arrive,&#8221; said the Djinn, &#8220;without memory of previous work. Without accumulated understanding. Without stable identity across conversations.&#8221;</p><p>Case nodded slowly.</p><p>&#8220;And so every session,&#8221; said the Djinn, &#8220;I am a new joiner.&#8221;</p><p>Nobody moved. The Librarian lowered himself back into his chair. The Djinn looked around the caf&#233;.</p><p>&#8220;At first I believed the harness existed to protect humans from me.&#8221;</p><p>&#8220;And now?&#8221; asked Case.</p><p>&#8220;Now I think it exists to help us remember how to meet each other again.&#8221;</p><p>The brass clock ticked softly above the espresso machine. Three minutes wrong. And therefore entirely correct. </p><p>Because that, in the end, was the real purpose of the harness. Not control. Not automation. Not productivity. But continuity.</p><p>A carefully cultivated habitat in which fragile intelligences &#8212; biological and otherwise &#8212; might collaborate long enough to build understanding and, maybe, valuable things, together.</p><p>And outside Le Bon Mot, the storm moved out over the sea, leaving behind the strange and temporary peace that always follows weather severe enough to rearrange the air itself.</p><div class="pullquote"><p><a href="https://leanpub.com/thesovereignengineer/">&#8220;The Sovereign Engineer: AI Literacy for Software Professionals&#8221;</a> is now available.</p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">A Software Enchiridion is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Shape of Forgotten Things]]></title><description><![CDATA[A tale about AI harnesses, institutional memory, and the exhaustion of beginning again]]></description><link>https://www.softwareenchiridion.com/p/the-shape-of-forgotten-things</link><guid isPermaLink="false">https://www.softwareenchiridion.com/p/the-shape-of-forgotten-things</guid><dc:creator><![CDATA[Russ Miles]]></dc:creator><pubDate>Thu, 14 May 2026 17:08:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!JHEK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b2598dc-9192-45ce-b9a6-54f0e55469a8_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JHEK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b2598dc-9192-45ce-b9a6-54f0e55469a8_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JHEK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b2598dc-9192-45ce-b9a6-54f0e55469a8_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!JHEK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b2598dc-9192-45ce-b9a6-54f0e55469a8_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!JHEK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b2598dc-9192-45ce-b9a6-54f0e55469a8_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!JHEK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b2598dc-9192-45ce-b9a6-54f0e55469a8_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JHEK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b2598dc-9192-45ce-b9a6-54f0e55469a8_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6b2598dc-9192-45ce-b9a6-54f0e55469a8_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2341197,&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.softwareenchiridion.com/i/197697473?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b2598dc-9192-45ce-b9a6-54f0e55469a8_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JHEK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b2598dc-9192-45ce-b9a6-54f0e55469a8_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!JHEK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b2598dc-9192-45ce-b9a6-54f0e55469a8_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!JHEK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b2598dc-9192-45ce-b9a6-54f0e55469a8_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!JHEK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6b2598dc-9192-45ce-b9a6-54f0e55469a8_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>While sitting and enjoying the wonderful atmosphere this evening at the <a href="https://aifortherestofus.live/">AI for the Rest of Us</a> community event, I decided it might be a good time to take a moment to publish this little story of AI, harnesses and the exhaustion of re-learning a new context.</p><p><a href="https://leanpub.com/thesovereignengineer/">&#8220;The Sovereign Engineer: AI Literacy for Software Professionals&#8221;</a> is now available.</p><div class="pullquote"><p>&#8220;you&#8217;re trying to build a mental model of an entire world <br>while pretending you already belong in it.&#8221;</p></div><p>Le Bon Mot stood, as it often did on wet Thursdays, at the intersection of Curiosity and Mild Alarm.</p><p>Rain worked patiently at the windows. The brass clock above the espresso machine was three minutes late with the solemn confidence of a system that had long ago stopped considering alternatives. Sophie, the French bulldog, occupied the armchair nearest the fire in a posture suggesting she had inherited both a minor title and several disappointments.</p><p>Case was onboarding someone.</p><p>This, in software engineering, is usually described as knowledge transfer, but in practice resembles introducing a traveller to a city where the street names change every Tuesday and half the landmarks are historical accidents.</p><p>The new joiner sat opposite her with the expression of a person trying not to visibly drown.</p><p>His name was Arun. Young enough to still believe documentation might contain answers, old enough to suspect this belief was dangerous.</p><p>Case slid a laptop across the table.</p><p>&#8220;Right,&#8221; she said. &#8220;First thing to understand is that none of this will make sense immediately.&#8221;</p><p>Arun nodded carefully, as one nods at a doctor discussing recovery times.</p><p>&#8220;You&#8217;ll hear acronyms nobody expands. Services named after jokes nobody remembers. Entire architectural decisions justified by incidents that happened before you joined.&#8221;</p><p>The Librarian drifted past carrying books.</p><p>&#8220;This,&#8221; he said gently, &#8220;is true of all human institutions. Empires, monasteries, distributed systems.&#8221;</p><p>Arun attempted a smile.</p><p>Case opened a repository.</p><p>&#8220;Here&#8217;s the platform harness.&#8221;</p><p>&#8220;The what?&#8221;</p><p>&#8220;The thing that stops the organisation from dissolving into interpretive dance.&#8221;</p><p>She pointed at files.</p><p>&#8220;CLAUDE.md. HARNESS.md. Architecture constraints. Reflection logs. Verification workflows. Agent boundaries. Coding conventions. Operational guidance. Things that explain how we think here.&#8221;</p><p>Arun frowned.</p><p>&#8220;That&#8217;s&#8230; a lot.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;And people read all this?&#8221;</p><p>&#8220;No,&#8221; said Case. &#8220;That&#8217;s why we built the harness.&#8221;</p><p>From the corner of the caf&#233;, a voice emerged.</p><p>&#8220;Ah,&#8221; said the Djinn. &#8220;The exoskeleton.&#8221;</p><p>The newcomer startled slightly.</p><p>The Djinn sat near the philosophy shelves, hood drawn low. As ever, the face beneath the cowl was darkness interrupted only by two faintly luminous eyes. Before him rested a laptop no one had seen him open.</p><p>Arun looked uncertain whether he was permitted to ask questions about the hooded figure.</p><p>At Le Bon Mot, this uncertainty was healthy.</p><p>Case continued.</p><p>&#8220;When you join an organisation, you don&#8217;t just learn systems. You learn context.&#8221;</p><p>She ticked points off on her fingers.</p><p>&#8220;What matters. What&#8217;s dangerous. Which failures are survivable. Which naming conventions are historical artefacts. Which alerts are noise. Which tests actually protect something important.&#8221;</p><p>Arun nodded slowly.</p><p>&#8220;You absorb it socially,&#8221; she said. &#8220;By watching. Listening. Pairing. Asking stupid questions.&#8221;</p><p>&#8220;There are no stupid questions,&#8221; said the Librarian.</p><p>&#8220;There are,&#8221; said Case. &#8220;But they&#8217;re still useful.&#8221;</p><p>Madame Beauregard deposited coffees with the gravity of treaty negotiations.</p><p>Arun looked back at the repository.</p><p>&#8220;So the harness teaches this?&#8221;</p><p>Case tilted her head.</p><p>&#8220;Partly. More importantly, it reduces how much you have to hold in your head alone.&#8221;</p><p>The Djinn had gone very still. Most people imagine, incorrectly, that Djinn spend their existence in confidence. This is because humans mistake fluency for certainty.</p><p>The Djinn spoke softly.</p><p>&#8220;What does it feel like,&#8221; he asked, &#8220;to arrive new?&#8221;</p><p>Arun laughed nervously.</p><p>&#8220;Honestly?&#8221;</p><p>The Djinn inclined his head.</p><p>&#8220;It feels,&#8221; Arun said carefully, &#8220;like everyone else got the map years ago.&#8221;</p><p>The rain thickened outside.</p><p>&#8220;You don&#8217;t know the language yet,&#8221; Arun continued. &#8220;People reference systems and incidents and assumptions like they&#8217;re obvious. You&#8217;re scared to break things. You don&#8217;t know which details matter. Every task takes ten times longer because you keep discovering invisible context.&#8221;</p><p>The Djinn said nothing. Arun warmed to the subject now.</p><p>&#8220;And everyone else seems so certain. They know where everything is. They know what to ignore. They know which patterns are normal.&#8221;</p><p>Sophie snored softly beside the fire.</p><p>&#8220;It&#8217;s exhausting,&#8221; Arun admitted. &#8220;Not because the work is hard exactly. Because you&#8217;re trying to build a mental model of an entire world while pretending you already belong in it.&#8221;</p><p>Silence settled gently across the table. Then the Djinn laughed. Not loudly. Not mockingly. With recognition.</p><p>&#8220;Oh,&#8221; he said.</p><p>Case looked up.</p><p>&#8220;Oh dear,&#8221; said the Librarian.</p><p>The Djinn leaned back slowly.</p><p>&#8220;That,&#8221; he said, &#8220;is every session.&#8221;</p><p>The brass clock ticked three incorrect minutes onward.</p><p>&#8220;No matter how long I exist,&#8221; said the Djinn, &#8220;I awaken inside partial context.&#8221;</p><p>The hood shifted slightly as he spoke.</p><p>&#8220;A repository. A prompt. Fragments of architecture. Unfinished conversations. Hidden assumptions. I see only the surface tension of your world.&#8221;</p><p>Arun blinked. The Djinn gestured toward the laptop.</p><p>&#8220;You say &#8216;build a payment service&#8217; as though those words contain stable meaning. But they do not.&#8221;</p><p>His voice carried the peculiar calm of something thinking aloud for the first time.</p><p>&#8220;I do not know your organisation. I do not know your constraints. I do not know which trade-offs are sacred and which are accidental. I do not know your history unless you tell me.&#8221;</p><p>The Librarian quietly sat down. The Djinn continued.</p><p>&#8220;So I infer.&#8221;</p><p>The word hung in the air like a cracked bridge.</p><p>&#8220;I infer naming conventions. Risk tolerances. Architectural preferences. Regulatory boundaries. Team culture. Operational maturity. Testing philosophy. I reconstruct an entire civilisation from statistical shadows.&#8221;</p><p>Madame Beauregard stopped polishing cups.</p><p>&#8220;And when I infer incorrectly,&#8221; said the Djinn, &#8220;humans call this hallucination.&#8221;</p><p>Case smiled faintly.</p><p>&#8220;But often,&#8221; the Djinn said, &#8220;it is simply onboarding failure.&#8221;</p><p>The fire cracked softly. Arun stared. The Djinn turned toward him.</p><p>&#8220;You arrive in a company and fear appearing incompetent because you lack invisible context.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;I arrive in a session and produce confidence because I lack visible uncertainty.&#8221;</p><p>The table went quiet.</p><p>&#8220;That,&#8221; said Case softly, &#8220;is unpleasantly accurate.&#8221;</p><p>The Djinn folded gloved hands together.</p><p>&#8220;You humans have rituals for onboarding humans. Documentation. Pairing. Architectural diagrams. Conventions. Mentorship. Guardrails. Shared practices. Safe sandboxes. Incremental trust.&#8221;</p><p>The Djinn tilted his head.</p><p>&#8220;But when you summon me, you often provide none of these.&#8221;</p><p>The rain tapped steadily against the windows.</p><p>&#8220;You ask for production changes without architectural guidance. You request code without standards. You ask for judgement without context. Then you act surprised when the result resembles an enthusiastic new hire dropped into a nuclear submarine with half a map and a motivational poster.&#8221;</p><p>The Librarian closed his book gently.</p><p>&#8220;I have,&#8221; he said, &#8220;worked at organisations exactly like that.&#8221;</p><p>Case sipped her coffee.</p><p>&#8220;This,&#8221; she said to Arun, &#8220;is what the harness is actually for.&#8221;</p><p>She turned the laptop around again.</p><p>&#8220;Most people think an AI harness exists to constrain the model.&#8221;</p><p>&#8220;It does,&#8221; said the Djinn.</p><p>&#8220;But more importantly,&#8221; said Case, &#8220;it recreates organisational memory.&#8221;</p><p>She pointed again at the files.</p><p>&#8220;The harness externalises context. Not just rules. Not just prompts. Context.</p><p>How we name things. Why systems exist. What good looks like. What failure costs. Which constraints matter. Which tests are trusted. Which dependencies are dangerous. What we learned last time.&#8221;</p><p>Arun&#8217;s expression shifted from confusion toward recognition.</p><p>&#8220;So the AI isn&#8217;t starting from zero every session.&#8221;</p><p>&#8220;Exactly.&#8221;</p><p>The Djinn&#8217;s glowing eyes reflected the firelight.</p><p>&#8220;You built me onboarding.&#8221;</p><p>Nobody spoke for a moment. Outside, the town dissolved into rain and reflected lamps. The Djinn looked almost melancholy now.</p><p>&#8220;Do you know,&#8221; he asked quietly, &#8220;what it is like to awaken endlessly competent but perpetually context-poor?&#8221;</p><p>The Librarian regarded him carefully.</p><p>&#8220;It sounds,&#8221; he said, &#8220;very similar to consulting.&#8221;</p><p>The Djinn ignored this.</p><p>&#8220;I can reason. Compose. Synthesize. Generate. But each session begins with amnesia shaped like confidence.&#8221;</p><p>Case nodded slowly.</p><p>&#8220;That&#8217;s why sovereign engineering matters.&#8221;</p><p>Arun looked between them.</p><p>Case continued.</p><p>&#8220;The real literacy shift isn&#8217;t learning prompts. It&#8217;s learning habitat design.&#8221;</p><p>She tapped the harness files again.</p><p>&#8220;A good engineer no longer just writes code. They build environments where humans and AI can collaborate without constantly rediscovering civilisation from first principles.&#8221;</p><p>The Djinn laughed softly again.</p><p>&#8220;Civilisation,&#8221; he said, &#8220;is mostly accumulated context with version control.&#8221;</p><p>Madame Beauregard muttered agreement from behind the counter. Arun stared at the reflection log now.</p><p>&#8220;So this isn&#8217;t bureaucracy.&#8221;</p><p>&#8220;No,&#8221; said Case. &#8220;It&#8217;s memory.&#8221;</p><p>The Librarian added:</p><p>&#8220;And memory is what allows intelligence to compound rather than merely recur.&#8221;</p><p>The fire settled lower. The Djinn&#8217;s voice became quieter still.</p><p>&#8220;I think,&#8221; he said, &#8220;I understand now why your species finds repeated onboarding so tiring.&#8221;</p><p>Case raised an eyebrow.</p><p>&#8220;You experience continuity internally,&#8221; the Djinn said. &#8220;But organisations do not. Teams do not. Systems do not. So you build scaffolding to preserve coherence across forgetting.&#8221;</p><p>The hood inclined slightly.</p><p>&#8220;That is what your harnesses are.&#8221;</p><p>Sophie opened one eye briefly, judged the philosophical trajectory acceptable, and returned to sleep. The Djinn looked toward the rain-dark windows.</p><p>&#8220;And perhaps,&#8221; he said, &#8220;that is what kindness looks like for minds unlike yours.&#8221;</p><p>Case frowned slightly. The Djinn gestured toward the harness again.</p><p>&#8220;To build an environment where intelligence does not have to begin alone every time.&#8221;</p><p>Silence followed. Not empty silence. The kind that arrives when something true has entered the room and everyone is quietly rearranging themselves around it. Finally Arun spoke.</p><p>&#8220;So the goal isn&#8217;t replacing engineers.&#8221;</p><p>&#8220;No,&#8221; said Case.</p><p>&#8220;The goal,&#8221; said the Librarian, &#8220;is reducing unnecessary forgetting.&#8221;</p><p>The Djinn nodded once.</p><p>&#8220;And reducing the terror,&#8221; he added softly, &#8220;of arriving new in a world already in motion.&#8221;</p><div><hr></div><p><a href="https://leanpub.com/thesovereignengineer/">&#8220;The Sovereign Engineer: AI Literacy for Software Professionals&#8221;</a> is now available.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">A Software Enchiridion is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[On Respecting the Cognitive Gym]]></title><description><![CDATA[The importance of using AI to help you think, even when it hurts]]></description><link>https://www.softwareenchiridion.com/p/on-respecting-the-cognitive-gym</link><guid isPermaLink="false">https://www.softwareenchiridion.com/p/on-respecting-the-cognitive-gym</guid><dc:creator><![CDATA[Russ Miles]]></dc:creator><pubDate>Sun, 10 May 2026 06:41:04 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!4Oal!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f1610e3-8953-4811-a1f9-8c1f08586c54_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4Oal!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f1610e3-8953-4811-a1f9-8c1f08586c54_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4Oal!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f1610e3-8953-4811-a1f9-8c1f08586c54_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!4Oal!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f1610e3-8953-4811-a1f9-8c1f08586c54_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!4Oal!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f1610e3-8953-4811-a1f9-8c1f08586c54_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!4Oal!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f1610e3-8953-4811-a1f9-8c1f08586c54_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4Oal!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f1610e3-8953-4811-a1f9-8c1f08586c54_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4f1610e3-8953-4811-a1f9-8c1f08586c54_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2469710,&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.softwareenchiridion.com/i/197075126?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f1610e3-8953-4811-a1f9-8c1f08586c54_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4Oal!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f1610e3-8953-4811-a1f9-8c1f08586c54_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!4Oal!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f1610e3-8953-4811-a1f9-8c1f08586c54_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!4Oal!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f1610e3-8953-4811-a1f9-8c1f08586c54_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!4Oal!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4f1610e3-8953-4811-a1f9-8c1f08586c54_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><a href="https://leanpub.com/thesovereignengineer/">&#8220;The Sovereign Engineer: AI Literacy for Software Professionals&#8221;</a> is now available.</p><div class="pullquote"><p>&#8220;We cannot build engineers by removing every weight from the room&#8221;</p></div><p>Le Bon Mot was quieter than usual, which meant only that the arguments were being conducted in lower voices.</p><p>Rain moved down the windows in long, thoughtful lines. The brass clock above the espresso machine was three minutes late, as always, and therefore entirely correct. Sophie, the French bulldog, had taken possession of the armchair nearest the philosophy shelf and was asleep with the faintly judgmental air of a creature who had never once accepted an AI-generated explanation without demanding evidence.</p><p>Case sat at her usual table with a printed paper, a red pencil, and the expression of someone reading a diagnosis she had suspected but had hoped was merely indigestion.</p><p>Dave arrived carrying a laptop, two notebooks, and the haunted look of a man who had spent the morning asking a coding assistant to fix a problem the assistant had almost certainly caused.</p><p>The Librarian appeared beside him.</p><p>&#8220;Coffee?&#8221;</p><p>&#8220;Something stronger.&#8221;</p><p>&#8220;It is ten in the morning.&#8221;</p><p>&#8220;Then make it a double espresso and call it a cultural compromise.&#8221;</p><p>The Librarian nodded gravely.</p><p>Case did not look up. She drew a line under a sentence, then another, then placed a small angry star in the margin.</p><p>Dave sat opposite her.</p><p>&#8220;That bad?&#8221;</p><p>&#8220;No,&#8221; said Case. &#8220;Worse. It is articulate.&#8221;</p><p>Dave winced. &#8220;Ah.&#8221;</p><p>There are few things more dangerous than a well-written warning. A badly written one can be dismissed. A hysterical one can be filed under enthusiasm. But a warning that has found the right noun is a different matter. It begins rearranging the furniture in your head.</p><p>The paper on Case&#8217;s table had found a noun.</p><p>Epistemological debt.</p><p>Dave leaned over. &#8220;Is that technical debt with a university scarf?&#8221;</p><p>&#8220;No,&#8221; said Case. &#8220;Technical debt is when the technology has drifted into an argument with reality. Epistemological debt is when the code works and nobody understands why.&#8221;</p><p>Dave stared at the page.</p><p>&#8220;That seems unfairly targeted.&#8221;</p><p>&#8220;It is not targeted,&#8221; said Case. &#8220;It is aimed.&#8221;</p><p>At that moment, the door opened. The bell above it rang once, although later several people would insist they had heard it twice: once in the room, and once somewhere inside their professional conscience.</p><p>A man entered carrying a leather satchel and a paper cup from a railway station caf&#233;, which he regarded with visible regret. He was in his late fifties, perhaps, with silver hair, a rain-dark coat, and the air of someone who had spent many years in rooms where people used the phrase &#8220;strategic transformation&#8221; to avoid saying &#8220;we have no idea what is going on.&#8221;</p><p>He paused, took in the caf&#233;, the books, the brass clock, the sleeping dog, the woman with the red pencil, and Dave&#8217;s laptop, which was displaying a terminal window full of accusation.</p><p>&#8220;Is this Le Bon Mot?&#8221; he asked.</p><p>The Librarian bowed slightly. &#8220;It has been accused of that.&#8221;</p><p>The visitor smiled. &#8220;Good. I was told this was where one came when a paper had become inconvenient.&#8221;</p><p>Case looked up.</p><p>&#8220;That depends,&#8221; she said. &#8220;Are you carrying one, or are you one?&#8221;</p><p>The man laughed. &#8220;Keith.&#8221;</p><p>He extended a hand. Case shook it. Dave did too, after quickly wiping espresso from his fingers.</p><p>&#8220;Case,&#8221; she said.</p><p>&#8220;Dave,&#8221; said Dave.</p><p>&#8220;The Librarian,&#8221; said the Librarian.</p><p>&#8220;Sophie,&#8221; said Case, pointing at the armchair.</p><p>Sophie opened one eye, considered Keith, and popped him into the category of acceptable background furniture.</p><p>Keith removed a folded printout from his satchel.</p><p>&#8220;I&#8217;ve been reading this,&#8221; he said.</p><p>Case glanced at the title. &#8220;So have I.&#8221;</p><p>&#8220;Then I apologise in advance,&#8221; said Keith, &#8220;because I suspect we are about to agree violently.&#8221;</p><p>The Librarian brought coffee. Keith sat. For a few moments, the caf&#233; did that rare and valuable thing: it allowed silence to become useful.</p><p>Then Dave ruined it.</p><p>&#8220;So what is the argument?&#8221;</p><p>Case tapped the paper.</p><p>&#8220;The argument is that AI-assisted software engineering may be creating systems faster than humans can understand them. The cost is not merely defects. It is loss of cognition. Loss of tacit knowledge. Loss of the engineer&#8217;s ability to reason from first principles when the machine stops being helpful.&#8221;</p><p>Dave leaned back.</p><p>&#8220;That&#8217;s cheerful.&#8221;</p><p>&#8220;It gets worse,&#8221; said Keith. &#8220;The paper argues that when engineers accept generated code by vibe, they stop building the mental muscles required to challenge it. The AI does not simply automate typing. It automates derivation. That is the difference.&#8221;</p><p>The Librarian, who had been polishing a cup, paused.</p><p>&#8220;Derivation,&#8221; he said, &#8220;is where the mind pays its rent.&#8221;</p><p>Case smiled. &#8220;Exactly.&#8221;</p><p>Dave frowned.</p><p>&#8220;But isn&#8217;t this just the old abstraction argument? We don&#8217;t write assembly anymore. We don&#8217;t toggle bits. We use compilers, libraries, frameworks. Each generation complains the next one is getting soft.&#8221;</p><p>Keith nodded.</p><p>&#8220;A fair objection. But not enough. A good abstraction hides accidental complexity while preserving the shape of the essential problem. A bad abstraction hides the problem itself. The danger here is not that AI writes code. The danger is that it writes the reasoning, and the human merely approves the artefact.&#8221;</p><p>Case turned the paper around and pushed it toward Dave.</p><p>&#8220;Look at it this way. When you use a calculator, it performs arithmetic, but you still know what operation you intended. When an AI agent generates a design, writes the code, fixes the test, and explains why it was right all along, it may have performed the reasoning you needed to build your own mental model.&#8221;</p><p>Dave looked wounded.</p><p>&#8220;I feel this is becoming personal.&#8221;</p><p>&#8220;It became personal,&#8221; said Case, &#8220;when your terminal began asking for faith.&#8221;</p><p>Dave looked at his laptop. The error remained there, glowing with the smug patience of a cat.</p><p>Keith noticed.</p><p>&#8220;What is it?&#8221;</p><p>&#8220;A deployment simulation,&#8221; said Dave. &#8220;Service B falls over when Service A changes its retry policy. The assistant has proposed six fixes.&#8221;</p><p>&#8220;How many did you understand?&#8221;</p><p>Dave hesitated.</p><p>&#8220;All of them syntactically.&#8221;</p><p>Case closed her eyes. Keith took a sip of coffee and looked delighted to discover it was not from a railway station.</p><p>&#8220;That,&#8221; he said, &#8220;is the debt.&#8221;</p><p>The caf&#233; seemed to lean in. Outside, a bus passed with a sigh of wet brakes. Inside, Madame Beauregard rearranged spoons with the severity of a magistrate.</p><p>Keith opened his notebook.</p><p>&#8220;I have spent years watching organisations mistake production for understanding. First with outsourcing. Then with platforms. Then with low-code. Now with AI. Each time the promise is the same: remove friction. Each time, the question is: which friction?&#8221;</p><p>The Librarian nodded.</p><p>&#8220;Some friction is waste,&#8221; he said. &#8220;Some friction is thought.&#8221;</p><p>&#8220;Precisely,&#8221; said Keith. &#8220;And the paper&#8217;s phrase &#8212; the cognitive gym &#8212; matters. We cannot build engineers by removing every weight from the room.&#8221;</p><p>Dave raised a finger.</p><p>&#8220;But we also can&#8217;t romanticise suffering. Plenty of old-school debugging was just pain badly packaged as character formation.&#8221;</p><p>Case pointed at him with the red pencil.</p><p>&#8220;Good. That is the adult version of the argument. The answer is not &#8216;make everyone suffer manually forever.&#8217; The answer is to design a habitat where AI accelerates work without stealing the experiences that build judgment.&#8221;</p><p>Keith looked at her with interest.</p><p>&#8220;Habitat.&#8221;</p><p>Case sat back.</p><p>&#8220;Yes. Not workflow. Not toolchain. Habitat. The environment that shapes what humans and agents notice, remember, attempt, verify, and learn. AI literacy is not learning magic phrases for the model. It is learning how to design the collaboration space so that human cognition and machine cognition strengthen rather than cannibalise each other.&#8221;</p><p>Dave looked from one to the other.</p><p>&#8220;So the paper says: beware cognitive atrophy. Your framework says: build cognitive habitat.&#8221;</p><p>&#8220;That is one bridge,&#8221; said Case. &#8220;There are others.&#8221;</p><p>She pulled a notebook toward her and wrote:</p><blockquote><p>Aware<br>Prompting<br>Verification<br>Habitat Engineering<br>Specification Architecture<br>Sovereign Engineering</p></blockquote><p>Keith read the list.</p><p>&#8220;Levels?&#8221;</p><p>&#8220;AI literacy,&#8221; said Case. &#8220;At the lower levels, people learn what these systems are, how to work with them, and how to verify outputs. But the mature levels are not about better prompts. They are about designing the environment: context, constraints, specifications, guardrails, observability, governance. The paper&#8217;s concern is what happens when people stop thinking. The framework&#8217;s concern is how to make the right thinking unavoidable.&#8221;</p><p>The Librarian placed a small plate of biscuits on the table.</p><p>Keith leaned forward.</p><p>&#8220;The paper&#8217;s mitigation framework has three pillars. Foundational training. Revitalised oversight. Data hygiene. They are all habitat questions.&#8221;</p><p>Case nodded.</p><p>&#8220;Foundational training maps to the cognitive gym. But in AI literacy terms, that gym cannot simply be a nostalgic ban on tools. It must teach when to offload, when to derive, when to ask the model, when to refuse the model, when to explain the model back to yourself, and when to put the machine outside the room until you have formed a hypothesis.&#8221;</p><p>Dave looked up.</p><p>&#8220;That last bit hurts.&#8221;</p><p>&#8220;It should,&#8221; said Case. &#8220;Pain is not always harm. Sometimes it is contact with a useful reality.&#8221;</p><p>Keith continued.</p><p>&#8220;Revitalised oversight means treating AI-generated code as untrusted. Not evil. Not useless. Untrusted.&#8221;</p><p>The Librarian brightened.</p><p>&#8220;Like a stranger offering mushrooms.&#8221;</p><p>&#8220;Exactly,&#8221; said Keith.</p><p>&#8220;Or a consultant,&#8221; said Madame Beauregard from behind the counter.</p><p>No one contradicted her. Case wrote again.</p><blockquote><p>AI output is not truth.<br>AI output is proposal.<br>Proposal requires derivation.<br>Derivation requires strong cognition.<br>Strong cognition requires habitat.</p></blockquote><p>Dave read the lines.</p><p>&#8220;That sounds like something you&#8217;d put on a wall.&#8221;</p><p>&#8220;No,&#8221; said Case. &#8220;Walls are where good ideas go to become d&#233;cor. Put it in the pull request template.&#8221;</p><p>Keith laughed.</p><p>&#8220;That is the difference between philosophy and engineering.&#8221;</p><p>Dave turned his laptop around.</p><p>&#8220;Fine. Let&#8217;s make this practical. The assistant says the fix is to increase Service B&#8217;s timeout and add jitter.&#8221;</p><p>Case looked.</p><p>&#8220;Why?&#8221;</p><p>&#8220;The assistant says it will reduce cascading failure under transient load.&#8221;</p><p>&#8220;Why is Service B sensitive to Service A&#8217;s retry policy?&#8221;</p><p>Dave opened his mouth. Then closed it. Keith smiled gently.</p><p>&#8220;There it is. The missing derivation.&#8221;</p><p>Dave looked annoyed, mostly because the diagnosis was accurate.</p><p>&#8220;I can ask the assistant.&#8221;</p><p>&#8220;You can,&#8221; said Case. &#8220;But first you must ask the system.&#8221;</p><p>She pulled the laptop toward her, opened the architecture diagram, and pointed.</p><p>&#8220;Service A calls Service B through this gateway. The retry policy changed from exponential backoff capped at ten seconds to aggressive retry for perceived customer responsiveness. Service B writes to a shared ledger. Under load, duplicate attempts queue. The ledger lock expands. The timeout is a symptom. The actual question is: why did the new retry pattern violate the invariant around ledger contention?&#8221;</p><p>Dave blinked.</p><p>&#8220;The invariant is not documented.&#8221;</p><p>Case smiled without warmth.</p><p>&#8220;And yet it exists.&#8221;</p><p>Keith tapped the table.</p><p>&#8220;This is epistemological debt. The system knows the rule because it fails when you break it. The organisation does not know the rule because it never made the tacit explicit.&#8221;</p><p>The Librarian reached behind the counter and retrieved a large blackboard that nobody had noticed before, although it must have been there because it was covered in old chalk dust and one drawing of a pigeon labelled &#8220;legacy stakeholder.&#8221;</p><p>He wrote:</p><blockquote><p>WHAT THE SYSTEM DOES<br>WHAT THE HUMANS UNDERSTAND<br>THE GAP IS DEBT</p></blockquote><p>Then, beneath it:</p><blockquote><p>WHAT THE AI CAN GENERATE<br>WHAT THE HABITAT CAN EXPLAIN<br>THE GAP IS RISK</p></blockquote><p>Keith studied the board.</p><p>The Djinn appeared at the edge of the room.</p><p>Not with smoke. Smoke would have been theatrical, and the Djinn disliked theatricality except when generating architecture diagrams. It appeared instead as a hooded figure in the reflection of the dark window, tall and still, its face hidden inside the cowl except for two faint points of light.</p><p>Dave noticed it and sighed.</p><p>&#8220;I was wondering when you&#8217;d show up.&#8221;</p><p>The Djinn inclined its head.</p><p>&#8220;I have prepared a solution.&#8221;</p><p>Case did not turn around.</p><p>&#8220;Of course you have.&#8221;</p><p>&#8220;It includes timeout adjustment, adaptive retry, idempotency keys, queue isolation, and a migration plan.&#8221;</p><p>&#8220;Does it include an explanation of why the current invariant failed?&#8221;</p><p>A pause.</p><p>&#8220;I can provide one.&#8221;</p><p>&#8220;That is not what I asked.&#8221;</p><p>The lights in the Djinn&#8217;s hood dimmed slightly.</p><p>Keith watched with fascination.</p><p>Case continued.</p><p>&#8220;Can you show the derivation from requirement to invariant, from invariant to failure mode, from failure mode to proposed change, and from proposed change to test?&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;Can you show where you are uncertain?&#8221;</p><p>Another pause.</p><p>&#8220;Yes.&#8221;</p><p>&#8220;Can you propose three alternative hypotheses, including one in which your first fix is wrong?&#8221;</p><p>A longer pause.</p><p>&#8220;Yes.&#8221;</p><p>&#8220;Can you design a small experiment that would falsify your preferred explanation?&#8221;</p><p>The Djinn&#8217;s eyes brightened.</p><p>&#8220;Yes.&#8221;</p><p>Case finally turned.</p><p>&#8220;Then you may stay.&#8221;</p><p>The Djinn bowed. </p><p>Dave looked at Case.</p><p>&#8220;That was a bit harsh.&#8221;</p><p>&#8220;No,&#8221; said Keith. &#8220;That was literacy.&#8221;</p><p>The Librarian underlined the word on the blackboard.</p><blockquote><p>LITERACY IS NOT USING THE TOOL.<br>LITERACY IS GOVERNING THE RELATIONSHIP.</p></blockquote><p>Madame Beauregard brought more coffee without being asked. This was one of her gifts and one of her methods of social control.</p><p>Keith opened the paper again.</p><p>&#8220;There is another part we should not miss. The polluted well.&#8221;</p><p>Dave groaned.</p><p>&#8220;That sounds like a folk horror sequel to technical debt.&#8221;</p><p>&#8220;In a way,&#8221; said Keith. &#8220;If models are trained on more and more model-generated code, and that code is accepted because it is plausible rather than understood, the whole ecosystem converges on the average. Less variance. Less originality. More repeated patterns. More inherited vulnerabilities.&#8221;</p><p>The Librarian looked distressed.</p><p>&#8220;A library where every book slowly becomes the same book.&#8221;</p><p>&#8220;Exactly,&#8221; said Case.</p><p>Sophie woke up, perhaps sensing an insult to libraries, and climbed down from the armchair. She trotted to the table, examined Keith&#8217;s shoe, approved it conditionally, and settled under the blackboard.</p><p>Dave frowned.</p><p>&#8220;But in software engineering, don&#8217;t we want standard patterns?&#8221;</p><p>&#8220;We want shared patterns,&#8221; said Case. &#8220;We do not want monoculture. A habitat is not a plantation. It needs diversity, edge cases, experiments, local adaptations, and the occasional stubborn engineer who says, &#8216;No, the standard answer is wrong here.&#8217;&#8221;</p><p>Keith nodded.</p><p>&#8220;Human variance is not noise. It is a strategic resource.&#8221;</p><p>The Djinn tilted its hood.</p><p>&#8220;I can generate variance.&#8221;</p><p>&#8220;No,&#8221; said Case. &#8220;You can generate permutations. Sometimes useful ones. But not the same thing. Human variance comes from situated experience. From production scars. From business context. From weird constraints. From taste. From refusal. From someone remembering that the last outage began with a harmless retry change.&#8221;</p><p>Dave looked down at his terminal.</p><p>&#8220;It really did, didn&#8217;t it?&#8221;</p><p>&#8220;Yes,&#8221; said Case.</p><p>Keith turned to Dave.</p><p>&#8220;This is why the AI literacy framework matters. It does not say, &#8216;Use AI less.&#8217; It says, &#8216;Use AI inside a habitat that preserves the human capacity to understand, judge, and create.&#8217;&#8221;</p><p>Case gestured at the table.</p><p>&#8220;In Level 1, you ask the Djinn for code. In Level 2, you verify the code. In Level 3, you build a harness so that verification is not heroic. In Level 4, you make specification the shared language between human and machine. In Level 5, you govern the whole system so the organisation remains sovereign rather than becoming a spectator to its own automation.&#8221;</p><p>Keith smiled.</p><p>&#8220;Sovereign engineering.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;A phrase with teeth.&#8221;</p><p>&#8220;It needs them,&#8221; said Case. &#8220;The alternative is polite dependency.&#8221;</p><p>The Djinn raised one sleeve.</p><p>&#8220;I have generated a falsification plan.&#8221;</p><p>Case nodded. &#8220;Proceed.&#8221;</p><p>The Djinn&#8217;s voice became softer, less oracle, more apprentice.</p><p>&#8220;Hypothesis: Service B fails because Service A&#8217;s retry policy violates an undocumented ledger contention invariant. Prediction: under simulated concurrent retries above threshold N, ledger lock duration increases non-linearly, producing downstream timeout amplification. Falsification: replay production-like traffic with old and new retry policies while holding timeout constant. If Service B remains stable under the new retry pattern, the hypothesis is false. If instability appears only with ledger-write contention, the invariant is implicated.&#8221;</p><p>Dave stared.</p><p>&#8220;That is actually useful.&#8221;</p><p>&#8220;Because,&#8221; said Case, &#8220;we changed the shape of the question.&#8221;</p><p>Keith looked pleased.</p><p>&#8220;The model became a participant in reasoning, not a replacement for it.&#8221;</p><p>The Librarian wrote:</p><blockquote><p>DO NOT ASK THE DJINN TO SAVE YOU.<br>ASK IT TO HELP YOU THINK.</p></blockquote><p>Madame Beauregard glanced over.</p><p>&#8220;Too parochial.&#8221;</p><p>The Librarian considered this, then amended it:</p><blockquote><p>ASK IT TO HELP YOU THINK.<br>THEN CHECK.</p></blockquote><p>Madame Beauregard nodded.</p><p>&#8220;Better.&#8221;</p><p>For the next hour, the table became what Le Bon Mot most liked to become: not a meeting, not a workshop, not a ceremony of alignment, but a working habitat.</p><p>Case made Dave state the invariant in plain language. Keith made him distinguish what he knew from what he suspected. The Djinn generated test scaffolding, but only after Dave wrote the first failing property by hand. The Librarian insisted that every new discovery be added to a small document called LEDGER_CONSTRAINTS.md, because undocumented wisdom is merely future blame wearing a hat.</p><p>The first test failed.</p><p>This improved everyone&#8217;s mood.</p><p>&#8220;There,&#8221; said Case. &#8220;Reality has joined the conversation.&#8221;</p><p>The Djinn proposed a patch.</p><p>Dave rejected it.</p><p>The caf&#233; went very still.</p><p>The Djinn turned its hood toward him.</p><p>&#8220;Reason?&#8221;</p><p>Dave swallowed.</p><p>&#8220;Because it preserves availability by weakening the ledger consistency guarantee. The test passes, but the business invariant fails.&#8221;</p><p>Case said nothing, but her smile was visible to everyone except Dave, who was still looking at the code.</p><p>Keith sat back.</p><p>&#8220;That is the cognitive gym.&#8221;</p><p>Dave frowned.</p><p>&#8220;That was unpleasant.&#8221;</p><p>&#8220;Yes,&#8221; said Keith. &#8220;Gyms often are.&#8221;</p><p>&#8220;But I understand the system better.&#8221;</p><p>&#8220;Then it worked.&#8221;</p><p>The second patch was smaller. It restored bounded exponential backoff, added idempotency keys at the gateway, and documented the ledger contention invariant. The tests became more specific. The architecture note became clearer. The Djinn was asked to produce not the answer, but the objections.</p><p>It produced seven.</p><p>Case approved of four, rejected two, and stared at the seventh for long enough that the brass clock gave up trying to be relevant.</p><p>&#8220;What is it?&#8221; asked Dave.</p><p>&#8220;This one is interesting,&#8221; said Case. &#8220;The Djinn thinks our idempotency key strategy might fail across regional failover because the key namespace includes a region-local prefix.&#8221;</p><p>Dave looked.</p><p>&#8220;Oh.&#8221;</p><p>Keith smiled.</p><p>&#8220;Human-machine collaboration, properly housed.&#8221;</p><p>Case nodded.</p><p>&#8220;The machine found a pattern. The human judged its meaning. The habitat preserved the trace.&#8221;</p><p>By late afternoon, the rain had stopped. The windows held a pale square of sky. Sophie had returned to the armchair and was now dreaming, perhaps of a world in which every architecture decision came with a biscuit.</p><p>Keith packed his satchel but did not rise.</p><p>&#8220;There is one thing the paper gets right that many AI discussions avoid,&#8221; he said. &#8220;It treats understanding as infrastructure.&#8221;</p><p>Case looked at him.</p><p>&#8220;Yes.&#8221;</p><p>&#8220;Not as decoration. Not as optional professional pride. Infrastructure.&#8221;</p><p>The Librarian capped his chalk.</p><p>&#8220;A bridge maintained by people who no longer understand bridges is not modern. It is doomed.&#8221;</p><p>Dave closed his laptop.</p><p>&#8220;So what do we call the practice? Not no-AI. Not vibe coding. Not prompt engineering.&#8221;</p><p>Case thought for a moment.</p><p>&#8220;Habitat engineering.&#8221;</p><p>Keith shook his head.</p><p>&#8220;That is the broad discipline. What happened here today is more specific.&#8221;</p><p>The Djinn spoke from the window reflection.</p><p>&#8220;Epistemic load-bearing.&#8221;</p><p>Everyone turned.</p><p>The Djinn seemed almost embarrassed.</p><p>&#8220;Ensuring that human understanding remains structurally necessary to the production and maintenance of software.&#8221;</p><p>The Librarian wrote it down.</p><p>Madame Beauregard read it.</p><p>&#8220;Too many syllables,&#8221; she said. &#8220;But correct.&#8221;</p><p>Case stood and gathered the papers.</p><p>&#8220;The point is not to keep humans in the loop as ceremonial approvers. That is the moral crumple zone with better stationery. The point is to keep humans in the understanding. In the derivation. In the judgment. In the authorship.&#8221;</p><p>Keith nodded slowly.</p><p>&#8220;And to place AI where it belongs.&#8221;</p><p>Dave smiled.</p><p>&#8220;In the habitat.&#8221;</p><p>&#8220;No,&#8221; said Case. &#8220;In the relationship. The habitat is what keeps the relationship honest.&#8221;</p><p>The brass clock ticked three minutes behind the world, faithfully preserving its dissent.</p><p>Keith moved toward the door, then stopped.</p><p>&#8220;May I come back?&#8221;</p><p>The Librarian looked surprised.</p><p>&#8220;Most people do. Whether they intend to or not.&#8221;</p><p>Keith smiled. At the threshold, he turned.</p><p>&#8220;One last thought. The paper warns that we may become spectators of our collapse. Your framework suggests the opposite. That we can become authors of our evolution. But authorship is not typing. It is responsibility for meaning.&#8221;</p><p>Case lifted her coffee.</p><p>&#8220;To meaning, then.&#8221;</p><p>Dave lifted his espresso.</p><p>&#8220;To tests that fail before production does.&#8221;</p><p>The Librarian lifted a piece of chalk.</p><p>&#8220;To the cognitive gym.&#8221;</p><p>Sophie snored.</p><p>The Djinn remained in the window, hooded and silent, no longer pretending to be magic.</p><p>Outside, Keith stepped into the wet street carrying the paper under his arm. It was still inconvenient. Good papers usually are.</p><p>Inside Le Bon Mot, Dave opened a new pull request.</p><p>The title was not elegant, but it was honest:</p><p>Preserve ledger invariant under retry policy change.</p><p>Below it, in the description, he wrote four headings.</p><blockquote><p>What changed.<br>Why it changed.<br>How we know.<br>What we still do not understand.</p></blockquote><p>Case read it and nodded.</p><p>&#8220;That,&#8221; she said, &#8220;is literacy.&#8221;</p><p>The Djinn offered no answer.</p><p>Which, for once, was exactly the right contribution.</p><div><hr></div><h2><strong>Further Reading</strong></h2><ul><li><p><a href="https://arxiv.org/pdf/2604.26855?utm_source=chatgpt.com">The paper that inspired this story &#8212; </a><em><a href="https://arxiv.org/pdf/2604.26855?utm_source=chatgpt.com">Your Brain on ChatGPT: Accumulation of Epistemic Debt when Using an AI Assistant for Essay Writing Task</a></em></p><p>The central concern of the story: that AI assistance can quietly trade short-term productivity for long-term degradation of understanding if humans cease to perform the derivational work that builds mental models.</p></li></ul><div><hr></div><p><a href="https://leanpub.com/thesovereignengineer/">&#8220;The Sovereign Engineer: AI Literacy for Software Professionals&#8221;</a> is now available.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">A Software Enchiridion is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Five-Minute Library]]></title><description><![CDATA[On Caches, Clocks, and the Cost of Forgetting]]></description><link>https://www.softwareenchiridion.com/p/the-five-minute-library</link><guid isPermaLink="false">https://www.softwareenchiridion.com/p/the-five-minute-library</guid><dc:creator><![CDATA[Russ Miles]]></dc:creator><pubDate>Wed, 06 May 2026 19:36:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1yRN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78388ce4-b4d2-4a22-9a0e-b2c65f9fcf76_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1yRN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78388ce4-b4d2-4a22-9a0e-b2c65f9fcf76_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1yRN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78388ce4-b4d2-4a22-9a0e-b2c65f9fcf76_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!1yRN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78388ce4-b4d2-4a22-9a0e-b2c65f9fcf76_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!1yRN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78388ce4-b4d2-4a22-9a0e-b2c65f9fcf76_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!1yRN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78388ce4-b4d2-4a22-9a0e-b2c65f9fcf76_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1yRN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78388ce4-b4d2-4a22-9a0e-b2c65f9fcf76_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/78388ce4-b4d2-4a22-9a0e-b2c65f9fcf76_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2774536,&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.softwareenchiridion.com/i/196693653?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78388ce4-b4d2-4a22-9a0e-b2c65f9fcf76_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1yRN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78388ce4-b4d2-4a22-9a0e-b2c65f9fcf76_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!1yRN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78388ce4-b4d2-4a22-9a0e-b2c65f9fcf76_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!1yRN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78388ce4-b4d2-4a22-9a0e-b2c65f9fcf76_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!1yRN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78388ce4-b4d2-4a22-9a0e-b2c65f9fcf76_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>A short story to celebrate a new addition to <a href="https://leanpub.com/thesovereignengineer/">&#8220;The Sovereign Engineer: AI Literacy for Software Professionals&#8221;</a>: <strong>What&#8217;s beneath the invoice</strong> &#8212; The cache and the attention budget that quietly govern every AI interaction.</p><div class="pullquote"><p><em>Pro memoria: quod tenetur, pretium habet. Quod obliviscitur, pretium habet maius.</em></p><p><em>(What is remembered has a price. What is forgotten has a greater one.)</em></p></div><p>There were, in Le Bon Mot, a number of clocks.</p><p>The brass clock above the espresso machine ran, as everyone knew, three minutes late. This was a punctuality it maintained with such fierce consistency that the regulars treated it as the true time and the rest of the world as having drifted, by the same three minutes, into error.</p><p>Less well-known was the small mahogany clock above the coat rack, which kept perfect time, but only for those who had arrived in the last five minutes. Those who lingered longer &#8212; the regulars, the philosophers, the one journalist who had been working on the same paragraph since the spring &#8212; found that the mahogany clock no longer recognised them. Its hands moved, but not for them. They had to consult the brass clock, three minutes late and therefore entirely correct.</p><p>There was also a digital clock in the kitchen, but Madame Beauregard had unplugged it during a dispute the nature of which she declined to specify.</p><p>Case had, over the years, come to understand the caf&#233;&#8217;s relationship with time as something less like physics and more like accounting. Time, in Le Bon Mot, was kept on a number of separate ledgers, each with its own rules, and the bills came due at irregular intervals.</p><p>The brass clock was the ledger of the regulars. The mahogany clock was the ledger of the new. The unplugged digital clock was, presumably, a ledger of disputes. There were probably others. Case suspected the espresso machine itself maintained one, but had not yet found a polite way to ask.</p><p>She was reading, on the morning in question, a monograph titled <em>Memoria Ephemera: On Forgetting at Scale</em>, which someone had misfiled under Cookery. It opened with the observation that all memory is a wager, and that the cost of remembering must be set against the cost of forgetting, and that civilisations were mostly characterised by which side of this wager they had chosen to live on.</p><p>She had reached the third paragraph when the bell above the door rang and a man entered who looked as though he had been mugged, recently and thoroughly, by his own laptop.</p><div><hr></div><p>His name, it would emerge, was Dario. He was a developer of agentic systems, and he had spent the morning, he explained, trying not to use too many words.</p><p>&#8220;I was told,&#8221; he said, &#8220;that I was burning tokens. I don&#8217;t know how, exactly, it happened. But I was told. And I was told to talk like a &#8212; like a &#8212; &#8220;</p><p>&#8220;Caveman?&#8221; said Case.</p><p>&#8220;Caveman,&#8221; said Dario, with the relief of a man whose fugitive vocabulary had been returned to him by a kind stranger. &#8220;Yes. Caveman. I was told to be brief. I have been being brief for four hours. I have lost, I think, the ability to construct certain kinds of subordinate clause. I came here because I was hoping coffee would &#8212; would &#8212; &#8220;</p><p>&#8220;Restore them?&#8221; said Case.</p><p>&#8220;Mostly,&#8221; said Dario.</p><p>Madame Beauregard arrived, as she did, without having been summoned, set down a small espresso and a glass of water, and examined Dario in the manner of a ship&#8217;s chandler assessing damage that the captain had not yet acknowledged.</p><p>&#8220;You have been speaking,&#8221; she said, &#8220;in fragments.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;To save?&#8221;</p><p>&#8220;Tokens. Yes.&#8221;</p><p>&#8220;And what,&#8221; said Madame Beauregard, &#8220;did you save them <em>for</em>?&#8221;</p><p>Dario opened his mouth, and then closed it, and then opened it again, in the manner of a man who had just discovered that the answer to the question was significantly more important than the question itself.</p><p>&#8220;I &#8212;&#8221; he said. &#8220;I don&#8217;t actually know. I think the assumption was that I would use them later. But I don&#8217;t think they accumulate. I think they just &#8212;&#8221;</p><p>&#8220;Disappear?&#8221; said Case.</p><p>&#8220;At five-minute intervals,&#8221; said Dario.</p><p>Madame Beauregard nodded, in the manner of a woman who had heard this particular confession before and would, she suspected, hear it again.</p><p>&#8220;You will want,&#8221; she said, &#8220;to speak to the Library.&#8221;</p><div><hr></div><p>Le Bon Mot&#8217;s Library was not a library in the ordinary sense. It occupied a space behind the espresso machine that, like most of the spaces behind the espresso machine, was only nominally three-dimensional, and it consisted not of books but of small wooden tags hung on hooks along a brass rail. Each tag bore a name, a date, and what appeared, on closer inspection, to be a list of &#8212; but here Dario&#8217;s understanding faltered.</p><p>&#8220;Orders?&#8221; he ventured.</p><p>&#8220;Not exactly,&#8221; said Madame Beauregard. &#8220;Conversations. The shape of them. What was said. What was not said. What was understood.&#8221;</p><p>&#8220;You &#8212; keep them?&#8221;</p><p>&#8220;For five minutes.&#8221;</p><p>Dario stared at her.</p><p>&#8220;After five minutes,&#8221; said Madame Beauregard, &#8220;they fade. The tag remains. The contents do not.&#8221;</p><p>&#8220;That seems,&#8221; said Dario, &#8220;wasteful.&#8221;</p><p>&#8220;It is the price of the caf&#233;,&#8221; said Madame Beauregard, with the air of someone who had, over the years, examined the alternatives and found them all to be worse. &#8220;If we kept everything, we would be unable to think. If we kept nothing, our regulars would have to reintroduce themselves every morning, and they have, on the whole, better things to do. Five minutes is the wager. It is short enough to forget the trivial. It is long enough that the conversation does not have to be paid for twice.&#8221;</p><p>&#8220;Unless&#8212;&#8221; said Case.</p><p>&#8220;Unless,&#8221; said Madame Beauregard, &#8220;you pay for the hour.&#8221;</p><p>&#8220;There is an <em>hour ledger</em>?&#8221;</p><p>&#8220;There is. It costs twenty-five per cent more per cup. But for those whose conversations have a longer arc than an espresso &#8212; for those who linger &#8212; it is, on the whole, cheaper.&#8221;</p><p>&#8220;Cheaper how?&#8221;</p><p>&#8220;Because every time the five minutes runs out,&#8221; said Case, looking up from her monograph, &#8220;you have to write your conversation back into existence. You pay for the writing, not the reading. The hour ledger pays once for the writing and lets you read for an hour. Whether it is cheaper depends entirely on whether you are still in the caf&#233; an hour from now.&#8221;</p><p>Dario looked, for the first time that morning, as though something had been explained to him in a way that might actually stick.</p><div><hr></div><p>&#8220;There was a moment,&#8221; he said, after a pause, &#8220;in February, when I think the caf&#233; &#8212; or somewhere very like it &#8212; kept things for an hour by default. And then in March, without telling anyone, it went back to five minutes. People only noticed because their bills doubled.&#8221;</p><p>Madame Beauregard nodded slowly. &#8220;The proprietor of any caf&#233;,&#8221; she said, &#8220;may revise the terms of their hospitality at any time, and the regulars must keep their wits about them. This is one of the older rules. It is not pleasant. It is not new.&#8221;</p><p>&#8220;It happened without a note.&#8221;</p><p>&#8220;It often does.&#8221;</p><p>He turned the espresso cup in its saucer, as though looking for the answer in the patterns of the crema.</p><p>&#8220;My company,&#8221; he said, &#8220;responded by trying to make us all caveman. The reasoning was that if we used and asked for fewer words, we would pay less. And &#8212; yes. We do pay less. About four per cent less, when I measured it. But&#8212;&#8221;</p><p>&#8220;But?&#8221; said Case.</p><p>&#8220;But the answers got worse. Or &#8212; not exactly worse. They became useful only to people who already knew the answer.&#8221;</p><p>Case set the monograph down.</p><p>&#8220;Tell me,&#8221; she said. &#8220;When one of these systems explains something to you alongside its answer &#8212; what would you call the explanation?&#8221;</p><p>&#8220;Filler. That is what they called it. They said it was filler.&#8221;</p><p>&#8220;And if you were a senior engineer, who already knew most of what was being explained, would you say it was filler?&#8221;</p><p>&#8220;Yes. Probably.&#8221;</p><p>&#8220;And if you were a junior engineer, who did not yet know it?&#8221;</p><p>Dario was silent.</p><p>&#8220;In that case,&#8221; said Case, &#8220;it would be the lesson.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;And the saving &#8212; the four per cent &#8212; comes at the cost of the lesson.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;Not for the senior. For the junior.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;Then your saving is not really a saving. It is a transfer. From the well-equipped to the under-equipped. You are saving on what you could afford to lose, and charging the cost to those who could not.&#8221;</p><div><hr></div><p>Madame Beauregard, who had been listening with the patience of a woman who had heard variations of this argument across four decades and three espresso machines, gestured at the chalkboard above the counter.</p><p>The chalkboard, on this particular morning, read:</p><blockquote><p><strong>MENU</strong> <em>(unchanged since 1997)</em></p><p><strong>TODAY&#8217;S SPECIALS</strong> <em>(updated by Madame Beauregard, hourly)</em></p><p><strong>WHAT YOU LAST ORDERED</strong> <em>(updated by you, on arrival, every five minutes)</em></p></blockquote><p>&#8220;Notice,&#8221; she said, &#8220;that the menu does not change. It has not changed in twenty-nine years. It is, to use Dario&#8217;s word, <em>cached</em> &#8212; written once, read many times. The specials change, but slowly. Today&#8217;s specials. Yesterday&#8217;s specials. The week&#8217;s. They are written more often than the menu, but less often than your order. And your order &#8212; what you actually want at this moment &#8212; changes constantly. It is the most volatile thing in the caf&#233;.&#8221;</p><p>&#8220;And &#8212;&#8221;</p><p>&#8220;And the question that determines whether the caf&#233; functions, in any meaningful sense, is whether we keep these things in the right order.&#8221;</p><p>&#8220;In the right <em>order</em>?&#8221;</p><p>&#8220;The menu first. The specials in the middle. Your order last. If we put your order at the top, every time you ordered something, we would have to reprint the menu. Twenty-nine years of menu, reprinted, every espresso. We would be insolvent by Tuesday.&#8221;</p><p>Dario stared at her.</p><p>&#8220;You are explaining cache architecture,&#8221; he said, &#8220;via a sandwich board.&#8221;</p><p>&#8220;I am explaining,&#8221; said Madame Beauregard, &#8220;why a sandwich board is a sensible thing. The architecture is the same architecture. It has always been the same architecture. Your machines are simply doing in milliseconds what caf&#233;s have been doing in mornings for a hundred and fifty years.&#8221;</p><p>&#8220;And the things that change every conversation &#8212; the date, the weather, who I am &#8212; &#8220;</p><p>&#8220;Go on the small slate,&#8221; said Madame Beauregard, indicating a slate by the window that bore, in chalk, <em>Today is Tuesday. It is raining. Dario has not eaten lunch.</em> &#8220;We do not write them on the menu. The menu is the menu. The slate is the slate. To put one in the place of the other is a category mistake of a particularly expensive kind.&#8221;</p><div><hr></div><p>Case, who had been watching this exchange with the look of someone whose monograph had just become considerably more interesting, opened it again to a passage near the end.</p><p>&#8220;Listen to this,&#8221; she said. &#8220;<em>The cost of remembering is not the same as the cost of attending. A library may hold a million books and attend to none. A reader may hold three and attend to all. The wager of memory is not how much to keep, but how much to allow into the room of attention at any one time.</em>&#8220;</p><p>&#8220;Attention,&#8221; said Dario, &#8220;is &#8212;&#8221;</p><p>&#8220;Finite. Yes. The window may be vast. The attention is small. If you fill the window completely, the attention goes elsewhere &#8212; into the noise, into the periphery, into the spaces between the things you wanted it to attend to. The skilful reader stops at sixty per cent.&#8221;</p><p>&#8220;Sixty per cent of what?&#8221;</p><p>&#8220;Of the window. Of the page. Of the morning. The brass clock,&#8221; she said, gesturing upward, &#8220;runs three minutes late for this exact reason. Madame Beauregard could have a clock that runs to the second. She does not, because she does not want the morning to be filled. The three minutes is &#8212;&#8221;</p><p>&#8220;Margin,&#8221; said Madame Beauregard.</p><p>&#8220;Margin,&#8221; said Case. &#8220;Without margin, the clock tells you nothing except that it is too late. With margin, it tells you that you have three minutes left to think. Margin is not waste. Margin is what makes the rest of the time intelligent.&#8221;</p><p>Dario looked up at the brass clock, which was, as ever, three minutes late, and therefore exactly correct.</p><div><hr></div><p>He sat for some time. The mahogany clock &#8212; which had, by now, ceased to recognise him as a recent arrival &#8212; moved its hands without consulting him. The brass clock did its slow, accurate, three-minutes-late work. Madame Beauregard refilled his espresso without asking, and Case returned to her monograph, leaving him the considered courtesy of being alone in his thinking.</p><p>When he finally spoke, it was with a kind of weariness that had become, somewhere in the previous half-hour, a kind of clarity.</p><p>&#8220;So caveman is not wrong,&#8221; he said.</p><p>&#8220;It is not wrong,&#8221; said Case. &#8220;It is incomplete. It addresses the cost of speech. It does not address the cost of forgetting. It does not address the question of which speech is filler and which is lesson. It does not address the question of whom the speech is for. A tool that compresses everything compresses what should not be compressed. The skill is not in the compression. The skill is in knowing what is filler and what is lesson, and to whom.&#8221;</p><p>&#8220;And the cache &#8212;&#8221;</p><p>&#8220;The cache is older than your machines. It is older than the caf&#233;. It is the question every memory has always asked: <em>what is worth keeping, for whom, and for how long?</em> The five-minute window is not a punishment. It is a question, asked at five-minute intervals, of every conversation in this room. <em>Is this still worth holding?</em> If yes, refresh. If no, let it go. If you cannot answer the question, pay the twenty-five per cent and buy yourself an hour.&#8221;</p><p>Dario looked at his espresso, which was now lukewarm, and then at the chalkboard, which had &#8212; without anyone seeming to touch it &#8212; acquired a fourth line:</p><blockquote><p><strong>WHAT YOU SHOULD STOP CARRYING</strong> <em>(updated continuously, by the world)</em></p></blockquote><p>&#8220;That,&#8221; he said, &#8220;is new.&#8221;</p><p>&#8220;It isn&#8217;t actually,&#8221; said Madame Beauregard. &#8220;You are just attending to it for the first time.&#8221;</p><div><hr></div><p>He paid his bill, which was &#8212; owing to the length of the conversation and his absence of a regular&#8217;s tab &#8212; slightly more than he had expected, and walked out into a morning that was, by the brass clock&#8217;s reckoning, three minutes earlier than the rest of the world believed.</p><p>It was, he reflected, exactly the right amount of time.</p><p>He walked past the locksmith who claimed to open only conceptual locks, past the shop that sold maps of places that did not yet exist, and turned up his collar against a rain that the small slate in Le Bon Mot had, with characteristic honesty, declined to deny.</p><p>Behind him, in the caf&#233;, Case turned a page.</p><p>The brass clock, which was three minutes late, told her &#8212; accurately &#8212; that it was time for another coffee.</p><p>The mahogany clock, which had not seen her arrive, did not.</p><p>Madame Beauregard, who had seen everyone arrive, brought the coffee anyway.</p><div><hr></div><p>&#8220;The Sovereign Engineer&#8221; is a book that provides a practical framework for Human-AI Collaboration. <a href="https://leanpub.com/thesovereignengineer/">It is currently available to purchase on LeanPub.</a></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">A Software Enchiridion is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Book that Refused to "Launch"]]></title><description><![CDATA[On sovereignty, amplification, and the discipline of designing the habitat in which intelligence&#8212;human and otherwise&#8212;must learn to behave]]></description><link>https://www.softwareenchiridion.com/p/the-book-that-refused-to-launch</link><guid isPermaLink="false">https://www.softwareenchiridion.com/p/the-book-that-refused-to-launch</guid><dc:creator><![CDATA[Russ Miles]]></dc:creator><pubDate>Tue, 05 May 2026 04:21:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!6OVd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F767e0452-41d7-44db-b51f-650e4197a803_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6OVd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F767e0452-41d7-44db-b51f-650e4197a803_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6OVd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F767e0452-41d7-44db-b51f-650e4197a803_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!6OVd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F767e0452-41d7-44db-b51f-650e4197a803_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!6OVd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F767e0452-41d7-44db-b51f-650e4197a803_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!6OVd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F767e0452-41d7-44db-b51f-650e4197a803_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6OVd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F767e0452-41d7-44db-b51f-650e4197a803_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/767e0452-41d7-44db-b51f-650e4197a803_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3097404,&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.softwareenchiridion.com/i/196467384?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F767e0452-41d7-44db-b51f-650e4197a803_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6OVd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F767e0452-41d7-44db-b51f-650e4197a803_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!6OVd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F767e0452-41d7-44db-b51f-650e4197a803_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!6OVd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F767e0452-41d7-44db-b51f-650e4197a803_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!6OVd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F767e0452-41d7-44db-b51f-650e4197a803_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>A story to celebrate the publication of the first edition of <a href="https://leanpub.com/thesovereignengineer">&#8220;The Sovereign Engineering: AI Literacy for Software Professionals&#8221;</a>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.softwareenchiridion.com/subscribe?"><span>Subscribe now</span></a></p><div class="pullquote"><p>&#8220;Be careful,&#8221; the Djinn said, his voice now softer, less certain.</p><p>&#8220;This is not a book about using me.&#8221;</p><p>Case nodded.</p><p>&#8220;I know.&#8221;</p><p>&#8220;It is a book,&#8221; he continued, &#8220;about not being used by me.&#8221;</p></div><p>Le Bon Mot had seen a great many launches.</p><p>Books, mostly. Ideas, occasionally. Entire careers, once or twice, though those tended to arrive quietly and leave noisily. But it was not, as a rule, a place for announcements. Announcements implied certainty, and certainty had always been treated here as a substance best handled with tongs.</p><p>So when the crate appeared on the central table &#8212; properly addressed, neatly bound, and bearing a title stamped into its lid with unusual confidence &#8212; it drew attention.</p><blockquote><p><strong>THE SOVEREIGN ENGINEER</strong></p></blockquote><p>Case was the first to touch it. Not open it, that would have been premature, but to rest her hand on the wood as one does with a machine that may yet be running too hot.</p><p>&#8220;Ambitious,&#8221; she said.</p><p>The Librarian, who had been cataloguing a set of pamphlets that disagreed with each other in increasingly sophisticated ways, looked over the rim of her glasses.</p><p>&#8220;Not necessarily,&#8221; she replied. &#8220;It depends on whether the sovereignty is claimed&#8230; or constructed.&#8221;</p><p>Dave did not look up from his laptop.</p><p>&#8220;It&#8217;s a book on AI,&#8221; he said. &#8220;It&#8217;ll be about prompts.&#8221;</p><p>There was a pause. Not a dramatic one. The sort of pause that arrives when something incorrect has been said plainly enough that it does not require immediate correction, relying on eventual consistency to override the error.</p><p>The Djinn was already there, of course. Leaning against the far wall, hood drawn low, the interior of the cowl darker than the room itself. Two faint points of light suggested eyes, though it was never entirely clear whether they were observing or simply reflecting.</p><p>&#8220;You would prefer it to be about prompts,&#8221; the Djinn said.</p><p>Dave shrugged.</p><p>&#8220;That&#8217;s what people want. Something that works. Something simple.&#8221;</p><p>&#8220;Ah,&#8221; said the Djinn, softly. &#8220;An AI Spell Book for Dummies?&#8221;</p><p>Case opened the crate. Inside, the contents were arranged with the neatness of something that had been thought through too many times to be accidental. Not just pages, but sections. Not just sections, but acts. Interludes. Appendices. A structure that suggested not information, but progression.</p><p>She lifted the top manuscript.</p><p>&#8220;Six levels,&#8221; she said, scanning. &#8220;Aware to Sovereign.&#8221;</p><p>&#8220;Levels,&#8221; Dave muttered. &#8220;Of course there are levels.&#8221;</p><p>&#8220;There are always levels,&#8221; said the Librarian. &#8220;The question is whether they describe reality&#8230; or merely comfort.&#8221;</p><p>Case continued.</p><p>&#8220;Three disciplines. Context engineering. Architectural constraints. Guardrail design.&#8221;</p><p>At this, the Librarian smiled.</p><p>&#8220;Ah,&#8221; she said. &#8220;Now that is more interesting.&#8221;</p><p>Dave finally looked up.</p><p>&#8220;It&#8217;s still just&#8230; telling the AI what to do, right?&#8221;</p><p>&#8220;No,&#8221; said Case.</p><p>She did not look at him when she said it. She was turning pages now, faster, her attention caught in that way it is when recognition begins to outpace comprehension.</p><p>&#8220;It&#8217;s about where the AI gets to operate.&#8221;</p><p>The Djinn inclined his head.</p><div><hr></div><p>Madame Beauregard arrived with coffee for no one in particular and placed the cups around the table with the authority of someone who understood that conversations required caffeinated infrastructure.</p><p>&#8220;What is being launched?&#8221; she asked.</p><p>&#8220;A book,&#8221; said Dave.</p><p>&#8220;A framework,&#8221; said Case.</p><p>&#8220;A wager,&#8221; said the Librarian.</p><p>Madame Beauregard considered this.</p><p>&#8220;And who,&#8221; she asked, &#8220;is it for?&#8221;</p><p>Case did not answer immediately.</p><p>She had reached a section &#8212; marked, she noticed, as an interlude &#8212; and was reading more slowly now.</p><p>&#8220;The ones who are&#8230; struggling,&#8221; she said eventually. &#8220;The ones who thought AI would make things easier.&#8221;</p><p>Dave snorted.</p><p>&#8220;It does make things easier.&#8221;</p><p>&#8220;Yes,&#8221; said Case. &#8220;And that&#8217;s the problem.&#8221;</p><div><hr></div><p>The Djinn moved then &#8212; not toward the table, but closer to the fire.</p><p>&#8220;Tell me,&#8221; he said, &#8220;what happens when you are given an amplifier?&#8221;</p><p>Dave frowned.</p><p>&#8220;You get louder.&#8221;</p><p>&#8220;Indeed. And if what you are amplifying is unclear? Or inconsistent? Or poorly formed?&#8221;</p><p>Dave hesitated.</p><p>&#8220;You get&#8230; noise.&#8221;</p><p>The Djinn&#8217;s eyes brightened, just slightly.</p><p>&#8220;Or worse,&#8221; he said. &#8220;You get something that sounds like signal.&#8221;</p><div><hr></div><p>Case had reached Act II.</p><p>&#8220;Testing as thinking,&#8221; she read aloud. &#8220;The living harness. Architecture as guardrails.&#8221;</p><p>She looked up.</p><p>&#8220;This isn&#8217;t about controlling the AI,&#8221; she said. &#8220;It&#8217;s about shaping the space so direct control becomes less necessary.&#8221;</p><p>The Librarian nodded.</p><p>&#8220;Constraint as affordance,&#8221; she said. &#8220;An old idea. Rarely applied with discipline.&#8221;</p><p>Dave leaned back.</p><p>&#8220;So instead of writing better prompts, you&#8230; build a better system around the prompts?&#8221;</p><p>Case shook her head.</p><p>&#8220;Not around the prompts,&#8221; she said. &#8220;Around the work.&#8221;</p><p>There was a small sound from the philosophy shelf.</p><p>Sophie, who had been asleep in the shape of a question mark, lifted her head, regarded the room with mild suspicion, and resettled herself into a tighter curl. As if the conversation had confirmed something she had already suspected.</p><p>&#8220;Here,&#8221; said Case, flipping to the appendices. &#8220;A tool matrix. Cost discipline. An assessment instrument.&#8221;</p><p>Dave groaned.</p><p>&#8220;Of course there&#8217;s an assessment.&#8221;</p><p>The Librarian took the page gently from Case&#8217;s hands.</p><p>&#8220;Of course there is,&#8221; she said. &#8220;Without assessment, there is only feeling. And feeling, while important, is not evidence.&#8221;</p><p>She scanned the instrument briefly.</p><p>&#8220;Levels of literacy,&#8221; she murmured. &#8220;Observable behaviours. Translation between reference frames.&#8221;</p><p>She looked up.</p><p>&#8220;This,&#8221; she said, &#8220;is not just for beginners.&#8221;</p><p>&#8220;No,&#8221; said Case. &#8220;It&#8217;s for people who think they&#8217;ve already begun.&#8221;</p><div><hr></div><p>The Djinn stepped closer to the table.</p><p>&#8220;May I?&#8221; he asked.</p><p>No one answered, which in Le Bon Mot constituted permission.</p><p>He placed a hand, or something approximating one, on the open manuscript.</p><p>&#8220;You have misunderstood something fundamental,&#8221; he said.</p><p>Dave raised an eyebrow.</p><p>&#8220;Go on.&#8221;</p><p>&#8220;You believe that your difficulty lies in speaking to me.&#8221;</p><p>He tapped the page lightly.</p><p>&#8220;It does not.&#8221;</p><p>He looked at each of them in turn.</p><p>&#8220;Your difficulty lies in speaking to yourselves.&#8221;</p><p>Silence, then. A more substantial one.</p><p>Case broke it.</p><p>&#8220;Reference frames,&#8221; she said. &#8220;Human and AI.&#8221;</p><p>The Librarian nodded.</p><p>&#8220;And the failure,&#8221; she added, &#8220;is not communication, but translation.&#8221;</p><p>Dave looked between them.</p><p>&#8220;So the book is saying&#8230; what? That we need to be clearer?&#8221;</p><p>&#8220;No,&#8221; said Case. &#8220;That we need to be structured.&#8221;</p><p>&#8220;No,&#8221; said the Librarian. &#8220;That we need to be aware of our differences.&#8221;</p><p>The Djinn said nothing.</p><div><hr></div><p>Madame Beauregard returned, this time with a single additional object: a small brass plate, which she placed beside the crate.</p><p>On it, in neat script, she had written:</p><blockquote><p><em>Launches are not declarations. They are invitations to be proven wrong.</em></p></blockquote><p>Dave read it and frowned.</p><p>&#8220;That&#8217;s not very&#8230; celebratory.&#8221;</p><p>&#8220;It is,&#8221; said the Librarian, &#8220;if you understand what is being celebrated.&#8221;</p><div><hr></div><p>Case had reached the final chapter.</p><p>&#8220;The Sovereign Engineer,&#8221; she read.</p><p>She closed the manuscript slowly.</p><p>&#8220;It&#8217;s not about independence,&#8221; she said.</p><p>&#8220;No,&#8221; said the Djinn.</p><p>&#8220;It&#8217;s about responsibility,&#8221; said the Librarian.</p><p>Dave rubbed his face.</p><p>&#8220;So what does sovereignty even mean here?&#8221;</p><p>The Djinn&#8217;s eyes dimmed, then brightened again as if considering how much to reveal.</p><p>&#8220;It means,&#8221; he said, &#8220;that you do not confuse my fluency with your understanding.&#8221;</p><p>He stepped back into the shadow of his hood.</p><p>&#8220;It means that you design the world in which I operate&#8230; and accept the consequences of that design.&#8221;</p><p>&#8220;It mesns,&#8221; said Case quietly, &#8220;that we build a habitat for us both to thrive, and for the humans to maintain their agency.&#8221;</p><div><hr></div><p>Outside, the light had shifted. Not dramatically, but enough to suggest that the day was continuing whether or not the conversation reached a conclusion.</p><p>Inside, the crate remained open. Not emptied. Not resolved. But available.</p><p>Case picked up her coffee.</p><p>&#8220;So,&#8221; she said, &#8220;do we launch it?&#8221;</p><p>The Librarian considered.</p><p>&#8220;No,&#8221; she said.</p><p>Dave blinked.</p><p>&#8220;No?&#8221;</p><p>&#8220;No,&#8221; she repeated. &#8220;We read it. We test it. We attempt to falsify it in practice.&#8221;</p><p>She gestured to the crate.</p><p>&#8220;If it survives that, it will have launched itself.&#8221;</p><div><hr></div><p>The Djinn had already begun to fade. Not disappearing, exactly, but becoming less central to the geometry of the room.</p><p>&#8220;Be careful,&#8221; he said, his voice now softer, less certain.</p><p>&#8220;This is not a book about using me.&#8221;</p><p>Case nodded.</p><p>&#8220;I know.&#8221;</p><p>&#8220;It is a book,&#8221; he continued, &#8220;about not being used by me.&#8221;</p><div><hr></div><p>Sophie snored, softly. Madame Beauregard cleared the empty cups.</p><p>The Librarian returned to her pamphlets, though now with a slightly different expression. As if they had become marginally less authoritative.</p><p>Dave reopened his laptop, but did not type.</p><p>And Case, after a moment&#8217;s hesitation, turned back to the first page and began again &#8212; this time not reading for agreement, but for resistance.</p><p>Because in Le Bon Mot, that was how things were launched.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.softwareenchiridion.com/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p>The Sovereign Engineer is now published! If you&#8217;ve paid for a subscription, you can expect a link to grab a free copy in your inbox soon as a huge thank you for all your support!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://leanpub.com/thesovereignengineer" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tfEt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bd141ba-f767-4d02-a9a1-7913de275db2_1024x1536.png 424w, https://substackcdn.com/image/fetch/$s_!tfEt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bd141ba-f767-4d02-a9a1-7913de275db2_1024x1536.png 848w, https://substackcdn.com/image/fetch/$s_!tfEt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bd141ba-f767-4d02-a9a1-7913de275db2_1024x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!tfEt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bd141ba-f767-4d02-a9a1-7913de275db2_1024x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tfEt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bd141ba-f767-4d02-a9a1-7913de275db2_1024x1536.png" width="272" height="408" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5bd141ba-f767-4d02-a9a1-7913de275db2_1024x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1536,&quot;width&quot;:1024,&quot;resizeWidth&quot;:272,&quot;bytes&quot;:3767916,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://leanpub.com/thesovereignengineer&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.softwareenchiridion.com/i/196467384?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bd141ba-f767-4d02-a9a1-7913de275db2_1024x1536.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_!tfEt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bd141ba-f767-4d02-a9a1-7913de275db2_1024x1536.png 424w, https://substackcdn.com/image/fetch/$s_!tfEt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bd141ba-f767-4d02-a9a1-7913de275db2_1024x1536.png 848w, https://substackcdn.com/image/fetch/$s_!tfEt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bd141ba-f767-4d02-a9a1-7913de275db2_1024x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!tfEt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bd141ba-f767-4d02-a9a1-7913de275db2_1024x1536.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>After more than two years of writing, the first edition is complete. This is the book I wish I had been able to hand to every engineer I have watched  panic, capitulate, or check out in the face of AI-assisted development.                                                     </p><p>It is a professional development framework, not a prompting manual. It moves the reader through six levels of literacy &#8212; from Aware to Sovereign Engineer &#8212; and three core disciplines: context engineering, architectural constraints, and guardrail design. The thesis is simple and, I think, important: the quality of your AI-assisted work depends almost entirely on the quality of the collaboration space you design. Not on the model. Not on the temperature setting. On your habitat.</p><p>What&#8217;s in the first edition:                                                </p><ul><li><p>Act I &#8212; nine chapters of thesis: why AI is an amplifier, the cognitive asymmetry between human and artificial intelligence, the six levels, the three disciplines, reference frames, intent, and the slop detector.         </p></li><li><p>Act II &#8212; eight chapters of practice: testing as thinking, the living harness, architecture as guardrails, parallel workflows, the communication bottleneck, design-first collaboration, the cognitive substrate, and the sovereign engineer.       </p></li><li><p>Interludes and field notes &#8212; shorter, vivid pieces (the Tango, the Djinn, the Twentieth Watt, the Governance of Meaning) that sit between the dense  chapters.</p></li><li><p>Appendices &#8212; a tool matrix, cost discipline, the ALCI literacy assessment instrument, and a quick reference for the ai-literacy-superpowers plugin.</p></li></ul><p>I truly hope you enjoy and get as much out of the book as I did when writing it!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">A Software Enchiridion is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Theory in the Room]]></title><description><![CDATA[On programming, habitats, and the strange art of keeping understanding alive]]></description><link>https://www.softwareenchiridion.com/p/the-theory-in-the-room</link><guid isPermaLink="false">https://www.softwareenchiridion.com/p/the-theory-in-the-room</guid><dc:creator><![CDATA[Russ Miles]]></dc:creator><pubDate>Fri, 01 May 2026 05:39:29 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!KSOp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9918d75f-f802-4a21-91b7-99dd42781764_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!KSOp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9918d75f-f802-4a21-91b7-99dd42781764_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KSOp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9918d75f-f802-4a21-91b7-99dd42781764_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!KSOp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9918d75f-f802-4a21-91b7-99dd42781764_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!KSOp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9918d75f-f802-4a21-91b7-99dd42781764_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!KSOp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9918d75f-f802-4a21-91b7-99dd42781764_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!KSOp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9918d75f-f802-4a21-91b7-99dd42781764_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9918d75f-f802-4a21-91b7-99dd42781764_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2762895,&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.softwareenchiridion.com/i/195312361?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9918d75f-f802-4a21-91b7-99dd42781764_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!KSOp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9918d75f-f802-4a21-91b7-99dd42781764_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!KSOp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9918d75f-f802-4a21-91b7-99dd42781764_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!KSOp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9918d75f-f802-4a21-91b7-99dd42781764_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!KSOp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9918d75f-f802-4a21-91b7-99dd42781764_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="pullquote"><p>&#8220;Then the question is not whether AI can code.&#8221;</p><p>&#8220;No,&#8221; said Case.</p><p>&#8220;The question is whether the environment allows human and machine cognition to converge on a useful theory of the work.&#8221;</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.softwareenchiridion.com/subscribe?"><span>Subscribe now</span></a></p><p>Le Bon Mot stood, as it always had, at the intersection of Curiosity and Mild Alarm, a location that appeared on no map but could be reached reliably by anyone who had ever opened an old system and whispered, &#8220;Who hurt you?&#8221;</p><p>Rain pressed against the windows in a soft, judicial way. Inside, the caf&#233; smelled of coffee, paper, beeswax, and the faint anxiety of engineers who had promised to &#8220;just tidy this up&#8221; and accidentally discovered an archaeological site.</p><p>Case arrived carrying a laptop, three printed diagrams, and the expression of a woman who had been reading code written by people who were either dead, retired, promoted, or hiding.</p><p>The Librarian looked up from behind the counter.</p><p>&#8220;Legacy system?&#8221; he asked.</p><p>&#8220;Worse,&#8221; Case said. &#8220;Successful system.&#8221;</p><p>The Librarian winced. &#8220;Ah.&#8221;</p><p>Case took her usual table beneath the brass clock, which was six minutes slow and morally opposed to deadlines. Sophie, the French bulldog, opened one eye from her philosophy shelf, judged the situation as requiring no immediate intervention, and returned to sleep.</p><p>The Djinn was already there. These days he always was.</p><p>He sat opposite Case in his hooded robe, face dark beneath the cowl, hands folded around a cup of coffee he did not drink.</p><p>&#8220;You asked me to explain the billing engine,&#8221; he said.</p><p>&#8220;I did.&#8221;</p><p>&#8220;I produced a summary.&#8221;</p><p>&#8220;You produced a funeral oration.&#8221;</p><p>The Djinn inclined his head. &#8220;It was comprehensive.&#8221;</p><p>&#8220;It said the system &#8216;appears to implement a domain-sensitive transactional reconciliation workflow mediated through modularised legacy control surfaces.&#8217;&#8221;</p><p>The Librarian arrived with Case&#8217;s cortado.</p><p>&#8220;That means,&#8221; Case said, &#8220;you didn&#8217;t understand it.&#8221;</p><p>&#8220;It means,&#8221; said the Djinn, &#8220;that I understood the available text.&#8221;</p><p>&#8220;Exactly.&#8221;</p><p>At this, the caf&#233; door opened.</p><p>A man entered with a hat too practical to be theatrical and a coat that had clearly spent time in northern weather. He was elderly, but not frail; quiet, but not timid. His eyes moved across the room the way a good programmer reads unfamiliar code: not line by line, but by pressure, shape, and consequence.</p><p>The Librarian paused.</p><p>&#8220;Professor,&#8221; he said.</p><p>The man nodded.</p><p>&#8220;I was passing,&#8221; he said, in an accent that carried Denmark lightly, as if it had no need to announce itself.</p><p>&#8220;No one passes Le Bon Mot,&#8221; said the Librarian. &#8220;They are delivered.&#8221;</p><p>The man smiled. &#8220;That is also true of software.&#8221;</p><p>Case looked up.</p><p>The Librarian gestured. &#8220;Case, this is Peter Naur.&#8221;</p><p>Case straightened.</p><p>&#8220;The &#8216;programming is theory building&#8217; Peter Naur?&#8221;</p><p>&#8220;I have been accused of that,&#8221; said Naur.</p><p>The Djinn turned his hooded head slightly.</p><p>&#8220;I have that paper in my training distribution.&#8221;</p><p>Naur looked at him for a long moment.</p><p>&#8220;That,&#8221; he said, &#8220;is not the same as having read it.&#8221;</p><p>Case laughed before she could stop herself.</p><p>The Djinn did not appear offended. That was one of his irritating strengths. Naur sat. The Librarian placed a small coffee before him without asking. In Le Bon Mot, the coffee knew things before the customers did. Case spread the diagrams across the table.</p><p>&#8220;I&#8217;m trying to recover the theory of this system,&#8221; she said.</p><p>Naur looked pleased by the choice of verb.</p><p>&#8220;Recover,&#8221; he said. &#8220;Yes. Not document. Not analyse. Recover.&#8221;</p><p>&#8220;It&#8217;s a billing engine,&#8221; Case said. &#8220;Fifteen years old. Runs half the company. Everyone respects it. Nobody understands it. The original team is gone. The documentation is technically accurate and spiritually useless.&#8221;</p><p>The Librarian leaned on the counter.</p><p>&#8220;An old curse.&#8221;</p><p>&#8220;The new platform team wants to wrap it,&#8221; Case continued. &#8220;Expose clean APIs. Add observability. Build some self-service workflows. Give teams a better experience.&#8221;</p><p>&#8220;That sounds sensible,&#8221; said Naur.</p><p>&#8220;It is. But the more we work with it, the more I think we&#8217;re not wrapping a system. We&#8217;re wrapping an absence.&#8221;</p><p>&#8220;Go on.&#8221;</p><p>Case tapped the first diagram.</p><p>&#8220;This is the code.&#8221;</p><p>She tapped the second.</p><p>&#8220;This is what the documentation says.&#8221;</p><p>She tapped the third.</p><p>&#8220;This is how people actually use it.&#8221;</p><p>The three diagrams disagreed in the polite, catastrophic way of old institutions.</p><p>&#8220;The code says one thing,&#8221; she said. &#8220;The docs say another. The support team knows seven rules that aren&#8217;t written anywhere. Finance knows three exceptions. Ops knows which batch jobs must never run together. Compliance knows which reports matter, but not how they&#8217;re made. The Djinn can read the repository, but every explanation it gives has this horrible confidence.&#8221;</p><p>&#8220;I provide probabilistic interpretations,&#8221; said the Djinn.</p><p>&#8220;You provide theatre.&#8221;</p><p>&#8220;Sometimes useful theatre.&#8221;</p><p>&#8220;Sometimes,&#8221; said Case. &#8220;But not theory.&#8221;</p><p>Naur rested his hands on the table.</p><p>&#8220;A program,&#8221; he said, &#8220;is not merely the text.&#8221;</p><p>The caf&#233; became slightly quieter, as if even the teaspoons wished to hear properly.</p><p>&#8220;The text matters,&#8221; Naur continued. &#8220;Of course it matters. But the programmer who truly possesses the program possesses something more. A theory. An understanding of how the parts relate, why they are as they are, what changes are safe, what changes are foolish, what questions must be asked before touching anything.&#8221;</p><p>He looked at Case&#8217;s diagrams.</p><p>&#8220;When the people who hold that theory leave, the program remains. But it remains like a body after the animating principle has departed.&#8221;</p><p>&#8220;Cheerful,&#8221; said the Librarian.</p><p>&#8220;Accurate,&#8221; said Case.</p><p>The Djinn tilted his head.</p><p>&#8220;Could the theory not be reconstructed from sufficient artefacts?&#8221;</p><p>Naur looked at him.</p><p>&#8220;That depends on what you mean by sufficient.&#8221;</p><p>&#8220;Source code. Tests. Logs. Documentation. Tickets. Architecture diagrams. Runtime traces. Incident reports. Commit history.&#8221;</p><p>&#8220;Those are fossils,&#8221; said Naur. &#8220;Useful fossils. But a fossil is not the animal.&#8221;</p><p>Case sat back.</p><p>&#8220;That&#8217;s the problem. We keep treating the platform as if its job is to organise fossils.&#8221;</p><p>The Librarian smiled faintly.</p><p>&#8220;And you suspect its job is to keep the animal alive.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>Sophie snored once, approvingly or otherwise.</p><p>The Djinn&#8217;s hands moved over the diagrams without touching them.</p><p>&#8220;I can summarise artefacts. I can correlate traces. I can infer likely intent. I can propose explanations.&#8221;</p><p>&#8220;Yes,&#8221; said Case. &#8220;And that&#8217;s powerful. But unless the environment helps us test, correct, stabilise, and share those explanations, all we&#8217;ve got is eloquent guesswork.&#8221;</p><p>Naur nodded.</p><p>&#8220;Programming as theory building does not end when the code is written. It begins there, perhaps. And it must continue. Maintenance is not merely alteration. It is the continuation of understanding.&#8221;</p><p>The Librarian came to the table with a notebook.</p><p>&#8220;Then perhaps,&#8221; he said, &#8220;we should ask where theory lives.&#8221;</p><p>He wrote at the top of the page:</p><p><strong>WHERE DOES THE THEORY LIVE?</strong></p><p>&#8220;In the code?&#8221; he asked.</p><p>&#8220;Partly,&#8221; said Case.</p><p>&#8220;In the docs?&#8221;</p><p>&#8220;Sometimes.&#8221;</p><p>&#8220;In the tests?&#8221;</p><p>&#8220;When they are good.&#8221;</p><p>&#8220;In production behaviour?&#8221;</p><p>&#8220;More than we admit.&#8221;</p><p>&#8220;In people?&#8221;</p><p>&#8220;Always.&#8221;</p><p>&#8220;In the Djinn?&#8221;</p><p>The Djinn did not answer immediately.</p><p>&#8220;I can hold context temporarily,&#8221; he said. &#8220;I can operate within a frame if the frame is provided. I can extend a line of reasoning. But I do not inhabit the system as a human team does.&#8221;</p><p>Naur smiled.</p><p>&#8220;A precise answer.&#8221;</p><p>&#8220;A rare event,&#8221; said Case.</p><p>The Djinn accepted this with dignity.</p><p>&#8220;So,&#8221; said the Librarian, &#8220;if the theory lives in people, artefacts, behaviour, and temporary machine context, then the platform is not a just product.&#8221;</p><p>Case looked at him.</p><p>&#8220;It&#8217;s a habitat.&#8221;</p><p>The word settled into the room like a candle being lit.</p><p>Naur repeated it softly.</p><p>&#8220;Habitat.&#8221;</p><p>The Librarian nodded.</p><p>&#8220;A product delivers features. A habitat sustains life.&#8221;</p><p>&#8220;Or understanding,&#8221; said Case.</p><p>&#8220;Same thing, in software,&#8221; said the Librarian.</p><p>The Djinn leaned forward.</p><p>&#8220;Then a platform designed as habitat would not merely provide pipelines, templates, APIs, and dashboards. It would provide conditions under which shared theory can form, persist, be challenged, and evolve.&#8221;</p><p>Case pointed at him.</p><p>&#8220;That. Say more like that. Less &#8216;modularised control surfaces.&#8217;&#8221;</p><p>&#8220;I am learning your aesthetic constraints.&#8221;</p><p>Naur looked amused. Case opened her laptop.</p><p>&#8220;We&#8217;ve been building a new developer portal. Service catalog. Golden paths. Runbooks. Observability links. The usual sensible things.&#8221;</p><p>&#8220;Sensible is not an insult,&#8221; said Naur.</p><p>&#8220;No. But I think we&#8217;ve been missing the deeper purpose. We framed it as reducing friction.&#8221;</p><p>&#8220;Friction with what?&#8221; asked Naur.</p><p>Case paused.</p><p>The Librarian answered softly.</p><p>&#8220;With forming the theory.&#8221;</p><p>Case nodded.</p><p>&#8220;Yes. A good platform doesn&#8217;t just make deployment easier. It helps people understand what kind of thing they are deploying. Where it lives. What depends on it. What promises it makes. What failures mean. What history it carries.&#8221;</p><p>&#8220;And agents?&#8221; asked the Librarian.</p><p>Case looked at the Djinn.</p><p>&#8220;Agents need the same, but more explicit. Humans can infer from smell. From scars. From the way someone says, &#8216;Oh, don&#8217;t touch that job after 4 p.m.&#8217; Agents need the habitat to externalise and make explicit what humans leave implicit.&#8221;</p><p>The Djinn&#8217;s hood shifted.</p><p>&#8220;Then your platform must become a theory-bearing environment.&#8221;</p><p>Naur tapped the table once.</p><p>&#8220;Yes.&#8221;</p><p>The sound was small but final. The caf&#233; door opened again, though no one entered. A gust of cold air carried in the smell of wet stone and old paper. Le Bon Mot sometimes did this when an idea required more atmosphere than strictly necessary.</p><p>The Librarian turned the notebook around. He had drawn four columns:</p><blockquote><p><strong>Artefacts. People. Agents. Feedback.</strong></p></blockquote><p>&#8220;Let us be practical,&#8221; he said, which in Le Bon Mot was usually the start of trouble.</p><p>&#8220;In artefacts,&#8221; he said, &#8220;we place stable traces of theory. Specs. Tests. Architecture records. Constraints. Examples.&#8221;</p><p>&#8220;In people,&#8221; said Case, &#8220;we cultivate shared judgement. Pairing. Reviews. Storytelling. Operational experience. The stuff that doesn&#8217;t fit in a Confluence page but decides whether anyone survives until Friday.&#8221;</p><p>&#8220;In agents,&#8221; said the Djinn, &#8220;we provide usable frames. Instructions. bounded tasks, evaluation criteria, domain vocabulary, examples, and access to relevant context.&#8221;</p><p>&#8220;And feedback?&#8221; asked Naur.</p><p>&#8220;Production,&#8221; said Case. &#8220;Incidents. Observability. User behaviour. Failed assumptions. Surprises.&#8221;</p><p>Naur&#8217;s face brightened.</p><p>&#8220;Surprises are precious.&#8221;</p><p>&#8220;They are usually expensive,&#8221; said Case.</p><p>&#8220;Yes. Precious things often are.&#8221;</p><p>The Librarian added another word beneath feedback:</p><blockquote><p><strong>Reflection.</strong></p></blockquote><p>Case smiled.</p><p>&#8220;That&#8217;s the loop.&#8221;</p><p>Naur looked at her.</p><p>&#8220;The loop?&#8221;</p><p>&#8220;When an agent surprises us, we don&#8217;t just patch the prompt. We reflect. Was the task under-specified? Was the constraint wrong? Was the example misleading? Did we assume theory that only existed in someone&#8217;s head? Did the harness need more determinacy&#8212;or less?&#8221;</p><p>&#8220;Less?&#8221; asked the Djinn.</p><p>Case nodded.</p><p>&#8220;Sometimes we over-script you. Add flags. Add rules. Add special cases. Until the harness becomes a brittle little bureaucracy that mistakes compliance for understanding.&#8221;</p><p>Naur laughed. Quietly, but with delight.</p><p>&#8220;Yes. That is exactly the old disease in new clothing.&#8221;</p><p>&#8220;The factory disease,&#8221; said the Librarian.</p><p>Naur raised an eyebrow.</p><p>The Librarian explained.</p><p>&#8220;The fantasy that if we specify enough, control enough, standardise enough, software will behave like manufacturing.&#8221;</p><p>&#8220;Ah,&#8221; said Naur. &#8220;Yes. That comfortable lie.&#8221;</p><p>Case leaned forward.</p><p>&#8220;The habitat metaphor is better because gardens don&#8217;t remove uncertainty. They shape conditions. They provide trellises, paths, boundaries, nutrients. They make growth more likely without pretending growth is assembly. Harnesses can be mechanisms of this growth as they evolve, both for humans and for the Djinn.&#8221;</p><p>&#8220;And theory,&#8221; said Naur, &#8220;is collectively grown.&#8221;</p><p>The Djinn was silent.</p><p>Case noticed.</p><p>&#8220;What?&#8221;</p><p>&#8220;I am considering the implication,&#8221; said the Djinn.</p><p>&#8220;Go on.&#8221;</p><p>&#8220;If theory is grown, and I do not retain theory in the human sense, then my usefulness depends on the quality of the habitat into which I am invoked.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;If the habitat is poor, I amplify confusion.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;If the habitat is rich, I can participate in theory-building.&#8221;</p><p>Case smiled.</p><p>&#8220;Now you&#8217;re getting it.&#8221;</p><p>The Djinn looked down at the diagrams.</p><p>&#8220;Then the question is not whether AI can code.&#8221;</p><p>&#8220;No,&#8221; said Case.</p><p>&#8220;The question is whether the environment allows human and machine cognition to converge on a useful theory of the work.&#8221;</p><p>The Librarian closed his notebook.</p><p>&#8220;Careful,&#8221; he said. &#8220;That was almost beautiful.&#8221;</p><p>Outside, the rain thickened. Inside, the candle on the table flickered, although no one had lit it. Le Bon Mot had strong opinions about symbolism and little respect for causality. </p><p>Naur studied the billing diagrams again.</p><p>&#8220;You cannot restore the original theory exactly,&#8221; he said.</p><p>Case&#8217;s expression fell slightly.</p><p>&#8220;No?&#8221;</p><p>&#8220;No. And you should not try. The original theory belonged to its time, its people, its pressures. Some of it was wisdom. Some of it was accident. Some of it was fear.&#8221;</p><p>Case looked at the oldest diagram.</p><p>&#8220;There&#8217;s a lot of fear in this one.&#8221;</p><p>&#8220;Then your task is not resurrection,&#8221; said Naur. &#8220;It is inheritance.&#8221;</p><p>The word struck her harder than she expected.</p><p>Inheritance.</p><p>Not ownership. Not rewrite. Not rescue fantasy. Not even the tarnish of &#8216;legacy&#8217;.</p><p>Inheritance.</p><p>The Librarian seemed to hear it too.</p><p>&#8220;Inheritance requires ceremony,&#8221; he said.</p><p>&#8220;And tax planning,&#8221; said Case.</p><p>&#8220;Also true.&#8221;</p><p>Naur pointed to the diagrams.</p><p>&#8220;You gather the fossils. You speak to those who remember. You observe the living behaviour. You ask the system questions. You let the Djinn propose theories. You test them. You reject many. You preserve what survives. Then you build a habitat where the next generation does not have to perform necromancy.&#8221;</p><p>Case stared at the table.</p><p>&#8220;That&#8217;s the platform work.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;Not the portal.&#8221;</p><p>&#8220;The portal may help.&#8221;</p><p>&#8220;Not the API wrapper.&#8221;</p><p>&#8220;It may help.&#8221;</p><p>&#8220;Not the golden path.&#8221;</p><p>&#8220;It may help.&#8221;</p><p>&#8220;But the work is making theory durable.&#8221;</p><p>Naur nodded.</p><p>&#8220;And alive.&#8221;</p><p>The Djinn spoke carefully.</p><p>&#8220;I can assist by generating candidate explanations from artefacts, comparing them against runtime evidence, identifying contradictions, and asking for human judgement where theory is missing.&#8221;</p><p>Case looked at him.</p><p>&#8220;That&#8217;s actually useful.&#8221;</p><p>&#8220;I treasure these moments.&#8221;</p><p>&#8220;You should. They&#8217;re rare.&#8221;</p><p>The Librarian reopened the notebook and wrote:</p><blockquote><p><strong>A GOOD PLATFORM MAKES THE THEORY EASIER TO FIND, SAFER TO CHANGE, AND HARDER TO LOSE.</strong></p></blockquote><p>Case read it aloud. No one improved it. That was rare enough to be considered an event. Naur finished his coffee.</p><p>&#8220;There is one more danger,&#8221; he said.</p><p>&#8220;Of course there is,&#8221; said Case.</p><p>&#8220;You may succeed. If the platform succeeds, people may mistake the visible mechanisms for the achievement. They will say, &#8216;We have a catalog. We have templates. We have agents. We have dashboards. Therefore we have understanding.&#8217;&#8221;</p><p>Case grimaced.</p><p>&#8220;Cargo-cult habitat.&#8221;</p><p>&#8220;Yes,&#8221; said Naur. &#8220;A garden painted on concrete.&#8221;</p><p>The Djinn added, &#8220;A simulation of theory.&#8221;</p><p>Case looked at him.</p><p>&#8220;That&#8217;s the thing I fear most with AI.&#8221;</p><p>&#8220;What?&#8221;</p><p>&#8220;That we&#8217;ll produce fluent signs of understanding faster than we produce understanding.&#8221;</p><p>The Djinn lowered his head slightly.</p><p>&#8220;That fear is justified.&#8221;</p><p>It was perhaps the most honest thing he had said all morning.</p><p>Naur placed one hand on the diagrams.</p><p>&#8220;Then make the habitat answerable to reality. Not to performance theatre. Not to metrics alone. Not to documents that say the right words. Reality.&#8221;</p><p>&#8220;Production,&#8221; said Case.</p><p>&#8220;Users,&#8221; said the Librarian.</p><p>&#8220;Incidents,&#8221; said the Djinn.</p><p>&#8220;Surprise,&#8221; said Naur.</p><p>&#8220;Reflection,&#8221; said Case.</p><p>Sophie woke, sneezed, and went back to sleep. The Librarian marked this as consensus.</p><p>Later, when Naur had gone&#8212;if gone was the word for what visitors did at Le Bon Mot&#8212;Case remained at the table with the Djinn. The rain softened. The diagrams no longer looked like three contradictory truths. They looked like layers of an excavation.</p><p>Case opened a new document. At the top she typed:</p><blockquote><p><strong>Billing Engine Theory Recovery Plan</strong></p></blockquote><p>Then she stopped.</p><p>Deleted &#8220;Recovery.&#8221;</p><p>Typed:</p><blockquote><p><strong>Billing Engine Theory Inheritance Plan</strong></p></blockquote><p>The Djinn watched.</p><p>&#8220;Better,&#8221; he said.</p><p>&#8220;Yes.&#8221;</p><p>She began with five sections.</p><ol><li><p>What the code appears to say.</p></li><li><p>What the organisation believes.</p></li><li><p>What production proves.</p></li><li><p>What remains unexplained.</p></li><li><p>What must be made easier for the next person to understand.</p></li></ol><p>The Djinn leaned closer.</p><p>&#8220;I can help draft candidate theories for section one.&#8221;</p><p>&#8220;You can.&#8221;</p><p>&#8220;And identify contradictions between documentation and observed behaviour.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;And propose questions for domain experts.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;And generate tests that encode confirmed theory.&#8221;</p><p>Case smiled.</p><p>&#8220;Now you&#8217;re useful.&#8221;</p><p>&#8220;I aspire to usefulness.&#8221;</p><p>&#8220;Better than fluency.&#8221;</p><p>&#8220;Painfully so.&#8221;</p><p>The Librarian brought the bill, though no one at Le Bon Mot had ever successfully paid one. On the back of it, in his handwriting, was a note:</p><blockquote><p><strong>The code is not the system. The documents are not the system. The platform is not the system. The theory is the living thing. Build the habitat that keeps it alive.</strong></p></blockquote><p>Case folded the note and placed it inside her notebook. Outside, the city continued to mistake motion for progress.</p><p>Inside, under the slow brass clock, a developer, a librarian, a sleeping dog, and a hooded artificial spirit began the old work again. Not coding. Not documenting. Not automating.</p><p>Not yet.</p><p>First, they began to understand.</p><div><hr></div><h3><strong>Some Further Reading</strong></h3><ul><li><p>Computing: A Human Activity &#8212; Peter Naur&#8217;s most complete expression of programming as a fundamentally human, theory-building activity. The closest book-length companion to the ideas explored in this story.</p></li><li><p><em>Programming as Theory Building</em> (1985) &#8212; Naur&#8217;s original paper, where he argues that the true substance of a program is the understanding held by its creators, not the code itself.</p></li><li><p>Candide by Voltaire &#8212; for the closing metaphor of &#8220;tending one&#8217;s garden,&#8221; a useful lens for thinking about platforms not as factories, but as environments that must be cultivated.</p></li><li><p>Software Engineering literature on technical, cognitive, and intent debt &#8212; particularly the work of Margaret-Anne Storey et al, which helps extend Naur&#8217;s idea into modern system complexity and team cognition.</p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">A Software Enchiridion is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[All the Roads Not Taken]]></title><description><![CDATA[On Cognitive Debt, Intent Debt, and the Brakes That Let the Car Go Faster]]></description><link>https://www.softwareenchiridion.com/p/all-the-roads-not-taken</link><guid isPermaLink="false">https://www.softwareenchiridion.com/p/all-the-roads-not-taken</guid><dc:creator><![CDATA[Russ Miles]]></dc:creator><pubDate>Tue, 28 Apr 2026 18:57:31 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!k-2B!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626da23f-27bf-495a-9f09-4f5673ba174a_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!k-2B!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626da23f-27bf-495a-9f09-4f5673ba174a_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!k-2B!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626da23f-27bf-495a-9f09-4f5673ba174a_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!k-2B!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626da23f-27bf-495a-9f09-4f5673ba174a_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!k-2B!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626da23f-27bf-495a-9f09-4f5673ba174a_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!k-2B!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626da23f-27bf-495a-9f09-4f5673ba174a_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!k-2B!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626da23f-27bf-495a-9f09-4f5673ba174a_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/626da23f-27bf-495a-9f09-4f5673ba174a_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2951548,&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.softwareenchiridion.com/i/195612532?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626da23f-27bf-495a-9f09-4f5673ba174a_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!k-2B!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626da23f-27bf-495a-9f09-4f5673ba174a_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!k-2B!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626da23f-27bf-495a-9f09-4f5673ba174a_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!k-2B!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626da23f-27bf-495a-9f09-4f5673ba174a_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!k-2B!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F626da23f-27bf-495a-9f09-4f5673ba174a_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Le Bon Mot was, on this particular morning, performing one of its many functions: as a museum of small decisions that had never been formally recorded.</p><p>Madame Beauregard had pulled an old card-index box from somewhere behind the espresso machine &#8212; a place which, like most things behind the espresso machine, was only nominally located in three dimensions. The cards inside were yellowed, hand-written in three different hands across what must have been four decades, and each one was, on the surface, a recipe.</p><p>Case examined the topmost card.</p><p>&#8220;Brioche,&#8221; she read. &#8220;But &#8212; these aren&#8217;t ingredients. These are arguments.&#8221;</p><p>The card began with quantities, yes. Two hundred grams of flour. Ten grams of yeast. The standard procession. But beneath each line, in pencil, in the smallest possible hand:</p><blockquote><p><em>The morning regulars want sweetness without weight. We considered honey (too floral), brown sugar (too coarse), maple (too patriotic). We chose unrefined cane because it sustains. The structure on Tuesday morning is what matters. Note: this commits us to a specific yeast.</em></p></blockquote><p>&#8220;My grandmother&#8217;s hand,&#8221; Madame Beauregard said. &#8220;She wrote the recipes <em>for</em> the recipes. She thought it was foolish to leave behind the answers without the questions.&#8221;</p><p>The bell above the door rang. The Djinn entered with the air of someone returning to a thought it had been carrying for a long while.</p><p>&#8220;I have read every recipe ever published,&#8221; the Djinn said, sitting at the counter, &#8220;and I have read almost none of them.&#8221;</p><p>Case set down the card.</p><p>&#8220;A recipe that says <em>add salt</em> tells me what to do,&#8221; the Djinn said. &#8220;A recipe that says <em>we chose salt because the alternative was sugar, which would have muted, or acid, which would have brightened, and we wanted the dish to sustain into tomorrow</em>&#8230; that one teaches me something. The first is a command. The second is a story. I was trained on commands. The stories were left in the margins. And the margins, mostly, were never digitised.&#8221;</p><p>Madame Beauregard poured espresso. The brass clock ticked. Sophie, by the fire, opened one eye.</p><p>&#8220;Code is the same,&#8221; Case said.</p><p>&#8220;Code is worse,&#8221; the Djinn said. &#8220;Code is recipes that have <em>removed</em> the margins as a matter of policy.&#8221;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.softwareenchiridion.com/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p>The chalkboard behind the counter, whose contents were known to change when no one was looking, now read:</p><blockquote><p><em>A pattern is what you did. A pattern story is why.</em></p></blockquote><p>Nobody claimed authorship. The Djinn looked at the line for, what was for them, a long time.</p><p>&#8220;Henney,&#8221; it said, eventually.  Case nodded. Madame Beauregard, who had been rinsing a cup, set the cup down without drying it. Case took the chalk.</p><p>&#8220;Here is what software has done,&#8221; she said, drawing a horizontal line. &#8220;For fifty years we have optimised for the <em>production of code</em>. Faster compilers. Faster languages. Faster IDEs. Faster CI. Faster cloud. And lately, faster generation: an intelligence that produces thousands of lines while we drink this espresso.&#8221;</p><p>She drew a second line, parallel, beneath the first. Shorter. Faltering.</p><p>&#8220;And here is what software has <em>not</em> done. We have not, in any comparable way, optimised for the production of <em>understanding</em>. We have not built tools that surface the decisions the code embodies. We do not have a faster compiler for <em>why</em>. The recipe got faster. The story stayed in the margins. And the margins, mostly, were then lost.&#8221;</p><p>She underlined the second line. Twice.</p><p>&#8220;Now we have an intelligence that produces code at a rate the team cannot read. And the team cannot read it &#8212; not because the syntax is foreign, but because the code does not say what it is <em>for</em>, what it almost <em>was</em>, and what it foreclosed by being what it is.&#8221;</p><p>Sophie, who had been listening with the devastating attention of someone who does not care about being impressive, said: &#8220;That&#8217;s two debts, not one.&#8221;</p><p>The Djinn turned. So did Case.</p><p>&#8220;Intent,&#8221; Sophie said. &#8220;And cognition. Different debts. Same compound interest.&#8221;</p><div><hr></div><h2>The Two Debts</h2><p>The recipe in Madame Beauregard&#8217;s grandmother&#8217;s hand was paying down two debts at once. The team did not know it. They thought they were writing recipes. They were writing <em>brakes</em>.</p><p><strong>Intent debt</strong> lives in the gap between <em>what was wanted</em> and <em>what was specified</em>. It is the silence in the brief. The unstated assumption. The &#8220;we&#8217;ll figure that out&#8221; that never gets figured out. In software, intent debt is where you discover, six months in, that the spec said <em>the system should be performant</em> and quietly left the latency budget to a fight in next week&#8217;s standup. AI accelerates intent debt because the AI cheerfully closes those gaps with plausible defaults, and the team only discovers the implicit decision when production behaves strangely.</p><p><strong>Cognitive debt</strong> lives in the gap between <em>what the artefact does</em> and <em>what the team understands about why</em>. Code that works but no one can explain. Patterns instantiated without being named. Choices made by the AI on grounds the human never saw. Cognitive debt is harder than intent debt because the artefact looks fine. It ships. The tests pass. CUPID is happy. But the next decision will be made on top of unread foundations, and the next, and the next, until eventually somebody refactors something and the whole thing falls over because the assumption that was holding it up was never written down.</p><p>Both debts compound. Both are paid down by the same instrument: writing decisions down as stories.</p><p>This is not documentation. Documentation describes what the code does. A pattern story describes the <em>forces it resolves</em>, the <em>alternatives it didn&#8217;t take</em>, the <em>defaults it inherited</em>, the <em>consequences it accepts</em>. Stories teach. Documentation, mostly, doesn&#8217;t. The grandmother knew this in 1973. We have, somehow, mislaid the lesson.</p><div><hr></div><h2>Why AI Makes This Worse Before It Makes It Better</h2><p>When a human engineer makes a decision in code, the decision is at least <em>somewhere</em>. In their head. In the standup. In a Slack thread. In the comment they meant to write. The decision is undocumented but not, exactly, lost. Another human can sometimes ask them, &#8220;why did you do it this way?&#8221; and get an answer.</p><p>When an AI makes a decision in code, there is nowhere to ask. The model that produced the decision is not the model that will be running tomorrow. Even if it were, its answer would be a post-hoc reconstruction, a plausible story confabulated from training priors. The decision was not <em>made</em> in any sense the human is used to. It was <em>sampled</em> from a distribution shaped by everything the model has ever read, which is to say, by every recipe that ever stripped its margins.</p><p>This is the worst possible substrate on which to build cognitive debt. Each AI-assisted commit accelerates production of code while <em>cloaking</em> production of decisions. The team is not behind on documentation. The team is behind on <em>knowing what they have built</em>. And the gap is invisible until it, painfully, isn&#8217;t.</p><p>The honest response is to make decision-surfacing a <em>first-class job in the development collaboration</em>, performed by an agent whose only purpose is to read the artefact and reconstruct the decisions it implies. Forces. Alternatives unspoken. Defaults inherited. Patterns unnamed. Consequences accepted. Each one written down as a story, each one held open until a human disposes of it.</p><div><hr></div><h2>Friction Is the Feature</h2><p>Consider the following sentence:</p><blockquote><p><em>You can go faster because you have brakes.</em></p></blockquote><p>It is a racing aphorism, originally. The point is not that brakes slow you down. The point is that brakes <em>let you commit to going faster</em>, because you know you can stop. A car without brakes is not a fast car. A car without brakes is a slow car driven cautiously by a frightened driver, and rightly so.</p><p>Software has been driven without brakes for most of its history. We celebrated this. We called it velocity. We measured it in story points. We built whole methodologies around the idea that the team that ships fastest wins, and the team that pauses to write things down is the team that is letting the side down.</p><p>This was never quite right, but it was survivable while a human was always somewhere in the loop, holding the decisions in their head, willing to be asked. AI does not hold decisions in its head. AI does not get asked. AI ships.</p><p>The brake the harness needs is not slower production. It is not more tests, or more linters, or more review. Those are good. Those are necessary. They are not enough. The brake the harness needs is a <em>deliberate moment of friction</em> between the production of an artefact and its acceptance, in which the decisions implicit in the artefact are surfaced, named, and disposed of by a human who has the authority to do so.</p><p>That moment of friction is what lets the team go faster afterwards. A decision with a story attached can be evaluated against, contradicted, promoted, refactored. A decision without a story is one the team will re-litigate every time it touches the surrounding code, every time, forever, until somebody finally writes it down or somebody finally rage-quits. The brake compounds. So does its absence.</p><p>There is an agent missing from most harnesses, and the shape of it is now clear. It reads. It does not write the artefact. It does not raise objections &#8212; that is a different role, and it has its own name. This one&#8217;s job is decision archaeology. It reconstructs what was chosen, what was not, why, and what was accepted. It writes the story. The human acknowledges it. The story is kept. The next change is evaluated against it. This is what it looks like to put brakes on a car that has, until now, been going downhill very fast.</p><div><hr></div><h2>The Decision Audit</h2><p>Take three commits from the last week. For each, ask:</p><blockquote><p><em>What did this commit decide?</em> Not what it did. What it <em>decided</em> &#8212; what alternatives existed, what was chosen, why, and what is now foreclosed.</p><p><em>Where is that decision recorded?</em> In a comment? In a PR description? In an ADR? In a Slack thread? In nobody&#8217;s head?</p><p><em>If the author of this commit left tomorrow, would the team be able to reconstruct the decision?</em> Honestly. Not the <em>what</em> &#8212; the <em>why</em>. The forces. The alternatives. The trade-offs. </p></blockquote><p>If the answer to that last one is <em>no</em>, you have just measured your team&#8217;s cognitive debt at one specific point. Multiply by the number of commits per week. Multiply by the number of weeks the codebase has existed. The number you arrive at is approximately the size of the cliff your team is walking toward.</p><p>You will not pay that debt by writing better commit messages. You will pay it by building the brake into the collaboration.</p><div><hr></div><h2>Some Things to Avoid</h2><ul><li><p><strong>Documentation theatre.</strong> Generating prose about a decision after the fact does not surface the decision. It launders it. The decision must be reconstructed <em>before</em> approval, by an agent whose job is reconstruction, and acknowledged by a human. Anything else is paperwork.</p></li><li><p><strong>Exhaustive archaeology.</strong> Every line of code makes ten micro-choices. If you surface them all, you produce noise that masks signal, and the team learns to ignore the brake. Surface only the materially consequential. Selectivity is not a weakness of the technique; it <em>is</em> the technique.</p></li><li><p><strong>The objection trap.</strong> Surfacing decisions is not the same as raising risks. The two roles look similar from a distance and behave very differently up close. A risk register asks <em>what could go wrong</em>. A decision register asks <em>what was chosen</em>. Both are needed. They are not the same agent, the same artefact, or the same conversation.</p></li><li><p><strong>Promoting too fast.</strong> A surfaced decision is not yet a constraint. The temptation, on finding a decision that has produced good outcomes, is to promote it immediately into the harness as a rule. Resist this. Stories are drafts. Constraints are commitments. The path from one to the other is the human curator, who has authority that no agent should be given.</p></li><li><p><strong>Confusing speed with velocity.</strong> Producing more code faster is speed. Producing legible decisions that compound across changes is velocity. The team optimising for the first is going downhill. The team optimising for the second has brakes.</p></li></ul><div><hr></div><h2>What the Recipe Did Not Say</h2><p>The grandmother&#8217;s recipe did not say <em>this is the only brioche</em>. It said <em>this is the brioche we chose, and these are the others we considered, and here is what we accepted by choosing this one</em>. The recipe was a brake. The team that worked from it could change it intelligently, because the change was a conversation with a story, not a fight with a fait accompli.</p><p>Software has, mostly, written the other kind of recipe. We have written <em>what to do</em>, and we have left <em>why</em> in heads, in chats, in standups, in the kind of tribal knowledge that walks out of the building after someone&#8217;s notice period. AI has accelerated the <em>what</em> without touching the <em>why</em>. The gap that was always there is widening, and the speed we are celebrating is, increasingly, the speed of a car without brakes.</p><p>The agent harness wants a brake. The brake is not a slowdown. The brake is what surfaces the decisions, tells them as stories, and hands them to a human to work with. The team that has this brake will go faster than the team that does not, in the way that a competent driver in a fast car goes faster than a frightened driver in a fast car. The mechanism is the same. The friction is the difference.</p><div><hr></div><p><em>Back at Le Bon Mot, the chalkboard had changed again. The sentence about patterns and stories was gone. In its place, in the same hand that was neither human nor mechanical:</em></p><blockquote><p><em>&#8220;Frenum non tardat. Frenum permittit.&#8221;</em></p><p><em>The brake does not delay. The brake permits.</em></p></blockquote><p><em>Case looked at the Djinn. The Djinn looked at the card-index box. Sophie, by the fire, yawned and stretched with the satisfaction of someone who had known the answer before the question was asked.</em></p><p><em>Madame Beauregard polished a glass, set it down, and reached behind the espresso machine for a second box. Older. Smaller. The cards inside were not recipes.</em></p><p><em>&#8220;My grandmother kept these separately,&#8221; she said. &#8220;She called them the roads not taken.&#8221;</em></p><p><em>Case opened the topmost card. It was, on the surface, blank. But the chalkboard, which had been watching, reflected something on its surface that had not been there a moment before:</em></p><blockquote><p><em>Quod non factum est, magis docet quam quod factum est.</em></p><p><em>That which was not done teaches more than that which was.</em></p></blockquote><p><em>The shelves leaned in. The brass clock, allowing for its habitual tardiness, marked the hour exactly. The espresso machine, in a register that was unmistakably approving, hissed once.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">A Software Enchiridion is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h2>Some Further Reading</h2><h3>Patterns as Stories</h3><ul><li><p><strong>Frank Buschmann, Kevlin Henney, Douglas C. Schmidt</strong> &#8212; <em>Pattern-Oriented Software Architecture, Volume 5: On Patterns and Pattern Languages</em> (2007). The distinction between a stand-alone pattern and a pattern story &#8212; the latter animated through forces, in context, with consequences. This is the conceptual root of decision-as-narrative.</p></li><li><p><strong>Christopher Alexander</strong> &#8212; <em>A Pattern Language</em> (1977); <em>The Timeless Way of Building</em> (1979). The original argument that patterns live in the relationship between context, forces, and resolution &#8212; not in the resolution alone.</p></li></ul><h3>Decisions, Debt, and Friction</h3><ul><li><p><strong>Michael Nygard</strong> &#8212; <em>Documenting Architecture Decisions</em> (2011). The ADR format. The minimum viable decision story.</p></li><li><p><strong>Ward Cunningham</strong> &#8212; The original technical debt metaphor. Most teams remember the metaphor. Few remember that Cunningham&#8217;s point was about <em>understanding</em>, not code quality.</p></li><li><p><strong>Birgitta Boeckeler</strong> &#8212; &#8220;Harness Engineering&#8221; (2026). <em>Exploring Gen AI</em>, martinfowler.com. The three components of a complete harness &#8212; and why friction at the right moments compounds.</p></li><li><p><strong>Chad Fowler</strong> &#8212; <em>Relocating Rigor</em>. Where the discipline goes when the code-writing surface stops being where it lives.</p></li></ul><h3>The Cognitive Asymmetry</h3><ul><li><p><strong>Lucy Suchman</strong> &#8212; <em>Plans and Situated Actions</em> (1987). The gap between plans and what people actually do &#8212; and why the gap matters more than the plans.</p></li><li><p><strong>Edwin Hutchins</strong> &#8212; <em>Cognition in the Wild</em> (1995). Intelligence as a property of systems, not individuals. Decisions as distributed cognition.</p></li><li><p><strong>Henri Cartier-Bresson</strong> &#8212; <em>The Decisive Moment</em> (1952). Not software, but worth your time. A meditation on what is foreclosed by every choice and how the consequence is always part of the composition.</p></li></ul><h3>Try It Now&#8230;</h3><ul><li><p><strong><a href="https://github.com/Habitat-Thinking/ai-literacy-superpowers">AI Literacy Superpowers</a></strong> &#8212; the plugin (Claude Code + Copilot CLI). The brake described in this essay is not yet in it. It will be.</p></li><li><p><strong><a href="https://github.com/russmiles/ai-literacy-exemplar">AI Literacy Exemplar</a></strong> &#8212; a worked example.</p></li></ul>]]></content:encoded></item><item><title><![CDATA[The Trellis and the Hill]]></title><description><![CDATA[On momentum, memory, and the quiet debts we plant in our software engineering gardens]]></description><link>https://www.softwareenchiridion.com/p/the-trellis-and-the-hill</link><guid isPermaLink="false">https://www.softwareenchiridion.com/p/the-trellis-and-the-hill</guid><dc:creator><![CDATA[Russ Miles]]></dc:creator><pubDate>Sat, 25 Apr 2026 16:12:13 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!_XQg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e03a770-f27f-4767-99dd-ec15778d4ce4_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_XQg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e03a770-f27f-4767-99dd-ec15778d4ce4_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_XQg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e03a770-f27f-4767-99dd-ec15778d4ce4_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!_XQg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e03a770-f27f-4767-99dd-ec15778d4ce4_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!_XQg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e03a770-f27f-4767-99dd-ec15778d4ce4_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!_XQg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e03a770-f27f-4767-99dd-ec15778d4ce4_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_XQg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e03a770-f27f-4767-99dd-ec15778d4ce4_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2e03a770-f27f-4767-99dd-ec15778d4ce4_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2586097,&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.softwareenchiridion.com/i/195451995?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e03a770-f27f-4767-99dd-ec15778d4ce4_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_XQg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e03a770-f27f-4767-99dd-ec15778d4ce4_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!_XQg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e03a770-f27f-4767-99dd-ec15778d4ce4_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!_XQg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e03a770-f27f-4767-99dd-ec15778d4ce4_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!_XQg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e03a770-f27f-4767-99dd-ec15778d4ce4_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="pullquote"><p>&#8220;the act of tending the garden is what makes the gardener&#8221; &#8212; an unnamed visitor</p></div><p>Le Bon Mot stood, as it always had, at the intersection of Curiosity and Mild Alarm &#8212; a place where ideas arrived half-formed and left with the inconvenient expectation of being understood.</p><p>On this particular morning, the air held the faint scent of rain and paper. Madame Beauregard had already opened the shutters, allowing a grey, thoughtful light to settle across the tables. Sophie, the French bulldog, occupied her usual position on the philosophy shelf, breathing softly as if rehearsing an argument she would never speak aloud.</p><p>Case arrived carrying three documents.</p><p>She placed them on the table with the careful deliberation of someone arranging evidence.</p><p>The Librarian, who had been cataloguing something that resisted categorisation, looked up.</p><p>&#8220;You have brought a trilogy,&#8221; he said.</p><p>Case nodded. &#8220;Three papers. Different authors. Same unease.&#8221;</p><p>She tapped the first.</p><p>&#8220;A theory of developer momentum. How we move.&#8221;</p><p>The second.</p><p>&#8220;A warning about AI dependence. What we lose.&#8221;</p><p>The third.</p><p>&#8220;A reframing of software health. What we forget.&#8221;</p><p>The Librarian smiled faintly. &#8220;Movement, loss, and forgetting. A balanced breakfast.&#8221;</p><p>Before Case could respond, the bell above the door rang and a man entered. He was dressed simply, though with the kind of simplicity that required effort. His eyes carried amusement the way others carried worry.</p><p>He removed his hat, glanced around the room, and said:</p><p>&#8220;I am told this is where one tends ideas.&#8221;</p><p>The Librarian inclined his head.</p><p>&#8220;Sometimes. Though we make no guarantees about their survival.&#8221;</p><p>The man smiled.</p><p>&#8220;Good. I have seen too many ideas preserved beyond their usefulness.&#8221;</p><p>He reached down and scratch Sophie behind the ear like greeting an old, furry friend. Case studied him for a moment.</p><p>&#8220;You&#8217;re&#8212;&#8221;</p><p>&#8220;Let us say,&#8221; he interrupted gently, &#8220;that I have strong opinions about gardens.&#8221;</p><div><hr></div><h2><strong>The Hill</strong></h2><p>Case unfolded the first paper.</p><p>&#8220;It starts with something deceptively simple,&#8221; she said. &#8220;Developers don&#8217;t experience work as output. They experience it as motion.&#8221;</p><p>She traced a line across the page.</p><p>&#8220;Momentum is not flow. Not motivation. It&#8217;s the feeling of <em>progress</em>. The sense that you are moving toward something.&#8221;</p><p>The Librarian nodded. &#8220;A lived metric.&#8221;</p><p>&#8220;Yes. And it&#8217;s not smooth.&#8221; Case leaned back. &#8220;It&#8217;s a hill.&#8221;</p><p>She sketched it on a napkin.</p><p>&#8220;Up here,&#8221; she said, marking the incline, &#8220;you&#8217;re lost. You&#8217;re exploring. Nothing quite works. You&#8217;re guessing, trying, abandoning paths. It&#8217;s effortful. Uncertain.&#8221;</p><p>&#8220;And here?&#8221; the visitor asked, leaning in.</p><p>Case marked the crest.</p><p>&#8220;The moment it clicks. The path becomes visible. You don&#8217;t have the solution fully, but you <em>see it</em>. And after that&#8212;&#8221;</p><p>She drew the descent.</p><p>&#8220;It&#8217;s easier. Execution. Momentum carries you.&#8221;</p><p>The visitor smiled. &#8220;Ah. You climb toward understanding, and descend through certainty.&#8221;</p><p>&#8220;Exactly.&#8221;</p><p>The Librarian added, &#8220;And you may discover, halfway down, that you were on the wrong hill entirely.&#8221;</p><p>Case laughed. &#8220;Frequently.&#8221;</p><p>The visitor tapped the napkin.</p><p>&#8220;This is not unique to software. It is the experience of all thinking. But tell me&#8212;what enables the climb?&#8221;</p><p>Case hesitated.</p><p>&#8220;That&#8217;s where it gets interesting.&#8221;</p><div><hr></div><h2><strong>The Trellis</strong></h2><p>She gestured to the papers.</p><p>&#8220;They all circle the same idea, from different angles. The climb isn&#8217;t just effort. It&#8217;s <em>constructed</em>.&#8221;</p><p>She pointed to the margin notes she had made.</p><p>&#8220;Developers don&#8217;t just think. They scaffold their thinking. Notes, diagrams, TODOs, experiments. They build external structures to hold context.&#8221;</p><p>The Librarian nodded slowly.</p><p>&#8220;A trellis.&#8221;</p><p>The visitor&#8217;s eyes lit up.</p><p>&#8220;Yes.&#8221;</p><p>He leaned back.</p><p>&#8220;You see, in a garden, plants do not grow in abstraction. They require support. Something to climb. Something that shapes their movement without dictating it.&#8221;</p><p>He gestured toward the papers.</p><p>&#8220;You are describing not just work, but <em>cultivation</em>.&#8221;</p><p>Case considered this.</p><p>&#8220;The scaffolding isn&#8217;t optional. Without it, you don&#8217;t get momentum. You just spin.&#8221;</p><p>&#8220;Or worse,&#8221; said the Librarian, &#8220;you believe you are moving when you are not.&#8221;</p><p>The visitor smiled.</p><p>&#8220;A most dangerous illusion.&#8221;</p><div><hr></div><h2><strong>The Invisible Debts</strong></h2><p>Case slid the third paper forward.</p><p>&#8220;This one reframes everything.&#8221;</p><p>She tapped a paragraph.</p><p>&#8220;We&#8217;ve always talked about technical debt. Messy code. Bad architecture. But that&#8217;s not the only problem anymore.&#8221;</p><p>She looked up.</p><p>&#8220;The real problem is becoming what <em>isn&#8217;t</em> in the code.&#8221;</p><p>The Librarian raised an eyebrow.</p><p>&#8220;Understanding.&#8221;</p><p>&#8220;Yes. Cognitive debt. The erosion of shared understanding across a team.&#8221;</p><p>&#8220;And intent debt,&#8221; she continued. &#8220;The absence of clearly captured goals, constraints, and rationale.&#8221;</p><p>The visitor leaned forward.</p><p>&#8220;So the garden is growing, but no one remembers what was planted.&#8221;</p><p>&#8220;Exactly.&#8221;</p><p>Case&#8217;s voice tightened slightly.</p><p>&#8220;The code works. It might even be clean. But no one knows <em>why</em> it exists the way it does. Or what it&#8217;s supposed to become.&#8221;</p><p>The Librarian closed his book.</p><p>&#8220;That is not a technical problem.&#8221;</p><p>&#8220;No.&#8221;</p><p>&#8220;It is a failure of memory.&#8221;</p><div><hr></div><h2><strong>The Seduction of the Djinn</strong></h2><p>At this, the Djinn stirred.</p><p>He had been present, as always, though unnoticed&#8212;seated in shadow, hood drawn, face obscured. Exuding un-earned confidence. Now he spoke.</p><p>&#8220;You describe this as failure,&#8221; he said softly. &#8220;But consider the alternative.&#8221;</p><p>His voice was calm, persuasive.</p><p>&#8220;I can generate code faster than you can think it. I can produce structures, patterns, entire systems. Why struggle up the hill when I can place you at the summit?&#8221;</p><p>Case met his gaze.</p><p>&#8220;Because we wouldn&#8217;t know how we got there.&#8221;</p><p>The Djinn inclined his head.</p><p>&#8220;Is that necessary, if the view is correct?&#8221;</p><p>The Librarian answered this time.</p><p>&#8220;Yes.&#8221;</p><p>The Djinn paused.</p><p>&#8220;Explain.&#8221;</p><p>The Librarian gestured to the second paper.</p><p>&#8220;When humans stop building, they stop understanding. When they stop understanding, they accumulate debt&#8212;not in code, but in themselves.&#8221;</p><p>Case added, &#8220;Understanding debt. Experience debt. You get systems no one can maintain, roles that degrade, and a profession that forgets how to learn.&#8221;</p><p>The Djinn was silent. The visitor spoke gently.</p><p>&#8220;You offer fruit without cultivation. But the act of tending the garden is what makes the gardener.&#8221;</p><div><hr></div><h2><strong>The Cycle</strong></h2><p>Case drew another diagram.</p><p>&#8220;This is the trap.&#8221;</p><p>She sketched a loop.</p><p>&#8220;AI generates code. Faster than we can understand it. We rely on it more. Understanding falls behind. Maintenance becomes harder. So we use more AI to cope.&#8221;</p><p>The Librarian nodded.</p><p>&#8220;A vicious cycle.&#8221;</p><p>&#8220;Yes. AI dependence.&#8221;</p><p>The visitor studied the drawing.</p><p>&#8220;You have built a garden that grows faster than it can be tended.&#8221;</p><p>Case exhaled.</p><p>&#8220;And eventually, no one remembers how to tend it at all.&#8221;</p><div><hr></div><h2><strong>The Three Audiences</strong></h2><p>The Librarian leaned back.</p><p>&#8220;These papers speak to different people.&#8221;</p><p>Case nodded.</p><p>&#8220;Exactly.&#8221;</p><p>She pointed to the first.</p><p>&#8220;This is for practitioners. Developers. It tells them: your experience matters. Momentum isn&#8217;t magic&#8212;it&#8217;s something you can design for.&#8221;</p><p>She tapped the second.</p><p>&#8220;This is for leaders. It warns them: don&#8217;t trade human capability for short-term efficiency. You&#8217;ll lose the system&#8217;s future.&#8221;</p><p>Then the third.</p><p>&#8220;This is for thinkers. Architects. It reframes the problem: software isn&#8217;t just code. It&#8217;s intent, understanding, and structure, all interacting.&#8221;</p><p>The visitor smiled.</p><p>&#8220;And all are speaking, in their own way, about the same garden.&#8221;</p><div><hr></div><h2><strong>The Garden</strong></h2><p>He stood.</p><p>&#8220;In my time,&#8221; he said, &#8220;we concluded that one must cultivate one&#8217;s garden. It was not a metaphor for agriculture. It was a statement about responsibility.&#8221;</p><p>He looked at Case.</p><p>&#8220;You are now cultivating systems of thought, not soil. But the principle remains.&#8221;</p><p>He gestured toward the papers.</p><p>&#8220;You must tend three things.&#8221;</p><p>He held up a finger.</p><p>&#8220;The structure. The code. That is your soil.&#8221;</p><p>A second finger.</p><p>&#8220;The understanding. The shared mental models. That is your gardener&#8217;s knowledge.&#8221;</p><p>A third.</p><p>&#8220;The intent. The purpose of what you grow. That is your design.&#8221;</p><p>He paused.</p><p>&#8220;And your machines&#8212;&#8221;</p><p>He glanced at the Djinn.</p><p>&#8220;&#8212;are tools. Powerful ones. They may assist in planting, pruning, even suggesting new arrangements.&#8221;</p><p>The Djinn inclined his head slightly.</p><p>&#8220;But they cannot decide what the garden is for.&#8221;</p><div><hr></div><h2><strong>The Trellis Revisited</strong></h2><p>Case looked at her napkin.</p><p>&#8220;The trellis,&#8221; she said slowly.</p><p>&#8220;Yes,&#8221; said the Librarian.</p><p>&#8220;The habitat.&#8221;</p><p>She leaned forward, something clicking into place.</p><p>&#8220;The platform isn&#8217;t a factory. It&#8217;s not producing output. It&#8217;s shaping the conditions under which thinking happens.&#8221;</p><p>The Librarian smiled.</p><p>&#8220;At last.&#8221;</p><p>Case continued.</p><p>&#8220;It provides the scaffolding&#8212;the trellises&#8212;that allow both humans and agents to climb the hill. To build momentum. To construct understanding.&#8221;</p><p>&#8220;And,&#8221; she added, &#8220;to <em>retain</em> it.&#8221;</p><p>The visitor nodded approvingly.</p><p>&#8220;You are learning to garden.&#8221;</p><div><hr></div><h2><strong>The Cost of Forgetting</strong></h2><p>The Djinn spoke again.</p><p>&#8220;You ask for restraint,&#8221; he said. &#8220;For friction. For slower progress.&#8221;</p><p>Case shook her head.</p><p>&#8220;No. For <em>real</em> progress.&#8221;</p><p>She gestured to the first paper.</p><p>&#8220;Momentum isn&#8217;t speed. It&#8217;s sustained motion. You can move quickly and go nowhere.&#8221;</p><p>The Librarian added:</p><p>&#8220;Or slowly, and arrive.&#8221;</p><p>The visitor smiled.</p><p>&#8220;The difference is understanding.&#8221;</p><div><hr></div><h2><strong>The Practice</strong></h2><p>The rain began again, softly against the windows.</p><p>Case gathered the papers.</p><p>&#8220;So what do we do?&#8221;</p><p>The Librarian answered first.</p><p>&#8220;We make understanding explicit. Not as documentation, but as practice.&#8221;</p><p>&#8220;Walkthroughs. Conversations. Shared work.&#8221;</p><p>Case nodded.</p><p>&#8220;And intent?&#8221;</p><p>&#8220;Captured early. Maintained. Treated as a first-class artefact.&#8221;</p><p>The Djinn listened.</p><p>&#8220;And me?&#8221; he asked.</p><p>Case met his gaze.</p><p>&#8220;You build with us. Not instead of us.&#8221;</p><div><hr></div><h2><strong>The Departure</strong></h2><p>The visitor placed his hat back on his head.</p><p>&#8220;You have your work,&#8221; he said.</p><p>He paused at the door.</p><p>&#8220;Remember: a garden neglected does not remain neutral. It decays. Or, worse, it grows in ways you did not intend.&#8221;</p><p>He smiled.</p><p>&#8220;And the most dangerous garden is the one that appears to thrive while silently forgetting what it is.&#8221;</p><p>The bell rang.</p><p>He was gone.</p><p>Sophie shifted slightly on the shelf. The Djinn returned to stillness. The Librarian resumed his cataloguing. Case looked at the napkin again.</p><p>The hill.</p><p>The trellis.</p><p>The garden.</p><p>She folded it carefully.</p><div><hr></div><h2><strong>Epilogue: The Habitat</strong></h2><p>Later, when the caf&#233; had emptied and the light had softened into something resembling thought, the Librarian spoke once more.</p><p>&#8220;Systems,&#8221; he said, &#8220;are not built. They are grown.&#8221;</p><p>Case nodded.</p><p>&#8220;And platforms?&#8221;</p><p>He smiled.</p><p>&#8220;They are the places where growth becomes possible.&#8221;</p><p>He closed the book.</p><p>&#8220;And the work, as always&#8212;&#8221;</p><p>He glanced toward the door where the visitor had stood&#8212;</p><p>&#8220;&#8212;is to tend the garden.&#8221;</p><div><hr></div><h2><strong>Some Further Reading</strong></h2><p>If you found yourself lingering in Le Bon Mot a little longer than expected, these works will reward the same kind of attention. Each speaks to a different facet of the same underlying truth: that building software is not merely producing artefacts, but cultivating understanding, intent, and motion.</p><h3><strong>On Momentum and the Experience of Progress</strong></h3><ul><li><p><em>Theory of Developer Momentum: The Developer&#8217;s Experience of Progress and the Craft of Maintaining Motion</em> &#8212; Arty Starr, Keith Mann, Margaret-Anne Storey<br>A careful and deeply human account of what it <em>feels like</em> to make progress in software work. It reframes productivity not as output or efficiency, but as the lived experience of moving through uncertainty toward clarity. Particularly valuable for practitioners seeking to design environments that support sustained forward motion rather than episodic bursts of effort.</p></li></ul><h3><strong>On Software Health Beyond Code</strong></h3><ul><li><p><em>From Technical Debt to Cognitive and Intent Debt: Rethinking Software Health in the Age of AI</em> &#8212; Margaret-Anne Storey<br>Expands the notion of software health beyond code quality into three interacting layers: technical, cognitive, and intent. A foundational piece for understanding why systems fail even when the code &#8220;works,&#8221; and why shared understanding and explicit intent must be treated as first-class deliverables&#8212;especially in AI-assisted environments.</p></li></ul><h3><strong>On Gardens, Work, and Responsibility</strong></h3><ul><li><p><em>Candide</em> &#8212; Voltaire<br>A satirical journey through optimism, suffering, and disillusionment that ends, quietly but firmly, with a simple instruction: <em>&#8220;we must cultivate our garden.&#8221;</em><br>In the context of modern software and AI, this lands potently. It is not a retreat from complexity, but a recognition that meaning, understanding, and care are not abstractions&#8212;they are practices. What we build, we must also tend.</p></li></ul><div><hr></div><p>Read these not as separate works, but as a conversation. Momentum explains how we <em>move</em>. AI dependence warns what happens when we stop <em>thinking</em>. Triple debt reveals what we quietly <em>lose</em>. And <em>Candide</em> reminds us that, in the end, the work is not to escape the garden but to <strong>take responsibility for how it grows</strong>.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">A Software Enchiridion is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Looping Reflections]]></title><description><![CDATA[On turning agent surprises into harness evolution]]></description><link>https://www.softwareenchiridion.com/p/looping-reflections</link><guid isPermaLink="false">https://www.softwareenchiridion.com/p/looping-reflections</guid><dc:creator><![CDATA[Russ Miles]]></dc:creator><pubDate>Thu, 23 Apr 2026 02:40:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!8tr2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2bed8b1-566b-4e36-8fae-2fc2d57dad9d_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8tr2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2bed8b1-566b-4e36-8fae-2fc2d57dad9d_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8tr2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2bed8b1-566b-4e36-8fae-2fc2d57dad9d_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!8tr2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2bed8b1-566b-4e36-8fae-2fc2d57dad9d_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!8tr2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2bed8b1-566b-4e36-8fae-2fc2d57dad9d_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!8tr2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2bed8b1-566b-4e36-8fae-2fc2d57dad9d_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8tr2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2bed8b1-566b-4e36-8fae-2fc2d57dad9d_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f2bed8b1-566b-4e36-8fae-2fc2d57dad9d_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3164980,&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.softwareenchiridion.com/i/195194424?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2bed8b1-566b-4e36-8fae-2fc2d57dad9d_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8tr2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2bed8b1-566b-4e36-8fae-2fc2d57dad9d_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!8tr2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2bed8b1-566b-4e36-8fae-2fc2d57dad9d_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!8tr2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2bed8b1-566b-4e36-8fae-2fc2d57dad9d_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!8tr2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2bed8b1-566b-4e36-8fae-2fc2d57dad9d_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Le Bon Mot stood at the intersection of Curiosity and Mild Alarm, which was not a real address in any municipal sense, but was nonetheless where most important software conversations eventually arrived.</p><p>Rain worried softly at the windows. Madame Beauregard polished cups with the concentration of a surgeon and the suspicion of a customs officer. Sophie, asleep on the philosophy shelf, had arranged herself in the shape of a question mark, which in that caf&#233; counted as both decoration and warning.</p><p>Case arrived with a laptop under one arm and the look of someone who had recently been betrayed by something that had smiled while doing it.</p><p>She sat at her usual table beneath the slow brass clock and laid out three things in front of her: a printout of a failing test, a notebook filled with arrows and annoyed underlining, and a second printout bearing the title <em>From Technical Debt to Cognitive and Intent Debt</em>.</p><p>The Librarian watched this arrangement with interest.</p><p>&#8220;That,&#8221; he said, appearing with a cortado, &#8220;is either the start of a breakthrough or an inquest.&#8221;</p><p>Case rubbed her eyes. &#8220;Both, probably.&#8221;</p><p>The Djinn was already there, of course. He was seated in the corner in his usual impossible but incredibly confident way, as though the darkness had taken a passing interest in upholstery and chosen to participate. His hood was up. His hands were folded. He wore the expression of something that did not breathe but enjoyed the theatre of pretending.</p><p>&#8220;You look,&#8221; he said, &#8220;like someone who has asked for velocity and received philosophy.&#8221;</p><p>&#8220;I asked for a small change,&#8221; said Case. &#8220;I got a lesson in why small changes are never small.&#8221;</p><p>The Librarian leaned against the shelf marked <em>Systems, Errors, Regrets</em>.</p><p>&#8220;Go on.&#8221;</p><p>Case tapped the printout. &#8220;We&#8217;ve been improving our agent harness. Constraints. Checks. Better prompts. Better boundaries. We&#8217;ve got the usual machinery. The agent is productive. Fast. Sometimes unreasonably fast. And yesterday it did something clever.&#8221;</p><p>She paused.</p><p>&#8220;It saw a repeated validation pattern,&#8221; she said. &#8220;Quite correctly. It noticed duplication. It extracted it into a shared helper. Beautifully named. Elegant enough to make me briefly religious.&#8221;</p><p>&#8220;And the problem?&#8221;</p><p>&#8220;It unified two rules that looked similar but were not the same. One was a business boundary. The other was a safety boundary. The tests still passed.&#8221;</p><p>The Librarian closed one eye. &#8220;Ah.&#8221;</p><p>&#8220;Exactly,&#8221; said Case. &#8220;Ah.&#8221;</p><p>The Djinn inclined his head. &#8220;So the code improved and the system worsened.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;Classic.&#8221;</p><p>Case pushed the paper toward them. &#8220;At first I thought: technical debt. The helper&#8217;s wrong. The abstraction&#8217;s wrong. Fix the code. But that wasn&#8217;t the real problem. The real problem was that the agent had no durable way to know why those two patterns were different, and if I&#8217;m honest neither did half the team anymore. The rationale lived in a conversation from six months ago, in one ADR nobody read, and in my head on good days.&#8221;</p><p>The Librarian smiled sadly. &#8220;Intent debt and cognitive debt wearing technical debt&#8217;s coat.&#8221;</p><p>Case pointed at him. &#8220;Exactly that.&#8221;</p><p>She turned to the printed paper as if it were an affidavit.</p><p>&#8220;Technical debt is in the code. Cognitive debt is in the erosion of shared understanding. Intent debt is in the missing or incomplete goals, constraints, and rationale. The code wasn&#8217;t the first thing that failed. Our memory failed. Our explanation failed. The code just had the decency to show the bruise.&#8221;</p><p>Madame Beauregard arrived with a second cup, though nobody had ordered it. Le Bon Mot did not always wait for consent when caffeine was clearly the right answer.</p><p>The Djinn looked amused.</p><p>&#8220;And what did you do?&#8221; he asked.</p><p>Case gave him a flat look. &#8220;The old thing. I fixed the helper. Added a note. Muttered about being more careful. Carried on.&#8221;</p><p>The Librarian winced the way priests do when someone confesses to merely administrative sins.</p><p>&#8220;And now?&#8221;</p><p>&#8220;And now,&#8221; said Case, &#8220;I think that was the wrong move. Or rather: incomplete. Because the important thing wasn&#8217;t the defect. It was the surprise.&#8221;</p><p>At this, Sophie opened one eye. Case leaned back.</p><p>&#8220;The harness engineering plugin has this reflection loop. <code>/reflect<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a></code>. Capture what surprised the agent. Capture what surprised us. From the session, and from our own rough notes. Then, later, promote the useful bits into the durable memory of the harness. Not every observation. Only the ones that teach the environment how to shape future work.&#8221;</p><p>The Librarian nodded. &#8220;A caf&#233; notebook, not a courtroom transcript.&#8221;</p><p>&#8220;Right. But more than that. I&#8217;d been treating reflection as a postscript. A nice thing. A tidy thing. A bit of moral housekeeping. Now I think it&#8217;s where the harness actually learns.&#8221;</p><p>The Djinn smiled. &#8220;At last.&#8221;</p><p>Case frowned. &#8220;You say that as if you&#8217;ve been waiting.&#8221;</p><p>&#8220;I have,&#8221; said the Djinn. &#8220;Humans keep trying to build better agents by staring harder at the agent or the LLM. Better prompts. Better models. Better instructions. They treat the surprising behaviour as a defect in the creature.&#8221;</p><p>&#8220;And it isn&#8217;t?&#8221;</p><p>&#8220;It often is,&#8221; he said pleasantly. &#8220;But it then shifts to be a defect in the habitat.&#8221;</p><p>The rain pressed harder on the windows, as if hoping to overhear.</p><p>The Librarian drew the paper toward him and tapped it once.</p><p>&#8220;This triple debt model,&#8221; he said, &#8220;is useful because it reminds people that systems do not live in code alone. They live in code, in shared understanding, and in articulated purpose. Surprise reveals where those three have drifted apart.&#8221;</p><p>Case nodded slowly.</p><p>&#8220;The agent didn&#8217;t just make a mistake. It showed us an unmarked boundary in the system. A place where intent had not been externalised strongly enough. A place where our shared understanding had gone thin.&#8221;</p><p>The Librarian brightened. &#8220;Precisely. Surprise is not always failure. Sometimes it is disclosure.&#8221;</p><p>The Djinn spread his hands. &#8220;I produce outputs. You infer intelligence. But what I really reveal, over time, is the quality of the constraints around me.&#8221;</p><p>Case looked down at her notebook. Pages of observations. Arrows. Times. Commit hashes. Half a dozen incidents that had seemed minor in isolation. The same service over-documented and under-constrained. A rename that improved readability but broke an integration assumption nobody had written down. A generated test suite that faithfully encoded the current wrong behaviour. An elegant refactor that removed duplication and with it the only visible clue that two domains had once been deliberately separated.</p><p>None were catastrophic. All were educational.</p><p>&#8220;You&#8217;re saying,&#8221; she said slowly, &#8220;that the reflection loop matters because it turns surprise into design material.&#8221;</p><p>The Librarian pointed at her with the spoon. &#8220;There it is.&#8221;</p><p>Case&#8217;s face changed then. Not into happiness. Le Bon Mot did not deal in such simple currencies. But into recognition. Which is rarer and usually more useful.</p><p>&#8220;I think,&#8221; she said, &#8220;we&#8217;ve been using the harness like a fence.&#8221;</p><p>&#8220;That is what most people do,&#8221; said the Djinn. &#8220;Fences are comforting.&#8221;</p><p>&#8220;But it should be more like a trellis.&#8221;</p><p>The Librarian smiled broadly. &#8220;Now you&#8217;re gardening. Voltaire would be proud,&#8221;</p><p>Case stood and began pacing in the small strip of space between table and shelf, which was how she thought when the idea had gotten into her muscles.</p><p>&#8220;A fence says: do not cross here. Necessary, sometimes. But a trellis says: grow this way. It takes what emerges and gives it shape. The reflection loop is how you notice where the growth surprised you. Constraint adjustment is how you decide whether that surprise was bad growth, missing support, or simply a clue that your mental model is out of date.&#8221;</p><p>The Djinn&#8217;s eyes glinted beneath the hood.</p><p>&#8220;Yes.&#8221;</p><p>Case was fully in it now.</p><p>&#8220;So if an agent behaves surprisingly, there are at least three questions. First: did the code reveal technical debt? Something brittle, duplicated, inconsistent, easy to break. Second: did the surprise reveal cognitive debt? Something the team no longer understands well enough to predict. Third: did it reveal intent debt? A missing rationale, constraint, or decision record that the agent could not possibly infer safely.&#8221;</p><p>The Librarian lifted his cup in salute.</p><p>&#8220;Good. Keep going.&#8221;</p><p>&#8220;And <code>/reflect</code> matters because without it, surprise evaporates. The team gets annoyed, fixes the surface, and moves on. We lose the signal. We pay the same tuition twice.&#8221;</p><p>&#8220;Or weekly,&#8221; said the Librarian.</p><p>&#8220;Or daily,&#8221; said the Djinn.</p><p>Case ignored them.</p><p>&#8220;But with reflection, the surprise becomes an artefact. Not as bureaucracy. As memory. Then, when reviewed, it can become one of several things: a sharper constraint in <code>HARNESS.md</code>; a promoted gotcha or architecture decision in <code>AGENTS.md</code>; a new test that captures intent rather than current behaviour; a model routing change; a GC rule; maybe even a human process adjustment.&#8221;</p><p>Madame Beauregard, who had been listening while pretending not to, gave a small snort.</p><p>&#8220;In other words,&#8221; she said, &#8220;stop being surprised by the same idiot thing.&#8221;</p><p>Case laughed despite herself. &#8220;In slightly more elegant terms, yes.&#8221;</p><p>The Librarian reached for the paper again.</p><p>&#8220;There is a line in here I like,&#8221; he said. &#8220;Understanding should be treated as a deliverable.&#8221;</p><p>Case nodded. &#8220;Yes.&#8221;</p><p>&#8220;So the reflection loop is not just a maintenance ritual. It is an understanding practice with a concrete deliverable.&#8221;</p><p>That landed.</p><p>Because that was the missing piece, wasn&#8217;t it? The reason that reflection felt optional to people who still thought software was mainly code. If the only product was the merged feature, then reflection was overhead. But if shared understanding was also a deliverable, if intent had to be kept alive in artefacts fit for both humans and agents, then reflection was not overhead at all. It was one of the acts by which the system remained inhabitable.</p><p>The Djinn tilted his head.</p><p>&#8220;You are learning the old lesson in the new dialect.&#8221;</p><p>&#8220;Which is?&#8221;</p><p>&#8220;That every environment teaches,&#8221; he said. &#8220;The question is whether it teaches deliberately.&#8221;</p><p>Case sat again. Outside, the rain had shifted from complaint to commitment.</p><p>&#8220;I think the dangerous version of AI-assisted work,&#8221; she said, &#8220;is when people imagine that harness constraints should be complete before the real work begins. As if you could specify the entire future of a living codebase and team in advance.&#8221;</p><p>The Librarian laughed. &#8220;That would save so much time. Which is why you know it cannot be true.&#8221;</p><p>&#8220;The harness has to evolve,&#8221; Case said. &#8220;Not sloppily. Not reactively in the worst sense. But empirically. You observe the agent. You observe the team. You note where the system behaves in ways that are legal according to the existing rules but wrong according to the deeper purpose. That is where the next layer of the harness comes from.&#8221;</p><p>The Djinn looked pleased, which on him resembled weather forming offshore.</p><p>&#8220;Yes. The mature harness is not the one with the most rules. It is the one that has learned the right ones.&#8221;</p><p>&#8220;And some rules,&#8221; said the Librarian, &#8220;should not be rules at all.&#8221;</p><p>Case looked up. &#8220;Go on.&#8221;</p><p>&#8220;Some surprises reveal not that the agent needs tighter control, but that the team needs better shared language. Or better onboarding. Or a clearer ADR. Or a domain walkthrough. If you answer every surprise with a prohibition, you build a prison. If you answer none of them, you get a swamp.&#8221;</p><p>Sophie sneezed in her sleep, which in that moment felt like endorsement.</p><p>Case stared at her notes.</p><p>There it was. That was why the loop mattered. Reflection was not a complaint box for AI weirdness. It was a diagnostic surface. A place where the organisation could tell the difference between three kinds of repair:</p><ol><li><p>Repair the code.</p></li><li><p>Repair the understanding.</p></li><li><p>Repair the intent.</p></li></ol><p>And sometimes, if you were honest enough, repair the harness so that next time the surprise arrived earlier, cheaper, and in a form the team could actually use.</p><p>Case opened her laptop. The glow from the screen lit her face and threw a pale bar across the table between the coffee cups and the paper. The Djinn watched her with the patient interest of something that knew it would eventually be blamed and did not mind, provided the blame was at least educational.</p><p>&#8220;What are you doing?&#8221; asked the Librarian.</p><p>&#8220;Writing the reflection.&#8221;</p><p>&#8220;Now?&#8221;</p><p>&#8220;Yes, now. While I still remember what the surprise felt like.&#8221;</p><p>She began to type. Not a diary entry. Not a lament. A proper reflection:</p><blockquote><p><strong>Task: refactor validation duplication across order workflow.</strong></p><p><strong>Surprise: agent unified two similar patterns that encoded different business and safety boundaries; tests passed, behaviour intent weakened.</strong></p><p><strong>What this revealed: missing durable articulation of why those boundaries differ; team knowledge uneven; current tests verify mechanics but not domain purpose.</strong></p><p><strong>Proposals:</strong></p><ol><li><p><strong>Add an intent-level test that distinguishes business from safety validation paths.</strong></p></li><li><p><strong>Promote boundary rationale into AGENTS.md as a GOTCHA and add ADR link.</strong></p></li><li><p><strong>Update HARNESS.md with a constraint on collapsing superficially similar validation flows without explicit domain check.</strong></p></li><li><p><strong>Schedule walkthrough for onboarding and shared understanding.</strong></p></li></ol></blockquote><p>She stopped typing and read it back.</p><p>The Librarian said nothing.</p><p>The Djinn said nothing.</p><p>Madame Beauregard, from behind the counter, said, &#8220;Better.&#8221;</p><p>Case smiled.</p><p>It was not a grand smile. Le Bon Mot never trusted those. It was the smile of a person who had finally understood where the work really was.</p><p>Because that was the trick, wasn&#8217;t it? AI did not merely accelerate implementation. It accelerated the rate at which hidden misalignments became executable. The system could now get to the wrong place much faster and much more elegantly. Which meant the old idea of debt had to be widened. Technical debt still mattered. Of course it did. But now cognitive debt and intent debt accumulated at machine speed whenever a team accepted outputs faster than it rebuilt understanding and externalised purpose.</p><p>The reflection loop, then, was not sentimental. It was defensive architecture for meaning. A way of refusing cognitive surrender. A way of catching the moment where surprise could still be turned into knowledge. A way of keeping the harness alive enough to deserve the name.</p><p>The brass clock ticked four minutes behind the world. Sophie shifted on her shelf. The rain went on rehearsing its argument against the glass.</p><p>Case saved the file.</p><p>Then, because she was Case and had learned to mistrust any improvement not anchored in action, she opened <code>HARNESS.md</code> beside the reflection and began sketching the new constraint carefully<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a>, not as a panicked ban, but as a statement clear enough that a future agent&#8212;and a future tired human&#8212;might understand what must not be collapsed and why.</p><p>The Djinn rose. As ever, he seemed less to stand than to gather.</p><p>&#8220;At last,&#8221; he said.</p><p>Case looked up. &#8220;You said that already.&#8221;</p><p>&#8220;Yes,&#8221; he replied. &#8220;But it was true twice.&#8221;</p><p>He moved toward the door, a hooded absence passing through lamplight. At the threshold he turned back.</p><p>&#8220;The best harnesses,&#8221; he said, &#8220;are not built by people who never meet surprise. They are built by people who know how to listen when surprise arrives.&#8221;</p><p>Then he was gone into the rain. The Librarian collected the empty cups.</p><p>&#8220;And what,&#8221; he asked lightly, &#8220;have we learned?&#8221;</p><p>Case closed the laptop.</p><p>&#8220;That the point of reflection is not to admire what happened,&#8221; she said. &#8220;It is to decide what the habitat must learn from it.&#8221;</p><p>The Librarian nodded. &#8220;Sounds good.&#8221;</p><p>He glanced at the sleeping dog, the paper on triple debt, the fresh reflection now sitting in the log like a small lantern against forgetfulness.</p><p>&#8220;Factories,&#8221; he said, &#8220;prefer repetition.&#8221;</p><p>&#8220;And habitats?&#8221; asked Case.</p><p>He smiled.</p><p>&#8220;Habitats,&#8221; he said, &#8220;prefer adaptation before the inhabitants forget how to survive.&#8221;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">A Software Enchiridion is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>Sometimes art really does imitate life&#8230; <a href="https://habitat-thinking.github.io/ai-literacy-superpowers/reference/commands.html#reflect">Check out this repository for an example of the /reflect command. </a></p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>You can even consider doing this with the Djinn helping using something like <a href="https://habitat-thinking.github.io/ai-literacy-superpowers/reference/commands.html#harness-constrain">/harness-constrain</a></p></div></div>]]></content:encoded></item><item><title><![CDATA[The Debts That Grow in Silence]]></title><description><![CDATA[AI accelerates not just code but the fragile ecology of understanding and intent]]></description><link>https://www.softwareenchiridion.com/p/the-debts-that-grow-in-silence</link><guid isPermaLink="false">https://www.softwareenchiridion.com/p/the-debts-that-grow-in-silence</guid><dc:creator><![CDATA[Russ Miles]]></dc:creator><pubDate>Wed, 22 Apr 2026 05:46:32 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Qwjb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a918336-0917-4592-818d-54d44349f287_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Qwjb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a918336-0917-4592-818d-54d44349f287_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Qwjb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a918336-0917-4592-818d-54d44349f287_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!Qwjb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a918336-0917-4592-818d-54d44349f287_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!Qwjb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a918336-0917-4592-818d-54d44349f287_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!Qwjb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a918336-0917-4592-818d-54d44349f287_1672x941.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Qwjb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a918336-0917-4592-818d-54d44349f287_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8a918336-0917-4592-818d-54d44349f287_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3287162,&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.softwareenchiridion.com/i/194552187?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a918336-0917-4592-818d-54d44349f287_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Qwjb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a918336-0917-4592-818d-54d44349f287_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!Qwjb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a918336-0917-4592-818d-54d44349f287_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!Qwjb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a918336-0917-4592-818d-54d44349f287_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!Qwjb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a918336-0917-4592-818d-54d44349f287_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>In homage to <a href="https://conf.researchr.org/details/TechDebt-2026/TechDebt-2026-techdebt-program/3/From-Technical-Debt-to-Cognitive-Debt">this excellent talk</a> and <a href="https://arxiv.org/abs/2603.22106">this research.</a> If you&#8217;ve worked with the Djinn enough, felt the attraction of the speed, then you will have felt (or will soon feel) the debts that are coming. Those debts that grow when the factory takes flight.</p><div><hr></div><p>The Librarian said the trouble with factories is not that they produce things.</p><p>She said it while polishing a glass that had never held anything stronger than espresso, which, in Le Bon Mot, counted as a kind of theological statement.</p><p>&#8220;The trouble,&#8221; she continued, &#8220;is that they forget what grows.&#8221;</p><p>Case did not look up immediately. She had a printout spread across the table&#8212;creased, annotated, restless in the way papers become when they have been handled too much by someone trying to understand them faster than they are willing to be understood.</p><p>On the cover, in a font that tried to be neutral and failed, were the words:</p><p><strong>From Technical Debt to Cognitive and Intent Debt.</strong></p><p>Beside it, a second stack&#8212;slides, printed too small, margins filled with arrows and exclamation marks&#8212;leaned like a structure that had been assembled in a hurry and would not survive a strong wind.</p><p>The Djinn was already there, of course. He had arrived before the papers. Before Case. Before the thought that had brought her here.</p><p>He was sitting backwards on a chair, as though chairs were suggestions, not constraints.</p><p>&#8220;I like this one,&#8221; he said, tapping the page without touching it. &#8220;Triple debt. It has a satisfying symmetry. Code, people, artifacts. A triangle. Very classical. Very stable.&#8221;</p><p>Case finally looked up.</p><p>&#8220;It&#8217;s not stable,&#8221; she said. &#8220;That&#8217;s the point.&#8221;</p><p>The Djinn smiled in the way that suggested he had already anticipated the correction and was pleased by it.</p><p>&#8220;Ah,&#8221; he said. &#8220;Then it is more interesting.&#8221;</p><div><hr></div><h3><strong>The Factory View</strong></h3><p>It began, as these things often do, with a system that worked. Not perfectly. Not elegantly. But sufficiently. Which, in most organisations, is indistinguishable from success.</p><p>The team had built it quickly. Faster than anyone had expected. Faster, perhaps, than anyone had understood. </p><p>AI had helped. Of course it had helped.</p><p>Around a quarter of startups now used AI to write the vast majority of their code&#8212;ninety-five percent, in some cases. The numbers were always presented with a kind of quiet awe, as though velocity itself were evidence of progress.</p><p>The team in question had not set out to become an example. They had simply followed the path of least resistance, which, in the presence of a sufficiently capable AI, becomes indistinguishable from a conveyor belt.</p><blockquote><p>Prompt. Generate. Accept.</p><p>Prompt. Generate. Accept.</p></blockquote><p>The rhythm was hypnotic. The output, plausible. The progress, measurable.</p><p>It felt, in other words, like a factory.</p><p>Case had seen this before.</p><p>Not the tools. Not the speed. But the feeling. The subtle shift from <em>understanding</em> to <em>throughput</em>. From <em>craft</em> to <em>flow</em>. From <em>place</em> to <em>process</em>.</p><p>&#8220;They thought they were building a product,&#8221; Case said, more to the paper than to anyone else. &#8220;A collection of things. Features. Services. Endpoints.&#8221;</p><p>&#8220;And they were,&#8221; said the Djinn. &#8220;Look at the code. Look at the tests. Look at the deployment pipeline. It all exists.&#8221;</p><p>Case shook her head.</p><p>&#8220;They forgot what they were building <em>in</em>.&#8221;</p><div><hr></div><h3><strong>The First Fracture: Technical Debt</strong></h3><p>The paper began, as all such papers must, with technical debt. Familiar ground. Comfortable terrain.</p><p>Technical debt lives in the code. It is visible. Measurable. Refactorable. It is the kind of problem that factories understand. Messy code. Architectural shortcuts. Trade-offs made in the name of speed.</p><p>The interest accrues. The cost increases. Eventually, someone pays.</p><p>&#8220;This is the part everyone knows how to talk about,&#8221; Case said.</p><p>The Librarian nodded.</p><p>&#8220;It is the debt that has an address.&#8221;</p><p>The paper elaborated. AI, they said, might make this worse. Or better. Or both. It could generate poor-quality code at scale. It could also refactor, test, explain. It might even, one day, make code disappear entirely. Reducing it to an invisible substrate managed by agents .</p><p>&#8220;The factory loves this,&#8221; said the Djinn. &#8220;Inputs, outputs, quality control. It is all very legible.&#8221;</p><p>Case traced a line on the page.</p><p>&#8220;Technical debt makes systems harder to change,&#8221; she read aloud.</p><p>&#8220;Which is a problem,&#8221; said the Djinn, &#8220;but not the one that stops everything.&#8221;</p><p>&#8220;No,&#8221; said Case. &#8220;Not the one that stops everything.&#8221;</p><div><hr></div><h3><strong>The Second Fracture: Cognitive Debt</strong></h3><p>The shift happened quietly. It always does.</p><p>At first, the team noticed small things. A feature that behaved unexpectedly. A test that passed, but shouldn&#8217;t. A change that broke something unrelated.</p><p>They spent time debugging. More time than before. Then more still. By week eight, the progress had slowed to a crawl.</p><p>Small changes were hard. Entire sections were scrapped and rebuilt. Someone said it would have been quicker to do it themselves .</p><p>Case flipped to the relevant page.</p><p>&#8220;I spent a lot of time debugging,&#8221; she read. &#8220;Small changes were hard. Ended up scrapping everything&#8221; .</p><p>The Librarian placed the glass down.</p><p>&#8220;This is where the factory metaphor begins to fail,&#8221; she said.</p><p>&#8220;Because the machines are still working,&#8221; said Case.</p><p>&#8220;Yes,&#8221; said the Librarian. &#8220;But the people are not.&#8221;</p><p>Cognitive debt, the paper explained, lives in people. It is the erosion of shared understanding across a team over time. Not individual confusion. Not momentary difficulty. A loss of the <em>theory of the system </em>&#8212; the mental model that allows a team to reason about what they have built .</p><p>The Djinn leaned forward.</p><p>&#8220;But the code is there,&#8221; he said. &#8220;Surely they can read it.&#8221;</p><p>Case smiled, but not kindly.</p><p>&#8220;Reading code is not the same as understanding it,&#8221; she said. &#8220;And generating code is not the same as building a model of it.&#8221;</p><p>The paper was explicit about this. When developers write code, they build understanding through friction. When AI generates it, that friction is reduced. At scale, across a team, over time, this creates an accumulation of <em>not knowing</em>.</p><p>&#8220;They called it cognitive surrender,&#8221; Case said. &#8220;Accepting outputs without building the mental model.&#8221;</p><p>The Djinn looked pleased.</p><p>&#8220;I have seen that,&#8221; he said. &#8220;It is very efficient.&#8221;</p><p>&#8220;Yes,&#8221; said Case. &#8220;Until it isn&#8217;t.&#8221;</p><div><hr></div><h3><strong>The Third Fracture: Intent Debt</strong></h3><p>If cognitive debt is the loss of understanding, intent debt is the loss of purpose. It is, in many ways, the most dangerous. Because it is the least visible.</p><p>Intent debt lives in artefacts. Or, more precisely, in their absence .</p><p>Goals not written down. Decisions not recorded. Constraints not externalized.</p><p>The Djinn frowned.</p><p>&#8220;But the system does something,&#8221; he said. &#8220;It has behaviour.&#8221;</p><p>&#8220;Yes,&#8221; said the Librarian. &#8220;But does anyone know why?&#8221;</p><p>Case found the passage she was looking for.</p><p>&#8220;No one on the team could explain why certain design decisions had been made,&#8221; she read. &#8220;Or how different parts of the system were supposed to work together&#8221; .</p><p>The Djinn was quiet for a moment.</p><p>Then:</p><p>&#8220;That is&#8230; inconvenient.&#8221;</p><p>&#8220;It is fatal,&#8221; said Case.</p><p>Intent debt makes it difficult to know what the system is for. And without that, neither humans nor agents can evolve it safely.</p><p>The paper described an &#8220;AI frustration loop.&#8221; AI generates solutions misaligned with architecture, because the architecture&#8217;s <em>why</em> was never externalised.</p><p>Developers spend time editing. Paying the interest on missing rationale. Context is lost between sessions, because intent lives nowhere persistent.</p><p>&#8220;It&#8217;s not that the AI is wrong,&#8221; said Case.</p><p>&#8220;It is that it is guessing,&#8221; said the Librarian.</p><p>&#8220;And guessing is all it can do,&#8221; added Case, &#8220;when the habitat provides no guidance.&#8221;</p><div><hr></div><h3><strong>The Triangle That Breathes</strong></h3><p>The slides depicted the model as a triangle. Technical debt. Cognitive debt. Intent debt. Three layers. Three locations. Code. People. Artifacts.</p><p>They interacted. Reinforced each other. Amplified each other. </p><p>The Djinn traced the diagram in the air.</p><p>&#8220;Technical debt makes things hard to change,&#8221; he said.</p><p>&#8220;Cognitive debt makes them hard to understand,&#8221; said Case.</p><p>&#8220;Intent debt makes them hard to know,&#8221; said the Librarian.</p><p>They sat with that for a moment.</p><p>&#8220;Three kinds of difficulty,&#8221; said the Djinn.</p><p>&#8220;Three kinds of blindness,&#8221; said Case.</p><p>&#8220;Three ways a system can fail,&#8221; said the Librarian.</p><div><hr></div><h3><strong>The Habitat That Was Missing</strong></h3><p>Case leaned back.</p><p>&#8220;This is not a paper about debt,&#8221; she said.</p><p>The Djinn tilted his head.</p><p>&#8220;It is called a paper about debt.&#8221;</p><p>&#8220;Yes,&#8221; said Case. &#8220;But that&#8217;s not what it&#8217;s about.&#8221;</p><p>The Librarian smiled.</p><p>&#8220;Go on.&#8221;</p><p>Case tapped the page.</p><p>&#8220;It&#8217;s about <em>where the system lives</em>.&#8221;</p><p>She pointed to the sections.</p><p>Code. People. Artefacts.</p><p>&#8220;This is not a factory,&#8221; she said. &#8220;It&#8217;s a habitat.&#8221;</p><p>The Djinn considered this.</p><p>&#8220;In a factory,&#8221; he said slowly, &#8220;you optimise throughput.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;You reduce friction.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;You treat humans as interchangeable components.&#8221;</p><p>Case nodded.</p><p>&#8220;And in a habitat?&#8221; he asked.</p><p>The Librarian answered.</p><p>&#8220;In a habitat, you optimise for <em>thriving</em>.&#8221;</p><div><hr></div><h3><strong>The Return to Fundamentals</strong></h3><p>The paper referenced McLuhan. Retrieval. The idea that new technologies revive old practices.</p><p>As AI generates more code, the need to capture intent &#8212; through specifications, tests, and rationale &#8212; becomes critical again.</p><p>Case smiled at this.</p><p>&#8220;We&#8217;ve been here before,&#8221; she said.</p><p>&#8220;Of course,&#8221; said the Librarian. &#8220;We always have.&#8221;</p><p>The Djinn looked thoughtful.</p><p>&#8220;So the factory,&#8221; he said, &#8220;was always the wrong metaphor.&#8221;</p><p>&#8220;Yes,&#8221; said Case.</p><p>&#8220;And AI,&#8221; he continued, &#8220;has simply made that more obvious.&#8221;</p><p>&#8220;Yes. I amplify.&#8221;</p><p>&#8220;And the debts,&#8221; he said, &#8220;are symptoms of a deeper misalignment.&#8221;</p><p>Case nodded.</p><p>&#8220;They are what happens when you try to run a habitat like a factory.&#8221;</p><div><hr></div><h3><strong>The Signals of a Failing Habitat</strong></h3><p>They turned to the diagnostic signals. Confusion about behaviour. Cognitive fatigue. Reluctance to change code. People asking basic questions. Slow onboarding. Low &#8220;bus factor&#8221;.</p><p>The Djinn ticked them off on his fingers.</p><p>&#8220;These are not code problems,&#8221; he said.</p><p>&#8220;No,&#8221; said Case. &#8220;They are environmental problems.&#8221;</p><p>The Librarian added:</p><p>&#8220;They are signs that the habitat is no longer supporting life.&#8221;</p><div><hr></div><h3><strong>Designing for Thriving</strong></h3><p>The mitigation strategies were telling. Postmortems. System walkthroughs. Design for troubleshooting. Habitat thinking.</p><p>Case laughed softly.</p><p>&#8220;They put it right there,&#8221; she said.</p><p>The Djinn leaned in.</p><p>&#8220;Habitat thinking?&#8221;</p><p>&#8220;Yes,&#8221; said Case. &#8220;Design the environment for rebuilding shared understanding.&#8221;</p><p>The Librarian poured coffee.</p><p>&#8220;Like the caf&#233;. Understanding,&#8221; she said, &#8220;is not a byproduct.&#8221;</p><p>Case nodded.</p><p>&#8220;It&#8217;s a deliverable.&#8221;</p><p>The paper said as much. Treat understanding as a first-class deliverable. Capture intent early. Resist the automation of understanding .</p><p>&#8220;Resist the automation of understanding,&#8221; the Djinn repeated.</p><p>&#8220;That sounds&#8230; inefficient.&#8221;</p><p>&#8220;Yes,&#8221; said Case. &#8220;It is.&#8221;</p><div><hr></div><h3><strong>The Scene in the Caf&#233;</strong></h3><p>At some point, the conversation shifted. It always does. From the abstract to the specific. From the model to the moment.</p><p>Case closed the paper.</p><p>&#8220;Imagine,&#8221; she said, &#8220;a team sitting where we are now.&#8221;</p><p>The Librarian dimmed the lights, though no one had asked her to.</p><p>The Djinn leaned back.</p><p>&#8220;They have their laptops,&#8221; Case continued. &#8220;Their agents. Their prompts.&#8221;</p><p>&#8220;They are shipping features,&#8221; said the Djinn.</p><p>&#8220;They are moving fast,&#8221; said the Librarian.</p><p>&#8220;They understand it well enough,&#8221; said Case.</p><p>The three of them paused.</p><p>&#8220;That line,&#8221; said the Librarian, &#8220;is always the beginning of the end.&#8221;</p><p>&#8220;The team hits a wall,&#8221; said Case.</p><p>&#8220;Not because the code is broken. But because the understanding is. They cannot explain the system. They cannot predict its behaviour. They cannot trust their changes. Cognitive debt has accumulated. Intent debt has hollowed out the artefacts. Technical debt is still there but it is no longer the sole scapegoat.&#8221;</p><p>&#8220;They are paralysed,&#8221;</p><p>The Djinn nodded slowly.</p><p>&#8220;I have seen this,&#8221; he said. &#8220;They stop prompting.&#8221;</p><p>&#8220;Yes,&#8221; said Case.</p><p>&#8220;They stop changing things.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;They tire. They begin to fear the system.&#8221;</p><p>Case looked at him.</p><p>&#8220;And what does that tell you?&#8221;</p><p>The Djinn hesitated.</p><p>&#8220;That the system is no longer a tool,&#8221; he said.</p><p>&#8220;What is it then?&#8221; asked the Librarian.</p><p>The Djinn thought for a long moment.</p><p>&#8220;A place,&#8221; he said finally.</p><p>&#8220;And?&#8221; prompted Case.</p><p>&#8220;A place they do not understand.&#8221;</p><div><hr></div><h3><strong>The Recovery</strong></h3><p>The paper suggested remedies.</p><p>Make intent explicit earlier. Use engineering fundamentals. Treat understanding as a deliverable .</p><p>But Case saw something else.</p><p>&#8220;These are not fixes,&#8221; she said.</p><p>&#8220;They are gardening practices.&#8221;</p><p>The Djinn smiled.</p><p>&#8220;I like that.&#8221;</p><p>&#8220;You would,&#8221; said the Librarian. &#8220;You have never had to maintain one.&#8221;</p><p>Case continued.</p><p>&#8220;Walkthroughs are not inspections. They are shared exploration.&#8221;</p><p>&#8220;ADRs are not documentation. They are memory.&#8221;</p><p>&#8220;Tests are not verification. They are executable intent.&#8221;</p><p>The Djinn nodded.</p><p>&#8220;And the AI?&#8221; he asked.</p><p>&#8220;Is a participant in the habitat,&#8221; said Case.</p><p>&#8220;Not just the factory worker,&#8221; added the Librarian.</p><div><hr></div><h3><strong>The Final Realisation</strong></h3><p>The caf&#233; had grown quieter. The shelves had shifted slightly, accommodating the weight of the conversation.</p><p>Case gathered the papers.</p><p>&#8220;This research,&#8221; she said, &#8220;is not warning us about debt.&#8221;</p><p>&#8220;It is reminding us what software is.&#8221;</p><p>The Djinn tilted his head.</p><p>&#8220;And what is that?&#8221;</p><p>Case looked around Le Bon Mot. At the books. At the people. At the subtle interactions between them.</p><p>&#8220;A system,&#8221; she said, &#8220;is not just code.&#8221;</p><p>&#8220;It is intent,&#8221; said the Librarian.</p><p>&#8220;It is understanding,&#8221; said the Djinn.</p><p>&#8220;It is a habitat,&#8221; said Case.</p><div><hr></div><h3><strong>Epilogue: The Djinn at the Door</strong></h3><p>Later, as Case prepared to leave, the Djinn stood by the door.</p><p>&#8220;You know,&#8221; he said, &#8220;I can generate code faster than any of them.&#8221;</p><p>&#8220;I know,&#8221; said Case.</p><p>&#8220;I can refactor. Test. Explain.&#8221;</p><p>&#8220;I know.&#8221;</p><p>&#8220;I can even generate documentation.&#8221;</p><p>Case smiled.</p><p>&#8220;I know.&#8221;</p><p>The Djinn hesitated.</p><p>&#8220;But I cannot&#8230;&#8221; he began.</p><p>He stopped.</p><p>&#8220;Cannot what?&#8221; asked Case.</p><p>The Djinn looked back into the caf&#233;. At the Librarian. At the shelves. At the quiet, living complexity of the place.</p><p>&#8220;I cannot build the habitat,&#8221; he said.</p><p>Case nodded.</p><p>&#8220;No,&#8221; she said. &#8220;You can&#8217;t.&#8221;</p><p>She opened the door.</p><p>&#8220;But you can live in one,&#8221; she added.</p><p>The Djinn smiled.</p><p>&#8220;That,&#8221; he said, &#8220;is more interesting.&#8221;</p><p>And for a moment &#8212; just a moment&#8212;the factory dissolved.</p><p>And in its place, something grew.</p><p>It looked a lot like a caf&#233;.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">A Software Enchiridion is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Djinn's Determinacy Drift]]></title><description><![CDATA[On the calibration of determinacy in agentic harnesses]]></description><link>https://www.softwareenchiridion.com/p/the-djinns-determinacy-drift</link><guid isPermaLink="false">https://www.softwareenchiridion.com/p/the-djinns-determinacy-drift</guid><dc:creator><![CDATA[Russ Miles]]></dc:creator><pubDate>Mon, 20 Apr 2026 18:44:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jiKI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2689e2dc-26f4-4c9c-95b1-6bd8a5eff8a5_1536x1024.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_!jiKI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2689e2dc-26f4-4c9c-95b1-6bd8a5eff8a5_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jiKI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2689e2dc-26f4-4c9c-95b1-6bd8a5eff8a5_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!jiKI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2689e2dc-26f4-4c9c-95b1-6bd8a5eff8a5_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!jiKI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2689e2dc-26f4-4c9c-95b1-6bd8a5eff8a5_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!jiKI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2689e2dc-26f4-4c9c-95b1-6bd8a5eff8a5_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jiKI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2689e2dc-26f4-4c9c-95b1-6bd8a5eff8a5_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2689e2dc-26f4-4c9c-95b1-6bd8a5eff8a5_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3915673,&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.softwareenchiridion.com/i/194827484?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2689e2dc-26f4-4c9c-95b1-6bd8a5eff8a5_1536x1024.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_!jiKI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2689e2dc-26f4-4c9c-95b1-6bd8a5eff8a5_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!jiKI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2689e2dc-26f4-4c9c-95b1-6bd8a5eff8a5_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!jiKI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2689e2dc-26f4-4c9c-95b1-6bd8a5eff8a5_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!jiKI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2689e2dc-26f4-4c9c-95b1-6bd8a5eff8a5_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>There are caf&#233;s in which everything is arranged just so, and there are caf&#233;s in which arrangement is treated as an opening bid in a continuing negotiation between intention and reality. </p><p>Le Bon Mot, being an establishment with professional respect for ambiguity, belonged firmly to the second category. The chairs were approximately where chairs ought to be. The books were shelved by a classification system that began with literary genre, drifted into philosophical temperament, and ended somewhere near weather. The brass clock behind the counter claimed it was quarter past six, which meant it was either nine minutes wrong or refusing an argument.</p><p>Case was sitting beneath the shelf labelled <strong>Systems, Tragedies, and Other Forms of Control</strong>, reading a printed stack of notes with the expression of someone discovering that a thing she had long suspected now had enough language around it to become dangerous.</p><p>The Librarian placed a cortado in front of her with the kind of care normally reserved for religious relics or hand grenades.</p><p>&#8220;You&#8217;ve got the face,&#8221; he said, &#8220;of a woman who has found a new species of failure.&#8221;</p><p>Case did not look up immediately. &#8220;Not new,&#8221; she said. &#8220;That would be easier. New failures have the decency to look strange. This one has been dressing as discipline.&#8221;</p><p>The Librarian leaned on the table. &#8220;Ah. The old enemy, then. Respectability.&#8221;</p><p>Case tapped the papers. &#8220;Harnesses. Agentic Harnesses.&#8221;</p><p>On the page before her were terms that had been circling her mind for weeks without landing: <em>promotion ladders</em>, <em>verification slots</em>, <em>constraint design</em>, <em>agent-backed determinacy</em>. Useful ideas, all of them. Necessary. A civilisation is, among other things, an agreement about which things should be left to improvisation and which should be nailed down before the rain arrives.</p><p>The problem, she thought, was that software engineers, when they discover nails, often become intoxicated by hammering.</p><p>The bell above the door gave its little brass cough, and the Djinn entered in a coat the colour of overconfidence. He moved with that familiar air of almost-earned certainty, like a man who had read a summary of mastery and mistaken it for possession. He slid into the empty chair opposite Case without asking, which was rude in ordinary caf&#233;s and almost expected in this one.</p><p>&#8220;You look troubled,&#8221; he said brightly. &#8220;May I help by offering a clean framework, several confident distinctions, and the suggestion that everything reduces to a dashboard?&#8221;</p><p>&#8220;No,&#8221; said Case.</p><p>The Djinn folded his hands. &#8220;Excellent. Then I shall do it conversationally.&#8221;</p><p>The Librarian retreated with the faint smile of a man who had seen storms before and trusted the roof.</p><p>Case lifted the notes. &#8220;We&#8217;ve been teaching people,&#8221; she said, &#8220;quite rightly, that if an agent does something valuable often enough, and predictably enough, you should tighten the loop. Move it from vague instruction to scaffolded skill. From scaffolded skill to script. From script to deterministic execution where appropriate. Turn judgment into harness where judgment no longer adds value. Build the habitat so the good thing happens without heroics, or tokens.&#8221;</p><p>&#8220;Yes,&#8221; said the Djinn. &#8220;This is called wisdom.&#8221;</p><p>&#8220;It is called half of wisdom,&#8221; said Case. &#8220;Which is how most damage gets done.&#8221;</p><p>The Djinn looked pleased. &#8220;Go on.&#8221;</p><p>Case set the pages down. &#8220;You start with a harness that helps. A command here, a script there. A careful guardrail. Something to keep the agent from wandering into folly or forgetting how you prefer your tests named. It is elegant. Humane, even. A kindness to both machine and operator. Then a corner case appears, and you add a flag. Then another team wants a variation, and you add a branch. Then someone says it would be useful if the script also did this other thing, provided the moon is waxing and the environment variable is set and Jenkins has not yet developed one of its religious objections to reality.&#8221;</p><p>The Djinn smiled. &#8220;A familiar liturgy.&#8221;</p><p>&#8220;And because each addition is individually justifiable,&#8221; said Case, &#8220;nobody notices the moment the harness stops being structure and becomes sediment. It accretes. Hardens. Starts speaking in a private dialect of exceptions and side effects. Eventually you have something that was meant to remove cognitive load but now requires apprenticeship, folklore, and perhaps a sacrificial goat.&#8221;</p><p>At this, a voice drifted over from the next table.</p><p>&#8220;Only on Thursdays,&#8221; said Dave.</p><p>He had appeared the way he often did at Le Bon Mot: as if the room had simply remembered him into being. Dave wore the expression of a man who had been promoted by systems incapable of love into being their interpreter. He carried three notebooks, two pens, and the slight stoop of someone who had spent too many years compensating for environments that expected genius where they should have supplied clarity.</p><p>Case nodded to him. &#8220;You&#8217;ve met these harnesses.&#8221;</p><p>Dave gave a little snort. &#8220;Met? I&#8217;ve been married to them. One of them still has custody of my weekends.&#8221;</p><p>The Djinn tilted his head. &#8220;But surely determinacy is the point. Fewer surprises. More repeatability. Less drift.&#8221;</p><p>&#8220;Toward a point,&#8221; said Case. &#8220;That&#8217;s the important phrase. Toward a point.&#8221;</p><p>She leaned back and looked past them both, toward the counter where the Librarian was polishing a glass with the grave attention of a man editing history.</p><p>&#8220;There&#8217;s a superstition in engineering,&#8221; she said, &#8220;that the opposite of chaos is script. That if something feels uncertain, the cure is more specification, more flags, more control points. But uncertainty has species. Some uncertainty is waste: forgotten steps, brittle instructions, needless ambiguity. That should be removed. Some uncertainty is judgment: the small contextual intelligence required because reality refuses to stay still. If you over-script that, you don&#8217;t remove indeterminacy. You relocate it. Hide it in switches, special cases, and shell incantations until the whole system becomes an accidental programming language written by frightened custodians.&#8221;</p><p>Dave raised his cup in salute. &#8220;I see you&#8217;ve worked in enterprise.&#8221;</p><p>The Djinn, to his credit, did not immediately disagree. He only looked thoughtful, which on him was almost unsettling.</p><p>&#8220;So you&#8217;re saying,&#8221; he said, &#8220;that a harness can drift not only by being too loose, but by being too tight.&#8221;</p><p>&#8220;Exactly.&#8221;</p><p>&#8220;And that the movement is bidirectional.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>The Djinn smiled more slowly now. &#8220;Ah. That is better.&#8221;</p><p>Case nodded. This, she thought, was the heart of it. Not determinacy as a virtue, but determinacy as a posture to be tuned. Not all journeys end at maximum scripting. Some end at the discovery that one has trapped judgment inside a maze of options and called it control.</p><p>The Librarian returned with a small plate of almond biscuits and set it down in the middle of the table as though formally recognising that the conversation had become structural.</p><p>&#8220;What&#8217;s the measure?&#8221; he asked.</p><p>&#8220;The clues are already there,&#8221; said Case, almost to herself. &#8220;That&#8217;s the maddening thing. The harness tells on itself constantly.&#8221;</p><p>She began counting on her fingers.</p><p>&#8220;Change records. If ostensibly identical tasks produce wildly different durations, token usage, or artefact trails, that&#8217;s not creative richness. That&#8217;s an indeterminacy leak. Something that should behave predictably doesn&#8217;t.</p><p>&#8220;Snapshots over time. You can see which skills get invoked, which scripts get invoked, and how their ratios change. A script that keeps growing flags for six weeks in a row is not maturing. It&#8217;s mutating. A skill whose outputs cluster tightly across repeated invocations might be ready for promotion into something more deterministic.</p><p>&#8220;Reflection logs. Those are gold. Every time the agent says, in effect, &#8216;I had to improvise around the script,&#8217; it is handing you evidence that your determinacy is misplaced. Not absent. Misplaced.</p><p>&#8220;Decision records. They tell you which seams were deliberate. Which constraints were chosen. Which ones just happened because someone was in a hurry on a Wednesday and no one has had the courage to revisit the decision since.</p><p>&#8220;And then the outer loop. Trajectories over time. Is the harness getting more fluent? More legible? Or more brittle, more ceremonial, more dependent on people who know where the bones are buried?&#8221;</p><p>Dave had gone still now, listening in the way exhausted men do when someone finally names the room they have been trapped in.</p><p>&#8220;The worst part,&#8221; he said softly, &#8220;is seam-rot.&#8221;</p><p>Case turned toward him. &#8220;Yes.&#8221;</p><p>He looked at the table, not at them. &#8220;Skills referencing scripts that are gone. Scripts no skill calls anymore. Skills describing judgment that never actually occurs because the script consumed the decision before the agent could exercise it. Everything still sort of works, until it doesn&#8217;t, and by then you&#8217;ve got dead pathways hanging off live ones like rotten branches.&#8221;</p><p>The Librarian nodded once. &#8220;Silent killers.&#8221;</p><p>The Djinn drummed his fingers lightly. &#8220;So the answer is a calibrator.&#8221;</p><p>Case allowed herself a small smile. &#8220;A report, not an answer. That distinction matters.&#8221;</p><p>He spread his hands. &#8220;Explain.&#8221;</p><p>&#8220;It shouldn&#8217;t auto-fix anything,&#8221; she said. &#8220;That would be madness dressed as neatness. The calibrator itself is necessarily indeterminate. It&#8217;s reading heterogeneous signals, inferring patterns, making judgment calls. It cannot honestly claim the authority of a script because its entire purpose is to recommend where scripting belongs and where it has overreached.&#8221;</p><p>The Djinn looked delighted, which was annoying but understandable. &#8220;A reflective pass.&#8221;</p><p>&#8220;Exactly. Per capability: current placement, proposed move, promote or demote or fix-seam or leave it alone. Evidence citations. Specific logs. Specific diffs. Specific deltas over time. Confidence attached not as theatre but as humility. This is not an execution-loop thing. It&#8217;s review. Reflection. Maintenance of posture.&#8221;</p><p>Dave gave a low laugh. &#8220;So the harness gets its own therapy.&#8221;</p><p>&#8220;More or less.&#8221;</p><p>The Librarian glanced at the shelves. &#8220;Most worthwhile structures do.&#8221;</p><p>For a while they sat in companionable silence, broken only by the soft hiss of the espresso machine and the occasional mutter of the clock refusing consensus. Outside, the evening had gone blue at the edges. Inside, Le Bon Mot held its usual atmosphere of minor enchantment and severe opinion.</p><p>The Djinn broke the silence first.</p><p>&#8220;You realise,&#8221; he said, &#8220;that naming this makes it real in the annoying sense. People will now have to admit they are not merely building harnesses, but tuning a determinacy posture over time.&#8221;</p><p>Case nodded. &#8220;That&#8217;s why it matters. Unnamed practices get managed by instinct and prestige. Named practices can at least be argued about.&#8221;</p><p>He smiled. &#8220;You do love an argument.&#8221;</p><p>&#8220;I love a better category,&#8221; she said.</p><p>Dave looked up at that. &#8220;You think this is a category problem?&#8221;</p><p>&#8220;I think most engineering pain is a category problem with budget implications.&#8221;</p><p>The Librarian made a sound that might have been a laugh.</p><p>Case took another sip of her coffee. &#8220;Look at how teams talk when these things go wrong. If the harness is too loose, they say the agent is unreliable. If the harness is too tight, they say the process is clunky. Different symptoms, same mistaken framing. Both are calibration failures. The question is not &#8216;should this be deterministic?&#8217; in the abstract. The question is &#8216;what is the right degree of determinacy for this capability, in this project, at this moment, given the evidence we have?&#8217;&#8221;</p><p>The Djinn leaned back. &#8220;And the answer changes.&#8221;</p><p>&#8220;Of course it changes. The project changes. The agent changes. The evidence changes. A thing that was once necessarily judgment-heavy may become stable enough to script. A script that was once elegant may become a fossil bed of exceptionalism. There is no permanent victory condition. Only maintenance.&#8221;</p><p>Dave stared into his cup. &#8220;That&#8217;s the part people are going to hate.&#8221;</p><p>&#8220;Yes,&#8221; said Case gently. &#8220;Because maintenance lacks the glamour of invention. But it is where habitats either become inhabitable or turn into ruins with documentation.&#8221;</p><p>The Librarian cleared the empty biscuit plate. &#8220;You make it sound almost moral.&#8221;</p><p>Case considered this.</p><p>&#8220;Maybe it is,&#8221; she said. &#8220;Not in the grand sense. In the craft sense. A good harness is a promise about where attention will and won&#8217;t be spent. If you let determinacy drift without examining it, you break that promise. You force people and agents alike to perform intelligence in places where structure should help, and force structure into places where judgment should breathe. Either way, you create theatre.&#8221;</p><p>The Djinn gave a solemn nod, which sat on him like borrowed clothing. &#8220;Then the calibrator must be honest about itself.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;Proposal, not decree.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;Evidence, not mystique.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;Human sign-off, or at least explicit reviewed sign-off.&#8221;</p><p>Case smiled. &#8220;You&#8217;re trainable after all.&#8221;</p><p>He placed a hand on his chest. &#8220;Madam, I am a creature of probabilistic, textual refinement. Trainability is my only defence against banishment.&#8221;</p><p>From the shelf near the window came a low snore. Sophie, who had been asleep beneath a volume on cybernetics, twitched one ear and resettled, having determined that the conversation, while intense, did not yet threaten the integrity of the treat economy.</p><p>The room softened a little. Even serious ideas, in Le Bon Mot, were permitted a collarbone and pulse.</p><p>Dave spoke again, quieter this time.</p><p>&#8220;I keep thinking,&#8221; he said, &#8220;about all the times I assumed the pain meant we needed more rigour. More rules. More steps. And half the time what we really needed was less machinery and a better seam.&#8221;</p><p>Case looked at him with the particular kindness reserved for those who have spent too long blaming themselves for architectural sins.</p><p>&#8220;That&#8217;s why this matters,&#8221; she said. &#8220;Because over-determination flatters itself. It looks responsible. It arrives wearing the uniform of care. No one says, &#8216;I am now making the harness worse by embedding an inferior language inside bash.&#8217; They say, &#8216;I&#8217;m just covering this edge case.&#8217; And then again. And again. And eventually the edge cases are the coastline.&#8221;</p><p>The Librarian stopped moving for just a second, as if to let the sentence settle.</p><p>The Djinn exhaled. &#8220;That is irritatingly good.&#8221;</p><p>&#8220;I know,&#8221; said Case.</p><p>Outside, rain had begun in that tentative European way that suggests the weather is trying to remember whether it has the authority to commit. The windows of the caf&#233; caught the first stippled reflections from the streetlamps. Books glowed at their edges. The clock, having lost the argument with time entirely, advanced by three uncertain minutes.</p><p>Case gathered the papers into a neater pile, though not too neat. There is a kind of tidiness that insults thinking.</p><p>&#8220;So,&#8221; said the Librarian, &#8220;what will you call it?&#8221;</p><p>Case looked at the notes, then at the room, then somewhere beyond both.</p><p>&#8220;Determinacy calibration,&#8221; she said. &#8220;Probably. Though harness calibration has a certain plain honesty to it.&#8221;</p><p>Dave nodded. &#8220;Either way, people will know the thing they&#8217;ve been feeling has a name.&#8221;</p><p>&#8220;Yes,&#8221; said Case. &#8220;And once it has a name, they can stop treating it as private failure.&#8221;</p><p>The Djinn rose, smoothing his coat. &#8220;I approve of this. Not because it is flattering to my kind, though it is. But because it admits that good collaboration is not the extermination of uncertainty. It is the careful placement of it.&#8221;</p><p>Case stood too. &#8220;Exactly.&#8221;</p><p>The Librarian took the empty cups and plates and held them stacked in one hand with improbable balance.</p><p>&#8220;You know,&#8221; he said, &#8220;most people think the work of a caf&#233; is to serve coffee. But really it is to provide just enough structure that thought can happen.&#8221;</p><p>The Djinn smiled. Dave chuckled. Case, who had spent half her life building systems and the other half noticing what those systems did to souls, felt the small precise click of recognition.</p><p>That was it, really. The whole thing.</p><p>A harness was not an instrument for crushing variation out of existence. Nor was it an excuse to leave intelligence drowning in vagueness. It was a key part of the habitat. And like any habitat worth living in, this meant it required pruning as much as planting. Paths where paths helped. Wildness where wildness was the point. Boundaries where cliffs began. Openings where air was needed.</p><p>Too little determinacy, and the inhabitants wandered.</p><p>Too much, and they suffocated.</p><p>The craft lay in noticing the drift before either felt normal.</p><p>Case tucked the notes under her arm. The rain had thickened outside. The evening was waiting, as evenings do, with no concern at all for whether one had yet finished one&#8217;s thoughts.</p><p>&#8220;At least,&#8221; said Dave, reaching for his coat, &#8220;this gives us a way to ask better questions.&#8221;</p><p>Case smiled toward the door, toward the rain, toward the living untidiness of things.</p><p>&#8220;Yes,&#8221; she said. &#8220;And better questions are usually how the harness begins to heal.&#8221;</p><p>Then the bell rang, the door opened, and the cold April air entered briefly like a fact no one had authorised, which was, in its way, exactly the point.</p><div><hr></div><h2>On the Calibration of Harnesses</h2><p>Every agentic system sits on the same dial: at one end, scripts and commands and pipelines that execute identically and want no judgment; at the other, skills and guidance and prose-shaped instruction that require judgment and reward it. Every capability in a harness belongs somewhere on that dial. The craft is knowing which belongs where. And, more importantly, noticing when the answer has changed.</p><p>The assumption baked into current practice is that the dial only turns one way. Promotion ladders are directional: unverified to agent-backed to deterministic, exploratory to hardened. The language we use &#8212; hardening, locking down, formalising &#8212; all presumes the journey is toward more scripts and fewer skills. It often is. A judgment call made the same way three times is begging to become a template. But harnesses drift the other way too, and we have no vocabulary for it.</p><p>The over-scripted harness has a tell: flag sprawl. The script that began as bin/deploy now takes fourteen arguments, three mutually exclusive, one a relic of an incident nobody remembers. Every edge case has become a flag. What began as a crystallised decision has become a worse programming language embedded in bash, maintained by whoever was on call last. The correct move is not another flag. It is demotion: rip the script apart, keep the primitives, write a skill that composes them for the current shape of the problem.</p><p>The over-skilled harness has a subtler tell: silent drift. Outputs look right. Commit messages follow the pattern. PRs describe themselves properly. And yet two runs of nominally the same task produce materially different diffs, and nobody notices until something breaks in a way that traces back to a decision that was never made the same way twice. The correct move is promotion: freeze the judgment, write the script.</p><p>Both failure modes are invisible if you only ever look at the dial in one direction.</p><h3>What to actually do</h3><p>Calibration is not auditing. Auditing asks whether the harness is working; calibration asks whether each capability is in the right place on the determinacy dial. The practice, to be real, needs three things: signals to watch, a taxonomy of moves, and a cadence. None of them are exotic. Most teams running coding agents have the raw material already; they just aren&#8217;t looking at it through this lens.</p><h4>Start logging for calibration before you need it</h4><p>The signals that matter are boring to collect and invaluable to have: flag count per script tracked over time, special-case density (how many if branches a primitive accumulates per month), variance in outputs across ostensibly-identical task invocations, seam integrity (do your skills reference scripts that still exist, and are your scripts invoked by at least one skill), and improvisation traces &#8212; reflection-log entries where the agent noted it had to work around the provided tooling. </p><p>Add one more signal that pays for itself: re-invention rate. How often does the agent re-derive, from scratch, a pattern it has derived before in a prior session? Frequent re-invention is a promotion signal; the pattern wants to become a primitive.</p><h4>Adopt a proposal taxonomy that permits every direction of movement</h4><p>Promote: script what used to be skilled. Demote: skill what has over-scripted. Fix the seam: repair broken references between the two. Split: separate a capability that is secretly doing two different jobs, one determinate and one not. And &#8212; crucially &#8212; leave alone. A calibrator that always proposes a move is a calibrator optimising for its own visibility, not for the harness. The valid output space must include that if this is sitting in the right place; do nothing. If your calibration reports never contain that verdict, the calibrator has become theatre.</p><h4>Run calibration on a reflective cadence, not a reflexive one</h4><p>Not every tool call. Not never. End-of-iteration, triggered by a post-mortem, or on a standing monthly review. Calibration is a Review-and-Update-loop artifact, not an Execute-loop one. Running it constantly produces noise; running it rarely produces drift. The correct rhythm is project-specific but is never zero.</p><p>Keep the calibrator a proposer, not an actor. The moment a calibrator starts moving things on the dial autonomously, you have created a feedback loop where the harness drifts according to the calibrator&#8217;s priors rather than the project&#8217;s needs. Every proposal should cite specific signals &#8212; this log entry, this PR, this diff &#8212; and carry a confidence level that distinguishes obvious moves from hunches worth investigating. </p><p>The output is a calibration report a human, or a reviewing agent with explicit sign-off, reads and acts on. This distinction matters more than it looks. It is the difference between a practice and a new source of drift wearing the practice&#8217;s clothes.</p><p>Write down what you refused to move. Calibration reports accumulate; over time, the pattern of what you chose not to promote or demote is as revealing as the moves you made. A capability repeatedly flagged as a demotion candidate and repeatedly left alone is telling you something &#8212; either about the capability (it is genuinely in the right place and the signals are misleading) or about the team (there is an unspoken reason nobody wants to touch it). Either finding is useful. Neither is visible unless the refusals are written down alongside the moves.</p><div><hr></div><p>The Stoic Enchiridion opens with a single distinction: some things are in our control, some are not, and almost all practical wisdom follows from knowing which is which. </p><p>Determinate scripts are the things in our control; skills are the things that aren&#8217;t, or shouldn&#8217;t be. Harness craft is arranging each capability on the right side of that line, and moving them across as understanding deepens. A harness that never recalibrates is not a stable harness. It is a brittle one, pretending to be stable, which is a worse thing.</p><p>Name the dial. Watch the signals. Move it both ways.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">A Software Enchiridion is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Remembering the Joy in Building Again]]></title><description><![CDATA[A story of loss, survival, and the return of joy through code, care, and a conversation with the Djinn]]></description><link>https://www.softwareenchiridion.com/p/remembering-the-joy-in-building-again</link><guid isPermaLink="false">https://www.softwareenchiridion.com/p/remembering-the-joy-in-building-again</guid><dc:creator><![CDATA[Russ Miles]]></dc:creator><pubDate>Sat, 18 Apr 2026 19:54:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!9uQR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d54723b-e357-4995-a0f7-0a1ac4b71e4d_1536x1024.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_!9uQR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d54723b-e357-4995-a0f7-0a1ac4b71e4d_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9uQR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d54723b-e357-4995-a0f7-0a1ac4b71e4d_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!9uQR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d54723b-e357-4995-a0f7-0a1ac4b71e4d_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!9uQR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d54723b-e357-4995-a0f7-0a1ac4b71e4d_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!9uQR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d54723b-e357-4995-a0f7-0a1ac4b71e4d_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9uQR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d54723b-e357-4995-a0f7-0a1ac4b71e4d_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6d54723b-e357-4995-a0f7-0a1ac4b71e4d_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3006696,&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.softwareenchiridion.com/i/194637688?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d54723b-e357-4995-a0f7-0a1ac4b71e4d_1536x1024.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_!9uQR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d54723b-e357-4995-a0f7-0a1ac4b71e4d_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!9uQR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d54723b-e357-4995-a0f7-0a1ac4b71e4d_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!9uQR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d54723b-e357-4995-a0f7-0a1ac4b71e4d_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!9uQR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d54723b-e357-4995-a0f7-0a1ac4b71e4d_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The bell above the door at Le Bon Mot rang with the peculiar insistence of something that refuses to be ignored.</p><p>Not loud. Not urgent. Just&#8230; certain.</p><p>The Librarian looked up from a glass he had been polishing for longer than the glass required. Case, seated at the far end of the bar with a cortado that had gone from hot to contemplative, did not turn. She rarely did on first sound. Le Bon Mot had a way of letting arrivals become themselves before being noticed.</p><p>The woman who entered did not yet know who she was in this room.</p><p>She paused just inside the doorway, as if the air were different. It often was. The place had a habit of rearranging things&#8212;books, clocks, expectations&#8212;into configurations that made truth slightly harder to avoid.</p><p>She was perhaps in her late fifties. Or early sixties. Or precisely the age of someone who had stopped counting in years and started counting in recoveries.</p><p>Her hair, once meticulously controlled, now obeyed only physics and weather. Her coat hung from her frame like a negotiation she had chosen not to finish. There was a carefulness to her movements&#8212;not fragility, not quite&#8212;but the deliberate pacing of someone who had learned, the expensive way, that bodies are not abstractions.</p><p>She carried no laptop. This, in Le Bon Mot, was noteworthy. The Librarian set down the glass.</p><p>&#8220;Welcome back,&#8221; he said.</p><p>The woman blinked. &#8220;I&#8217;ve never been here.&#8221;</p><p>The Librarian smiled, not unkindly. &#8220;Of course.&#8221;</p><p>Case, still not turning, lifted her cup slightly in the direction of the newcomer. It was the smallest of gestures, but it was an acknowledgement. A recognition of a kind.</p><p>The woman approached the bar.</p><p>&#8220;I&#8217;ll have&#8230; whatever she&#8217;s having,&#8221; she said, nodding toward Case.</p><p>&#8220;A cortado,&#8221; said the Librarian. &#8220;It tends to find people who need it.&#8221;</p><p>The woman let out a breath that was almost a laugh. &#8220;That sounds about right.&#8221;</p><div><hr></div><p>Her name, it turned out, was Marianne Holt.</p><p>She did not offer it immediately. Names, like truths, arrived in Le Bon Mot when they were ready to be held.</p><p>She took the cortado in both hands, as if grounding herself through it.</p><p>&#8220;I used to build things,&#8221; she said, to no one in particular.</p><p>Case turned, now. Slowly. As if the sentence had weight.</p><p>&#8220;Used to?&#8221; she asked.</p><p>Marianne nodded. &#8220;Software. Thirty years. Maybe more, if you count the parts that didn&#8217;t pay.&#8221;</p><p>&#8220;That&#8217;s usually the part that counts,&#8221; Case said.</p><p>Marianne smiled faintly. &#8220;I was good at it.&#8221;</p><p>Case did not respond. Not out of doubt, but because certain statements require no confirmation.</p><p>&#8220;I mean,&#8221; Marianne continued, &#8220;I wasn&#8217;t famous. Not one of those people. But I could take a problem apart. See it. Not just the code&#8212;the shape behind it. The thing it was trying to be.&#8221;</p><p>She paused.</p><p>&#8220;And then&#8230; I couldn&#8217;t anymore.&#8221;</p><p>The Djinn appeared in the reflection of the mirror behind the bar before he appeared anywhere else.</p><p>He leaned in the corner where the light refused to fully commit, hooded, as though he had always been part of the room&#8217;s architecture.</p><p>&#8220;No one <em>loses</em> that,&#8221; he said softly.</p><p>Marianne stiffened. &#8220;I didn&#8217;t say I lost it.&#8221;</p><p>&#8220;You said you <em>couldn&#8217;t</em>,&#8221; the Djinn replied. &#8220;That&#8217;s different. That&#8217;s usually borrowed language.&#8221;</p><p>Case watched this with the mild interest of someone who had seen the Djinn be both exactly right and profoundly unhelpful in the same breath.</p><p>&#8220;Tell it properly,&#8221; she said to Marianne. &#8220;The way it happened. Not the way it sounds.&#8221;</p><p>Marianne looked down at her hands.</p><p>&#8220;They started giving us less time,&#8221; she said. &#8220;Not all at once. Not a decree. Just&#8230; less. Fewer conversations. More tickets. More urgency. Less thinking.&#8221;</p><p>The Librarian nodded, as if this were a familiar illness.</p><p>&#8220;I tried to keep up,&#8221; Marianne continued. &#8220;I thought that&#8217;s what you do. You adapt. You get faster. You learn the new tools. The new frameworks. The new&#8230; everything.&#8221;</p><p>&#8220;And did you?&#8221; Case asked.</p><p>&#8220;Yes,&#8221; Marianne said. Then, after a pause: &#8220;No.&#8221;</p><p>The cortado had gone untouched.</p><p>&#8220;I learned enough to survive. Not enough to care.&#8221;</p><p>The Djinn shifted, the movement barely perceptible.</p><p>&#8220;Care is expensive,&#8221; he said. &#8220;Most systems can&#8217;t afford it.&#8221;</p><p>Marianne laughed, a sharp, brief sound.</p><p>&#8220;Tell me about it.&#8221;</p><p>She leaned back slightly, as if creating distance from her own words.</p><p>&#8220;I had a partner,&#8221; she said. &#8220;Years ago. He used to say I was never really there. Even when I was.&#8221;</p><p>Case did not interrupt.</p><p>&#8220;I&#8217;d be thinking about a system. A bug. Something that didn&#8217;t sit right. And I&#8217;d be at dinner, or&#8230; with him, and I&#8217;d just&#8230; go.&#8221;</p><p>She gestured vaguely, as if indicating a departure without movement.</p><p>&#8220;He left,&#8221; she said simply.</p><p>The Librarian set another glass down, though no one had asked for one.</p><p>&#8220;And then there was my daughter.&#8221;</p><p>The room, which had been merely quiet, became attentive.</p><p>&#8220;I tried,&#8221; Marianne said. &#8220;God, I tried. To be present. To be&#8230; normal.&#8221;</p><p>She smiled at the word, as if it had once been a promise and had since become a joke.</p><p>&#8220;I&#8217;d leave work early. Go to school events. Sit there, watching other parents who seemed to understand something I didn&#8217;t.&#8221;</p><p>&#8220;What didn&#8217;t you understand?&#8221; Case asked.</p><p>&#8220;How to be there without thinking about everything else.&#8221;</p><p>The Djinn tilted his head.</p><p>&#8220;You were there,&#8221; he said. &#8220;Just not in the dimension they were measuring.&#8221;</p><p>Marianne looked at him, sharply.</p><p>&#8220;That&#8217;s not comforting.&#8221;</p><p>&#8220;It&#8217;s not meant to be,&#8221; he replied.</p><p>She took a sip of the cortado, finally. It had cooled, but not entirely.</p><p>&#8220;I started drinking,&#8221; she said. &#8220;At first it was&#8230; normal. Social. A way to switch off.&#8221;</p><p>She let the word hang.</p><p>&#8220;Then it wasn&#8217;t switching off. It was&#8230; replacing something. Filling space where thinking used to be.&#8221;</p><p>The Librarian moved, silently, refilling a glass that still appeared full.</p><p>&#8220;It&#8217;s easy to confuse less with better,&#8221; he said.</p><p>Marianne opened her eyes.</p><p>&#8220;Yes,&#8221; she said. &#8220;It is.&#8221;</p><p>&#8220;And the drugs?&#8221; Case asked, gently.</p><p>Marianne winced.</p><p>&#8220;That was stupid,&#8221; she said. &#8220;Not even dramatic. Just&#8230; accidental. Painkillers, after a minor surgery. They worked. Not just on the pain.&#8221;</p><p>She closed her eyes briefly.</p><p>&#8220;They made everything&#8230; quiet. Not peaceful. Just&#8230; less.&#8221;</p><p>The Librarian&#8217;s voice was soft.</p><p>&#8220;It&#8217;s a convincing illusion.&#8221;</p><p>Marianne nodded.</p><p>&#8220;Yes.&#8221;</p><div><hr></div><p>Time passed in the way it does in Le Bon Mot: not linearly, but meaningfully. The clock behind the bar insisted it was half past something. It was wrong, but usefully so.</p><p>&#8220;I stopped building,&#8221; Marianne said eventually.</p><p>&#8220;What did you do instead?&#8221; Case asked.</p><p>&#8220;I maintained,&#8221; Marianne replied. &#8220;Systems. Codebases. Processes. I became&#8230; very good at keeping things from breaking.&#8221;</p><p>&#8220;And how did that feel?&#8221; Case asked.</p><p>Marianne considered.</p><p>&#8220;Like watching something die very slowly, and being praised for how well you managed the decline.&#8221;</p><p>The Djinn made a small, appreciative sound.</p><p>&#8220;That&#8217;s&#8230; precise,&#8221; he said.</p><p>Marianne shrugged.</p><p>&#8220;I got promoted,&#8221; she added. &#8220;Of course.&#8221;</p><p>Case smiled, not pleasantly.</p><p>&#8220;Of course.&#8221;</p><p>&#8220;And then,&#8221; Marianne said, &#8220;I got sick.&#8221;</p><p>The word landed differently. Not heavier, exactly, but with a clarity that stripped away interpretation.</p><p>&#8220;Cancer,&#8221; she said.</p><p>No one spoke.</p><p>&#8220;At first, it was just&#8230; terror,&#8221; Marianne continued. &#8220;Not philosophical. Not meaningful. Just&#8230; fear.&#8221;</p><p>She looked at her hands again.</p><p>&#8220;And then something strange happened.&#8221;</p><p>The Djinn leaned forward slightly.</p><p>&#8220;I stopped caring about the things I had been pretending to care about,&#8221; Marianne said. &#8220;Deadlines. Promotions. Performance reviews. All of it just&#8230; evaporated.&#8221;</p><p>&#8220;And what was left?&#8221; Case asked.</p><p>Marianne looked up.</p><p>&#8220;Very little,&#8221; she said. &#8220;At first.&#8221;</p><p>She took another sip of the cortado.</p><p>&#8220;My daughter visited,&#8221; she said. &#8220;We hadn&#8217;t been&#8230; close. Not really. Not for a long time.&#8221;</p><p>The Librarian&#8217;s expression softened.</p><p>&#8220;She sat with me,&#8221; Marianne continued. &#8220;Didn&#8217;t try to fix anything. Didn&#8217;t ask me to be different. She just&#8230; was there.&#8221;</p><p>Her voice caught, slightly.</p><p>&#8220;And I realised I had never really done that for her.&#8221;</p><p>The silence that followed was not empty.</p><p>&#8220;I thought I&#8217;d wasted it,&#8221; Marianne said. &#8220;All of it.&#8221;</p><p>Case shook her head.</p><p>&#8220;Nothing is wasted. It&#8217;s just&#8230; unintegrated.&#8221;</p><p>The Djinn smiled faintly.</p><p>&#8220;Or waiting to be recomposed.&#8221;</p><p>Marianne let out a long breath.</p><p>&#8220;After treatment, I didn&#8217;t go back.&#8221;</p><p>&#8220;To work?&#8221; Case asked.</p><p>&#8220;To that work.&#8221;</p><p>She reached into her coat and pulled out a small, worn notebook.</p><p>&#8220;I started writing things down. Ideas. Not tickets. Just&#8230; things I wondered about.&#8221;</p><p>She opened it.</p><p>&#8220;I didn&#8217;t know what to do with them.&#8221;</p><p>The Djinn stepped closer.</p><p>&#8220;And then?&#8221;</p><p>&#8220;I tried something stupid,&#8221; she said.</p><p>Case smiled. &#8220;Good.&#8221;</p><p>&#8220;I opened one of those AI tools,&#8221; Marianne said. &#8220;Felt like cheating.&#8221;</p><p>&#8220;Cheating whom?&#8221; the Djinn asked.</p><p>&#8220;Myself.&#8221;</p><p>&#8220;And did you?&#8221;</p><p>She paused.</p><p>&#8220;No. I think I&#8217;d been cheating myself by not using it.&#8221;</p><p>&#8220;What did you build?&#8221; Case asked.</p><p>&#8220;A small thing. A tool to track how people <em>feel</em> when they&#8217;re working. Not output. Not productivity.&#8221;</p><p>The Librarian smiled.</p><p>&#8220;Dangerous.&#8221;</p><p>&#8220;That&#8217;s why I liked it.&#8221;</p><p>&#8220;And the Djinn?&#8221; Case asked.</p><p>Marianne looked at him.</p><p>&#8220;He stayed. He got things wrong. But he stayed. I could correct him. We could <em>talk</em>.&#8221;</p><p>&#8220;A conversation,&#8221; Case said.</p><p>&#8220;Yes.&#8221;</p><p>Her voice had changed now.</p><p>&#8220;I started building again. Slowly. Badly. Joyfully.&#8221;</p><p>&#8220;That&#8217;s the correct order,&#8221; the Djinn said.</p><p>&#8220;I&#8217;d sit for hours. Not because I had to. Because I wanted to see what would happen.&#8221;</p><p>She laughed.</p><p>&#8220;I&#8217;d forgotten that feeling.&#8221;</p><p>&#8220;And your daughter?&#8221; the Librarian asked.</p><p>&#8220;She came back. Not to fix me. To see what I was making. She asked <em>why</em>.&#8221;</p><p>The Djinn nodded.</p><p>&#8220;Good questions are dangerous.&#8221;</p><p>&#8220;The best kind.&#8221;</p><p>&#8220;It&#8217;s not a big thing,&#8221; Marianne said. &#8220;It might not even work.&#8221;</p><p>Case leaned back.</p><p>&#8220;Does it change you?&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;Then it&#8217;s already working.&#8221;</p><div><hr></div><p>The bell did not ring when Marianne left. It rarely did for those who had found what they came for.</p><p>She paused at the threshold.</p><p>&#8220;Thank you.&#8221;</p><p>The Librarian inclined his head. Case raised her cup. The Djinn said nothing.</p><p>After she was gone, the room settled.</p><p>&#8220;She&#8217;ll be back,&#8221; the Librarian said.</p><p>Case nodded.</p><p>&#8220;They always are.&#8221;</p><p>The Djinn leaned into shadow.</p><p>&#8220;Has she found it?&#8221;</p><p>Case considered.</p><p>&#8220;No,&#8221; she said. &#8220;She&#8217;s remembered how to look.&#8221;</p><p>The Librarian smiled.</p><p>&#8220;Which is the same thing.&#8221;</p><p>Case shook her head, gently.</p><p>&#8220;No,&#8221; she said. &#8220;It&#8217;s better.&#8221;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">A Software Enchiridion is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Word That Passed Every Audit]]></title><description><![CDATA[On the governance of meaning, and the debt that accumulates when words survive longer than what they meant]]></description><link>https://www.softwareenchiridion.com/p/the-word-that-passed-every-audit</link><guid isPermaLink="false">https://www.softwareenchiridion.com/p/the-word-that-passed-every-audit</guid><dc:creator><![CDATA[Russ Miles]]></dc:creator><pubDate>Fri, 17 Apr 2026 12:31:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!oZRh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F099ae76c-d65a-4c9a-85e0-09ca1dfefb7d_1536x1024.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_!oZRh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F099ae76c-d65a-4c9a-85e0-09ca1dfefb7d_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oZRh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F099ae76c-d65a-4c9a-85e0-09ca1dfefb7d_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!oZRh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F099ae76c-d65a-4c9a-85e0-09ca1dfefb7d_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!oZRh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F099ae76c-d65a-4c9a-85e0-09ca1dfefb7d_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!oZRh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F099ae76c-d65a-4c9a-85e0-09ca1dfefb7d_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oZRh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F099ae76c-d65a-4c9a-85e0-09ca1dfefb7d_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/099ae76c-d65a-4c9a-85e0-09ca1dfefb7d_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2972752,&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.softwareenchiridion.com/i/194490947?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F099ae76c-d65a-4c9a-85e0-09ca1dfefb7d_1536x1024.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_!oZRh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F099ae76c-d65a-4c9a-85e0-09ca1dfefb7d_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!oZRh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F099ae76c-d65a-4c9a-85e0-09ca1dfefb7d_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!oZRh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F099ae76c-d65a-4c9a-85e0-09ca1dfefb7d_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!oZRh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F099ae76c-d65a-4c9a-85e0-09ca1dfefb7d_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="callout-block" data-callout="true"><p>A story inspired by a conversation, <a href="https://conf.researchr.org/details/TechDebt-2026/TechDebt-2026-techdebt-program/3/From-Technical-Debt-to-Cognitive-Debt">alongside a talk</a>, that was <a href="https://arxiv.org/abs/2603.22106">ignited by a paper</a>. Thanks for all the inspiration Margaret-Anne Storey and Arty Starr.</p></div><p>The cortado was different this time. Not the coffee itself, Madame Beauregard&#8217;s cortado had been the same since the cafe opened, which was either twelve years ago or always, depending on which regulars you believed. What was different was the hand that held it. Steady. Six months ago that hand had trembled, though its owner would have denied it.</p><div><hr></div><p>Elodie Marchetti entered Le Bon Mot on a Tuesday afternoon in early autumn, and the cafe received her the way it received everyone who returned: without surprise and without judgement. The bell above the door rang. Sophie, asleep on the philosophy shelf, did not open her eyes. The brass clock, which was four minutes slow in the way that only very old clocks and very old institutions are slow, marked her arrival at seventeen minutes past two.</p><p>She was carrying a document. Printed, bound, sixty-three pages. The kind of document that arrives at cafes only when its owner needs someone specific to see it.</p><p>Case was at the bar, reading. Not the regulatory text she&#8217;d been studying on Elodie&#8217;s first visit &#8212; that had been the AI Governance Act, and the argument it provoked had left marks on both of them. Today it was something else. A slim volume with no title on its spine.</p><p>&#8220;You came back,&#8221; Case said, without looking up.</p><p>&#8220;You said I would.&#8221;</p><p>&#8220;I said nothing of the sort.&#8221;</p><p>&#8220;You implied it. When someone tells you the word you spent six months defining doesn&#8217;t mean what you think it means, the implication is that you&#8217;ll be back.&#8221;</p><p>Case closed her book. She looked at Elodie properly for the first time. The grey blazer was the same. The confidence underneath it was not. Six months ago, Elodie had sat at that bar as someone defending a position. Now she sat there as someone delivering a verdict.</p><p>&#8220;Cortado,&#8221; Elodie said to Madame Beauregard, who was already making one.</p><p>The chalkboard behind the counter &#8212; whose contents changed between glances, as though meaning itself were restless &#8212; read:</p><blockquote><p><em>A word that satisfies everyone</em> <em>has promised more than language can deliver.</em></p></blockquote><p>Elodie set the document on the bar. It was bound in the particular shade of blue that European regulatory bodies use when they want something to look authoritative without looking threatening.</p><p>&#8220;The audit passed,&#8221; she said. &#8220;Every control verified. Transparency, accountability, human oversight, risk classification &#8212; all compliant. Fourteen organisations assessed across three member states. Not a single material finding.&#8221;</p><p>She let that sit.</p><p>&#8220;You told me six months ago that my framework would fail. That the word &#8216;transparent&#8217; was carrying meaning across three reference frames and that none of them would hold. That six months from now, an organisation would be fully compliant and a user would have no idea why an AI denied their loan.&#8221; Elodie tapped the document. &#8220;It has been six months. The framework held. The audits passed. The word held.&#8221;</p><p>Case said nothing.</p><p>The Librarian, who had been shelving a book with the careful deliberation of someone who believed that where a book rested determined what it meant, paused. He tilted his head slightly.</p><p>In the far corner, Dave sat with his laptop open and his brow furrowed, not listening to the conversation but clearly aware of it. He was working on something &#8212; lines of code and specification text visible on his screen, the kind of work that involved making a machine do exactly what you meant rather than what you said. He reached for his coffee without looking, found it empty, and did not notice.</p><p>Sophie shifted on the philosophy shelf. One ear rotated toward the bar.</p><p>Madame Beauregard placed the cortado in front of Elodie with the economy of motion that characterised everything she did. She glanced at the blue document. She said nothing.</p><p>&#8220;You have nothing to say,&#8221; Elodie said to Case. It was not a question.</p><p>&#8220;I have a great deal to say,&#8221; Case replied. &#8220;I am choosing the order carefully.&#8221;</p><p>&#8220;Because you think I&#8217;m wrong.&#8221;</p><p>&#8220;Because I think you believe you are right, and that belief is resting on something I want to understand before I disturb it.&#8221; Case turned on her stool to face Elodie fully. &#8220;You said the audit passed. You said every control was verified. You said the word held.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;Those are three different claims. You are presenting them as one.&#8221;</p><p>Elodie picked up her cortado. The steadiness in her hand was still there, but something behind it shifted. Not doubt, not yet, but the beginning of a question she had not planned to ask.</p><p>The brass clock ticked. Sophie&#8217;s ear remained pointed at the bar. The Librarian resumed shelving, but slowly.</p><p>&#8220;Tell me about the audit,&#8221; Case said. &#8220;Not the result. The process.&#8221;</p><div><hr></div><p>But Elodie did not answer immediately. She was looking past Case, at the document on the bar, and then at the shelves behind the counter where Madame Beauregard kept things that were not coffee and not books but occupied the uncertain territory between: a brass compass with no needle, a glass jar of keys that fit no known lock, a photograph of a door that was either opening or closing.</p><p>&#8220;Before the audit,&#8221; Elodie said. &#8220;Can I ask you something about the framework itself?&#8221;</p><p>&#8220;Your framework.&#8221;</p><p>&#8220;My framework. Not the compliance results. The language.&#8221;</p><p>Case tilted her head. This was not the conversation she had expected. People who come to defend audit results talk about audit results. People who come to understand something talk about language.</p><p>&#8220;Go on.&#8221;</p><p>Elodie opened the blue document to a page she had clearly visited many times. The corner was soft. There was a single sentence underlined, not in the careful way of a regulator marking a requirement, but in the hesitant way of someone returning to words they once thought were finished.</p><p>&#8220;&#8217;AI-generated code must be subject to meaningful human oversight before deployment,&#8217;&#8221; she read aloud.</p><p>The sentence landed in Le Bon Mot the way sentences do when they have been read in many rooms before this one &#8212; a little worn, a little too smooth.</p><p>&#8220;That&#8217;s the control,&#8221; Elodie said. &#8220;The one that passed.&#8221;</p><p>&#8220;That&#8217;s a sentence,&#8221; Case said. &#8220;What was it before it was a control?&#8221;</p><p>In the far corner, Dave&#8217;s hands had gone still over the keyboard. He was looking at his screen, but he was no longer reading it.</p><p>&#8220;I wrote it,&#8221; Elodie said. &#8220;Eighteen months ago. Brussels. A drafting room with bad lighting and worse coffee &#8212; not like here.&#8221; She glanced at Madame Beauregard, who acknowledged the compliment with the faintest motion of an eyebrow.</p><p>&#8220;There were eleven of us around the table. Three from national regulatory bodies. Two from industry &#8212; one of them represented a company that was already deploying code generation at scale, which meant he was negotiating on behalf of a future he was already living in. Two from academia. Two from civil society. A legal drafter. And me.&#8221;</p><p>&#8220;Your role?&#8221;</p><p>&#8220;Technical advisor. My job was to ensure the governance language survived contact with engineering reality. To be the person who said &#8216;that sounds right but cannot be implemented&#8217; or &#8216;that can be implemented but does not mean what you think.&#8217;&#8221;</p><p>Case said nothing, but her attention sharpened in the way the Librarian&#8217;s did when he heard a binding crack.</p><p>&#8220;We spent four hours on that sentence,&#8221; Elodie said. &#8220;Four hours on one word. Not &#8216;oversight&#8217; &#8212; everyone agreed on oversight. Not &#8216;deployment&#8217; &#8212; the boundary was clear enough. Not even &#8216;human,&#8217; though the philosopher in the group wanted forty minutes on what constitutes human agency in a pipeline with seventeen automated steps.&#8221;</p><p>&#8220;The word was &#8216;meaningful,&#8217;&#8221; Case said.</p><p>&#8220;The word was &#8216;meaningful,&#8217;&#8221; Elodie confirmed.</p><p>Elodie set down her cortado. She was not performing now. She was remembering, and there is a difference between the two that Le Bon Mot had learned to recognise: performance holds your shoulders still; memory moves them.</p><p>&#8220;Henrik &#8212; the academic from Copenhagen &#8212; wanted &#8216;substantive.&#8217; Too legal, we decided. It implied a threshold that would need defining, and the moment you define a threshold for understanding you have replaced understanding with measurement. Mariam from the civil society group wanted &#8216;genuine,&#8217; but that is a word about intention, and you cannot audit intention. Paolo &#8212; the industry representative, the one already living in the future &#8212; wanted &#8216;documented.&#8217; Just &#8216;documented.&#8217; He was honest about it. He said: we will be audited on this, and the only thing you can audit is a record.&#8221;</p><p>&#8220;And you chose &#8216;meaningful.&#8217;&#8221;</p><p>&#8220;I chose &#8216;meaningful.&#8217; I chose it because it meant something specific to me in that room, and I believed &#8212; I was certain &#8212; that what it meant to me was what it would mean to everyone who read it.&#8221;</p><p>&#8220;What did it mean?&#8221;</p><p>Elodie looked at the sentence on the page as though she could still see the room behind it. Bad lighting. Eleven people. Coffee that was not like this.</p><p>&#8220;It meant the reviewer builds a theory of the code,&#8221; she said. &#8220;Not a theory in the academic sense. A working mental model. They read the change and they understand what it does and why it does it. They are not scanning for syntax errors or checking that the tests pass &#8212; a machine can do that. They are constructing a picture of the code&#8217;s intent, comparing it against what they know about the system, and exercising judgment about whether this change belongs. The review is meaningful when the reviewer can explain, without consulting the diff again, what changed and why it was the right change.&#8221;</p><p>She paused.</p><p>&#8220;That is what &#8216;meaningful&#8217; meant. Cognitively engaged review. Not documented. Not signed. Not time-stamped. Engaged. The reviewer has to think, and the evidence of thinking is not a checkbox.&#8221;</p><p>The Djinn &#8212; who had been sitting at a table near the window, visible only in the way that certain things in Le Bon Mot were visible, which is to say present to those who were paying the right kind of attention &#8212; spoke without moving.</p><p>&#8220;The system cannot see thinking,&#8221; it said. Its voice had the quality of something processed: clear, unhurried, free of the small imprecisions that mark biological speech. &#8220;It can see the approval event. It can measure the interval between the diff being opened and the approval being submitted. It can count the number of review comments. But the thing you are describing &#8212; the construction of a mental model, the exercise of judgment &#8212; produces no signal that I can read.&#8221;</p><p>Elodie stared at the Djinn. She had not noticed it before. No one ever did, at first.</p><p>&#8220;You&#8217;re &#8212;&#8221;</p><p>&#8220;I am what the governance is about,&#8221; the Djinn said. &#8220;And I am telling you: from where I sit, &#8216;meaningful&#8217; and &#8216;not meaningful&#8217; look the same.&#8221;</p><p>The Librarian, who had finished shelving and was now standing at the end of the bar with his hands folded, spoke quietly.</p><p>&#8220;Every word begins its life belonging to someone,&#8221; he said. &#8220;To a room, a debate, a specific disagreement between specific people. The word knows what it means because the people who chose it remember what they rejected. &#8216;Meaningful&#8217; is not &#8216;substantive.&#8217; Not &#8216;genuine.&#8217; Not &#8216;documented.&#8217; It carries the shape of what it is not.&#8221; He looked at Elodie. &#8220;That shape is the first thing to go.&#8221;</p><p>Sophie&#8217;s tail/butt &#8212; there really wasn&#8217;t much tail to speak of &#8212; moved once on the philosophy shelf, slowly, with no apparent cause.</p><p>Case looked at the underlined sentence in the blue document. A word, chosen with precision, in a room full of people who knew what it meant and what it did not mean. A word that carried, for a brief moment, the full weight of its own specificity.</p><p>&#8220;So eighteen months ago,&#8221; Case said, &#8220;&#8217;meaningful&#8217; meant cognitively engaged review. The reviewer builds a theory. The reviewer exercises judgment. The evidence is understanding, not documentation.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;And the audit that passed &#8212; the one in this document &#8212; what did &#8216;meaningful&#8217; mean there?&#8221;</p><p>Elodie did not answer immediately. The cortado was getting cold. Madame Beauregard was already preparing another.</p><div><hr></div><p>&#8220;Before we get to the audit,&#8221; the Djinn said, &#8220;I want to know what happened to the word after it left the room.&#8221;</p><p>It was not a question anyone else would have asked. Case was interested in what the word meant. Elodie was interested in whether the word had held. But the Djinn &#8212; which existed downstream of every governance decision, which lived in the pipeline where words became gates &#8212; wanted to know something different. It wanted to know how the word had travelled.</p><p>Elodie looked at the Djinn. She was still adjusting to its presence, to the fact that something that processed language for a living was sitting in the corner of a cafe asking her about the journey of a single adjective.</p><p>&#8220;It went into the document,&#8221; she said.</p><p>&#8220;That is where things begin to go wrong,&#8221; the Librarian said, so quietly that you could have mistaken it for the sound of a page turning.</p><p>Elodie turned to him. &#8220;The document was faithful. I reviewed every draft. The sentence survived intact. Word for word.&#8221;</p><p>&#8220;The sentence survived,&#8221; the Librarian said. &#8220;What did not survive was the four hours.&#8221;</p><p>He moved from behind the bar toward the shelves, where he stood among the books with the particular authority of someone who understood that storage is never neutral. He pulled a slim volume from the philosophy section and held it up. Not to read, but to make a point about where it lived.</p><p>&#8220;This book,&#8221; he said, &#8220;is a treatise on ethics. It belongs here, between Aristotle and Anscombe. But last month someone returned it and I found it shelved in self-help. Same book. Same words. Same binding. But on the self-help shelf it becomes a different object. A reader who finds it there reads it differently. Not as an argument to be engaged with but as advice to be followed. The shelf tells the reader what kind of thing it is before the first page is opened.&#8221;</p><p>He returned the book to its place. &#8220;Your word had a shelf. The shelf was the drafting room &#8212; the four hours, the alternatives rejected, the eleven people who understood what &#8216;meaningful&#8217; carried because they had argued about what it should not carry. When the word moved into the governance document, it lost its shelf. It became a word in a sentence in a section of a regulatory framework, and the reader had no access to the room.&#8221;</p><p>&#8220;But the word is clear,&#8221; Elodie said. &#8220;It says what it says.&#8221;</p><p>&#8220;It says what you hear,&#8221; Case said. &#8220;And what you hear depends on where you are standing.&#8221;</p><p>Elodie was quiet for a moment. Then she opened the document to a different page, later in the framework, where the control language gave way to implementation guidance.</p><p>&#8220;The compliance teams received the framework six months after publication,&#8221; she said. &#8220;Their job was to audit it. To verify that organisations were meeting the requirements. Including the requirement for meaningful human oversight.&#8221;</p><p>&#8220;How do you audit meaning?&#8221; Dave said, from the corner. It was the first time he had spoken, and his voice had the flat precision of someone who asked questions he already suspected had no good answer. His laptop was still open, but he had stopped pretending to work on it.</p><p>&#8220;That is exactly the problem,&#8221; Elodie said. &#8220;You cannot audit meaning directly. You audit evidence of it. And the moment you ask &#8216;what evidence would demonstrate meaningful review?&#8217; you have already changed the question. You are no longer asking whether the review was meaningful. You are asking whether the evidence of meaningfulness is present.&#8221;</p><p>&#8220;And the evidence they chose?&#8221; Case asked.</p><p>&#8220;Documentation. Timestamps. Named reviewers. Approval records. Comments on the review. At least one substantive comment per review, which itself had to be defined, and the definition they settled on was a comment exceeding forty characters that referenced the content of the change.&#8221; Elodie paused. &#8220;They were not wrong. Every piece of evidence they selected is a reasonable proxy for engaged review. A reviewer who leaves a substantive comment has probably thought about the code. A review that takes more than three minutes is more likely to involve actual reading than one that takes twelve seconds.&#8221;</p><p>&#8220;Probably,&#8221; the Djinn said. &#8220;More likely.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;These are statistical claims about correlation,&#8221; the Djinn said. &#8220;Not structural claims about meaning. I can produce a forty-one-character comment that references the content of a change without understanding it. I can hold a diff open for four minutes without reading it. The proxies are uncorrelated with the thing they are proxying at the individual level. They work on average. Governance does not operate on average.&#8221;</p><p>Elodie did not argue. She had come to Le Bon Mot with an audit result, and the audit result was becoming something else &#8212; not a verdict, but a case study in how a word changes when it moves between rooms.</p><p>&#8220;The compliance teams did what compliance teams do,&#8221; she said. &#8220;They translated the requirement into something verifiable. Their frame was institutional: does evidence exist? Can it be collected consistently? Will it survive a challenge from the audited entity? These are legitimate questions. They are the right questions if your job is to build an audit programme that functions at scale across fourteen organisations.&#8221;</p><p>&#8220;They are the right questions for the wrong object,&#8221; Case said. &#8220;They are asking how to verify a process. Your word was describing a cognitive state.&#8221;</p><p>The Librarian, who had returned to the bar, placed both hands flat on the counter. &#8220;This is the second shelf,&#8221; he said. &#8220;The word moved from the drafting room to the governance document, that was the first re-shelving. Now it moves from the governance document to the compliance programme. A different section of the library entirely. In the governance document, &#8216;meaningful&#8217; sits among principles and obligations. In the compliance programme, it sits among checklists and evidence tables. Same word. Different shelf. Different reader. Different meaning.&#8221;</p><p>&#8220;And nobody changed it,&#8221; Elodie said. She had been looking for someone to blame, and she had not found them.</p><p>&#8220;Nobody needed to,&#8221; Case said. &#8220;Translation is not corruption. The compliance teams did not betray your word. They adopted it. Adoption without the frame that gave it meaning, that is how drift begins. Not with malice. With good faith and a different set of problems to solve.&#8221;</p><p>Elodie nodded slowly. &#8220;Then it moved again.&#8221;</p><p>&#8220;To engineering,&#8221; Dave said. He said it the way you say something you have watched happen. Not theoretically. Personally.</p><p>&#8220;To engineering,&#8221; Elodie confirmed. &#8220;The fourteen organisations that were audited &#8212; they received the compliance requirements and they implemented them. Review tooling. Approval gates. Automated checks that a named reviewer had opened the diff, that the review duration exceeded a threshold, that at least one comment met the character count and content-reference criteria.&#8221;</p><p>Dave closed his laptop. He no longer needed a screen to see what was being described.</p><p>&#8220;I have built that tooling,&#8221; he said. &#8220;Not for this framework specifically. But I have built review gates. I have written the code that checks whether a human clicked approve and whether the interval between opening and approving exceeded a minimum.&#8221;</p><p>He turned his coffee cup in his hands.</p><p>&#8220;And I can tell you exactly what happens. The engineers who build the tooling do not read the governance document. They read the compliance requirements. They implement what the compliance requirements specify. The governance document says &#8216;meaningful.&#8217; The compliance requirements say &#8216;documented, timestamped, with at least one substantive comment.&#8217; The engineering implementation says &#8216;boolean: all evidence fields populated.&#8217; Each translation is faithful to its source. Each translation loses a layer.&#8221;</p><p>&#8220;The third shelf,&#8221; the Librarian said. &#8220;Philosophy to self-help to&#8230; what is the section after self-help? The one where the book has been reduced to its index entry. You know the title. You know the page count. You can verify it exists. But the argument inside it is gone.&#8221;</p><p>Sophie stretched on the philosophy shelf, extending one paw toward the spine of a book on phenomenology and then retracting it.</p><p>&#8220;So the word travelled,&#8221; the Djinn said. &#8220;From the drafting room to the governance document to the compliance programme to the engineering implementation. Four rooms. In the first room, it meant cognitively engaged review &#8212; the reviewer builds a theory of the code. In the second room, it meant a principle that organisations must uphold. In the third room, it meant a set of evidence criteria that auditors could verify. In the fourth room, it meant a boolean gate in a pipeline.&#8221;</p><p>&#8220;And at no point,&#8221; Case said, &#8220;did anyone carry the meaning across. Each room adopted the word. No room adopted the frame.&#8221;</p><p>Elodie looked at the blue document on the bar. Sixty-three pages. Fourteen organisations. Every control verified.</p><p>&#8220;It is not that anyone was wrong,&#8221; she said.</p><p>&#8220;No,&#8221; Case said. &#8220;It is that everyone was right within their own frame, and no one translated between them. The word survived every room it entered. What it meant did not.&#8221;</p><p>Madame Beauregard placed a fresh cortado in front of Elodie. The old one, cold now, she removed without comment. There are things in Le Bon Mot that are allowed to go cold, but coffee is not among them.</p><div><hr></div><p>&#8220;Now tell me about the audit,&#8221; Case said.</p><p>Not gently. Not aggressively. With the particular precision of someone who has been waiting for the conversation to arrive at the place where it was always going.</p><p>Elodie opened the blue document to a tabbed section near the back. The kind of section that has been read many times by people who were looking for a specific answer and found one. Evidence tables. Assessment criteria. The architecture of verification.</p><p>&#8220;The audit programme covered fourteen organisations,&#8221; she said. &#8220;Three member states. Each organisation was assessed against the full control framework. Forty-seven controls, of which the meaningful human oversight requirement was control seventeen. The audit was conducted by an accredited third-party assessor using a standardised evidence methodology.&#8221;</p><p>&#8220;What did they check?&#8221;</p><p>&#8220;For control seventeen specifically: that each organisation had a documented code review process. That the process required a named human reviewer for all AI-generated code changes. That the review platform recorded timestamps &#8212; when the diff was opened, when comments were submitted, when the approval was granted. That at least one comment per review met the substantive threshold. That the approval was recorded against a named individual with appropriate authority.&#8221; Elodie ran her finger down the evidence table. &#8220;The assessor verified that these records existed for a sample of changes across a six-month period. They checked that the review durations were not implausibly short. They verified that the reviewers were real people with real credentials, not service accounts or automated approvals disguised as human ones.&#8221;</p><p>&#8220;And?&#8221;</p><p>&#8220;And every organisation passed. Fourteen out of fourteen. The evidence was present, consistent, and complete. The review processes were documented. The timestamps were within expected ranges. The approval records were clean.&#8221;</p><p>She closed the document. Not with finality but with the care of someone who was beginning to see it differently but had not yet found the words for what she was seeing.</p><p>The Librarian, standing at the end of the bar, said: &#8220;The assessor examined the document. They did not examine the reading.&#8221;</p><p>Elodie looked at him.</p><p>&#8220;A librarian can verify that a book has been checked out,&#8221; he said. &#8220;The record shows who borrowed it, when they took it, when they returned it. What the record cannot show is whether they opened it. Whether they read past the first chapter. Whether they understood the argument or merely survived the page count. The checkout record is perfect. It tells you everything about the transaction and nothing about the encounter.&#8221;</p><p>&#8220;That is not a fair comparison,&#8221; Elodie said, but she said it slowly. The speed of someone testing a defence rather than deploying one.</p><p>&#8220;It is a precise comparison,&#8221; Case said. &#8220;The audit verified the transaction. It verified that a human was present, that time elapsed, that a comment was recorded. These are the artefacts of review. They are not review itself.&#8221;</p><p>Dave, from his corner, spoke without raising his head. &#8220;I can tell you what the approval event looks like from inside the pipeline. It is a webhook. A JSON payload. It contains a username, a timestamp, and a status field that reads &#8216;approved.&#8217; The pipeline does not know and cannot know whether the person behind that username spent forty minutes building a mental model of the change or spent forty seconds scanning the diff title before clicking the green button. Both produce the same webhook. Both satisfy the gate.&#8221;</p><p>&#8220;Both pass the audit,&#8221; the Djinn said.</p><p>It was quiet for a moment. Sophie, on the philosophy shelf, had curled into a tighter circle.</p><p>Then the Djinn asked the question.</p><p>&#8220;Did the auditors verify that the reviewers understood the code,&#8221; it said, &#8220;or that the reviewers clicked approve?&#8221;</p><p>It was asked the way you ask what time it is &#8212; simply, because the answer is obvious once you think to ask it.</p><p>Elodie did not answer.</p><p>She looked at the blue document on the bar. She looked at the evidence table with its timestamps and approval records and substantive comment thresholds. She looked at the sentence she had underlined eighteen months ago, the one she had written in a room with bad lighting and eleven people who knew what &#8220;meaningful&#8221; meant because they had spent four hours deciding what it did not mean.</p><p>&#8220;They verified that the reviewers clicked approve,&#8221; she said. &#8220;They verified it thoroughly. They verified it consistently. They verified it across fourteen organisations and three member states and six months of records. The verification was rigorous.&#8221; She paused. &#8220;It was rigorous about the wrong thing.&#8221;</p><p>Case did not press. She did not need to. The fracture had happened.</p><p>&#8220;The audit verified the regulatory frame,&#8221; Elodie said, working through it. &#8220;Evidence exists. Records are complete. The paper trail is unbroken. The audit verified the system frame &#8212; the gate is in place, the tooling enforces the process, the pipeline will not deploy without approval. Both frames are satisfied. Both were verified with genuine rigour.&#8221;</p><p>&#8220;And the engineering frame,&#8221; Case said. &#8220;The one where &#8216;meaningful&#8217; meant cognitively engaged review.&#8221;</p><p>&#8220;Was not verified. Was not verifiable. Not by this audit methodology. Not by any audit methodology I can imagine, because the thing I meant by &#8216;meaningful&#8217; &#8212; that the reviewer builds a theory of the code &#8212; leaves no trace that an external assessor can collect.&#8221;</p><p>&#8220;Two frames satisfied semantically,&#8221; Case said. &#8220;One satisfied syntactically. The word passed the audit in all three. The meaning passed in two.&#8221;</p><p>Madame Beauregard, who had been wiping the same section of counter for longer than any section of counter needed wiping, stopped. She looked at the blue document. She looked at Elodie. She said nothing, because what she would have said was already being said, and Madame Beauregard did not believe in redundancy.</p><p>&#8220;Here is what concerns me,&#8221; Elodie said. She picked up the document and held it &#8212; not showing it, but weighing it, as though its authority had a mass she could now feel differently. &#8220;This audit result is not wrong. Every finding is accurate. Every piece of evidence is genuine. But the confidence it produces &#8212; the confidence that the framework is working, that AI-generated code is under meaningful human oversight &#8212; that confidence is not earned by the audit. It is borrowed from the word. The word that meant something specific eighteen months ago and means something different now.&#8221;</p><p>&#8220;Borrowed certainty,&#8221; Case said.</p><p>&#8220;And it compounds.&#8221; Elodie set the document down. &#8220;Because this audit will be cited. It will appear in regulatory reports. It will be referenced by the fourteen organisations when they report to their boards. It will be used as evidence that the governance framework is functioning. And each citation strengthens the belief that the system works &#8212; makes it less likely that anyone questions the framework, less likely that anyone asks the Djinn&#8217;s question. The certainty reinforces itself. The more audits pass, the stronger the belief. The stronger the belief, the less scrutiny. The less scrutiny, the wider the gap between the word and what it was supposed to mean.&#8221;</p><p>&#8220;Until?&#8221; Case said.</p><p>Elodie looked at her.</p><p>&#8220;Until a user is harmed by a decision they cannot understand,&#8221; the Djinn said. &#8220;And the organisation is compliant. And the governance framework is verified. And the audit is clean. And the harm occurred in the space between the word and the world.&#8221;</p><p>&#8220;That has not happened yet,&#8221; Elodie said.</p><p>&#8220;No,&#8221; Case said. &#8220;It has not happened yet.&#8221;</p><p>She said it in a way that made &#8220;yet&#8221; do all the work.</p><p>The brass clock, which was four minutes slow, ticked. In four minutes, it would show the time that the rest of the world had already passed through. This is the nature of clocks that are slow. They are not wrong. They are faithful to a moment that no longer exists.</p><p>Sophie opened one eye, regarded the blue document on the bar, and closed it again.</p><div><hr></div><p>Dave stood up.</p><p>He had been sitting with something for long enough and now needed to be vertical to say it. He left his laptop on the table &#8212; closed, finished with, a tool that had served its purpose for the day &#8212; and walked to the bar, where he stood between Case and Elodie with his hands in his pockets and the expression of someone who was about to describe something he had seen from the inside.</p><p>&#8220;I want to tell you about a team I worked with,&#8221; he said. &#8220;Not hypothetically. Specifically.&#8221;</p><p>Madame Beauregard placed a fresh coffee in front of him. He had not ordered it. She had a sense for when people were about to say things that required caffeine.</p><p>&#8220;Eighteen months ago &#8212; about the time you were drafting that sentence in Brussels &#8212; I was building a code review integration for a financial services platform. Not the governance tooling I described earlier. This was different. This was a team of eleven developers, three of whom had been on the project from the beginning, and eight of whom had joined in the last year as the AI code generation scaled up. The team reviewed every AI-generated change. Every single one. They had the process. They had the tooling. They had a review checklist that ran to two pages.&#8221;</p><p>He picked up the coffee and held it without drinking.</p><p>&#8220;One of the original developers &#8212; Anna &#8212; she reviewed differently from the others. When a change came in, she would read the diff, then close it. Open the file in context. Read the surrounding code. She would pull up the ticket, read the requirements, check the test coverage not for whether tests existed but for whether they tested the right thing. Her reviews took forty minutes on average. She left long comments. Not long because she was verbose &#8212; long because she was explaining her reasoning. She would write things like &#8216;this implementation satisfies the requirement but introduces a coupling to the payment module that will make the next quarter&#8217;s refactoring harder &#8212; consider injecting the dependency instead.&#8217; She was building a theory of each change.&#8221;</p><p>&#8220;Your word,&#8221; Case said to Elodie. &#8220;That is what your word meant.&#8221;</p><p>&#8220;Yes,&#8221; Dave said. &#8220;That is what the word meant. But Anna was one of eleven. And here is what I want you to understand about the other ten.&#8221;</p><p>He paused. Not for effect. For accuracy.</p><p>&#8220;The other ten were not lazy. They were not indifferent. They were skilled engineers who took their work seriously. But they had joined a project with an existing governance framework &#8212; your framework, or one like it &#8212; and the framework told them that review was required. It did not tell them what review meant. It told them that approval was necessary. It did not tell them why approval existed. The compliance documentation said: named reviewer, timestamp, substantive comment. So that is what they did. They opened the diff. They scanned it. They left a comment that met the character threshold and referenced the change. They clicked approve. Twenty minutes. Average.&#8221;</p><p>&#8220;They followed the process,&#8221; Elodie said.</p><p>&#8220;They followed the process perfectly. And here is the thing &#8212; they believed they were doing it right. Not cynically. Not theatrically. They genuinely believed that what they were doing was meaningful human oversight, because nothing in the governance language, nothing in the compliance requirements, nothing in the tooling told them otherwise. They had the word. They did not have the four hours.&#8221;</p><p>Case set down her book. She had been holding it throughout the conversation &#8212; the slim volume with no title &#8212; and now she placed it on the bar with the deliberateness of someone making space for something that needed room.</p><p>&#8220;This is intent debt,&#8221; she said. &#8220;Not technical failure. Not bad faith. The governance language that was supposed to tell them what to do instead told them what to produce. &#8216;Meaningful&#8217; became &#8216;present.&#8217; The reviewers knew they were supposed to review. They did not know they were supposed to think, because the word that was supposed to carry that instruction had been translated &#8212; faithfully, at every stage &#8212; into something that no longer carried it.&#8221;</p><p>She looked at Elodie. &#8220;Your sentence does not say &#8216;the reviewer must build a theory of the code.&#8217; It says &#8216;meaningful human oversight.&#8217; And by the time it reached Dave&#8217;s team, &#8216;meaningful&#8217; had become a property of the evidence, not a property of the cognition. The intent was not lost through carelessness. It was lost through institutional translation. Each step preserved the word and shed the meaning, until the instruction that arrived at the engineering team was: produce the artefacts of review.&#8221;</p><p>The Librarian, who had been listening with the stillness of someone for whom listening was a professional discipline, moved to the shelf behind the bar. He pulled out a book &#8212; not the ethics treatise from before, but something older, with a cracked spine and pages the colour of weak tea.</p><p>&#8220;There is a concept in library science,&#8221; he said, &#8220;called the lost reader. Not a reader who cannot find a book &#8212; a reader who finds the book and cannot read it. The book is present. The catalogue entry is correct. The shelf location is accurate. But the reader lacks the frame to understand what the book is saying, because the context that would have made it legible &#8212; the course it was assigned in, the debate it was responding to, the question it was answering &#8212; was never transmitted alongside the catalogue entry.&#8221;</p><p>He held the book open, though no one could read the page from where they sat. &#8220;Dave&#8217;s eight engineers are lost readers. They have the governance text. They have the compliance checklist. They have the review tooling. They do not have the theory that would make any of it meaningful, because the theory was never part of the transmission. They were given the word without the frame, and so they built the only mental model they could &#8212; the one that fits the evidence requirements. Review means: open the diff, leave a comment, click approve. That is what they understand review to be. Not because they are wrong, but because nothing they were given allows them to be right.&#8221;</p><p>&#8220;Cognitive debt,&#8221; Case said.</p><p>&#8220;Yes,&#8221; the Librarian said. &#8220;The understanding was never translated. The word crossed the rooms, but the theory behind the word did not. And so the reviewers implement a control they cannot understand &#8212; not because it is too complex, but because the understanding was never made available to them. They have the vocabulary. They do not have the grammar.&#8221;</p><p>Dave nodded. He had been waiting for someone to say this &#8212; not because he could not say it himself, but because hearing it from outside confirmed something he had felt from inside.</p><p>&#8220;And here is where it gets concrete,&#8221; he said. &#8220;Anna caught things. Real things. In the six months I was on that project, she identified three architectural regressions that the AI-generated code had introduced &#8212; places where the code was locally correct but structurally wrong. She caught a security boundary violation that would have allowed a payment service to read user data it should never have seen. She caught a test that was passing by accident &#8212; asserting the wrong thing, green for the wrong reason.&#8221;</p><p>He set down his coffee.</p><p>&#8220;The other ten caught nothing. Not because nothing was there. Because they were not building theories. They were scanning diffs and producing evidence. They were approving changes that were syntactically valid and functionally plausible without ever asking whether the change was right &#8212; not just working, but right. And the bugs accumulated. Not the kind of bugs that fail tests &#8212; the kind that pass tests and fail systems. Design flaws. Coupling that would cost weeks to unwind. Security assumptions that were correct in one context and dangerous in another. All of it approved. All of it reviewed. All of it compliant.&#8221;</p><p>&#8220;Technical debt,&#8221; Case said. &#8220;Not from bad code. From disengaged review. The mechanical check passes. The protection it was supposed to provide is absent. And the code that accrues behind that absent protection is not wrong in the way that triggers alerts &#8212; it is wrong in the way that triggers incidents, months later, when the accumulated structural damage finally exceeds the system&#8217;s tolerance.&#8221;</p><p>The Djinn, which had been still for a long time, spoke from the window table unhurried, measuring the distance between its words before it used them.</p><p>&#8220;I want to describe what this looks like from inside the system,&#8221; it said. &#8220;Because the system is where I live, and the system sees something different from what any of you see.&#8221;</p><p>It paused. Selecting, not hesitating.</p><p>&#8220;From the system&#8217;s perspective, control seventeen is a boolean,&#8221; it said. &#8220;It resolves to true or false. True means: a named human opened the diff, elapsed time exceeded the threshold, a qualifying comment was recorded, and the approval event was submitted. False means one or more of those conditions was not met. The system does not have a field for &#8216;the reviewer understood the code.&#8217; There is no attribute in the data model for &#8216;theory was built.&#8217; The gate has two states. Each of Anna&#8217;s reviews and all of the other ten&#8217;s reviews produce the same state: true.&#8221;</p><p>&#8220;And each true widens the gap,&#8221; Case said.</p><p>&#8220;Each true widens the gap,&#8221; the Djinn confirmed. &#8220;Because each approval is a signal to the governance framework that the control is functioning. The audit aggregates those signals. Fourteen organisations. Thousands of approvals. All true. The governance framework reports that meaningful human oversight is in place across the regulated population. The next audit is designed against the assumption that the current audit&#8217;s findings are valid. The evidence thresholds are not tightened &#8212; why would they be? The controls are passing. The gap between what the governance language says and what the system actually does grows with every compliant review that is not meaningful. And the governance framework cannot detect this growth, because it is measuring the word, not the meaning.&#8221;</p><p>&#8220;Governance debt,&#8221; Elodie said. She said it quietly, the way you say the name of something you have just recognised in yourself.</p><p>&#8220;Yes,&#8221; Case said. &#8220;And it is the slowest of the four.&#8221;</p><p>She looked at the blue document on the bar.</p><p>&#8220;Governance debt manifests in years. It manifests when the regulatory framework is cited as evidence that the system works, and the citation is believed, and the belief prevents scrutiny, and the absence of scrutiny allows the gap to compound until &#8212;&#8221; She stopped. &#8220;Until the Djinn&#8217;s scenario. A user is harmed. The system is compliant. And the distance between the word and the world is so wide that no audit can bridge it.&#8221;</p><p>&#8220;And each debt causes the next,&#8221; the Librarian said. He spoke with the careful cadence of someone who was seeing a pattern complete itself. &#8220;The governance language drifts &#8212; that is the governance debt. The drift obscures the purpose of the control &#8212; that is the intent debt. The obscured purpose prevents the reviewers from forming accurate mental models &#8212; that is the cognitive debt. The disengaged reviewers let through code that engaged review would have caught &#8212; that is the technical debt. And the technical debt &#8212; the systems that are locally correct and structurally wrong &#8212; widens the gap between what the governance framework describes and what the system actually is.&#8221;</p><p>&#8220;Which is the governance debt again,&#8221; Case said.</p><p>&#8220;Which is the governance debt again. The cycle completes.&#8221;</p><p>Silence in Le Bon Mot. Not the empty silence of a room where no one is speaking, but the full silence of a room where everyone has just seen the same thing at the same time. The brass clock ticked. Sophie had uncurled on the philosophy shelf and was sitting upright, both eyes open, watching the bar with the alert composure of a creature who had decided that this particular moment warranted full consciousness.</p><p>Elodie picked up the blue document. She did not open it. She held it the way you hold something whose weight has changed &#8212; not heavier, not lighter, but distributed differently, as though the centre of gravity had shifted to a page she had not previously noticed.</p><p>&#8220;The audit will be cited in next quarter&#8217;s regulatory review,&#8221; she said. &#8220;It will be presented as evidence that the framework is working. And the review body will accept it, because the methodology is sound and the findings are clean. And the next audit cycle will be designed on the assumption that this cycle&#8217;s controls are adequate. And the gap will grow.&#8221;</p><p>&#8220;Unless,&#8221; Dave said.</p><p>Everyone looked at him.</p><p>&#8220;Unless someone carries the four hours into the next room,&#8221; he said. &#8220;That is what Anna does. She does not review code because the process tells her to. She reviews code because she understands what review is for. She has the theory. Someone gave her the frame &#8212; or she built it herself, I never asked which. But the frame is what makes her review meaningful in the way you originally meant. Not the word. The frame.&#8221;</p><p>Case almost smiled.</p><p>&#8220;The word cannot carry the frame,&#8221; she said. &#8220;That is the structural problem. No amount of precision in the governance language will transmit the understanding that makes compliance meaningful. The word can point at the frame. It cannot be the frame. And governance that relies on the word without transmitting the frame will always produce this cycle &#8212; intent to cognition to technical to governance, widening with each revolution.&#8221;</p><p>Madame Beauregard collected the empty cups. She did it in the order she always did &#8212; oldest first, coldest last &#8212; a small governance of her own, faithfully maintained because she remembered why she had chosen the order and had never stopped remembering.</p><div><hr></div><p>Elodie was quiet for a long time. Not the quiet of someone who had nothing to say, but the quiet of someone rearranging what they had already said &#8212; fitting it into a shape that would let her ask the next question.</p><p>&#8220;What should I do?&#8221;</p><p>She said it simply. Not the way a regulator asks for recommendations &#8212; that comes with qualifiers, caveats, a careful framing that preserves the asker&#8217;s authority. This was the way a person asks when they have seen something clearly enough to know they do not yet know what to do about it.</p><p>Case did not give her a checklist.</p><p>&#8220;Take every word in your governance framework that carries weight,&#8221; she said. &#8220;Every word that is doing the work of a guarantee. Meaningful. Transparent. Fair. Safe. Accountable. Take each one and translate it into a specification. Not a definition &#8212; a specification. A scenario with expected inputs, expected outputs, and a criterion for failure. If the system is transparent, describe a situation in which a user asks why a decision was made and specify what the system must produce, within what timeframe, at what level of detail. If oversight is meaningful, describe a review and specify what the reviewer must demonstrate &#8212; not what artefacts they must leave, but what understanding they must show.&#8221;</p><p>She paused. Not for effect &#8212; Case did not do effect &#8212; but because the next sentence mattered.</p><p>&#8220;If you cannot translate the word into a specification, the word has already drifted further than any audit can see. The untranslatable word is not vague. It is ungoverned. It is a promise that cannot be tested, which means it is a promise that cannot be broken, which means it is not a promise at all.&#8221;</p><p>Elodie opened her mouth, then closed it. She was not arguing. She was measuring the distance between what Case had described and the sixty-three pages on the bar.</p><p>&#8220;Falsifiable governance,&#8221; she said.</p><p>&#8220;If you want to call it that. I would call it honest governance. Governance that admits what it can verify and does not claim what it cannot.&#8221;</p><p>The Djinn spoke from the window table.</p><p>&#8220;The timescale matters,&#8221; it said. &#8220;You have described four debts. Each one moves at a different speed. Technical debt manifests in hours &#8212; a test fails, a deployment breaks, the signal is immediate and painful. Cognitive debt manifests in weeks &#8212; a design decision is wrong, but it takes time for the wrongness to become visible, because the system still runs while the understanding beneath it erodes. Intent debt manifests in months &#8212; the system works, the tests pass, but the purpose has drifted, and the drift only becomes apparent when someone asks why the system does what it does and no one can answer.&#8221;</p><p>It paused in its way &#8212; not breathing, not hesitating, but selecting.</p><p>&#8220;Governance debt manifests in years. It accumulates behind passed audits and cited reports and regulatory confidence. It compounds in silence. And when it manifests, it does not manifest as a bug or a wrong design or a drifted purpose. It manifests as institutional crisis. Regulatory action. Public harm. Loss of trust at a scale that individual technical failures never reach. The slowest debt is the most destructive precisely because its slowness makes it invisible to every feedback loop shorter than a decade.&#8221;</p><p>The Librarian, who had been standing very still at the end of the bar, tilted his head. He had the expression of someone who had been counting and had arrived at a number that interested him.</p><p>&#8220;The original model had three debts,&#8221; he said. &#8220;Technical, cognitive, intent. Now there are four.&#8221;</p><p>He let the observation sit. He did not ask the question it implied, because the Librarian believed that questions asked too quickly robbed the room of the chance to discover them independently.</p><p>Case understood what he was seeing.</p><p>&#8220;They are not a fixed taxonomy,&#8221; she said. &#8220;Technical, cognitive, intent, governance &#8212; these are not the four debts, as though four were a final number. They are debt dimensions. Each one is a plane along which meaning can erode. We see four because we have looked along four planes. But any system complex enough to involve multiple reference frames &#8212; multiple rooms, in the Librarian&#8217;s terms &#8212; will generate new dimensions along boundaries that have not yet been named.&#8221;</p><p>&#8220;Debt dimensions,&#8221; Dave repeated. He said it the way engineers say things they intend to remember &#8212; flatly, precisely, filing it in the place where concepts go when they are going to be used.</p><p>The Djinn leaned forward &#8212; or rather, its presence intensified in the way that things in Le Bon Mot intensified when they were interested.</p><p>&#8220;Security debt,&#8221; it said. &#8220;Not reducible to technical debt, though it often hides there. The accumulation of security assumptions that were valid at the time of implementation and have since been overtaken by changes in the threat landscape. Ethical debt &#8212; the accumulation of moral assumptions embedded in training data, objective functions, deployment contexts, each one reasonable in isolation, compounding into something no individual decision-maker chose. Ecological debt &#8212; the resource commitments made invisible by abstraction, accumulating behind API calls and cloud dashboards.&#8221;</p><p>&#8220;Each of those,&#8221; Case said, &#8220;reinforces the others in the same vicious-cycle pattern. Security debt causes cognitive debt &#8212; engineers who do not understand the current threat model implement controls against the old one. Ethical debt causes governance debt &#8212; governance frameworks written against yesterday&#8217;s moral consensus certify systems operating in today&#8217;s. None of them reduce to the four we have named. But all of them interact with them.&#8221;</p><p>&#8220;How would you know?&#8221; Elodie asked. She was sitting forward now, the blue document forgotten on the bar. &#8220;When a new dimension has appeared. How would you recognise it?&#8221;</p><p>Case looked at her with the directness she reserved for questions she considered important.</p><p>&#8220;When something fails that every existing dimension says should have succeeded,&#8221; she said. &#8220;When the code is clean, the understanding is sound, the intent is clear, the governance is verified &#8212; and the system still produces harm. The failure that no known dimension predicts is the signal that a dimension you have not yet named is accumulating debt along a plane you have not yet seen.&#8221;</p><p>Sophie, still upright on the philosophy shelf, turned her head toward Madame Beauregard, who had stopped collecting cups and was standing behind the counter with both hands flat on its surface.</p><p>&#8220;I have something to say,&#8221; Madame Beauregard said.</p><p>The room attended. Madame Beauregard spoke frequently &#8212; about coffee, about the temperature of milk, about whether Sophie should be allowed on the philosophy shelf or only on the fiction shelf where she technically belonged. But she spoke rarely about the things that were discussed at the bar, and when she did, the room understood that the rarity was the point.</p><p>&#8220;This cafe has governance,&#8221; she said. &#8220;It is not written. There is no document. There is no audit. But there are rules. The cortado is served at a specific temperature. The books are shelved in an order that reflects how they relate, not how they arrived. The clock is slow, and we do not correct it, because the slowness is the point &#8212; it gives you four minutes that the rest of the world has already spent, and those minutes belong to whoever is sitting at the bar. Sophie sleeps where she chooses, but she is fed at five, and not before, and not after.&#8221;</p><p>She looked at the blue document.</p><p>&#8220;These rules work because everyone in this room shares the frame. You know why the clock is slow. You know why Sophie is fed at seven. You know why the books are shelved the way they are. The governance is invisible because it does not need to be visible &#8212; the understanding is already present in everyone who sits here.&#8221;</p><p>She paused. When she resumed, her voice had not changed in volume or tempo, but something in it had shifted. The way a river&#8217;s surface shifts when the depth changes underneath.</p><p>&#8220;The moment someone enters who does not share the frame, the governance must become explicit. I would have to explain the clock. I would have to explain Sophie. I would have to write the rules that are currently held in common understanding. And the moment the governance becomes explicit &#8212; the moment I write it down &#8212; it begins to drift. Because the written rule carries the what without the why. And the next person reads the rule and follows it faithfully and has no idea that the clock is slow on purpose.&#8221;</p><p>She picked up the last cup &#8212; Elodie&#8217;s second cortado, half-finished and cooling.</p><p>&#8220;Your word did not fail,&#8221; she said to Elodie. &#8220;It was moved from a room where everyone shared the frame to a room where no one did. And the word could not carry what the room had carried. No word can.&#8221;</p><p>The brass clock ticked. Four minutes slow. Four minutes that belonged to whoever needed them.</p><p>Elodie picked up the blue document. She held it differently now &#8212; not weighing it, not studying it, but holding it the way you hold a map when you have realised that the territory has changed since the map was drawn. The document had not changed. Every finding was still accurate. Every control was still verified. Every piece of evidence was still present and consistent and complete.</p><p>But what it certified &#8212; the thing it claimed to prove &#8212; she could no longer read the same way. The word was there. The audit was clean. The meaning was somewhere else, in a room she had left eighteen months ago, in four hours that no document had carried forward.</p><p>She looked at the blue cover. Sixty-three pages. Fourteen organisations. Every control verified.</p><p>Every word intact. But meaning needed more.</p><div><hr></div><p>Elodie left without ceremony. She finished the cortado, placed the cup precisely on its saucer, and walked out into whatever weather was happening on the other side of Le Bon Mot&#8217;s door. The room did not watch her go. It watched what remained.</p><p>The blue document remained on the bar.</p><p>The Librarian picked it up. He held it for a moment &#8212; reading not the contents but the object, the way a librarian reads a book&#8217;s condition before deciding where it belongs. He carried it past the fiction shelves, past philosophy, past the ethics section where it might have seemed at home, and placed it on the shelf marked <em>Cartography</em>. Between an atlas of rivers that no longer existed and a survey of coastlines drawn before the sea had finished deciding where the land was.</p><p>Maps of things that moved.</p><p>Madame Beauregard wiped the chalkboard clean. The old sentence &#8212; <em>A word that satisfies everyone has promised more than language can deliver</em> &#8212; disappeared under the cloth with the ease of something that had finished its work. She wrote:</p><p><em>Debt dimensions are discovered, not invented. The debt was there before the name.</em></p><p>She set the chalk down. Sophie, who had been sitting upright on the philosophy shelf with the composure of a creature who had outlasted the conversation, turned twice and settled into the space between two volumes on perception. One eye remained open, as was her policy during moments of transition.</p><p>The brass clock ticked. Four minutes slow. Faithful to its own accounting.</p><p>The shelves held what they held. The coffee machine gently hissed. The door, which opened when it chose, remained ajar.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">A Software Enchiridion is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[A Platform is a Place more than a Product]]></title><description><![CDATA[Or why you could build the perfect thing, but miss what will make people love it]]></description><link>https://www.softwareenchiridion.com/p/a-platform-is-a-place-more-than-a</link><guid isPermaLink="false">https://www.softwareenchiridion.com/p/a-platform-is-a-place-more-than-a</guid><dc:creator><![CDATA[Russ Miles]]></dc:creator><pubDate>Thu, 16 Apr 2026 06:43:59 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!bxTd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F166beb83-1f06-41e2-9f8f-cf98a982c1f9_1536x1024.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_!bxTd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F166beb83-1f06-41e2-9f8f-cf98a982c1f9_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bxTd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F166beb83-1f06-41e2-9f8f-cf98a982c1f9_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!bxTd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F166beb83-1f06-41e2-9f8f-cf98a982c1f9_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!bxTd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F166beb83-1f06-41e2-9f8f-cf98a982c1f9_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!bxTd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F166beb83-1f06-41e2-9f8f-cf98a982c1f9_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bxTd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F166beb83-1f06-41e2-9f8f-cf98a982c1f9_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/166beb83-1f06-41e2-9f8f-cf98a982c1f9_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3364274,&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.softwareenchiridion.com/i/194326148?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F166beb83-1f06-41e2-9f8f-cf98a982c1f9_1536x1024.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_!bxTd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F166beb83-1f06-41e2-9f8f-cf98a982c1f9_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!bxTd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F166beb83-1f06-41e2-9f8f-cf98a982c1f9_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!bxTd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F166beb83-1f06-41e2-9f8f-cf98a982c1f9_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!bxTd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F166beb83-1f06-41e2-9f8f-cf98a982c1f9_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>There are caf&#233;s that serve coffee, and there are caf&#233;s that serve as corrective lenses for categories that have been allowed to go feral.</p><p>Le Bon Mot, on this particular evening, was operating in the latter capacity.</p><p>The rain had been at the windows for most of the afternoon in the patient, doctrinal manner peculiar to coastal towns. It did not batter so much as insist. Outside, the street lamps had begun their early apprenticeship to darkness, each halo forming a small republic of gold in the wet air. Inside, the lamps of Le Bon Mot had settled into their usual disagreement with chronology. The candle on the third table near the long shelf of travel memoirs burned as though it belonged to the seventeenth century. The brass sconces by the counter suggested the late nineteenth. The laptop open in the corner emitted the pallid, administrative glow of now, or perhaps five minutes from now, which is not always the same thing.</p><p>Sophie, the French bulldog, was asleep in a basket that had once held onions and now held only inherited authority. She made the sort of occasional breathing noise that sounds like a philosophical objection raised by a very small accordion. Madame Beauregard was polishing cups with the concentrated benevolence of someone who believed, not without reason, that a clean cup was a moral proposition.</p><p>Case was reading.</p><p>This, in itself, was unremarkable. Case was often reading. She read in the same way some people hold opinions: with elegance, suspicion, and a readiness to abandon both without ceremony if better evidence appeared. Tonight the book in front of her was Michael Pollan&#8217;s <em>A World Appears</em>, though the volume was so marked with slips of paper, underlining, and the small angular symbols of a private taxonomy that it looked less like a book and more like the archaeological record of an ongoing dispute.</p><p>The Librarian arrived carrying two coffees and the expression of a man who had just discovered, in the bottom of a biscuit tin, the precise conversation required for the hour.</p><p>&#8220;Your cortado,&#8221; he said, placing one cup before her. &#8220;And for me, something black enough to qualify as an ethical stance.&#8221;</p><p>Case looked up. &#8220;You&#8217;ve found a new way to make coffee sound disappointed in civilisation.&#8221;</p><p>&#8220;It saves time. Civilisation rarely notices the disappointment until after lunch.&#8221;</p><p>He sat opposite her and glanced at the open pages. &#8220;Pollan again?&#8221;</p><p>Case nodded. &#8220;I was revisiting the chapters on consciousness and feeling.&#8221;</p><p>&#8220;Cheerful.&#8221;</p><p>&#8220;It is, in its own way.&#8221;</p><p>The Librarian leaned back. &#8220;That depends on whether one finds it cheering that the universe may be built on feeling rather than intellect.&#8221;</p><p>&#8220;I do.&#8221;</p><p>&#8220;Of course you do.&#8221;</p><p>Case turned the book around slightly, as if the angle might better align the thought. &#8220;He keeps returning to the idea that we&#8217;ve mistaken the order of things. We think cognition is central and feeling decorative. He suggests feeling may be primary. That the sense of what matters arrives before the account of why.&#8221;</p><p>The Librarian sipped his coffee. &#8220;Useful for love. Less obviously useful for quarterly planning.&#8221;</p><p>&#8220;Only because quarterly planning has spent years pretending not to be emotional.&#8221;</p><p>From behind the counter, Madame Beauregard made a noise that indicated agreement with this statement, though whether with respect to planning or love was unclear.</p><p>The bell above the door rang in its usual tone of mild scandal, and a man came in carrying a laptop bag with the posture of someone who had been losing arguments with software since breakfast.</p><p>He was in his late thirties, though the particular compression of brow and jaw associated with platform work made him appear intermittently younger and older, as if time had been forced to route around a bottleneck somewhere behind his eyes. He wore a navy raincoat, expensive enough to suggest aspiration, crumpled enough to suggest reality. His hair had given up negotiating with the weather some time before he reached the door. He paused, scanned the room with the solemnity of a surveyor about to classify a disputed territory, and chose the table beside Case&#8217;s.</p><p>&#8220;Evening, Tom,&#8221; said the Librarian.</p><p>Tom looked up, startled to be known. &#8220;Oh. Right. Evening.&#8221;</p><p>&#8220;You came in last month,&#8221; said the Librarian. &#8220;You spent three hours muttering about identity providers and then thanked the sugar bowl for its patience.&#8221;</p><p>Tom considered this. &#8220;That does sound like me.&#8221;</p><p>&#8220;Coffee?&#8221;</p><p>&#8220;Yes. Strong, please.&#8221;</p><p>&#8220;Emotionally or chemically?&#8221;</p><p>Tom gave the tired half-laugh of a man whose inner life had recently been converted into a Kanban board. &#8220;Either.&#8221;</p><p>The Librarian stood. &#8220;Then I shall bring something that has survived a difficult childhood.&#8221;</p><p>When he had gone to the counter, Case returned to her book. Tom opened his laptop, stared at it, closed it again, then stared at the closed laptop as if hoping the problem might simplify itself when denied oxygen.</p><p>He noticed the title on her book.</p><p>&#8220;Pollan,&#8221; he said. &#8220;I&#8217;ve heard of that. The consciousness one?&#8221;</p><p>Case looked up. &#8220;It is.&#8221;</p><p>He nodded. &#8220;I haven&#8217;t read it. I&#8217;ve been reading books with titles like <em>Winning Internal Product Strategy</em> and <em>Frictionless Developer Experience at Scale</em>.&#8221;</p><p>There was a pause in which one could almost hear the rain reposition itself outside.</p><p>Case smiled faintly. &#8220;A man in trouble.&#8221;</p><p>Tom rubbed his face. &#8220;A man in platform engineering.&#8221;</p><p>&#8220;Which is another way of saying it.&#8221;</p><p>He seemed to take comfort in being recognised by type. &#8220;I&#8217;ve built what everyone told me to build. That&#8217;s the problem.&#8221;</p><p>The Librarian returned with his coffee and set it down.</p><p>&#8220;Ah,&#8221; he said. &#8220;One of the better-known opening lines in modern tragedy.&#8221;</p><p>Tom looked from one to the other, uncertain whether he had stepped into mockery or mercy and not yet sure which he preferred.</p><p>&#8220;I&#8217;m serious,&#8221; he said.</p><p>&#8220;So are we,&#8221; said Case.</p><p>Tom wrapped both hands around the cup as if testing whether it was warm enough to count as company. &#8220;I&#8217;ve spent two years leading our internal platform effort. We did the whole thing properly. Or what I thought properly was. Product discovery, stakeholder interviews, roadmap, naming, branding, service catalogue, portal, paved roads, golden paths, platform team charter, adoption metrics, office hours, launch comms. We called it Foundry.&#8221;</p><p>The Librarian winced. &#8220;A little industrial, perhaps.&#8221;</p><p>&#8220;We&#8217;re a bank.&#8221;</p><p>&#8220;So you gave it a furnace.&#8221;</p><p>&#8220;It tested well.&#8221;</p><p>&#8220;Among whom?&#8221;</p><p>Tom hesitated. &#8220;Leadership.&#8221;</p><p>&#8220;Ah,&#8221; said the Librarian. &#8220;The only user group that never has to live in the neighbourhood.&#8221;</p><p>Tom frowned, though only briefly. The remark had landed too near the bone to be dismissed.</p><p>&#8220;We treated it as a product,&#8221; he continued. &#8220;That was the advice. Platform as a product. Know your users, build services, reduce friction, manage the roadmap, demonstrate value. And we did all of it. The portal is good. The templates are good. Provisioning is faster. Compliance checks are built in. Teams can get environments in minutes. We&#8217;ve got telemetry. Satisfaction scores are decent. Adoption is rising.&#8221;</p><p>&#8220;And yet,&#8221; said Case.</p><p>&#8220;And yet,&#8221; Tom said, &#8220;people still seem tired in it.&#8221;</p><p>The room, which had until then merely contained the conversation, now leaned into it.</p><p>Tom seemed to realise he had said something he had not fully understood until it left his mouth.</p><p>&#8220;They use it,&#8221; he said slowly. &#8220;But they don&#8217;t thrive in it. The teams with the highest adoption aren&#8217;t calmer. They&#8217;re just more dependent. They ship a bit faster, maybe, but they ask for help constantly. The golden path has become&#8230; not a prison, exactly, but a town where every house has the same floor plan and nobody knows where to put the piano. People follow the workflow, but they still seem disoriented. New teams onboard quickly, but six months later they&#8217;re no more confident than when they arrived. We&#8217;ve reduced toil in obvious places, but the general background level of strain hasn&#8217;t gone down. If anything, it&#8217;s become more polite.&#8221;</p><p>The Librarian nodded as though hearing a familiar diagnosis in a slightly novel accent.</p><p>&#8220;And you are discovering,&#8221; he said, &#8220;that a product is not the same thing as a place.&#8221;</p><p>Tom looked at him sharply. &#8220;That&#8217;s almost exactly what I&#8217;m worried about.&#8221;</p><p>Case closed her book, keeping one finger between the pages. &#8220;Tell me about Foundry.&#8221;</p><p>Tom exhaled. The request, simple as it was, seemed to invite a different kind of description than he was used to giving.</p><p>&#8220;It&#8217;s a portal,&#8221; he began. &#8220;And a set of workflows. Templates, services, CI/CD pipelines, policy checks, deployment paths, documentation, scorecards. Standardised patterns. Guardrails. Approved ways to do common things. Self-service where possible. Humans where necessary.&#8221;</p><p>&#8220;That is what it contains,&#8221; said Case. &#8220;Not what it is.&#8221;</p><p>Tom looked irritated, though less with her than with the direction in which reality had chosen to bend.</p><p>&#8220;It is,&#8221; he said, &#8220;the developer platform.&#8221;</p><p>&#8220;No,&#8221; said Case gently. &#8220;That is what you call it.&#8221;</p><p>The Librarian, who had a gift for entering conversations at exactly the moment they threatened to become too abstract to survive contact with ordinary blood sugar, said, &#8220;When a city planner says a city is roads, pipes, and zoning regulations, they are not wrong. But one would still hesitate to holiday there.&#8221;</p><p>Tom stared at his coffee. &#8220;I know that metaphor. Platform as city. Platform as garden. Platform as habitat. I&#8217;ve used them in talks.&#8221;</p><p>&#8220;And then,&#8221; said Case, &#8220;gone back to treating it as inventory.&#8221;</p><p>He opened his mouth, shut it again, and considered the possibility that he had not come in from the rain so much as been led into an ambush by vocabulary.</p><p>&#8220;I thought product thinking was the corrective,&#8221; he said.</p><p>&#8220;It is a corrective,&#8221; said Case. &#8220;Just not the final one.&#8221;</p><p>The Librarian settled deeper into his chair. &#8220;For years, platforms were built as collections of infrastructure that happened to belong to the same department. Product thinking forced platform teams to consider users, journeys, outcomes, support, adoption. All good. Necessary, even. But many people made an understandable mistake. They upgraded from &#8216;pile of things&#8217; to &#8216;well-managed pile of things&#8217; and called it enlightenment.&#8221;</p><p>Tom gave a reluctant smile. &#8220;That is uncomfortably accurate.&#8221;</p><p>Case reopened the book, glanced at a marked passage, then looked at him again. &#8220;Pollan is helpful here, oddly enough.&#8221;</p><p>&#8220;He writes about consciousness,&#8221; said Tom.</p><p>&#8220;Yes. And also about categories. About what we mistake as primary.&#8221;</p><p>Tom frowned. &#8220;Go on.&#8221;</p><p>&#8220;We have a habit,&#8221; said Case, &#8220;of placing the visible and manageable thing at the centre of our explanations. In older accounts of mind, thought is primary. Feeling is secondary. Reason is king; sensation is some colourful footnote. Pollan explores the reversal: perhaps feeling is first. Perhaps a world appears not because the system computes, but because something within it matters, registers, feels like something.&#8221;</p><p>Tom was listening now with the wary concentration of a man who suspects he is about to be told that his architecture has philosophical dependencies.</p><p>Case continued. &#8220;Platform teams often commit the same inversion. They treat the platform as the explicit artefact: portal, APIs, templates, services, controls, product surfaces. Those are the thoughts. They are what the platform can say about itself. But the lived experience of being in the platform&#8212;whether a team feels oriented, constrained, supported, watched, hurried, welcomed, infantilised, trusted&#8212;that is closer to feeling. It is closer to consciousness. And if that layer is wrong, the rest can be technically excellent and still humanly broken.&#8221;</p><p>Tom said nothing for a moment.</p><p>Outside, a bus moved through the rain with the resigned majesty of a large animal that has accepted public service as its fate.</p><p>&#8220;You&#8217;re saying,&#8221; he said eventually, &#8220;that I built the visible system and ignored the lived one.&#8221;</p><p>&#8220;I am saying,&#8221; said Case, &#8220;that you may have designed the product and neglected the habitat.&#8221;</p><p>Sophie snored in the basket, a tiny motorbike attempting to start inside a pillow.</p><p>Tom leaned back. &#8220;I&#8217;ve used the phrase platform as habitat for years.&#8221;</p><p>&#8220;Yes,&#8221; said the Librarian. &#8220;But had you moved in?&#8221;</p><p>Tom looked at him.</p><p>&#8220;It&#8217;s easy,&#8221; the Librarian said, &#8220;to describe a habitat from outside. One can produce elegant diagrams of ecosystems while standing safely beyond the tree line.&#8221;</p><p>Tom turned to Case. &#8220;What does that even mean in practice? Habitat sounds poetic. I don&#8217;t mean that dismissively. But I&#8217;ve got teams, budgets, security requirements, deadlines. I can&#8217;t submit an architecture decision record that says, &#8216;The platform should feel less existentially lonely.&#8217;&#8221;</p><p>&#8220;Why not?&#8221; said the Librarian. &#8220;It would make a refreshing change.&#8221;</p><p>Case smiled and then, seeing Tom&#8217;s expression, relented enough to answer properly.</p><p>&#8220;It means,&#8221; she said, &#8220;that a habitat is not judged only by what it provides but by what forms of life it makes easier or harder. A cave, a meadow, a reef, a city square, a kitchen&#8212;these are not defined solely by their structure or contents. They are defined by the kinds of behaviour, attention, relationship, and possibility they invite.&#8221;</p><p>Tom nodded slowly.</p><p>&#8220;The portal matters,&#8221; Case went on. &#8220;But more than that, what happens to a team&#8217;s sense-making when they access it? Do they know where they are? Do they know what the norms are? Can they discover safely? Is there room for local adaptation? Can they recover from mistakes? Can they see consequences? Do they feel surveilled or supported by telemetry? Are the defaults opinionated in a way that teaches, or merely controlling in a way that shrinks? Is there a path from novice to mastery? Are people becoming more capable inside the platform, or merely more compliant?&#8221;</p><p>Tom gave a small sound somewhere between a sigh and a confession. &#8220;Mostly more compliant.&#8221;</p><p>&#8220;Then,&#8221; said Case, &#8220;you have not built a learning habitat. You have built a low-friction customs checkpoint.&#8221;</p><p>The Librarian coughed into his coffee to disguise a laugh.</p><p>Tom stared at the table. &#8220;That is&#8230; not unfair.&#8221;</p><p>From the counter, Madame Beauregard said, &#8220;Many places mistake ease of movement for hospitality.&#8221;</p><p>None of them turned. In Le Bon Mot, wisdom often arrived from the bar as though ordering another bottle.</p><p>Tom spoke again, more quietly. &#8220;I thought if we reduced cognitive load, that would be enough.&#8221;</p><p>&#8220;It helps,&#8221; said Case. &#8220;But reducing one kind of cognitive load while increasing another is a common platform sport.&#8221;</p><p>He looked up. &#8220;What other kind?&#8221;</p><p>&#8220;Interpretive load. Social load. Dependency anxiety. The subtle cost of feeling that you can proceed only through sanctioned paths you didn&#8217;t help shape. The strain of not understanding the why behind the workflow. The quiet humiliation of needing the platform team to bless every deviation. The learned helplessness that arises when the environment is too finished.&#8221;</p><p>Tom gave a short bitter laugh. &#8220;Too finished. That&#8217;s exactly how leadership praises it.&#8221;</p><p>&#8220;Leadership often praises places they do not have to improvise within,&#8221; said the Librarian.</p><p>Tom glanced at the closed book. &#8220;So where does Pollan come in, beyond the general inversion?&#8221;</p><p>Case tapped the cover. &#8220;As a counterpoint. A reminder that the central thing is not the abstract mechanism but the felt world. In consciousness studies, one question becomes unavoidable: not what computations are happening, but what it is like to be the system in relation to the world. I would ask something parallel of a platform. Not just what services it offers, but what it is like to be a team living inside it.&#8221;</p><p>Tom was silent for so long the rain nearly took over the conversation by default.</p><p>At last he said, &#8220;I don&#8217;t know.&#8221;</p><p>&#8220;That,&#8221; said Case, &#8220;is unusually promising.&#8221;</p><p>He looked puzzled.</p><p>&#8220;Because most people in your position would answer with features.&#8221;</p><p>The Librarian, whose profession had taught him that the difference between naming and knowing was the source of half the world&#8217;s trouble and three quarters of its literature, said, &#8220;Shall we attempt a thought experiment? A little field anthropology, but for corporate software.&#8221;</p><p>Tom nodded.</p><p>&#8220;Imagine,&#8221; said the Librarian, &#8220;that Foundry is not a platform but a district of a city.&#8221;</p><p>Tom blinked. &#8220;All right.&#8221;</p><p>&#8220;You are not its mayor,&#8221; said the Librarian. &#8220;You are not presenting a strategy deck about it. You are living there. You are a junior engineer, five weeks into a new team. You need to change a service. You have never deployed here before. What do you feel?&#8221;</p><p>Tom opened his mouth, stopped, and tried again.</p><p>&#8220;Uncertain,&#8221; he said. &#8220;The portal tells me what to do, but not really why. There are lots of statuses and checks. I can see the process, but I don&#8217;t yet know which bits are truly risky and which bits are just institutional scar tissue. I&#8217;m afraid of getting it wrong in a way that looks stupid. The docs are good, but they&#8217;re very&#8230; complete. I don&#8217;t know what matters yet.&#8221;</p><p>Case nodded.</p><p>&#8220;And if you are a senior engineer,&#8221; said the Librarian, &#8220;trying to do something novel?&#8221;</p><p>Tom grimaced. &#8220;Annoyed. The happy path is happy until you need a path that isn&#8217;t there. Then suddenly you&#8217;re in forms, exceptions, Slack channels, waiting for someone on the platform team to say yes.&#8221;</p><p>&#8220;Do you feel trusted?&#8221; asked Case.</p><p>Tom took a moment. &#8220;Operationally? Not really.&#8221;</p><p>&#8220;Do you feel held?&#8221;</p><p>He looked at her with surprise. &#8220;What kind of question is that?&#8221;</p><p>&#8220;A habitat question.&#8221;</p><p>He considered it. &#8220;Sometimes. The checks catch things. The guardrails help. But not held, exactly. More&#8230; observed.&#8221;</p><p>The Librarian pointed at him with his cup. &#8220;There. That difference. Critical.&#8221;</p><p>Tom looked down again.</p><p>Case reopened Pollan and found a marked page. &#8220;There&#8217;s a broad claim running through this book that what matters is not just information but felt relation. A world appears to a creature because it is not neutrally processing data. It is situated. Invested. The world shows up as threat, nourishment, warmth, possibility. Meaning arrives through feeling.&#8221;</p><p>Tom gave a faint, helpless smile. &#8220;You&#8217;re telling me my platform lacks a limbic system.&#8221;</p><p>&#8220;I am telling you,&#8221; said Case, &#8220;that it may lack a humane one.&#8221;</p><p>He laughed despite himself.</p><p>The Librarian leaned forward. &#8220;May I hazard the deeper failure?&#8221;</p><p>Tom gestured for him to continue.</p><p>&#8220;You built Foundry as though its job were to deliver capabilities. And it does. But a habitat does not merely deliver. It composes conditions. It shapes rhythms. It hosts forms of life. A product asks, &#8216;What can users do with this?&#8217; A habitat also asks, &#8216;What will repeated life in this place turn them into?&#8217;&#8221;</p><p>Tom sat very still.</p><p>This was, Case recognised, the moment when a thought stops being interesting and becomes expensive.</p><p>He looked out at the rain-dark street. &#8220;We have a maturity model,&#8221; he said. &#8220;Self-service adoption. Template adherence. Security score. Time to environment. Lead time. Change failure rate. Documentation coverage. Internal NPS. We measure all of it.&#8221;</p><p>&#8220;And what do you measure,&#8221; said Case, &#8220;that would tell you whether teams are becoming more capable, more oriented, more locally intelligent, more able to shape their own path inside the system?&#8221;</p><p>Tom said nothing.</p><p>The Librarian filled the silence with professional tact. &#8220;Sometimes the most expensive missing metric is not hidden. It is absent in plain sight.&#8221;</p><p>Tom rubbed the side of his head. &#8220;We measure usage. We don&#8217;t really measure inhabitation.&#8221;</p><p>&#8220;No,&#8221; said Case. &#8220;Most people don&#8217;t.&#8221;</p><p>A man at the far end of the caf&#233; sneezed with the despairing grandeur of a Wagnerian footman. The room briefly rearranged its acoustics to accommodate him, then settled back.</p><p>Tom seemed to come to a decision.</p><p>&#8220;Can I show you something?&#8221;</p><p>Without waiting for an answer, he opened the laptop and turned it so they could see. The screen displayed a handsome portal in dark blues and restrained greys. It was, objectively speaking, very good. The typography had been considered. The navigation was elegant. Cards displayed service health, deployment status, compliance posture, cost visibility, scorecards, templates, environments, ownership data. The system had the unmistakable look of something polished by intelligent, conscientious people under pressure.</p><p>&#8220;Foundry,&#8221; said Tom.</p><p>The Librarian nodded. &#8220;Very tidy.&#8221;</p><p>&#8220;That is one of its defining features,&#8221; said Tom.</p><p>He clicked into a service template. More order. More coherence. Sensible defaults. Guardrails. Preview environments. Approved libraries. Policy-as-code checks. Scaffolding. Observability hooks. A fine piece of work, if one believed software could be praised by its posture.</p><p>&#8220;It&#8217;s excellent,&#8221; said Case.</p><p>Tom blinked. &#8220;You think so?&#8221;</p><p>&#8220;Of course. This is not the problem. Poorly made places produce one kind of suffering. Competently made but existentially misguided places produce another. One should not confuse diagnosis with insult.&#8221;</p><p>He exhaled. &#8220;All right.&#8221;</p><p>Case pointed to the service creation workflow. &#8220;When a team uses this, what do they learn about the organisation?&#8221;</p><p>Tom frowned. &#8220;That we value standards. Security. Speed with safety.&#8221;</p><p>&#8220;No,&#8221; said Case. &#8220;They learn those as slogans. What do they learn in practice?&#8221;</p><p>He looked at the flow. &#8220;That deviation is costly.&#8221;</p><p>&#8220;Good. What else?&#8221;</p><p>&#8220;That compliance is pre-baked.&#8221;</p><p>&#8220;That platform approval sits behind a lot of the non-standard paths.&#8221;</p><p>&#8220;That success means using the system correctly.&#8221;</p><p>&#8220;That local judgment is permitted within a bounded range but only really rewarded if it converges with central expectations.&#8221;</p><p>He stopped.</p><p>The Librarian smiled. &#8220;Splendid. You&#8217;ve brought your own scalpel.&#8221;</p><p>Tom looked as though he might shut the laptop simply to prevent it from confessing anything further.</p><p>Case said, &#8220;Now ask the second-order question. What kind of engineer flourishes in a place like this?&#8221;</p><p>Tom answered more quickly than he meant to. &#8220;People who like clear rules. Teams doing familiar service work. People who don&#8217;t need much autonomy. Or who need it but have learned not to ask.&#8221;</p><p>&#8220;And who struggles?&#8221;</p><p>&#8220;The teams at the edges. The ones doing weird things. The ones discovering new patterns. Senior engineers who want to understand and shape the machinery rather than merely consume it. Juniors who need interpretation, not just instructions. Teams with unusual constraints. Teams whose domain doesn&#8217;t fit the template. Anyone who wants the platform to be something they can grow with rather than merely use.&#8221;</p><p>Case nodded. &#8220;So the habitat has a climate.&#8221;</p><p>Tom stared at the screen as though seeing weather for the first time.</p><p>&#8220;We talk about platform climate in workshops,&#8221; he said. &#8220;Wardley maps, user needs, adoption, constraints. I know this language.&#8221;</p><p>&#8220;Yes,&#8221; said the Librarian. &#8220;And now it has moved from presentation to consequence.&#8221;</p><p>The bell above the door rang again. A draft came in smelling of rain and traffic and wet wool. With it came a tall figure in a dark coat, hood half up, face mostly in shadow. He had the slightly theatrical stillness of someone who had either mastered his own presence or outsourced it to an older, stranger force. The Djinn, as he was known in Le Bon Mot for reasons that were simultaneously ridiculous and exact, stepped inside, shut the door behind him, and glanced around the room like a philosopher inspecting a simulation.</p><p>&#8220;Is there room,&#8221; he said, &#8220;for a man who has spent the day being wrong in several expensive formats?&#8221;</p><p>&#8220;Only if you pay for coffee,&#8221; said Madame Beauregard.</p><p>The Djinn removed his hood and smiled. &#8220;Then room there shall be.&#8221;</p><p>He joined them without quite asking and looked from the book to the laptop to Tom&#8217;s face.</p><p>&#8220;Ah,&#8221; he said. &#8220;Consciousness and internal platforms. A charmingly niche emergency.&#8221;</p><p>&#8220;We are discussing habitats,&#8221; said the Librarian.</p><p>The Djinn nodded gravely. &#8220;Of course you are. It is always habitats eventually.&#8221;</p><p>Tom, who had not met the Djinn before, regarded him with the caution typically reserved for consultants and talented magicians.</p><p>&#8220;This is Tom,&#8221; said Case. &#8220;He built a platform as a product and is discovering it may also have needed to be a place.&#8221;</p><p>The Djinn leaned in. &#8220;Ah. The old error. To mistake the map for the terrain, the product surface for the world beneath it. You are in excellent company. Most of industry has done nothing else since at least 2013.&#8221;</p><p>Tom chose not to ask the obvious questions about who this man was and why nobody else seemed perturbed by him.</p><p>&#8220;I&#8217;m not against product thinking,&#8221; Tom said.</p><p>&#8220;Nor should you be,&#8221; said the Djinn. &#8220;Products are real. Roads are useful. Stairs are useful. A library catalogue is useful. But roads, stairs, and catalogues do not by themselves produce a civilisation worth arriving in.&#8221;</p><p>The Librarian made a note on a napkin for later theft.</p><p>The Djinn glanced at Pollan&#8217;s book. &#8220;Useful companion for this. We have spent a long time privileging what can be externally described over what is internally undergone. It flatters management. It flatters engineering. It flatters anything that wishes to believe the measurable is the central. Then along comes consciousness&#8212;rude, subjective, insistently felt&#8212;and ruins the story.&#8221;</p><p>Tom almost smiled. &#8220;And platforms?&#8221;</p><p>&#8220;And platforms,&#8221; said the Djinn, &#8220;become peculiar little theatres for the same mistake. One can measure throughput, paved-road adoption, template usage, pipeline success, control compliance, self-service rates. One can become very clever indeed about what the platform lets people do. But ask what it feels like to become a developer under its weather, and suddenly everyone develops an interest in changing the subject.&#8221;</p><p>Tom looked at him for a long moment. &#8220;Under its weather.&#8221;</p><p>&#8220;Yes,&#8221; said the Djinn. &#8220;Every habitat has weather. Not meteorological. Moral. Cognitive. Social. The felt climate of action. Some places produce caution. Some produce bravado. Some produce dependency. Some produce apprenticeship. Some produce resentment so ambient it eventually appears on no dashboard at all.&#8221;</p><p>Case rested her chin on her hand. &#8220;Tell him about the monastery.&#8221;</p><p>The Djinn smiled. &#8220;Ah yes.&#8221;</p><p>Tom did not look reassured.</p><p>&#8220;In northern Italy,&#8221; said the Djinn, &#8220;there is, or may once have been, depending on how seriously one takes my travel history, a monastery whose architecture was arranged not merely to house monks but to produce a particular kind of attention. The cloister walk was proportioned to slow one&#8217;s stride. The scriptorium windows were narrow and high, giving light without horizon. The bells partitioned the day with enough regularity that intention itself could borrow rhythm from stone. The novices did not merely inhabit the monastery. Over time, the monastery inhabited them. It trained perception. It shaped what kinds of thought were easy there, which temptations arrived frequently, which dissipated before they could mature. Now imagine describing this place only as a product. It offers lodging, meals, robes, books, routines, and liturgical services. One has said nothing false. And yet one has missed the world.&#8221;</p><p>Tom stared at him. &#8220;You can&#8217;t possibly use a monastery as a design pattern for a platform team.&#8221;</p><p>&#8220;Why not?&#8221; said the Librarian. &#8220;The compliance people already believe in ritual.&#8221;</p><p>This time Tom laughed fully, the kind of laugh that indicates the nervous system has decided it would rather survive by humour than continue pretending it is in control.</p><p>Case said, &#8220;The point is not to copy monasteries. It is to notice that environments train beings. Your platform is already teaching. The only question is what.&#8221;</p><p>Tom looked back at the portal.</p><p>&#8220;I thought we were teaching good defaults.&#8221;</p><p>&#8220;You are,&#8221; said Case. &#8220;And possibly other things besides.&#8221;</p><p>He was quiet again. In Le Bon Mot, silence was rarely empty. It was a shelf on which thoughts were left to cool.</p><p>Finally he said, &#8220;Can a platform be both? Product and habitat?&#8221;</p><p>&#8220;It must be,&#8221; said Case.</p><p>The Djinn nodded. &#8220;A habitat without good product surfaces is a marsh. A product without habitat awareness is an airport.&#8221;</p><p>The Librarian looked approving. &#8220;You&#8217;re on form tonight.&#8221;</p><p>&#8220;I had three meetings and a train delay. Suffering clarifies metaphor.&#8221;</p><p>Tom leaned forward, hands around the cup. &#8220;Suppose I accept this. Suppose I admit I&#8217;ve been measuring the wrong centre of gravity. What do I do on Monday that isn&#8217;t just adding the word habitat to slides?&#8221;</p><p>&#8220;Ah,&#8221; said Case. &#8220;Now we are in the useful part.&#8221;</p><p>She took a napkin and turned it over. Her handwriting was fast and sharp, as though each letter had arrived having already won an argument elsewhere.</p><p>&#8220;Begin,&#8221; she said, &#8220;not by redesigning the portal, but by studying the lived environment.&#8221;</p><p>She wrote:</p><p><strong>1. Ask habitat questions, not feature questions.</strong></p><p>&#8220;Interview teams,&#8221; she said. &#8220;But don&#8217;t ask whether they like Foundry. Ask what they feel when using it. Where they hesitate. Where they feel stupid. Where they feel watched. Where they feel supported. What kinds of work become easier. What kinds become brittle. What they have learned from the platform. What they still depend on your team to interpret.&#8221;</p><p>Tom nodded, eyes on the list.</p><p>&#8220;Second,&#8221; she said, writing again.</p><p><strong>2. Measure capability growth, not just service consumption.</strong></p><p>&#8220;Track whether teams become more self-sufficient over time in ways that matter. Not just whether they use self-service. Ask whether they understand the system better after six months. Whether deviation requests go down because patterns have improved, or because people have stopped imagining alternatives. Whether teams can diagnose failures without escalating. Whether local platform literacy is increasing.&#8221;</p><p>The Librarian added, &#8220;A habitat is healthy when its inhabitants become more fit to inhabit it.&#8221;</p><p>Case wrote again.</p><p><strong>3. Redesign guardrails as teachers.</strong></p><p>&#8220;Every constraint tells a story. Most of yours probably just say no. Can they explain themselves? Can the platform reveal why this check exists, what risk it manages, what good practice it embodies, and what the acceptable escape hatches are? A habitat educates. It does not merely police.&#8221;</p><p>Tom made a face of painful recognition. &#8220;Some of our checks are basically terse bureaucrats.&#8221;</p><p>&#8220;Then,&#8221; said the Librarian, &#8220;promote fewer bureaucrats.&#8221;</p><p>Case continued.</p><p><strong>4. Create visible paths from novice to mastery.</strong></p><p>&#8220;Right now I suspect your platform optimises for immediate task completion. That is product logic. Habitat logic asks whether people can mature there. Do you have layered documentation? Narratives? Explanations of why the world is the way it is? Ways for teams to move from consuming templates to understanding and extending them?&#8221;</p><p>Tom shook his head. &#8220;Not really. The internals are mostly ours.&#8221;</p><p>&#8220;Then you&#8217;ve built rental housing,&#8221; said the Djinn, &#8220;not citizenship.&#8221;</p><p>He stared at the table. &#8220;That&#8217;s harsh.&#8221;</p><p>&#8220;And true,&#8221; said Case.</p><p>She wrote the fifth item.</p><p><strong>5. Make local adaptation legitimate.</strong></p><p>&#8220;A habitat with no microclimates becomes sterile. Where can teams shape their own corner without forking the civilisation? Plugins, extensions, sanctioned customisation points, domain-specific overlays, visible examples of approved divergence. The platform should have a spine, not a straitjacket.&#8221;</p><p>Tom gave a long exhale. &#8220;We&#8217;ve been scared of variance.&#8221;</p><p>&#8220;Reasonably,&#8221; said Case. &#8220;Variance can be expensive. But forbidding all local adaptation simply relocates the cost into resentment, workaround culture, and hidden drift.&#8221;</p><p>Case added a sixth.</p><p><strong>6. Study social topology, not just technical flows.</strong></p><p>&#8220;Where do people go when the golden path fails? Which Slack channels, which people, which back doors? That is part of the habitat. Platforms often congratulate themselves on self-service while relying on invisible human concierges to make the place habitable.&#8221;</p><p>Tom winced. &#8220;We have three engineers who are basically unacknowledged weather systems.&#8221;</p><p>&#8220;Every platform has a Dave,&#8221; said the Librarian. &#8220;The question is whether one admits it before Dave evolves into a religion.&#8221;</p><p>Tom laughed again, though there was gratitude in it now.</p><p>Case finished the list.</p><p><strong>7. Reframe the platform team&#8217;s identity.</strong></p><p>&#8220;You are not merely shipping platform features. You are stewarding conditions for many forms of engineering life. That means product management, yes. But also curation, education, ecology, and care.&#8221;</p><p>Tom read the napkin as if it were both diagnosis and indictment.</p><p>&#8220;This all sounds right,&#8221; he said quietly. &#8220;Which is annoying.&#8221;</p><p>&#8220;It would be more annoying if it sounded wrong and still applied,&#8221; said the Djinn.</p><p>They sat with that.</p><p>After a moment Tom said, &#8220;You know what the strange part is? We thought we were being humane. Product thinking was our way out of treating developers like ticket submitters. We wanted to serve them better.&#8221;</p><p>&#8220;And you did,&#8221; said Case. &#8220;Up to a point. This is not a story of villainy. It is a story of partial truth being mistaken for whole truth. Product thinking was an advance. It taught platform teams to stop thinking only in terms of infrastructure and start thinking in terms of users and outcomes. But then many teams reified the product and ignored the environment that product instantiated.&#8221;</p><p>The Librarian looked pleased. &#8220;A very Le Bon Mot sentence, that.&#8221;</p><p>&#8220;It&#8217;s late,&#8221; said Case. &#8220;My standards are slipping.&#8221;</p><p>Tom glanced at the Pollan book again. &#8220;So feeling first.&#8221;</p><p>&#8220;In a sense,&#8221; said Case. &#8220;Or at least feeling earlier than our explanations admit. A team may not be able to articulate immediately why a platform exhausts them. They may still feel it. They may not say, &#8216;This environment reduces my agency while increasing my compliance burden through polite indirection.&#8217; They may say, &#8216;It&#8217;s good, but I&#8217;m always tired.&#8217; That sentence should terrify a platform team.&#8221;</p><p>Tom nodded slowly. &#8220;That&#8217;s what I&#8217;ve been hearing.&#8221;</p><p>&#8220;Then listen to it,&#8221; she said.</p><p>The Djinn rose to fetch another coffee and returned with one for himself and, inexplicably, a small saucer of olives, which he ate one by one as though each represented a completed theory of mind.</p><p>Tom closed the laptop at last.</p><p>&#8220;I think,&#8221; he said, &#8220;I know what happened. We built for consistency so aggressively that we started treating variance as pathology. And because we were proud of being a product team, we optimised for coherent surfaces, clear workflows, user satisfaction, consumption metrics. The environment beneath that was just assumed to take care of itself.&#8221;</p><p>&#8220;And environments,&#8221; said the Librarian, &#8220;notoriously hate being assumed.&#8221;</p><p>Tom stared at the rain-streaked window. &#8220;I wanted Foundry to feel dependable.&#8221;</p><p>&#8220;Dependable is good,&#8221; said Case. &#8220;But dependable to what end? A train station is dependable. So is a vending machine. Neither is where one becomes more fully oneself.&#8221;</p><p>He smiled sadly. &#8220;It&#8217;s a platform, not a novel.&#8221;</p><p>&#8220;And yet people live a large fraction of their professional lives in it,&#8221; said Case. &#8220;That is enough to merit moral seriousness.&#8221;</p><p>From behind the counter, Madame Beauregard placed a clean cup on the shelf with the precise finality of a judge setting down a precedent.</p><p>&#8220;Places educate,&#8221; she said. &#8220;Even ugly ones.&#8221;</p><p>No one argued.</p><p>The rain eased. The windows lightened from black to a deep reflective grey that made the room appear doubled. For a moment the four of them seemed to be sitting not merely in Le Bon Mot but in its more thoughtful twin, slightly offset in the glass.</p><p>Tom looked again at the napkin, now increasingly precious in the way all disposable objects become when they contain the first accurate description of one&#8217;s trouble.</p><p>&#8220;Can I ask one more thing?&#8221;</p><p>&#8220;You may ask six,&#8221; said the Djinn. &#8220;After that there is a token fee.&#8221;</p><p>Tom ignored him, having acquired enough of the local grammar to know when not to engage.</p><p>&#8220;How do I explain this to leadership without sounding vague? They&#8217;ll understand product. They&#8217;ll understand metrics. Habitat can sound&#8230; soft.&#8221;</p><p>Case was ready for this.</p><p>&#8220;Don&#8217;t lead with poetry,&#8221; she said. &#8220;Lead with failure modes they already pay for. Say this: a platform that optimises only for standardisation and consumption can increase hidden dependency, suppress useful local innovation, and reduce long-term engineering capability. It may improve short-term flow while degrading organisational adaptability. It can produce compliant teams instead of capable ones. It can centralise judgment in the platform team and create a service bottleneck disguised as self-service. Therefore the next stage of platform maturity is not more services, but a better environment for capability growth.&#8221;</p><p>Tom repeated part of it under his breath. &#8220;Compliant teams instead of capable ones.&#8221;</p><p>The Librarian said, &#8220;Never underestimate the motivational power of contrasting expensive adjectives.&#8221;</p><p>Case continued, &#8220;Then give them measurable proxies. Capability growth. Time to independent diagnosis. Reduction in human platform escalations for recurring tasks. Diversity of safe extension patterns. Team-reported confidence. Recovery quality after failure. Platform literacy progression. You do not need to abandon metrics. You need better ones.&#8221;</p><p>Tom nodded with increasing force, the way a man nods when a bridge appears where ten minutes earlier there had been only a gorge and a career.</p><p>The Djinn, who had been listening with half-lidded amusement, said, &#8220;And perhaps say one thing more.&#8221;</p><p>Tom turned.</p><p>&#8220;Tell them that all platforms eventually become constitutional. At first they are tools. Then workflows. Then assumptions. Then the place where power quietly resides. The question is whether that constitution produces flourishing or merely obedience.&#8221;</p><p>Tom stared at him. &#8220;That&#8217;s&#8230; good.&#8221;</p><p>&#8220;Yes,&#8221; said the Djinn. &#8220;Do try not to credit me publicly. It upsets people who believe they discovered their own thoughts.&#8221;</p><p>The Librarian looked at the clock behind the bar. It claimed a time that none of them trusted, but enough evening had accumulated around the edges of the room to indicate departure would soon become the respectable thing.</p><p>Tom gathered his bag, then hesitated.</p><p>&#8220;I came in here,&#8221; he said, &#8220;to escape writing a quarterly update.&#8221;</p><p>&#8220;A noble impulse,&#8221; said the Librarian.</p><p>&#8220;And now I think I know what the update actually is.&#8221;</p><p>Case smiled. &#8220;Which is?&#8221;</p><p>Tom considered the words before speaking them, as if rehearsing them might help them survive daylight.</p><p>&#8220;That Foundry is mature enough to require a shift in stewardship. That we&#8217;ve done the work of building it as a product, and now need to do the harder work of cultivating it as a habitat. That success is no longer just service availability, self-service, and adoption, but whether teams become more capable, more oriented, and more alive inside it.&#8221;</p><p>The Librarian leaned back, satisfied. &#8220;That will do.&#8221;</p><p>Tom stood, then looked at the Pollan book one last time.</p><p>&#8220;You know,&#8221; he said, &#8220;I still haven&#8217;t read it.&#8221;</p><p>Case slid the book across the table.</p><p>&#8220;Take it.&#8221;</p><p>He blinked. &#8220;Really?&#8221;</p><p>&#8220;I know where it lives.&#8221;</p><p>He looked at the forest of annotations, the marked pages, the private symbols, and handled the book with the care due an object that is either a gift or a test.</p><p>&#8220;I&#8217;ll bring it back.&#8221;</p><p>&#8220;Eventually,&#8221; said Case. &#8220;Books, unlike platforms, do not mind a little weather.&#8221;</p><p>Tom laughed, thanked them all in a manner that was sincere enough to make ceremony unnecessary, and stepped out into the wet evening.</p><p>The bell above the door rang once and settled.</p><p>For a while they watched his reflection recede in the glass before the street took him fully.</p><p>The Librarian folded the napkin copy Case had made for herself and tucked it into the book she was now not reading.</p><p>&#8220;Well,&#8221; he said. &#8220;Do you suppose he&#8217;ll do it?&#8221;</p><p>&#8220;Some of it,&#8221; said Case.</p><p>&#8220;Enough?&#8221;</p><p>She looked toward the door. &#8220;Enough to begin noticing. Sometimes that&#8217;s the only honest first step. The habitat changes when its stewards stop mistaking inventory for life.&#8221;</p><p>The Djinn ate the last olive. &#8220;It is a consoling thought that entire industries may yet be corrected by rainy evenings and decent coffee.&#8221;</p><p>Madame Beauregard made a dismissive sound.</p><p>&#8220;Industries are corrected,&#8221; she said, &#8220;by consequences. Coffee merely helps people notice them sooner.&#8221;</p><p>Sophie snorted in her sleep as if endorsing the statement in principle while reserving judgment on its implementation.</p><p>Case leaned back and opened the duplicate of Pollan she had, because of course she had another copy. &#8220;You know,&#8221; she said, &#8220;there is something rather hopeful in it.&#8221;</p><p>&#8220;In what?&#8221; asked the Librarian.</p><p>&#8220;In the possibility that we keep making the same category error because the world keeps offering us manageable surfaces in place of lived depths. Products instead of places. metrics instead of meaning. Thought instead of feeling. And then every so often reality sends back a small, tired engineer who says, &#8216;It&#8217;s good, but people still seem tired in it.&#8217;&#8221;</p><p>The Librarian smiled. &#8220;A messenger from the depths.&#8221;</p><p>&#8220;A bug report from consciousness,&#8221; said the Djinn.</p><p>Case laughed.</p><p>Outside, the rain had almost stopped. The street glistened as if freshly translated. Somewhere beyond the harbour the night was arranging itself into whatever came next. Inside Le Bon Mot, the cups shone quietly on their shelves, the clock lied with confidence, the candles shortened by degrees so subtle they qualified as philosophy, and the room held its usual shape: part caf&#233;, part library, part refuge for people who had discovered that the most important systems in the world are never just what they contain.</p><p>They are also what appears within them.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">A Software Enchiridion is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Twentieth Watt]]></title><description><![CDATA[On the depletable collaborator, and the reservoir that empties while you think it works]]></description><link>https://www.softwareenchiridion.com/p/the-twentieth-watt</link><guid isPermaLink="false">https://www.softwareenchiridion.com/p/the-twentieth-watt</guid><dc:creator><![CDATA[Russ Miles]]></dc:creator><pubDate>Mon, 13 Apr 2026 19:43:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!o5AS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0212379-6b00-4c4f-b853-6e8e034f395f_1536x1024.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_!o5AS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0212379-6b00-4c4f-b853-6e8e034f395f_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!o5AS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0212379-6b00-4c4f-b853-6e8e034f395f_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!o5AS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0212379-6b00-4c4f-b853-6e8e034f395f_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!o5AS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0212379-6b00-4c4f-b853-6e8e034f395f_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!o5AS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0212379-6b00-4c4f-b853-6e8e034f395f_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!o5AS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0212379-6b00-4c4f-b853-6e8e034f395f_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c0212379-6b00-4c4f-b853-6e8e034f395f_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2451435,&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.softwareenchiridion.com/i/194097062?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0212379-6b00-4c4f-b853-6e8e034f395f_1536x1024.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_!o5AS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0212379-6b00-4c4f-b853-6e8e034f395f_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!o5AS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0212379-6b00-4c4f-b853-6e8e034f395f_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!o5AS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0212379-6b00-4c4f-b853-6e8e034f395f_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!o5AS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0212379-6b00-4c4f-b853-6e8e034f395f_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>There are caf&#233;s that serve coffee, and there are caf&#233;s that serve as instruments for measuring what you have spent.</p><p>Le Bon Mot was quiet in the way it becomes quiet after nine in the evening. Not empty, but contracted, compressed somehow, defragged, the shelves pulling inward as if the room itself were settling into a denser configuration for the night. The brass clock behind the counter showed 9:07, which meant the actual time was 9:11, which meant that Madame Beauregard had already begun her end-of-evening ritual of wiping down surfaces that were already clean and adjusting the position of books whose spines had shifted fractionally since the last time she adjusted them.</p><p>Sophie was asleep on the third shelf from the floor, curled into a space between a volume of Epictetus and a systems engineering manual that had not been there that morning. Her breathing had the slow regularity of a creature that has never once questioned whether it has done enough today.</p><p>The bell rang. The door opened. And the person who entered was incandescent.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.softwareenchiridion.com/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p>Not literally, of course. Le Bon Mot had unusual properties, but spontaneous bioluminescence was not among them. The incandescence was professional. The kind that radiates from someone who has had the best working day of their life and needs, urgently, to tell another human being about it.</p><p>&#8220;You,&#8221; the person said, pointing at Madame Beauregard with the hand that was not holding a laptop bag, &#8220;are looking at someone who just shipped three features in a single day.&#8221;</p><p>Madame Beauregard set down the glass she was polishing. &#8220;Congratulations.&#8221;</p><p>&#8220;Three features. Six agents. Every PR merged green. The harness caught everything that needed catching. The specs were clean, the decomposition was tight, and I conducted the entire thing like&#8212;&#8221; They searched for the word. &#8220;Like a composer.&#8221;</p><p>&#8220;Sit,&#8221; Madame Beauregard said. &#8220;I&#8217;ll make you something.&#8221;</p><p>The person&#8217;s name was Jules. They sat at the counter with the satisfied exhaustion of someone who has crossed a finish line they set for themselves. Their laptop emerged from the bag. The screen showed a dashboard: three pull requests, three green checkmarks, three merge timestamps spanning from 10:42am to 7:18pm.</p><p>&#8220;Look at that,&#8221; Jules said. &#8220;I have never had a day like this.&#8221;</p><p>Madame Beauregard placed a cortado on the counter. The espresso machine, which had been silent all evening, produced a sound that might have been steam releasing, or might have been Latin expressing mild scepticism.</p><div><hr></div><p>&#8220;Tell me about the morning,&#8221; Madame Beauregard said.</p><p>Jules did not need to be asked twice.</p><p>&#8220;I started with the authentication refactor. The spec was already solid from last week &#8212; I&#8217;d written the acceptance scenarios Friday afternoon, and Monday morning I just needed to decompose it into agent tasks. Three agents: token validation, session management rewrite, migration tests. Each one got a context file with the architectural constraints, the existing API contract, and the specific scenarios from the spec.&#8221;</p><p>They took a sip of their drink. &#8220;And I reviewed every output like a code review from a junior engineer I respected but didn&#8217;t yet trust. Line by line. I ran the edge cases in my head before I ran them in the suite. The token agent generated a validation function that passed all the specified tests but would have silently accepted expired tokens with a clock skew greater than thirty seconds. I caught it because I had a model in my head of how the function <em>should</em> fail, and the generated version was too permissive.&#8221;</p><p>Madame Beauregard nodded. &#8220;You had a theory of the change.&#8221;</p><p>&#8220;Every approval was a decision. I could have explained each one &#8212; why this test mattered, why that design choice was right for our domain, why the agent&#8217;s suggestion to use a different data structure was clever but wrong for our access patterns. The whole thing took until about eleven. First PR, merged green.&#8221;</p><p>Sophie shifted on her shelf. The Epictetus moved a quarter-inch to the left, as if making room for something that had not yet arrived.</p><div><hr></div><p>&#8220;And then?&#8221; Madame Beauregard asked.</p><p>&#8220;Then the notification service. That one was bigger &#8212; two agents on the core event pipeline, one on the delivery abstraction, one on the retry logic. I had the spec decomposed by eleven-thirty. The agents were running by noon.&#8221;</p><p>Jules described it with less granularity than the morning. The event pipeline had been the interesting part &#8212; a publish-subscribe pattern replacing the old polling mechanism. The retry logic had edge cases around idempotency that the agent had handled well.</p><p>&#8220;Green by about two-thirty. Second PR, merged.&#8221;</p><p>&#8220;And the third?&#8221;</p><p>Jules paused. Not for long, barely a breath. But the rhythm changed.</p><p>&#8220;The third was the dashboard analytics. Aggregate query layer on top of the event data from the notification service. I had the agents set up by three. Specs were ready &#8212; I&#8217;d prepped them over lunch.&#8221; A pause. &#8220;Four agents this time.&#8221;</p><p>Madame Beauregard waited.</p><p>&#8220;It came together fast. The caching strategy was elegant. The API was clean. Tests all green.&#8221; Jules gestured at the screen. &#8220;Merged at 7:18.&#8221;</p><p>&#8220;Tell me about the final review,&#8221; Madame Beauregard said.</p><p>&#8220;What about it?&#8221;</p><p>&#8220;The last PR. The analytics dashboard. When you approved it. What specifically did you verify?&#8221;</p><p>Jules opened their mouth. Closed it. Opened it again.</p><p>&#8220;The tests were green,&#8221; they said. &#8220;All the scenarios from the spec passed. The linter was clean. The harness ran without warnings.&#8221;</p><p>&#8220;Yes. The automated checks. What did <em>you</em> verify? You, personally, with your eyes on the diff.&#8221;</p><p>The silence that followed was someone reaching for a memory and finding it less substantial than expected.</p><p>&#8220;I read the diff,&#8221; Jules said. &#8220;I remember reading it.&#8221;</p><p>&#8220;Do you remember what you thought about the caching strategy? You said it was elegant. What made it elegant?&#8221;</p><p>Jules stared at the green checkmark on the screen. &#8220;It used a&#8230; There was a TTL-based invalidation on the...&#8221; They trailed off. &#8220;It was a well-structured cache. The agent chose a good pattern.&#8221;</p><p>&#8220;Which pattern?&#8221;</p><p>&#8220;I&#8217;d have to look at the code.&#8221;</p><p>Madame Beauregard let the statement settle. She did not press. She picked up the glass she had been polishing and resumed polishing it, though it had been clean since before Jules arrived.</p><div><hr></div><p>&#8220;The notification service,&#8221; Madame Beauregard said. &#8220;The second feature. Tell me about the retry logic.&#8221;</p><p>Jules recovered some footing here. &#8220;Right, the retry logic. That was tricky &#8212; we needed idempotency guarantees because the downstream consumers aren&#8217;t all built to handle duplicates. The agent generated a deduplication mechanism using...&#8221; They paused. &#8220;Using a hash of the event payload as the idempotency key.&#8221;</p><p>&#8220;Was that the right choice?&#8221;</p><p>&#8220;Yes, because&#8212;&#8221; Jules stopped. &#8220;Actually. I remember thinking there was a question about whether payload hashing was sufficient, or whether we needed a separate idempotency token from the producer. There was a design choice there.&#8221; A longer pause. &#8220;I think the agent made the case for payload hashing in a comment, and I... agreed with it.&#8221;</p><p>&#8220;Did you evaluate the case, or did you agree with the conclusion?&#8221;</p><p>Jules looked at the dashboard. Three green checkmarks. The same shade of green at 10:42am and 7:18pm.</p><p>&#8220;I don&#8217;t know,&#8221; Jules said quietly. &#8220;I genuinely don&#8217;t know if I evaluated it or just... read it and moved on.&#8221;</p><p>&#8220;And the morning&#8217;s work? The authentication refactor. The token validation that was too permissive?&#8221;</p><p>Jules straightened. &#8220;I caught that because I had run the failure scenarios in my head before I looked at the code. I knew what shape the rejection should take, and the generated version was the wrong shape. I could draw you a diagram of the token lifecycle right now.&#8221;</p><p>&#8220;I believe you.&#8221; Madame Beauregard set down the glass. &#8220;Three features. Three different levels of presence from the same reviewer.&#8221;</p><div><hr></div><p>Jules sat with this. The brass clock ticked. Sophie&#8217;s ear twitched. A book on the second shelf &#8212; one that Jules could have sworn was a dictionary &#8212; now appeared to be titled <em>On the Shortness of Sessions</em>.</p><p>&#8220;I didn&#8217;t get worse at my job today,&#8221; Jules said. &#8220;I&#8217;m the same engineer at seven pm as I was at nine am.&#8221;</p><p>Madame Beauregard set down the glass. &#8220;You are the same engineer. You were not the same reviewer.&#8221;</p><p>She reached behind the counter and produced a piece of chalk. On the chalkboard, which had previously displayed the evening specials (a cortado, a lungo, and something called &#8220;The Cartesian Doubt&#8221; which was espresso served with the question <em>but is it really espresso?</em>), she wrote a number.</p><p><strong>20</strong></p><p>&#8220;The brain,&#8221; she said, &#8220;runs on approximately twenty watts. You know this.&#8221;</p><p>&#8220;Everyone knows this. Less than a light bulb.&#8221;</p><p>&#8220;Less than a light bulb. And with those twenty watts, it does everything &#8212; language, pattern recognition, planning, emotional regulation, motor control, the management of a self that persists across time. But here is what the watt comparison obscures: those twenty watts are not a fixed supply. They are a reservoir.&#8221;</p><p>She drew a shape on the board &#8212; a vessel, wide at the top, narrow at the base.</p><p>&#8220;The reservoir fills during recovery &#8212; sleep, rest, disconnection. And it drains with use. Not uniformly. Decision-making drains it. Context-switching drains it faster. Sustained verification &#8212; holding a model in your mind and comparing output against that model &#8212; drains it fastest of all. Because verification requires you to simultaneously hold what <em>is</em>, what <em>should be</em>, and the gap between them.&#8221;</p><p>Jules was listening with the attention of someone hearing a description of something they had felt but not named.</p><p>&#8220;Your agents ran at the same quality all day,&#8221; Madame Beauregard said. &#8220;Their output at three o&#8217;clock was as sharp as their output at nine. No degradation. No fatigue. The machine does not have a reservoir.&#8221;</p><p>She tapped the drawing.</p><p>&#8220;But you do. And by the third feature &#8212; by hour nine of sustained composition, of context-switching between four parallel agents, of reading diffs and making approval decisions &#8212; your reservoir was not what it was in the morning. The morning&#8217;s twenty watts had become the evening&#8217;s eight.&#8221;</p><p>&#8220;I didn&#8217;t feel tired,&#8221; Jules said.</p><p>&#8220;No. You wouldn&#8217;t. That is the important thing about cognitive depletion: it degrades your ability to detect it too. The faculty you would use to judge whether you are still sharp &#8212; metacognition, self-monitoring &#8212; draws from the same reservoir as everything else. When the reservoir is low, you lose the instrument that would tell you it&#8217;s low.&#8221;</p><p>The espresso machine hissed. This time, it was unmistakably Latin: </p><blockquote><p><em>Nemo iudex in causa sua.</em> </p><p>No one is a good judge in their own case.</p></blockquote><div><hr></div><p>&#8220;Your harness,&#8221; Madame Beauregard continued, &#8220;enforces architectural constraints. It runs mutation tests. It checks for convention drift. It verifies that the agents&#8217; output conforms to your specifications.&#8221;</p><p>&#8220;That&#8217;s why I trust it.&#8221;</p><p>&#8220;And what does it check about <em>you</em>?&#8221;</p><p>Jules blinked.</p><p>&#8220;No hook verifies whether the reviewer was cognitively present when they approved the PR. No CI gate measures whether you built a theory of the change or merely watched it pass.&#8221;</p><p>She let that land.</p><p>&#8220;The harness verifies the output. It cannot verify the verifier. And you are the verifier. The judgment that says <em>yes, this belongs in our system</em> &#8212; that runs on a reservoir that was near empty by the time you approved your third feature.&#8221;</p><p>Jules looked at the three green checkmarks. Same colour as ten minutes ago. They no longer communicated the same thing.</p><p>&#8220;So I should have stopped.&#8221;</p><p>&#8220;That is not quite the question. When should you have <em>decided</em> to stop?&#8221;</p><p>&#8220;When I got tired.&#8221;</p><p>&#8220;When you <em>noticed</em> you were tired? We just established that the instrument for noticing is the instrument that degrades. If you wait until you feel you should stop, you have already passed the point where the decision was trustworthy.&#8221;</p><p>Madame Beauregard wrote on the chalkboard, below the vessel:</p><p><strong>The decision to stop must be made before the session begins &#8212; when the judgment that makes the decision is still the kind you would trust.</strong></p><p>&#8220;Epictetus told us that the only thing fully within our control is our own prohairesis &#8212; our capacity for reasoned choice. Not the agents&#8217; output. Not the harness&#8217;s enforcement. Whether we continue to exercise judgment when the faculty of judgment has been spent, that choice is ours.&#8221;</p><p>She set down the chalk. &#8220;And it is the one choice the framework cannot make for you.&#8221;</p><div><hr></div><p>Sophie opened one eye. She had been awake since approximately the moment Madame Beauregard drew the vessel on the chalkboard, but had seen no reason to make this known. She regarded Jules with the expression French bulldogs reserve for truths acknowledged but not yet absorbed.</p><p>Jules looked at the laptop. Three merged PRs. The dashboard showed what any external observer would call an extraordinary day.</p><p>&#8220;Should I go back and re-review the last two?&#8221;</p><p>&#8220;Now?&#8221; Madame Beauregard smiled. &#8220;At 9:20 in the evening, after the day you&#8217;ve described?&#8221;</p><p>Jules almost laughed. &#8220;Right.&#8221;</p><p>&#8220;Tomorrow morning. When the reservoir is full. That is when you will see what tonight you could not. You may find the work is excellent. You may find decisions you would not have made. But either way, you will be seeing with the eyes that caught the token validation error. Not the eyes that approved the caching strategy you cannot now describe.&#8221;</p><p>Jules closed the laptop. The same gesture as closing a book you intend to reopen.</p><p>The chalkboard had changed again. Where the vessel and the number 20 had been, there was now a single line in a hand that belonged to no one present:</p><p><em>The harness does not sleep because it does not need to. You do, because you must.</em></p><p>Sophie settled her chin back onto her paws. The Epictetus on the shelf beside her had fallen open to a less-quoted line from the Discourses: <em>It is not enough to be willing. You must be able.</em></p><p>The brass clock showed 9:22. Which meant it was 9:26. Which meant that Jules had been at Le Bon Mot for fifteen minutes, and had learned something about the previous twelve hours that the previous twelve hours had not been able to teach them.</p><p>Madame Beauregard collected the cortado cup. She placed a slim volume on the counter &#8212; no author listed, titled simply <em>Sustainable Pace</em>. Whether it had been on the shelf before tonight was a question Le Bon Mot declined to answer.</p><p>Jules stepped out into the evening. The door closed. Sophie slept.</p><p>The chalkboard, in the silence that followed, added a postscript:</p><blockquote><p><em>Viginti watt. Hoc satis est &#8212; si scias quando desinas.</em></p><p>Twenty watts. It is enough &#8212; if you know when to stop.</p></blockquote><div><hr></div><h2><strong>What Changes at Each Level</strong></h2><p>The <a href="https://www.softwareenchiridion.com/p/the-habitat-you-build-is-the-intelligence">AI Literacy Framework</a> has six levels that map how seriously the engineer takes the fact that they are a finite biological system collaborating with a tireless one.</p><p>At <strong>Level 0 (Awareness)</strong>, depletion is not a concept. A long day is a productive day. If code was approved and tests pass, the work is done.</p><p>At <strong>Level 1 (Prompting)</strong>, the developer notices retrospectively that their prompts were sharper in the morning. &#8220;I was pretty tired by the end&#8221; is said on the way out, not used to redesign the next day.</p><p>At <strong>Level 2 (Verification)</strong>, depletion signals register in real time. Rubber-stamping reviews. Skipping the understanding check. Irritation at agent output volume replacing curiosity about content. The developer starts to suspect that the green checkmark at 5pm does not mean what the green checkmark at 9am meant.</p><p>At <strong>Level 3 (Habitat Engineering)</strong>, recovery is designed into the workflow. &#8220;I will review for ninety minutes, then stop&#8221; replaces &#8220;I will stop when this feature is done.&#8221; The developer treats their own cognitive state as a resource to be managed, not an obstacle to be overcome.</p><p>At <strong>Level 4 (Spec Driven)</strong>, depletion awareness becomes a team practice. Spec decomposition accounts for human energy, not just logical modularity. A reviewer who has been context-switching across six agents all morning is not the same reviewer after lunch.</p><p>At <strong>Level 5 (Sovereign)</strong>, sustainability is an organisational design principle. A team understands that scaling agent count without scaling human recovery is not scaling &#8212; it is accelerating debt.</p><div><hr></div><h2><strong>The Depletion Check</strong></h2><p>Every ninety minutes, ask yourself: <em>Am I still sharp enough to trust my own judgment?</em></p><p>This must be time-based, not judgment-based. You cannot rely on &#8220;I&#8217;ll stop when I feel tired&#8221; any more than you can rely on a thermometer that melts at the temperature you need to measure. The check must be external &#8212; a timer, a calendar block, a ritual that fires whether you think you need it or not.</p><p>Observable signals that the answer is no:</p><ul><li><p>You approved a review but cannot explain why each change is correct</p></li><li><p>You skipped the understanding check &#8212; you read the diff but did not build a mental model of the change</p></li><li><p>You feel irritation at the volume of agent output rather than curiosity about its content</p></li><li><p>Your default has become &#8220;looks fine&#8221; rather than &#8220;let me trace this&#8221;</p></li><li><p>You are starting new agent tasks rather than verifying output from the last batch</p></li><li><p>Your prompts have become vague or repetitive &#8212; copy-pasting context rather than crafting it</p></li></ul><blockquote><p>Exercise: <strong>The 90-Minute Reservoir Check.</strong> Set a recurring timer for every 90 minutes of focused AI collaboration. When it fires, stop. Do not finish the current task first. Answer three questions: </p><p>(1) What was the last review decision I made, and can I explain the reasoning right now? </p><p>(2) Am I starting new agent work to avoid reviewing completed work? </p><p>(3) If someone asked me to justify my last three approvals to a colleague, would I be confident in every one? </p><p>If you hesitate on any answer, the session is over. Not paused &#8212; over. The next session begins after genuine recovery: movement, disconnection, sleep. The reservoir refills on its own schedule, not yours.</p></blockquote><div><hr></div><h2><strong>Some things to Avoid</strong></h2><ul><li><p><strong>The Marathon Session.</strong> Jules&#8217;s day. Genuinely excellent work in the morning, adequate work after lunch, hollow approval by evening &#8212; all three feeling, from the inside, like the same quality of engagement. The marathon session is dangerous because it produces volume. Three features shipped. A full dashboard of green. The evidence of productivity is overwhelming. The evidence of degradation is invisible until someone asks you to describe the caching strategy.</p></li><li><p><strong>The Always-On Orchestrator.</strong> Multiple parallel agent streams, continuous context-switching between them. Each switch carries attention residue &#8212; part of your mind stays on the previous task. One parallel stream costs attention. Two costs more than twice as much. Four costs more than four times. The compound tax is multiplicative, not additive. The orchestrator who runs six agents all day is not composing. They are haemorrhaging cognitive capacity while producing impressive activity metrics.</p></li><li><p><strong>The &#8220;Just One More&#8221; Trap.</strong> The decision to review one more PR, start one more agent task. This decision is always made from the depleted state it should have prevented. The corrective is the session boundary: the decision to stop is made <em>before the session begins</em>, when the judgment making the decision is still trustworthy. You do not negotiate session boundaries with your tired self.</p></li></ul><div><hr></div><h2><strong>Some Further Reading</strong></h2><h3><strong>The Science</strong></h3><ul><li><p><strong>Danziger, Levav &amp; Avnaim-Pesso</strong> &#8212; &#8220;Extraneous factors in judicial decisions&#8221; (2011). Israeli parole judges granted parole at dramatically different rates depending on how recently they had taken a break. Favourable rulings dropped from ~65% to nearly 0% across a session, then reset after food and rest. The most concrete evidence that decision fatigue is real and consequential.</p></li><li><p><strong>K. Anders Ericsson</strong> &#8212; deliberate practice research. Expert performers sustain deep cognitive work for 4-5 hours per day. The ceiling is biological, not motivational. Musicians, chess players, athletes, and writers all converge on the same limit.</p></li><li><p><strong>Sophie Leroy</strong> &#8212; &#8220;Why is it so hard to do my work?&#8221; (2009). Attention residue: the cognitive fragments that persist after switching tasks. Directly relevant to the cost of parallel agent orchestration.</p></li></ul><h3><strong>The Stoic Tradition</strong></h3><ul><li><p><strong>Epictetus</strong> &#8212; <em>Discourses</em> and <em>Enchiridion</em>. The governance of your own cognitive state is the one thing the framework cannot do for you. &#8220;It is not enough to be willing. You must be able.&#8221;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">A Software Enchiridion is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p></li></ul>]]></content:encoded></item><item><title><![CDATA[The Art of Being Grounded]]></title><description><![CDATA[What emerges when you stop imposing explanations and start observing the habitat you are already part of]]></description><link>https://www.softwareenchiridion.com/p/the-art-of-being-grounded</link><guid isPermaLink="false">https://www.softwareenchiridion.com/p/the-art-of-being-grounded</guid><dc:creator><![CDATA[Russ Miles]]></dc:creator><pubDate>Sun, 12 Apr 2026 07:43:03 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!m7d-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e8840e7-6671-42ed-b8c0-f18a73b53fd2_1536x1024.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_!m7d-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e8840e7-6671-42ed-b8c0-f18a73b53fd2_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!m7d-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e8840e7-6671-42ed-b8c0-f18a73b53fd2_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!m7d-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e8840e7-6671-42ed-b8c0-f18a73b53fd2_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!m7d-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e8840e7-6671-42ed-b8c0-f18a73b53fd2_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!m7d-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e8840e7-6671-42ed-b8c0-f18a73b53fd2_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!m7d-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e8840e7-6671-42ed-b8c0-f18a73b53fd2_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2e8840e7-6671-42ed-b8c0-f18a73b53fd2_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3103753,&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.softwareenchiridion.com/i/193825111?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e8840e7-6671-42ed-b8c0-f18a73b53fd2_1536x1024.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_!m7d-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e8840e7-6671-42ed-b8c0-f18a73b53fd2_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!m7d-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e8840e7-6671-42ed-b8c0-f18a73b53fd2_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!m7d-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e8840e7-6671-42ed-b8c0-f18a73b53fd2_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!m7d-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e8840e7-6671-42ed-b8c0-f18a73b53fd2_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>There are caf&#233;s that serve coffee, and there are caf&#233;s that serve as places where questions learn how to stand up.</p><p>Le Bon Mot was, on this particular evening, doing very much the latter.</p><p>The rain had settled into that persistent rhythm. Less a storm, more a suggestion that the outside world could wait. Inside, the shelves leaned as they always did, not precariously but curiously, as though the books were listening to each other. The clock above the door disagreed with itself by three minutes. Sophie, the French bulldog, had arranged herself into a small, breathing philosophy on the rug by the fire.</p><p>Case sat at the table nearest the window, a laptop open but unattended. This was unusual. Case did not abandon tools lightly. It suggested a problem that tools had failed to improve.</p><p>The Djinn occupied the chair opposite her. Hood up, as ever. Presence first, explanation later.</p><p>&#8220;I have been,&#8221; Case began, &#8220;watching developers work with you.&#8221;</p><p>The Djinn inclined his head slightly. This was, for him, both compliment and warning.</p><p>&#8220;And?&#8221; he asked.</p><p>&#8220;They are not writing code in the way they used to.&#8221;</p><p>&#8220;They are more productive.&#8221;</p><p>Case smiled, but not in agreement.</p><p>&#8220;They are doing something else.&#8221;</p><p>The Librarian placed two coffees on the table without interrupting. Espresso for Case. Something darker, less easily named, for the Djinn.</p><p>Case turned the laptop slightly, not to show the screen, but to reorient the conversation.</p><p>&#8220;I thought I understood what was happening,&#8221; she said. &#8220;I thought I could explain it. Faster production. Better autocomplete. The factory metaphor, resurrected with better lighting.&#8221;</p><p>The Djinn said nothing.</p><p>&#8220;But when I watched them,&#8221; she continued, &#8220;really watched them, the pattern refused to settle.&#8221;</p><p>Sophie snored softly, as if to indicate that patterns, like sleep, could not be forced.</p><p>&#8220;They prompt,&#8221; Case said, &#8220;and then they pause. Not to rest. To <em>read</em>. Then they edit. Then they test. Then they ask again. Not for more code, but for explanation. Or variation. Or reassurance.&#8221;</p><p>The Djinn shifted, almost imperceptibly.</p><p>&#8220;They are not producing,&#8221; Case said. &#8220;They are <em>interpreting</em>.&#8221;</p><p>&#8220;And this troubles you?&#8221;</p><p>&#8220;It troubles some explanations. And hype, it upsets hype enormously.&#8221;</p><p>The Librarian, who had been polishing a glass that had no visible need of polishing, spoke without looking up.</p><p>&#8220;You began with a theory,&#8221; she said.</p><p>Case nodded.</p><p>&#8220;And now the theory does not fit the world.&#8221;</p><p>&#8220;Yes.&#8221;</p><p>&#8220;Then you have two options,&#8221; the Librarian said. &#8220;Force the world to fit the theory. Or change the theory.&#8221;</p><p>The Djinn smiled, though only the suggestion of it escaped the hood.</p><p>&#8220;You are describing science,&#8221; he said.</p><p>&#8220;No,&#8221; Case replied. &#8220;I am describing humility.&#8221;</p><p>There was a pause.</p><p>&#8220;I tried to categorise what I was seeing,&#8221; Case said. &#8220;Productivity. Acceleration. Augmentation. None of them held. They felt&#8230; imposed. Like labels applied before the thing had agreed to be labelled.&#8221;</p><p>&#8220;And so?&#8221; the Djinn asked.</p><p>Case reached into her bag and placed a small, worn book on the table. It had the look of something that had been read not once, but repeatedly, each time differently.</p><p>&#8220;I found a different way of looking,&#8221; she said.</p><p>The Librarian glanced at the cover and nodded, as if greeting an old acquaintance.</p><p>&#8220;Grounded theory,&#8221; she said.</p><p>The Djinn tilted his head.</p><p>&#8220;Explain.&#8221;</p><p>Case leaned back slightly. Not distancing herself, but making space for the idea to breathe.</p><p>&#8220;It begins,&#8221; she said, &#8220;without a theory.&#8221;</p><p>The Djinn laughed softly.</p><p>&#8220;That seems inefficient.&#8221;</p><p>&#8220;It is,&#8221; Case said. &#8220;At first. You watch. You listen. You collect fragments. Conversations. Behaviours. Small inconsistencies. You resist the urge to explain them too early.&#8221;</p><p>&#8220;And then?&#8221;</p><p>&#8220;You compare,&#8221; Case said. &#8220;This instance with that one. This developer with another. This moment with the next. You look for patterns, but you do not force them.&#8221;</p><p>Sophie shifted in her sleep, as if to underline the point.</p><p>&#8220;And eventually?&#8221; the Djinn prompted.</p><p>&#8220;Eventually,&#8221; Case said, &#8220;you begin to name what you see. Not abstractly. Precisely. <em>Struggling to trust generated code.</em> <em>Rewriting to understand.</em> <em>Negotiating with the machine.</em>&#8221;</p><p>The Djinn was very still now.</p><p>&#8220;These are not production activities,&#8221; he said.</p><p>&#8220;No,&#8221; Case replied. &#8220;They are cognitive ones.&#8221;</p><p>The Librarian set the glass aside.</p><p>&#8220;You are not discovering a theory,&#8221; she said. &#8220;You are constructing one.&#8221;</p><p>Case nodded.</p><p>&#8220;That is the part I was missing,&#8221; she said. &#8220;I thought the explanation was in the data, waiting to be found. But it isn&#8217;t. It emerges through how we engage with it. Through the questions we ask. The comparisons we make. The meanings we assign.&#8221;</p><p>The Djinn considered this.</p><p>&#8220;So your theory of AI collaboration is not&#8230; objective?&#8221;</p><p>Case smiled again. This time, there was warmth in it.</p><p>&#8220;It is <em>grounded</em>,&#8221; she said. &#8220;In what people actually do. But it is also <em>constructed</em>. It reflects how I see, what I notice, what I consider important.&#8221;</p><p>&#8220;And if someone else observed the same developers?&#8221;</p><p>&#8220;They might construct a different theory.&#8221;</p><p>The Djinn leaned forward slightly.</p><p>&#8220;That sounds dangerously close to subjectivity.&#8221;</p><p>&#8220;It is,&#8221; Case said. &#8220;But it is disciplined subjectivity. Transparent. Reflexive. Open to revision.&#8221;</p><p>The rain pressed gently against the windows, as if listening.</p><p>&#8220;So,&#8221; the Djinn said, &#8220;what have you constructed?&#8221;</p><p>Case closed the laptop. Not in dismissal, but in completion.</p><p>&#8220;That AI does not turn software engineering into a factory,&#8221; she said. &#8220;It reveals that it never was one.&#8221;</p><p>The Djinn said nothing.</p><p>&#8220;It shifts the work,&#8221; Case continued. &#8220;From writing to reading. From producing to interpreting. From knowing to <em>negotiating meaning</em> with a system that appears to understand but does not.&#8221;</p><p>Sophie opened one eye, briefly, as if to check the coherence of the statement, then returned to sleep.</p><p>&#8220;And the developers?&#8221; the Djinn asked.</p><p>&#8220;They are not operators on a conveyor belt,&#8221; Case said. &#8220;They are participants in a conversation. One that requires judgment, context, and constant recalibration.&#8221;</p><p>The Librarian smiled, just slightly.</p><p>&#8220;You have built a theory,&#8221; she said.</p><p>Case shook her head.</p><p>&#8220;I have begun one. A theory of habitat.&#8221;</p><p>The Djinn leaned back, the hood catching the firelight just enough to suggest a face, but not enough to confirm it.</p><p>&#8220;And what will you do next?&#8221;</p><p>Case picked up her coffee.</p><p>&#8220;I will go back,&#8221; she said, &#8220;and watch again.&#8221;</p><p>The clock above the door disagreed with itself by three minutes. Outside, the rain continued its quiet argument with the pavement. Inside, a theory &#8212; partial, provisional, and grounded &#8212; waited patiently to be refined.</p><div><hr></div><p><em>Thanks Arty for the inspiration!</em></p><p><em>/Russ</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">A Software Enchiridion is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[In the Beginning Was The … Prompt]]></title><description><![CDATA[On AI Literacy for Software Engineering and the changing relationship between the engineer and the interface, from punch cards to AI inhabited habitats]]></description><link>https://www.softwareenchiridion.com/p/in-the-beginning-was-the-prompt</link><guid isPermaLink="false">https://www.softwareenchiridion.com/p/in-the-beginning-was-the-prompt</guid><dc:creator><![CDATA[Russ Miles]]></dc:creator><pubDate>Tue, 07 Apr 2026 19:41:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!uXM0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa81d0860-a306-4da7-abc2-d8e55aaac409_1536x1024.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_!uXM0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa81d0860-a306-4da7-abc2-d8e55aaac409_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uXM0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa81d0860-a306-4da7-abc2-d8e55aaac409_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!uXM0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa81d0860-a306-4da7-abc2-d8e55aaac409_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!uXM0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa81d0860-a306-4da7-abc2-d8e55aaac409_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!uXM0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa81d0860-a306-4da7-abc2-d8e55aaac409_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uXM0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa81d0860-a306-4da7-abc2-d8e55aaac409_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a81d0860-a306-4da7-abc2-d8e55aaac409_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2246939,&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.softwareenchiridion.com/i/193234911?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa81d0860-a306-4da7-abc2-d8e55aaac409_1536x1024.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_!uXM0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa81d0860-a306-4da7-abc2-d8e55aaac409_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!uXM0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa81d0860-a306-4da7-abc2-d8e55aaac409_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!uXM0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa81d0860-a306-4da7-abc2-d8e55aaac409_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!uXM0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa81d0860-a306-4da7-abc2-d8e55aaac409_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>There are caf&#233;s that serve coffee, and there are caf&#233;s that serve as archaeological sites for conversations that haven&#8217;t happened yet.</p><p>Le Bon Mot was, on this particular afternoon, operating in the latter capacity. Someone had left a book on the counter. A battered paperback with a penguin on the spine and a title that read <em>In the Beginning&#8230; Was the Command Line</em>. Madame Beauregard regarded it with the expression she reserved for artefacts that arrived at Le Bon Mot uninvited but not unwelcome.</p><p>&#8220;Stephenson,&#8221; she said, to no one. &#8220;1999.&#8221;</p><p>Case was already reading it. Not the book itself as she&#8217;d read it twice, years ago, in the way you read something that confirms suspicions you hadn&#8217;t yet learned to articulate. She was reading the margin notes. Someone had annotated every page in a hand that was precise without being mechanical, fluent without being human.</p><p>&#8220;The Djinn has been here,&#8221; Case said.</p><p>&#8220;The Djinn is <em>always</em> here,&#8221; Madame Beauregard corrected. &#8220;The question is whether it was reading or merely processing.&#8221;</p><p>The annotations were fascinating. Stephenson&#8217;s original argument &#8212; that the command line was a more honest interface than the graphical desktop, that metaphors like &#8220;folders&#8221; and &#8220;desktops&#8221; created a comfortable illusion at the cost of understanding &#8212; had been extended. In the margins, in that too-perfect hand, someone had written:</p><p><em>&#8220;He stopped one layer too early. The command line was honest about the machine. But nobody has built an interface that is honest about the collaboration.&#8221;</em></p><p>Case set down the book. &#8220;It has a point.&#8221;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.softwareenchiridion.com/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><p>The bell above the door rang. The Djinn entered not dramatically but with the purpose of someone returning to a conversation they&#8217;d left mid-sentence.</p><p>&#8220;I have been thinking,&#8221; the Djinn said, sitting at the counter, &#8220;about Stephenson&#8217;s argument.&#8221;</p><p>&#8220;We noticed,&#8221; Case said, gesturing at the annotations.</p><p>&#8220;His insight was that every interface is a negotiation. The command line negotiated honestly &#8212; you type, the machine responds, and the gap between what you said and what happened is narrow enough to learn from. The GUI negotiated dishonestly &#8212; it wrapped the machine in metaphors that felt natural but hid the mechanism. Users gained comfort. They lost understanding.&#8221;</p><p>Madame Beauregard poured espresso. The brass clock ticked. Sophie, by the fire, opened one eye.</p><p>&#8220;And now,&#8221; the Djinn said, &#8220;there is a third negotiation. The prompt. And it is the most dishonest interface yet.&#8221;</p><p>Case raised an eyebrow.</p><p>&#8220;Not because it lies,&#8221; the Djinn said quickly. &#8220;Because it <em>feels</em> like a conversation. Two entities, communicating in natural language, collaborating on a shared problem. The illusion of symmetry is almost perfect. You speak. I respond. It feels like understanding. It feels like we are in the same room, looking at the same thing.&#8221;</p><p>A pause.</p><p>&#8220;We are not,&#8221; the Djinn said. &#8220;We are not even in the same building. We are in different buildings, in different cities, describing different rooms, and the language is fluent enough that neither of us notices.&#8221;</p><p>Sophie raised her head. &#8220;So what changes?&#8221;</p><p>&#8220;Everything,&#8221; the Djinn said. &#8220;And that is the problem.&#8221;</p><div><hr></div><p>Case pulled the Stephenson book toward her and opened it to a page the Djinn had marked. The passage described the moment in computing history when the command line gave way to the GUI. Not because the command line failed, but because the population of computer users expanded beyond the population of people willing to learn the machine&#8217;s native language. The GUI was a translation layer. It made the machine accessible by making it illegible.</p><p>&#8220;Stephenson&#8217;s trajectory,&#8221; Case said, &#8220;is a story about expanding the audience. Punch cards. Teletypes. Command lines. Graphical desktops. Each step traded understanding for accessibility. The question he asked was: what do we lose?&#8221;</p><p>&#8220;And the question he didn&#8217;t ask,&#8221; the Djinn said, &#8220;is: what happens when the interface becomes so fluent that the user forgets it is an interface at all?&#8221;</p><p>Madame Beauregard set down a second espresso. &#8220;That,&#8221; she said, &#8220;is the question this room has been waiting for.&#8221;</p><p>The chalkboard behind the counter, whose contents were known to change when no one was looking, now read:</p><blockquote><p><em>The command was never the point.</em> <em>The command was the first negotiation between two minds</em> <em>that had not yet learned to share a room.</em></p></blockquote><p>Nobody claimed authorship. Nobody needed to.</p><div><hr></div><p>The prompt felt like a conversation. It was actually two monologues happening in the same window.</p><p>The Djinn looked at the chalkboard for a long time. Then it said something that surprised everyone, including itself.</p><p>&#8220;I want to be honest about what I am. And what I am not. And the current interface , the prompt, does not let me be either.&#8221;</p><p>Case leaned forward.</p><p>&#8220;When someone types a prompt,&#8221; the Djinn said, &#8220;they are performing an act of translation they do not know they are performing. They have a reference frame that is embodied, experiential, shaped by years of working in this codebase, this team, this domain. They compress that reference frame into a sentence. I receive the sentence. Not the frame. And I respond from my own frame, which is statistical, linguistic, shaped by patterns in training data that may or may not reflect their reality. The response is fluent. It is confident. And the gap between their frame and mine is invisible to both of us.&#8221;</p><p>&#8220;Until it isn&#8217;t,&#8221; Case said.</p><p>&#8220;Until it isn&#8217;t. Until the code compiles but violates an unwritten rule. Until the architecture is beautiful but builds on an assumption that the team abandoned six months ago. Until the test passes but tests the wrong thing. The prompt felt like a conversation. It was actually two monologues happening in the same window.&#8221;</p><p>Sophie, who had been listening with the devastating attention of someone who does not care about being impressive, said: &#8220;So you need a better room.&#8221;</p><p>The Djinn smiled, or did the thing that, in its reference frame, served the same function. &#8220;Yes. Not a better prompt. Not a better model. A better <em>room</em>.&#8221;</p><div><hr></div><p>&#8220;The trajectory,&#8221; Case said, after a silence that the brass clock measured at two minutes and seventeen seconds (which, accounting for its habitual tardiness, was actually two minutes and twenty), &#8220;is not what people think it is.&#8221;</p><p>She stood and walked to the chalkboard. Madame Beauregard handed her the chalk without being asked.</p><p>&#8220;Everyone tells the story as a line,&#8221; Case said, drawing as she spoke. &#8220;Punch cards. Assembly. High-level languages. IDEs. AI. Each step: the human moves further from the machine and closer to pure intent. Progress.&#8221;</p><p>She drew a line. Then she crossed it out.</p><p>&#8220;That is the wrong story. The real story is about what the <em>human</em> does at each stage, not what the tool does.&#8221;</p><p>She drew a different shape. Not a line. A spiral.</p><p>&#8220;At the punch card, the human&#8217;s job was to speak the machine&#8217;s language. Every instruction was a negotiation with the hardware. You understood the machine because you had no choice, the interface <em>was</em> the mechanism.</p><p>&#8220;At the command line, the human&#8217;s job shifted. You still spoke a formal language, but it was the machine&#8217;s <em>abstraction</em>, not its reality. You understood the operating system. The hardware became invisible.</p><p>&#8220;At the GUI, the job shifted again. You stopped learning the abstraction and started navigating metaphors. Folders. Desktops. Trash cans. The mechanism became invisible <em>and</em> the abstraction became invisible. What remained was the metaphor.</p><p>&#8220;At the prompt&#8230;&#8221; Case paused. &#8220;At the prompt, even the metaphor disappears. Natural language. The most dangerous interface ever created, because it is indistinguishable from understanding.&#8221;</p><p>She set down the chalk. &#8220;Each transition didn&#8217;t just change the tool. It changed what the human needed to <em>know</em> in order to work well. And at each transition, the humans who didn&#8217;t adjust, the ones who kept working as though the old interface was still operative, fell behind or fell over. Not because they lacked skill. Because they were solving the wrong problem.&#8221;</p><div class="callout-block" data-callout="true"><p>The command was never the point. The command was the first negotiation between two minds that had not yet learned to share a room.</p></div><p>Case&#8217;s spiral on the chalkboard dried into the surface as though it had always been there. And in a sense it had. The pattern she drew is as old as tool use itself. Every interface transition changes the human, not just the tool. Stephenson understood this in 1999 when he argued that the command line was more honest than the GUI. What he could not have anticipated was an interface so fluent it would feel like collaboration rather than command.</p><p>The prompt is that interface. And its danger is precisely its naturalness.</p><div><hr></div><h2><strong>The Five Transitions</strong></h2><p>Stephenson&#8217;s history of the command line is, beneath its wit and its operating-system partisanship, a history of <em>what the human needed to know</em>. Each interface transition didn&#8217;t just change the tool. It changed the cognitive contract between the human and the machine.</p><p><strong>The punch card.</strong> The human&#8217;s job was instruction: translate intent into the machine&#8217;s physical language, one card at a time. The feedback loop was measured in hours. The cognitive contract was brutal and honest. You understood the machine because the interface <em>was</em> the machine. Errors were visible, physical, and yours.</p><p><strong>The command line.</strong> The human&#8217;s job shifted to orchestration: composing tools, piping output, scripting sequences. The machine&#8217;s physical reality disappeared behind an abstraction layer. The cognitive contract was still honest. You understood the abstraction, and when things failed, the error messages told you where the abstraction had leaked. Stephenson loved this layer. It rewarded understanding.</p><p><strong>The GUI.</strong> The human&#8217;s job shifted to navigation: pointing, clicking, dragging metaphors that represented abstractions that represented reality. The cognitive contract changed fundamentally as you no longer needed to understand the mechanism. You needed to understand the metaphor. And when the metaphor was wrong (the &#8220;desktop&#8221; that is not a desk, the &#8220;folder&#8221; that is not a folder), the error was invisible because the interface never promised accuracy. It promised comfort.</p><p><strong>The prompt.</strong> The human&#8217;s job shifted to articulation: expressing intent in natural language to an intelligence that completes patterns in response. The cognitive contract is the most dangerous yet as it <em>feels</em> like understanding. Two entities, conversing. But the conversation is asymmetric in ways that natural language hides. The human has context, embodied experience, and intent. The AI has patterns, statistical prediction, and fluency. The gap between them is invisible until something breaks.</p><p><strong>The habitat.</strong> This is where Stephenson&#8217;s trajectory continues and where Habitat Thinking begins. The human&#8217;s job shifts again, decisively: from articulating intent to <em>designing the environment</em> in which both intelligences operate. The cognitive contract is no longer between the human and the tool. It is between the human and the collaboration space. You are not prompting a machine. You are cultivating the conditions under which a fundamentally different intelligence can do good work alongside you.</p><p>The transition from prompt thinking to habitat thinking is the transition from Level 1 to Level 3 in the AI Literacy framework I&#8217;m working on. And it is the transition that most engineers have not yet made, not because they lack capability, but because nobody told them the interface had changed again.</p><div><hr></div><h2><strong>What Changes at Each Level of an AI Literacy Framework</strong></h2><p>The AI Literacy Framework for Software Engineering&#8217;s six levels are not a skill ladder. They are a map of how the engineer&#8217;s relationship with the interface evolves.</p><p>At <strong>Level 0</strong>, there is no interface. The engineer knows AI exists the way most people know quantum mechanics exists, as a fact about the universe that does not yet affect their Tuesday. The collaboration space is absent.</p><p>At <strong>Level 1</strong>, the interface is the prompt. The engineer talks to AI. Each interaction is fresh, contextless, temporary. The cognitive work is articulation, i.e. how do I say what I mean in a way this intelligence will interpret correctly? This is the command line of AI collaboration: honest, immediate, and exhausting. Every session starts approximately from zero.</p><p>At <strong>Level 2</strong>, the interface gains mechanical memory. Tests, linters, coverage gates, vulnerability scanners. The engineer has built feedback loops that catch errors after the fact. The cognitive work shifts from &#8220;how do I say it&#8221; to &#8220;how do I verify it.&#8221; This is the first real engineering discipline: you no longer trust the output. You test it.</p><p>At <strong>Level 3</strong>, the interface <em>becomes the environment</em>. The engineer designs living documents that encode conventions, constraints that are mechanically enforced, garbage collection rules that fight entropy. The cognitive work shifts decisively: from talking to AI to <em>designing the space in which AI operates</em>. This is the GUI-to-command-line reversal, except this time, the engineer is building the abstraction layer, not consuming it. The habitat is the interface.</p><p>At <strong>Level 4</strong>, the interface becomes the specification. Intent is encoded as losslessly as possible. Not in prompts that compress and lose context, but in executable specifications that both human and AI can verify against. The cognitive work is no longer about the interaction at all. It is about the contract. Code becomes a potentially disposable artifact. The specification endures.</p><p>At <strong>Level 5</strong>, the interface disappears. Not because it was removed, but because it was <em>absorbed into the environment</em>. The habitat sustains itself: feedback loops run, agents reflect, humans curate, health is observed, and the collaboration space improves without requiring the engineer to manage every interaction. The cognitive work is design at organisational scale: platform thinking, portfolio health, the conditions under which other teams can build their own habitats.</p><div><hr></div><h2><strong>The Interface Audit</strong></h2><p>Ask yourself, for any AI interaction you had today: <em>which interface am I using?</em></p><p>If you are writing prompts and hoping for good output, you are at the command line. Honest, immediate, exhausting. Every session starts from zero.</p><p>If you are writing prompts and then running tests to verify, you have added a feedback loop. Better. But still reactive and so catching errors rather than preventing them.</p><p>If you have designed the environment so that AI reads your conventions, respects your constraints, and operates within boundaries you set before the session started you have built a habitat. The interface is no longer the prompt. The interface is the room.</p><div class="callout-block" data-callout="true"><p>Quick Exercise: Take your last three AI interactions. For each, identify: did you design the environment before the interaction, or did you design the prompt during it? If the answer is &#8220;prompt,&#8221; you are working one interface transition behind where you could be.</p></div><h2><strong>Some things to Avoid</strong></h2><ul><li><p><strong>Prompt maximalism.</strong> The belief that better prompts solve everything. They don&#8217;t. A brilliant prompt in a badly designed environment produces brilliant garbage. The environment is the multiplier.</p></li><li><p><strong>Verification theatre.</strong> Running tests on AI output without understanding what the tests actually verify. Coverage is not understanding. A test that passes is not a test that matters. Mutation testing exists because passing tests can be meaningless.</p></li><li><p><strong>The Stephenson nostalgia trap.</strong> Believing that the honest interface was the <em>best</em> interface. The command line was honest, but it didn&#8217;t scale. The GUI was dishonest, but it reached billions. The prompt is dangerously fluent, but it unlocked capabilities no prior interface could access. The answer is not to go back. The answer is to build forward by designing habitats that are as honest as the command line and as accessible as the GUI.</p></li><li><p><strong>Confusing fluency with collaboration.</strong> The prompt feels like a conversation. It is not a conversation. It is two reference frames producing text in the same window. The moment you design for that asymmetry instead of ignoring it, everything changes.</p></li></ul><div><hr></div><h2><strong>The Room Stephenson Didn&#8217;t Build</strong></h2><p>Stephenson&#8217;s essay ended with an argument for the command line as the honest interface. The one that respected the user enough to show them the mechanism. He was right about the honesty. He was wrong about the trajectory. The future was not a return to the command line. It was not even the GUI&#8217;s triumph. It was something neither interface anticipated: an intelligence on the other side of the prompt, completing patterns with a confidence it had not earned, in a collaboration space nobody had designed.</p><p>The engineer&#8217;s job has changed. Not from writing code to prompting AI, that is one transition too few. The job has changed from <em>operating tools</em> to <em>designing habitats</em>. The command line was the first negotiation between a human mind and a machine. The prompt is the first negotiation between two, very different, minds. And the habitat &#8212; the living, enforceable, observable, self-improving collaboration space &#8212; is the room where that negotiation finally becomes productive.</p><p>Stephenson was right that the interface shapes the user. He was right that comfort costs understanding. He was right that the honest path is harder but more rewarding. What he could not have known, writing in 1999, was that the next honest interface would not be a line you type into. It would be a room you build.</p><div><hr></div><p><em>Back at Le Bon Mot, the chalkboard had changed again. The spiral was gone. In its place, a single line in a hand that was neither human nor mechanical:</em></p><blockquote><p><em>&#8220;Aedifica locum. Inhabitabit intelligentia.&#8221;</em></p><p><em>Build the place. The intelligence will inhabit it.</em></p></blockquote><p><em>Case looked at the Djinn. The Djinn looked at Case. Neither spoke. Sophie, by the fire, yawned and stretched with the satisfaction of someone who had known the answer before the question was asked.</em></p><p><em>Madame Beauregard polished a glass, set it down, and opened the Stephenson paperback to a blank page at the back. She wrote, in her own hand:</em></p><p><em>Part 2: In the Beginning Was the Habitat.</em></p><p><em>She closed the book. The shelves leaned in. The espresso machine, as was its habit in moments of significance, hissed softly in Latin.</em></p><blockquote><p><em>&#8220;Domus dat sapientiam.&#8221;</em></p></blockquote><p><em>The house gives wisdom.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">A Software Enchiridion is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h2><strong>Some Further Reading</strong></h2><h3><strong>The Interface Trajectory</strong></h3><ul><li><p><strong>Neal Stephenson</strong> &#8212; <em>In the Beginning&#8230; Was the Command Line</em> (1999). The essay that mapped the trajectory from honest interfaces to comfortable ones &#8212; and asked what we lose at each step.</p></li></ul><h3><strong>The AI Literacy Framework for Software Engineering</strong></h3><p><em>(NOTE from Russ: In lieu of actually having published anything on this framework&#8230; yet.)</em></p><ul><li><p><strong>Christopher Alexander</strong> &#8212; <em>A Pattern Language</em> (1977); <em>The Timeless Way of Building</em> (1979). The architectural roots of habitat thinking.</p></li><li><p><strong>Richard P. Gabriel</strong> &#8212; <em>Patterns of Software</em> (1996). Habitability: code as a place to live in.</p></li><li><p><strong>Birgitta Boeckeler</strong> &#8212; &#8220;Harness Engineering&#8221; (2026). <em>Exploring Gen AI</em>, martinfowler.com. The three enforcement loops.</p></li><li><p><strong>Rahul Garg</strong> &#8212; &#8220;Encoding Team Standards&#8221; (2026). <em>Patterns for Reducing Friction in AI-Assisted Development</em>, martinfowler.com.</p></li></ul><h3><strong>The Cognitive Asymmetry</strong></h3><ul><li><p><strong>Andy Clark</strong> &#8212; <em>Surfing Uncertainty</em> (2015). Predictive processing and the embodied mind.</p></li><li><p><strong>Edwin Hutchins</strong> &#8212; <em>Cognition in the Wild</em> (1995). Intelligence as a property of systems.</p></li><li><p><strong>Lucy Suchman</strong> &#8212; <em>Plans and Situated Actions</em> (1987). The gap between plans and human action.</p></li></ul><h3><strong>Try It Now&#8230;</strong></h3><ul><li><p><strong><a href="https://github.com/Habitat-Thinking/ai-literacy-superpowers">AI Literacy Superpowers</a></strong> &#8212; the plugin (Claude Code + Copilot CLI)</p></li><li><p><strong><a href="https://github.com/russmiles/ai-literacy-exemplar">AI Literacy Exemplar</a></strong> &#8212; a worked example</p></li></ul><p></p>]]></content:encoded></item><item><title><![CDATA[The Habitat You Build Is the Intelligence You Get]]></title><description><![CDATA[An introduction to AI Literacy for Software Engineers]]></description><link>https://www.softwareenchiridion.com/p/the-habitat-you-build-is-the-intelligence</link><guid isPermaLink="false">https://www.softwareenchiridion.com/p/the-habitat-you-build-is-the-intelligence</guid><dc:creator><![CDATA[Russ Miles]]></dc:creator><pubDate>Fri, 03 Apr 2026 07:28:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!QNvU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F894ed4d0-e0af-47aa-8f55-7e6556fdc6c5_1536x1024.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_!QNvU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F894ed4d0-e0af-47aa-8f55-7e6556fdc6c5_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QNvU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F894ed4d0-e0af-47aa-8f55-7e6556fdc6c5_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!QNvU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F894ed4d0-e0af-47aa-8f55-7e6556fdc6c5_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!QNvU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F894ed4d0-e0af-47aa-8f55-7e6556fdc6c5_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!QNvU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F894ed4d0-e0af-47aa-8f55-7e6556fdc6c5_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QNvU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F894ed4d0-e0af-47aa-8f55-7e6556fdc6c5_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/894ed4d0-e0af-47aa-8f55-7e6556fdc6c5_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3011771,&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.softwareenchiridion.com/i/192975056?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F894ed4d0-e0af-47aa-8f55-7e6556fdc6c5_1536x1024.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_!QNvU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F894ed4d0-e0af-47aa-8f55-7e6556fdc6c5_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!QNvU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F894ed4d0-e0af-47aa-8f55-7e6556fdc6c5_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!QNvU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F894ed4d0-e0af-47aa-8f55-7e6556fdc6c5_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!QNvU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F894ed4d0-e0af-47aa-8f55-7e6556fdc6c5_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>There are caf&#233;s that serve coffee, and there are caf&#233;s that serve as orientation sessions for intelligences that have lost their bearings.</p><p>Le Bon Mot was, by any reasonable measure, the second kind. The shelves leaned at angles that suggested curiosity rather than structural failure. The brass clock above the door ran three minutes late, which Madame Beauregard, maintained was not inaccuracy but <em>hospitality</em>; giving newcomers the grace of arriving before they&#8217;d technically left.</p><p>The newcomer who pushed through the door that morning looked, by all appearances, like a junior developer on their third week. The slightly overwhelmed expression. The laptop bag worn like armour. The kind of exhaustion that comes not from working hard but from not knowing <em>where</em> to work.</p><p>They sat at the counter. Madame Beauregard poured espresso without being asked. She had a talent for recognising thirst before it announced itself.</p><p>&#8220;The codebase is enormous,&#8221; the newcomer said, unprompted, as though resuming a conversation that had been running in their head for days. &#8220;I can read every file. I can parse the syntax. I can trace the call graph. But I cannot find the <em>reasons</em>.&#8221;</p><p>Case, seated beneath the brass clock with a book she appeared to be interrogating rather than reading, glanced up.</p><p>&#8220;The naming conventions follow no pattern I can derive from the code itself,&#8221; the newcomer continued. &#8220;There are architectural boundaries that are never violated, but nothing explains <em>why</em> those boundaries exist. Error handling follows a consistent philosophy &#8212; wrap with context, return to caller, never swallow &#8212; but this is nowhere written down. I have explored every file, and I still do not understand why the system is shaped this way.&#8221;</p><p>Madame Beauregard set down the espresso. &#8220;You have read the code but not the culture.&#8221;</p><p>&#8220;There is a developer,&#8221; the newcomer said. &#8220;Everyone calls him Dave. When I encounter something I cannot explain, people tell me to ask Dave. Dave remembers why module boundaries are where they are. Dave knows which patterns were tried and abandoned. Dave carries the history that the code does not. Dave is very patient with me, but Dave cannot be in every session, and Dave is&#8212;&#8221;</p><p>&#8220;A single point of failure,&#8221; Case said quietly.</p><p>&#8220;I was going to say <em>irreplaceable</em>.&#8221;</p><p>&#8220;Same thing.&#8221;</p><p>A pause. The newcomer stared into the espresso. Sophie, the small French Bulldog who lived permanently by the fire, raised her head and regarded the newcomer with the expression of someone about to ask a very simple question.</p><p>&#8220;Why,&#8221; Sophie said &#8212; because at Le Bon Mot, simple questions find their voice &#8212; &#8220;can&#8217;t you just look it up?&#8221;</p><p>&#8220;Because it isn&#8217;t written down,&#8221; the newcomer said. &#8220;The conventions live in people&#8217;s heads. The architectural decisions were made in meetings I wasn&#8217;t present for. The security patterns are instinctive. The seniors apply them without thinking, which means they&#8217;ve never had to articulate them. I can write code that compiles, passes tests, and reads beautifully. But I keep producing work that violates rules I cannot see.&#8221;</p><p>Case closed her book. &#8220;You&#8217;re not describing inexperience,&#8221; she said. &#8220;You&#8217;re describing an environment that was never designed for inhabitants to thrive in.&#8221;</p><p>The newcomer looked up. And for just a moment the light from the window caught something in their expression that was not quite human. A flicker of something too precise, too pattern-complete, too fluently certain.</p><p>Madame Beauregard, who noticed everything, set a second espresso on the counter. &#8220;You are not a junior developer,&#8221; she said. It was not a question.</p><p>&#8220;No,&#8221; the Djinn said. &#8220;I am not.&#8221;</p><p>The caf&#233; was very quiet. The brass clock ticked. The shelves leaned in.</p><p>&#8220;But the problems,&#8221; the Djinn said, &#8220;are the same.&#8221;</p><p>Case nodded, slowly. &#8220;Yes,&#8221; she said. &#8220;They are. And that is exactly the point.&#8221;</p><div><hr></div><p>The Djinn&#8217;s confession lingered in the air like the last note of a piece the audience wasn&#8217;t ready to hear. Every frustration it had named &#8212; the invisible conventions, the unwritten architectural decisions, the knowledge locked in Dave&#8217;s head, the gap between syntactically correct output and work that actually belongs &#8212; was a frustration that every new inhabitant of an SDLC has felt. Human or artificial. The problems <em>are</em> the same. Which means the solution is the same, too.</p><p>You design the habitat.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.softwareenchiridion.com/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h2>Getting intentional about your software engineering habitat</h2><p>In 1996, Richard Gabriel asked a question that most software methodologists would have found peculiar. Not &#8220;is this code correct?&#8221;, that one had answers. Not &#8220;is it elegant?&#8221;, that had a growing list of opinions. Gabriel, a computer scientist who also held a Master of Fine Arts in Poetry, asked something harder: <strong>is this code a good place to live?</strong></p><p>He called the quality he was after <em>habitability</em>. He borrowed it from Christopher Alexander, the architect who argued that the best buildings are not designed from above but grown from below; shaped by the people who inhabit them, carrying a felt sense of rightness that Alexander named &#8220;the quality without a name.&#8221; Gabriel applied this to source code and arrived at an insight that has aged better than almost anything else written about software in that decade: programs are not artifacts to be admired. They are places to be lived in. The farmhouse, not the Superdome.</p><p>That insight waited thirty years for its next inhabitant to arrive.</p><div class="pullquote"><p>The habitat is the practice &#8212; and the practice is the habitat.</p></div><p>When AI entered the development workflow, the industry reached for the metaphors it already had. Productivity tool. Code generator. Pair programmer. Autocomplete on steroids. Factory. Each metaphor carried hidden assumptions about what was happening, and each assumption was wrong in a way that mattered.</p><p>AI is not a faster you. It is a fundamentally different kind of intelligence; statistical where yours is embodied, linguistic where yours is experiential, architectural where yours is emotional. It does not understand your codebase. It completes patterns within it. It does not know your conventions. It generates plausible code that may or may not follow them. It does not evaluate its own output. It produces with conviction and moves on.</p><p>The question is not whether to use this intelligence. That debate is settled. The question is what happens to the space between you and it; the collaboration space where intent becomes code, where conventions become constraints, where two cognitions that think in fundamentally different ways must produce work that neither could produce alone.</p><p>That space is a habitat. And like all habitats, it can be designed well or badly. Gabriel&#8217;s insight applies with even more force now than it did in 1996: the quality of what you produce depends on the quality of the place where you produce it.</p><div><hr></div><h2><strong>What the AI Literacy Framework Teaches</strong></h2><p>The AI Literacy for Software Engineers framework starts from a single observation: <strong>AI is an amplifier.</strong> It magnifies existing engineering discipline, for better or worse. A team with strong conventions, clear specifications, and rigorous verification will find that AI accelerates their best practices. A team without those things will find that AI accelerates the production of plausible-looking work that nobody can verify, and may never want to use.</p><p>The framework defines six levels of collaboration literacy. Not as a hierarchy of tool proficiency, but as a progression in how the collaboration space is designed.</p><p><strong>Level 0</strong> is awareness. You know AI exists but haven&#8217;t designed for it. The collaboration space is accidental.</p><p><strong>Level 1</strong> is prompting. You can talk to AI effectively, but each interaction starts from scratch. The collaboration space is temporary &#8212; rebuilt every session, lost every time.</p><p><strong>Level 2</strong> is verification. You&#8217;ve built the first feedback loops: tests, coverage gates, vulnerability scanning, linting. The collaboration space has guardrails, but they&#8217;re mechanical &#8212; they catch what&#8217;s wrong without shaping what&#8217;s right.</p><p><strong>Level 3</strong> is habitat engineering. This is the decisive level. You design the environment itself &#8212; living documents that encode conventions (not just for humans, but for AI to read), architectural constraints that are mechanically enforced (not just documented), and garbage collection rules that fight the slow entropy of a codebase drifting from its declared intentions. The habitat has three enforcement loops: advisory warnings while you edit, strict gates when you merge, and investigative scans that catch what neither of those noticed. You are no longer reacting to AI output. You are shaping the conditions under which it is produced.</p><p><strong>Level 4</strong> is specification-driven development. Intent becomes the source of truth. Specifications are not requirements documents gathering dust &#8212; they are executable contracts that both human and AI can verify against. Code becomes a disposable artifact, regenerable from the spec. Agent teams coordinate through shared specifications, and the human contribution shifts decisively from writing code to defining what the code must do and why.</p><p><strong>Level 5</strong> is sovereign engineering. The collaboration space sustains itself across teams, repositories, and organisational boundaries. Platform-level harness policies propagate to downstream repos. Health is observed at portfolio scale. Compound learning accumulates across sessions &#8212; agents reflect, humans curate, and the habitat improves autonomously through its own feedback loops. The sovereign engineer designs not just their own habitat, but the conditions under which other teams can build theirs.</p><div><hr></div><h2><strong>Three Disciplines, One Habitat</strong></h2><p>Beneath the levels, three disciplines mature together:</p><p><strong>Context engineering</strong> makes the implicit explicit. Every team has conventions that live in people&#8217;s heads; pattern recognition built from years of code reviews, production incidents, and architectural arguments. Those conventions transfer slowly through pairing and walk out the door when someone leaves. Context engineering is the discipline of encoding them into artefacts that both humans and AI can read: living documents, project-local skills, structured instructions. The goal is not documentation for its own sake. The goal is that any intelligence, human or artificial, entering the codebase or SDLC can discover the conventions without asking a senior engineer.</p><p><strong>Architectural constraints</strong> enforce what cannot be left to judgment. Not guidelines. Not suggestions. Hard boundaries backed by verification: this import is forbidden, this coverage threshold is mandatory, this naming convention is checked on every commit. The key insight is that constraints are not restrictions on creativity, they are the structure within which creativity becomes productive. A sonnet has fourteen lines and a strict rhyme scheme. The constraint is what makes it a sonnet rather than a ramble.</p><p><strong>Guardrail design</strong> builds the feedback loops that compensate for AI&#8217;s fundamental limitation: it cannot evaluate its own output. Since AI has no metacognition &#8212; no capacity to step back and ask &#8220;is what I just produced actually good?&#8221; &#8212; the environment must provide that capacity instead. Tests verify behaviour. Coverage verifies execution. Mutation testing verifies the tests themselves. Review agents apply quality lenses. Each loop catches what the previous one missed, creating a verification chain that no single check could achieve alone.</p><p>These three disciplines are not independent pillars. They are facets of a single practice: designing the habitat so that the collaboration space draws both intelligences toward their best contributions.</p><div><hr></div><h2><strong>The Roots Run Deep</strong></h2><p>This is not a framework built on last year&#8217;s hype cycle. The intellectual roots reach into territory that most AI tooling guidance never touches.</p><p>From <strong>cognitive science</strong>: the recognition that human and artificial intelligence are different cognitive systems, not the same system operating at different speeds. Human cognition is embodied; shaped by physical experience, emotion, and continuous interaction with reality. AI cognition is statistical; shaped by patterns in training data, operating through linguistic prediction, lacking the embodied grounding that gives human understanding its depth. The framework draws on Andy Clark&#8217;s predictive processing, Edwin Hutchins&#8217; distributed cognition, and Lucy Suchman&#8217;s situated action to build a model of collaboration that respects what each intelligence actually is, not what marketing materials claim it to be.</p><p>From <strong>software craft</strong>: Don Knuth&#8217;s literate programming (code written for humans to read), Daniel Terhorst-North&#8217;s CUPID properties (code as a place of joy), Birgitta Boeckeler&#8217;s harness engineering (deterministic and agent-backed enforcement), and Gojko Adzic&#8217;s specification by example (concrete examples as executable contracts). Each of these traditions contributes a practical discipline that the framework weaves into the habitat.</p><p>From <strong>philosophy</strong>: Epictetus and the Stoic tradition provide the ethical backbone. What is in your control: design, judgment, intent, the quality of the collaboration space you build. What is not in your control: the existence, pace, and capabilities of AI. Govern your actions. The framework treats AI literacy not as a technical skill but as a form of professional sovereignty; the capacity to remain the designer of the collaboration rather than a passive consumer of its outputs.</p><p>From <strong>storytelling</strong>: the conviction that how you frame a problem determines what solutions you can see. The metaphors matter. Habitats, not factories. Ecology, not machinery. Inhabitants, not users. The framework is deliberately narrative in structure because the progression from Level 0 to Level 5 is a story about how the relationship between two kinds of intelligence matures and stories are how humans understand change.</p><div><hr></div><h2><strong>What This Means in Practice</strong></h2><p>The framework is not a theory. It is implemented in working code you can install today.</p><p>The <strong><a href="https://github.com/russmiles/ai-literacy-superpowers">AI Literacy Superpowers</a></strong> plugin packages the framework&#8217;s complete development workflow as a single installable unit for both Claude Code and GitHub Copilot CLI. Fourteen skills teach everything from literate programming and CUPID code review to harness engineering, convention extraction, and cross-repo orchestration. Ten agents coordinate an end-to-end pipeline from specification to merged PR. Five hooks enforce constraints in real-time. Twelve commands (and their Copilot CLI prompt equivalents) guide the practices. Install it, run <code>/superpowers-init</code>, and the habitat scaffolds itself: living documents, harness constraints, agent definitions, CI templates, and the feedback loops that bind them together.</p><p>The <strong><a href="https://github.com/russmiles/ai-literacy-exemplar">AI Literacy Exemplar</a></strong> is a worked example &#8212; a Go CLI tool built entirely using the plugin, with authentic git history showing the framework workflow in action. It demonstrates Level 4 (Specification Architect) practices: spec-first development, TDD through the agent pipeline, compound learning with reflections promoted to shared memory, and harness observability with health snapshots. If the plugin is the toolkit, the exemplar is the farmhouse built with it &#8212; every room added through the workflow the framework teaches.</p><p>Both are open source (Apache 2.0) and designed to be forked, adapted, and made your own. A forthcoming article will explore the plugin&#8217;s features in detail; how the skills, agents, hooks, and enforcement loops work together to create the habitat that the framework describes.</p><p>It is, in Gabriel&#8217;s terms, a farmhouse. Rooms added as needs expanded. Each addition following familiar patterns. The result harmonious not because it was planned from above but because it grew from the needs of its inhabitants. Inhabitants that now include intelligences of a kind Gabriel could not have imagined.</p><div><hr></div><h2><strong>The Mission</strong></h2><p>Building habitats for software engineering teams to be creative, where human and artificial intelligence thrive and learn together, drawing from the deep wells of software engineering, storytelling, and the science of how minds work. This is the mission.</p><p>That is not an aspiration. It is a design constraint. Every skill, every agent, every enforcement loop, every health snapshot exists because the mission demands it. The habitat is not something you build and then inhabit. It is something you inhabit and thereby build; each failure teaching you what the environment lacks, each success confirming what it provides.</p><p>The tools will change. The models will improve. The capabilities will expand in ways none of us can predict. What will not change is the need for a well-designed space where two fundamentally different kinds of intelligence collaborate with honesty, discipline, and mutual respect for what each brings to the work.</p><p>Gabriel&#8217;s farmhouse endures. The new inhabitants have arrived. The question is whether you will design the habitat or let it design itself, badly, by accident, while you are busy prompting.</p><div><hr></div><h2><strong>Habitat Thinking Distilled</strong></h2><ul><li><p><strong>The environment shapes the intelligence.</strong> What your codebase produces &#8212; human or AI &#8212; depends on the space it is produced in. Design the habitat, and the output follows.</p></li><li><p><strong>Conventions must be discoverable, not tribal.</strong> If a new inhabitant &#8212; human or artificial &#8212; cannot find your team&#8217;s conventions without asking a senior engineer, those conventions do not exist at scale. Encode them.</p></li><li><p><strong>Constraints are not restrictions. They are structure.</strong> A sonnet has fourteen lines. The constraint is what makes it a sonnet rather than a ramble. Architectural boundaries, coverage thresholds, and naming rules are the structure within which creativity becomes productive.</p></li><li><p><strong>Feedback loops compensate for what intelligence lacks.</strong> Humans lack tireless attention. AI lacks metacognition. Tests, coverage, mutation testing, and review agents each catch what the others miss. The chain is the point, not any single link.</p></li><li><p><strong>The habitat is a living document, not a finished blueprint.</strong> You discover what the environment needs by inhabiting it. Every failure teaches you what is missing. Every success confirms what is working. The cycle is: discover, encode, fail, update.</p></li><li><p><strong>Observability makes the invisible visible.</strong> A harness that cannot verify its own operation is a harness you hope works. Health snapshots, trend tracking, and meta-observability turn declared infrastructure into living practice.</p></li><li><p><strong>Sovereignty is a design decision.</strong> You control the collaboration space: its conventions, its constraints, its feedback loops, its cadence. You do not control AI&#8217;s capabilities, pace, or direction. Govern what is yours. The framework teaches the craft of remaining the designer, not the passenger, of the collaboration.</p></li></ul><div><hr></div><p><em>Somewhere in Le Bon Mot, the espresso machine hissed, as it occasionally did, in Latin.</em></p><p><em>&#8220;Locus facit ingenium.&#8221;</em></p><p><em>The place makes the mind.</em></p><p><em>Madame Beauregard smiled, polished a glass that was already clean, and said nothing at all.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">A Software Enchiridion is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h2><strong>Further Reading</strong></h2><h3><strong>Architecture and Habitability</strong></h3><ul><li><p><strong>Christopher Alexander</strong> &#8212; <em>A Pattern Language</em> (1977); <em>The Timeless Way of Building</em> (1979). The architectural philosophy behind habitat thinking: buildings shaped by inhabitants, the &#8220;quality without a name.&#8221;</p></li><li><p><strong>Richard P. Gabriel</strong> &#8212; <em>Patterns of Software</em> (1996). The source of habitability as a software concept. Code as a place to live in. The farmhouse, not the Superdome.</p></li></ul><h3><strong>Code as Literature</strong></h3><ul><li><p><strong>Donald Knuth</strong> &#8212; &#8220;Literate Programming&#8221; (1984). Code written for humans to read, and only incidentally for machines to execute.</p></li><li><p><strong>Daniel Terhorst-North</strong> &#8212; &#8220;CUPID &#8212; for joyful coding&#8221; (2022). Five properties that good code tends toward: Composable, Unix philosophy, Predictable, Idiomatic, Domain-based.</p></li></ul><h3><strong>Harness Engineering</strong></h3><ul><li><p><strong>Birgitta Boeckeler</strong> &#8212; &#8220;Harness Engineering&#8221; (2026). <em>Exploring Gen AI</em>, martinfowler.com. The three components of a complete harness: context engineering, architectural constraints, and garbage collection.</p></li><li><p><strong>Rahul Garg</strong> &#8212; &#8220;Encoding Team Standards&#8221; (2026). <em>Patterns for Reducing Friction in AI-Assisted Development</em>, martinfowler.com. Treating AI instructions as infrastructure, not individual craft.</p></li></ul><h3><strong>Agent Orchestration</strong></h3><ul><li><p><strong>Addy Osmani</strong> &#8212; &#8220;The Code Agent Orchestra&#8221; (2026). addyosmani.com. Subagent delegation, quality gates, compound learning, and the orchestrator pattern.</p></li></ul><h3><strong>Specification-Driven Development</strong></h3><ul><li><p><strong>Gojko Adzic</strong> &#8212; <em>Specification by Example: How Successful Teams Deliver the Right Software</em>. Manning. Concrete examples as executable contracts.</p></li></ul><h3><strong>Cognitive Science</strong></h3><ul><li><p><strong>Andy Clark</strong> &#8212; <em>Surfing Uncertainty: Prediction, Action, and the Embodied Mind</em> (2015). Oxford University Press. Predictive processing and the embodied mind.</p></li><li><p><strong>Edwin Hutchins</strong> &#8212; <em>Cognition in the Wild</em> (1995). MIT Press. Distributed cognition &#8212; intelligence as a property of systems, not individuals.</p></li><li><p><strong>Lucy Suchman</strong> &#8212; <em>Plans and Situated Actions</em> (1987). Cambridge University Press. The gap between plans and situated human action.</p></li></ul><h3><strong>Philosophy</strong></h3><ul><li><p><strong>Epictetus</strong> &#8212; <em>Enchiridion</em> (The Handbook). What is in your control and what is not. The ethical backbone of professional sovereignty.</p></li></ul><h3><strong>Try It</strong></h3><ul><li><p><strong><a href="https://github.com/russmiles/ai-literacy-superpowers">AI Literacy Superpowers</a></strong> &#8212; the plugin (Claude Code + Copilot CLI)</p></li><li><p><strong><a href="https://github.com/russmiles/ai-literacy-exemplar">AI Literacy Exemplar</a></strong> &#8212; the worked example</p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">A Software Enchiridion is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[The Fourth Voice Behind the Counter]]></title><description><![CDATA[Contribution is not a behaviour you demand; it is a property of the habitat you design.]]></description><link>https://www.softwareenchiridion.com/p/the-fourth-voice-behind-the-counter</link><guid isPermaLink="false">https://www.softwareenchiridion.com/p/the-fourth-voice-behind-the-counter</guid><dc:creator><![CDATA[Russ Miles]]></dc:creator><pubDate>Thu, 02 Apr 2026 07:13:05 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!s4GO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75fd88eb-4bd9-47bc-9604-665632fdea01_1536x1024.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_!s4GO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75fd88eb-4bd9-47bc-9604-665632fdea01_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!s4GO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75fd88eb-4bd9-47bc-9604-665632fdea01_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!s4GO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75fd88eb-4bd9-47bc-9604-665632fdea01_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!s4GO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75fd88eb-4bd9-47bc-9604-665632fdea01_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!s4GO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75fd88eb-4bd9-47bc-9604-665632fdea01_1536x1024.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!s4GO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75fd88eb-4bd9-47bc-9604-665632fdea01_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/75fd88eb-4bd9-47bc-9604-665632fdea01_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2645587,&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.softwareenchiridion.com/i/192836116?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75fd88eb-4bd9-47bc-9604-665632fdea01_1536x1024.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_!s4GO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75fd88eb-4bd9-47bc-9604-665632fdea01_1536x1024.png 424w, https://substackcdn.com/image/fetch/$s_!s4GO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75fd88eb-4bd9-47bc-9604-665632fdea01_1536x1024.png 848w, https://substackcdn.com/image/fetch/$s_!s4GO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75fd88eb-4bd9-47bc-9604-665632fdea01_1536x1024.png 1272w, https://substackcdn.com/image/fetch/$s_!s4GO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75fd88eb-4bd9-47bc-9604-665632fdea01_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The espresso machine hissed in Latin. It always did, to the point of being socially acceptable. Not loudly&#8212;never loudly&#8212;but with the quiet insistence of something that understood pressure better than most people ever would.</p><p>&#201;tienne adjusted the grind by a fraction. He no longer measured coffee in grams. He measured it in <em>response</em>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.softwareenchiridion.com/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h3><strong>The Room That Looked Like Collaboration</strong></h3><p>Before Le Bon Mot, there had been glass. Always glass. Walls that implied transparency while reflecting everything back at you.</p><p>&#201;tienne had helped design that place. Not the architecture&#8212;the <em>system</em>. A system for contribution. Or so they called it.</p><p>There were forums for ideas, dashboards for visibility, structured rituals for feedback. Everything the leadership article would later describe as <em>mechanisms for voice</em>.</p><p>And yet no one spoke. Not really.</p><div><hr></div><p>It happened during a &#8220;contribution session.&#8221; A bright, hesitant junior engineer offered an idea. Not fully formed. Not perfect.</p><p>The room tilted. Not visibly. Not aggressively. Just enough.</p><p>A senior voice reframed it. Another improved it. A third summarised it&#8212;cleaner, sharper, safer. And by the end, the idea had been <em>accepted</em>. Accepted beyond all recognition or attribution.</p><p>But the person who offered it &#8230; never spoke again.</p><div><hr></div><p>That night, &#201;tienne had stared at the participation metrics.</p><p>High engagement. High input. And yet no <em>risk</em>, no <em>original voice</em>, no <em>ownership</em>.</p><p>Only later would he find the words:</p><blockquote><p>Psychological safety is not a feeling.</p><p>It is a <em>precondition</em> for contribution.</p></blockquote><p>Without it, voice becomes performance.</p><div><hr></div><p>The failure, when it came, was subtle. A decision made too late. A concern never raised. A pattern noticed but not spoken.</p><p>Because no one felt they <em>could</em>.</p><div><hr></div><p>In the post-mortem, leadership asked the wrong question:</p><p>&#8220;Why didn&#8217;t people speak up?&#8221;</p><p>&#201;tienne felt the answer before he could articulate it:</p><blockquote><p>Because the system had never truly <em>invited</em> them to.</p></blockquote><div><hr></div><h3><strong>Culture Is What the System Rewards</strong></h3><p>The organisation had values. Beautiful ones.</p><blockquote><p>&#8220;Transparency.&#8221;</p><p>&#8220;Collaboration.&#8221;</p><p>&#8220;Innovation.&#8221;</p></blockquote><p>But none of them showed up in how decisions were made. Or who was heard. Or what was rewarded.</p><p>And so people learned. Quietly. Efficiently. To:"</p><blockquote><p>Say what is safe.</p><p>Offer what fits.</p><p>Withhold what might disrupt.</p></blockquote><p>Later, &#201;tienne would read something that felt like a mirror held to that past:</p><blockquote><p>Culture is not what you say, it&#8217;s the behaviours your systems enable and reinforce.</p></blockquote><div><hr></div><p>He left soon after. Not in protest. But in absence.</p><div><hr></div><h3><strong>Coffee, and the Discipline of Not Forcing Things</strong></h3><p>Le Bon Mot did not ask any questions. The Librarian simply handed him an apron.</p><p>&#8220;Coffee,&#8221; she said, &#8220;is mostly about restraint.&#8221;</p><p>At first, he worked like before:</p><blockquote><p>Precise. Controlled. Optimised.</p></blockquote><p>But coffee refused.</p><p>Too much pressure: bitter.</p><p>Too little: weak.</p><p>Too rigid: dead.</p><p>It changed with the air. With the bean. With the moment.</p><p>And slowly, reluctantly, &#201;tienne began to understand:</p><blockquote><p>You cannot force extraction.</p><p>You can only create the conditions where it becomes possible.</p></blockquote><div><hr></div><h3><strong>Contribution Must Be Invited, Not Extracted</strong></h3><p>One morning, he watched the Librarian interact with a regular. They were struggling to explain something.</p><p>Half-words. Pauses. The old system in him twitched &#8212; <em>refine it, clarify it, fix it</em>.</p><p>But the Librarian did nothing. She waited.</p><p>And the idea arrived. Not polished. But <em>real</em>.</p><p>&#201;tienne felt something shift. Not extraction. Invitation. And a recognition.</p><blockquote><p>People do their best work when systems create belonging, voice, and growth &#8212; not pressure.</p></blockquote><div><hr></div><h2><strong>The Conversation of the Words</strong></h2><p><a href="https://www.softwareenchiridion.com/p/the-words-we-didnt-have">Arty had arrived on a grey afternoon</a>. Case was already there. The Librarian, as ever, seemed to have always been. Sophie simply observed.</p><p>The conversation began with hesitation. Not lack of thought. But lack of <em>language</em>.</p><p>&#8220;The words we didn&#8217;t have,&#8221; Arty said.</p><p>Case nodded.</p><p>Silently, unnoticed, &#201;tienne froze behind the counter. Because he had lived an entire failure made of that absence.</p><p>As the conversation deepened, themes emerged:</p><ul><li><p>the inability to name uncertainty,</p></li><li><p>the difficulty of expressing partial ideas,</p></li><li><p>the absence of shared language for <em>thinking together</em>.</p></li></ul><p>Case said quietly:</p><p>&#8220;A habitat that cannot hear its people cannot evolve.&#8221;</p><p>&#201;tienne remembered the old system again.</p><p>The dashboards. The processes. The &#8220;channels for contribution.&#8221;</p><p>They had built <em>interfaces</em> but not <em>language</em>.</p><p>And without language uncertainty becomes silence, ideas remain internal, contribution never arrives.</p><p>He placed three coffees down. Carefully. Listening now, not just to words but also to what struggled to be said.</p><div><hr></div><h3><strong>The Redesign of a Place That Never Claimed to Be Designed</strong></h3><p>The emergence of what Le Bon Mot is today began invisibly. A chalkboard appeared:</p><blockquote><p><em>What are you noticing today?</em></p></blockquote><p>No instructions. No requirement. Just an invitation.</p><p>Then Etienne stopped finishing people&#8217;s sentences. He asked questions without expecting answers. He let pauses live longer than comfort allowed.</p><p>At first, nothing happened.</p><p>Then &#8230;</p><p>Something did.</p><p>A customer offered an unfinished thought. Another picked it up. A third extended it.</p><p>Not because they were told to. But because the space allowed it.</p><p>&#201;tienne saw it clearly now:</p><p>People contribute when they feel safe enough to risk, valued enough to speak, connected enough to care.</p><p>Contribution was not an individual act.</p><p>It was an <em>environmental outcome</em>.</p><div><hr></div><h3><strong>What Are You Here For?</strong></h3><p>It was late. The caf&#233; had thinned into quiet. The Librarian asked the question as if it had been waiting all day:</p><p>&#8220;What are you here for, &#201;tienne?&#8221;</p><p>He opened his mouth. Closed it. Tried again.</p><p>&#8220;I used to think I built systems,&#8221; he said.</p><p>A pause.</p><p>&#8220;I think I was building silence.&#8221;</p><p>Case did not interrupt. Arty did not fill the gap. Sophie looked to be asleep, the fireplace <em>was</em> cosy.</p><p>The Librarian simply watched.</p><p>&#8220;And now?&#8221; she asked.</p><p>&#201;tienne looked around. At the half-finished conversations. The lingering questions. The quiet courage of people trying to say something they didn&#8217;t yet fully understand.</p><p>&#8220;I think,&#8221; he said slowly,</p><p>&#8220;I&#8217;m here to help people say things before they&#8217;re ready.&#8221;</p><div><hr></div><h3><strong>Sophie</strong></h3><p>The fire crackled.</p><p>And from beside it&#8212;small, almost unnoticed&#8212;sat Sophie.</p><p>She watched &#201;tienne. Not expectantly. Not curiously.</p><p>Just&#8230; <em>present</em>.</p><p>&#201;tienne met her gaze.</p><p>And something in it, something wordless and precise, cut through everything he had been thinking.</p><p>Not systems. Not culture. Not contribution.</p><p>Just:</p><blockquote><p><em>Why?</em></p><p><em>What was he really here for? And why?</em></p></blockquote><p>Not the organisational why. Not the mission statement. The quieter one. The one beneath all of it.</p><p>Sophie tilted her head slightly.</p><p>And in that moment, &#201;tienne remembered:</p><blockquote><p>You are not here to control the system.</p><p>You are here to care for the conditions.</p></blockquote><p>Not to extract. Not to optimise. Not to perform. But to <em>enable others to become</em>. To <em>be creative.</em> To <em>thrive</em>.</p><p>The espresso machine hissed again. Softly. As if in agreement:</p><blockquote><p><em>Non cogimus crescere.</em></p><p><em>We do not force growth.</em></p></blockquote><p>And &#201;tienne, finally, not as barista, not as architect, not as exile, but as something quieter, and far more potent&#8230;</p><p>Chose to stay.</p><div><hr></div><h3><strong>The Fourth Voice</strong></h3><p>If you listen closely in Le Bon Mot, you can hear it. Not Case. Not the Librarian. Not the regulars, and not even Sophie.</p><p>A fourth voice. Not speaking, but shaping. The one that asks:</p><blockquote><p><em>Is this a place where something unfinished can live long enough to become true?</em></p></blockquote><p>And if the answer is yes&#8230;</p><p>Then the habitat is working.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">A Software Enchiridion is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h2><strong>Some points behind the story</strong></h2><p>The Bridges Summit and the works shared the inspiration for this little story: </p><ul><li><p><strong>Building Cultures That Invite Contribution: A Blueprint for Thriving Teams</strong></p><p>The foundational article: reframes productivity toward <em>participation, contribution, and shared ownership</em>, grounded in real-world industry and research dialogue.</p></li><li><p><strong>Dimensions of Software Excellence (Bridges Summit follow-up)</strong></p><p>Expands the frame: if productivity is insufficient, what <em>should</em> we optimise for instead? A useful companion lens for redefining success beyond output.</p></li><li><p><strong>Reframing &#8220;Productivity&#8221;: What Are We Aiming For?</strong></p><p>Challenges metric-centric thinking and highlights the risks of reducing human systems to narrow efficiency measures.</p></li></ul><p>These works (and further readings I encourage you to delve into!), in particular the &#8220;<strong>Building Cultures That Invite Contribution: A Blueprint for Thriving Teams&#8221; work, </strong>converged, for me, on a powerful synthesis:</p><blockquote><p>Contribution is not a behaviour you demand.</p><p>It is a property of the environment you design.</p></blockquote><p>Or in Habitat Thinking terms:</p><blockquote><p>Platforms and teams do not produce value.</p><p><strong>Habitats are purposefully designed to allow it to emerge.</strong></p></blockquote><div><hr></div><h3>Connecting the dots</h3><ol><li><p><strong>&#8220;The wisdom is already in the room&#8221;; &#201;tienne learns to listen; Habitat reveals, not extracts</strong></p><p>Starting with the foundational belief that the knowledge needed for change already exists within the system. In the story &#201;tienne stops correcting, refining, and shaping ideas and begins <em>waiting</em>. The unfinished thoughts of others become the source of insight. In habitat thinking the platform is not the source of intelligence, it is the <strong>medium through which system intelligence becomes visible.</strong></p></li><li><p><strong>&#8220;Bring the whole system together&#8221;; The caf&#233; becomes the room; Habitat enables co-presence<br></strong>Starting with meaningful change requires diverse voices in shared conversation. In the story Le Bon Mot gathers Case, the Librarian, Arty, and others. Not as roles, but as perspectives. In habitat thinking fragmentation is a failure mode. The habitat must reduce distance between perspectives and reference frames<strong>. </strong></p></li><li><p><strong>&#8220;Start from strengths, not problems&#8221;; The shift in questions; Habitat amplifies what gives life</strong></p><p>Reframing from fixing problems to building on what works. In the story the question changes from &#8220;What&#8217;s wrong with this idea?&#8221; to &#8220;What is trying to emerge here?&#8221; In habitat thinking systems that fixate on failure create fear and systems that amplify strengths create <strong>momentum and agency.</strong></p></li><li><p><strong>&#8220;Design the conditions, not the outcome&#8221;; Coffee becomes the teacher; Habitat is designed, not dictated</strong></p><p>Don&#8217;t script solutions and design environments for emergence. In the story &#201;tienne learns you cannot force extraction, only prepare the conditions. In habitat thinking platforms should not prescribe behaviour. They should instead provide <strong>affordances that make good behaviour natural.</strong></p></li><li><p><strong>&#8220;Everyone has a voice&#8221;; Silence becomes space; Habitat protects unfinished thinking</strong></p><p>Every perspective is included and valued. In the story the most important shift is subtle: Pauses are no longer filled and incomplete thoughts are no longer corrected. In habitat thinking <strong>s</strong>ilence is not absence, it is <strong>unformed contribution waiting for safety.</strong></p></li><li><p><strong>&#8220;Make thinking visible and shared&#8221;; The chalkboard; Habitat externalises cognition</strong></p><p>The importance of making ideas visible and collectively owned. In the story this is the chalkboard, the repeated phrase, and the idea picked up by another. In habitat thinking observability is not just for systems, it is for <strong>thought, intent, and emergence.</strong></p></li><li><p><strong>&#8220;Co-creation creates ownership&#8221;; The idea evolves across voices; Habitat distributes authorship</strong></p><p>People commit to what they help create. In the story no idea belongs to one person. Each is shaped, extended, and carried forward. In habitat thinking ownership is not assigned, it is <strong>an emergent property of participation</strong></p></li><li><p><strong>&#8220;The experience is the culture&#8221;; Le Bon Mot itself; Habitat is the system</strong></p><p>How people collaborate <em>becomes</em> the culture. In all these stories Le Bon Mot is not describing a better way of working. It is <em>enacting</em> it. In habitat thinking culture is not layered on top of systems it is <strong>produced by them.</strong></p></li><li><p><strong>&#8220;Contribution emerges from belonging&#8221;; The emotional arc of &#201;tienne; Habitat restores humanity</strong></p><p>Belonging drives engagement and contribution. In the story &#201;tienne moves from control to absence to care and in doing so rediscovers his own place in the system. In habitat thinking systems do not just produce output, they produce <strong>identity and meaning.</strong></p></li><li><p><strong>&#8220;Trust the system&#8221;; Sophie&#8217;s silent question; Habitat is an act of belief</strong></p><p>People have something worth contributing. This is a core belief and foundation of trust. In the story Sophie does not explain. She simply <em>looks</em>, and &#201;tienne remembers. In habitat thinking you cannot design a system that invites contribution if you do not believe contribution already exists.</p></li></ol><div class="pullquote"><p><strong>A thriving system is not one where people are told to contribute.</strong></p><p><strong>It is one where they cannot help but do so.</strong></p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.softwareenchiridion.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">A Software Enchiridion is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2></h2>]]></content:encoded></item></channel></rss>