<?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[Robin Cannon]]></title><description><![CDATA[Exploring complex systems - real ones and imagined.]]></description><link>https://www.robin-cannon.com</link><image><url>https://substackcdn.com/image/fetch/$s_!maYW!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2c62c87-7ba3-444c-ad20-4a4cf617a8f7_1024x1024.png</url><title>Robin Cannon</title><link>https://www.robin-cannon.com</link></image><generator>Substack</generator><lastBuildDate>Wed, 20 May 2026 03:36:16 GMT</lastBuildDate><atom:link href="https://www.robin-cannon.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Robin Cannon]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[shinytoyrobots@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[shinytoyrobots@substack.com]]></itunes:email><itunes:name><![CDATA[Robin Cannon]]></itunes:name></itunes:owner><itunes:author><![CDATA[Robin Cannon]]></itunes:author><googleplay:owner><![CDATA[shinytoyrobots@substack.com]]></googleplay:owner><googleplay:email><![CDATA[shinytoyrobots@substack.com]]></googleplay:email><googleplay:author><![CDATA[Robin Cannon]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Your brand is an archaeological artifact]]></title><description><![CDATA[Why brand and design systems evolved apart - and why AI makes a fix even more urgent.]]></description><link>https://www.robin-cannon.com/p/your-brand-is-an-archaeological-artifact</link><guid isPermaLink="false">https://www.robin-cannon.com/p/your-brand-is-an-archaeological-artifact</guid><dc:creator><![CDATA[Robin Cannon]]></dc:creator><pubDate>Tue, 19 May 2026 15:01:51 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/08cb8b0f-7f74-4dba-b4d2-1a58f76e65e2_5280x2970.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Where does a brand team&#8217;s work live?</p><p>Brand guidelines, brand standards. Decks sent to agencies. A Confluence page. Almost certainly a PDF or two.</p><p>Where does a design system team&#8217;s work live?</p><p>The component library. Tokens. The design system website. A Storybook instance. An npm package.</p><p>Two expressions of what a company is. Consistent and coherent in themselves. Often almost zero shared conversation.</p><p>It&#8217;s a strange structural failure in modern product organizations. I&#8217;m surprised it&#8217;s not talked about more often.</p><p>Brand sits in the marketing organization. Design systems sit somewhere in product, design, engineering organizations. They share a fundamental subject matter, but operate in organizational separation.</p><p>The results are predictable.</p><p>Design systems encode visual consistency without brand meaning. Brand guidelines describe how a company should feel...and nobody in product has read them.</p><p>The digital expression of the brand gets determined by whoever&#8217;s in the room.</p><p>Whose job actually is it to ensure that a product expresses the brand?</p><p>In most enterprises I&#8217;ve seen, the honest answer is nobody. Brand says what a company should feel like. Design systems say what the products should look like. And there&#8217;s a gap between the two where digital brand value can quietly disappear.</p><p>It&#8217;s an archaeological artifact.</p><p>Brand as an organizational function predates digital product as a discipline, by decades. And those structures have calcified. Brand in marketing, product in...product. And that&#8217;s held even after the product has become the primary brand experience for most companies.</p><p>Your brand is not the ad. Not the packaging. It&#8217;s the thing you use every day. But the org charts are already set.</p><p>I&#8217;ve seen the alternative. I built one of the few examples I see of how it can exist at scale. IBM Carbon doesn&#8217;t derive from component logic. It derives from a broader IBM design philosophy - that predates the system, runs deeper than any product services. But which defined a design language with awareness of, and collaboration with, the digital design system team.</p><p>The result is that I see Carbon in an IBM television ad or on a billboard. Or, more accurately, IBM products that use Carbon represent a coherent design language. Something that exists across mediums because it&#8217;s grounded in something universal.</p><p>That&#8217;s not the norm.</p><p>Brand guidelines evolved from print and campaign logic. Design systems evolved from digital product delivery logic. They haven&#8217;t evolved toward each other. Customers are the ones who absorb the incoherence.</p><p>This might have been manageable when product moved relatively slowly. Misalignment can be addressed (...or ignored!). Brand drift was visible enough for someone to notice before it compounds too much.</p><p>The faster delivery accelerates, the more difficult it is to manage. And we&#8217;re at the point of AI driving acceleration so that delivery might become almost incomprehensibly fast.</p><p>The models that let us ship in days instead of months will be generating interfaces, copy, and variations at a scale no brand team has ever accounted for. AI will drift because it has no context for what that brand is.</p><p>Design systems that carry genuine brand meaning - not just coherent visual rules, but the reasoning behind them - will compound in the right direction. Design systems that are sophisticated token libraries and nothing more will produce brand-incoherent experiences. Faster, and at greater volume, than before.</p><p>The AI case makes the structural fix urgent. But it was already necessary.</p><p>The product has been the brand for years.</p><p>The org chart just hasn&#8217;t caught up.</p><div><hr></div><h4>Further reading:</h4><ul><li><p>Weidemann, V (PhD). <em><a href="https://medium.com/@v_weidemann/the-unspoken-tension-product-vs-marketing-why-we-still-dont-speak-the-same-language-93b9f7e81b48">The Unspoken Tension: Product vs. Marketing &#8212; Why We Still Don&#8217;t Speak the Same Language</a></em>. Medium, May 2025.</p></li><li><p><em><a href="https://greygekko.com/integrated-product-and-brand-development/">Why do product and brand need to be developed together?</a></em> GreyGekko, Apr 2026.</p></li></ul><p><em>Article photo by <a href="https://unsplash.com/@naeimj?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">naeim jafari</a> on <a href="https://unsplash.com/photos/an-aerial-view-of-a-city-with-a-lot-of-dirt-aDfL9xdyW8w?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.robin-cannon.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"><strong>Subscribe for essays on design, technology, and culture - plus original fiction.</strong></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[Terms and conditions]]></title><description><![CDATA[Your employer's ongoing commitment to your wellbeing.]]></description><link>https://www.robin-cannon.com/p/terms-and-conditions</link><guid isPermaLink="false">https://www.robin-cannon.com/p/terms-and-conditions</guid><dc:creator><![CDATA[Robin Cannon]]></dc:creator><pubDate>Fri, 15 May 2026 15:31:18 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/6f8cd1f8-f40a-4409-bb41-9cbbf9c83531_8192x5464.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The new legs arrived before she&#8217;d had a chance to start grieving.</p><p>Six weeks from warehouse floor incident to discharge. Four days of mediation. Signature on a tablet while the morphine was making her head swim.</p><p>Employer liability settlement. Comprehensive limb replacement. Keida Prosthetics.</p><p>Subject to terms.</p><p>The fitting was on a Tuesday. Surgical suite that smelled like artificial peppermint and plastic. The technician was gentle. His hands aligned the neural contacts along her spine, and he asked her to think about walking. Not to walk, just to think of it.</p><p>The legs twitched. Alien. Gray composite, reflecting fluorescent lights.</p><p>&#8220;That&#8217;s good,&#8221; the technician said.</p><div><hr></div><p>The first month was all learning. There was &#8220;haptic calibration&#8221; and &#8220;gait correction&#8221;. Her toes flexed at 3 a.m. and woke her up.</p><p>Not her toes anymore. Hardware. Firmware syncing in her sleep, running overnight diagnostics.</p><p>She had an app on her phone which tracked everything. She&#8217;d always tracked her steps. Now she had weight distribution, joint temperature, stride efficiency. A little green title banner: <em>Keida Workplace Recovery. An employer commitment to your wellbeing.</em></p><p>Her warehouse supervisor could see the dashboard, too. He added a comment to her automated update.</p><p>&#8220;You&#8217;re ahead of the recovery curve. Good job.&#8221;</p><p>She smiled. Shrugged to herself.</p><div><hr></div><p>Saturday morning, she walked to the corner store to get milk.</p><p>Walked past Sancho&#8217;s, where someone was playing guitar through the open window. Old-fashioned country, the kind with a fiddle accompaniment.</p><p>She stopped.</p><p>She was walking differently. A notification pinged on her smartwatch.</p><p><em>Gait adjustment. Stride shortened 2cm for terrain efficiency.</em></p><p>She hadn&#8217;t decided.</p><p>She stood for a moment and tried to remember how she used to walk. Before all this. Was there a rhythm she remembered, or was she just imagining it?</p><p>Her sister had always complained that she walked too quickly. Never took the time to look around.</p><p>Now she didn&#8217;t know.</p><div><hr></div><p>The next check-in from the warehouse was an automated message.</p><p><em>System at full capacity. Please review your shift schedule in the Harmon Supply Group employee app. Welcome back.</em></p><p>Same warehouse. Same shifts. Same concrete under different feet.</p><p>She thought about the disclaimer in her Keida app.</p><p><em>Accommodation package active. Subscription conditional on continued employment with HSG.</em></p><p>There was a mech-smith two blocks from her apartment. There was a hand-painted sign that said &#8220;Michael&#8217;s Body Shop&#8221;. Some older tech pieces in the window. It never looked busy, never looked quiet. People coming in and out, walking a little slower or faster, steadier or more uneven.</p><p>She checked her shift schedule. Approved it.</p><p>On her first day back at work, the legs recorded her compliance. Gait optimized for the warehouse floor. Stride lengthened for efficiency between packing stations.</p><p>She clocked in.</p><div><hr></div><p><em>A story from the <a href="https://www.robin-cannon.com/t/staticdrift">Static Drift</a> universe.</em></p><p><em>Article photo by <a href="https://unsplash.com/@mattbango">Matt Bango</a> on <a href="https://unsplash.com/photos/a-close-up-of-a-wall-fAqvk6OYj8g">Unsplash</a>.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.robin-cannon.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"><strong>Subscribe for essays on design, technology, and culture - plus original fiction.</strong></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[What my parents got right]]></title><description><![CDATA[The AI race won't be decided by chips or models. It might be decided by philosophy classes.]]></description><link>https://www.robin-cannon.com/p/what-my-parents-got-right</link><guid isPermaLink="false">https://www.robin-cannon.com/p/what-my-parents-got-right</guid><dc:creator><![CDATA[Robin Cannon]]></dc:creator><pubDate>Tue, 12 May 2026 15:01:19 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/c483e00a-e236-4d0d-a263-e9ceebcc248b_5328x4000.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>My parents never told me what to study. They encouraged me to learn. To follow the things that made me curious, ask questions, and study what I had a passion for. The skills, career, the shape of my working life - these would all follow. It was something they were so confident in that it barely needed to be stated. I have a degree in Politics, and I&#8217;ve worked in technology for most of my life.</p><p>I was lucky. Not everyone got that advice. Or had the privilege to be able to take it. For a generation of students who came of age after 2008, there was immense pressure in the opposite direction. It felt, at the time, like responsible advice.</p><h3>The bait</h3><p>The financial crisis didn&#8217;t just destroy jobs. It destroyed confidence in our future. And when the confidence collapsed, pragmatism filled the void. There was a consistent message that emerged from the wreckage.</p><p>Be practical.</p><p>Choose a degree that leads somewhere. Don&#8217;t study philosophy, history, or literature. Those are self-indulgent luxuries. Choose STEM. Get some credentials that will pay off. It&#8217;s not a question of what you want to learn, it&#8217;s about what the market will reward.</p><p>It wasn&#8217;t a cruel argument. More like the responsible one. Tuition costs were rising - often catastrophically fast - and the job market for new graduates was brutal. What kind of parent watches their child take on serious amounts of debt while encouraging them to study the humanities? What teacher points a student toward a philosophy degree when it&#8217;s engineering graduates who get hired? The logic was real.</p><p>Perhaps through the best intentions, a generation has been steered away from exactly the kind of education that teaches you how to think. They&#8217;ve been pushed toward the kind that teaches you what to do. Being curious isn&#8217;t as important as being certified. Exploratory and humanistic study was deprioritized. And this tendency has stuck. Numbers studying humanities have kept dropping, even as the economy recovered.</p><p>The cohort most affected is now in their late twenties and early thirties. They carry student debt that they were told was an investment. An investment for right now, the time in their careers that should be most productive. They hold the credentials they were told would protect them.</p><p>And they are about to discover the full weight of what&#8217;s been building quietly for the last few years.</p><h3>The switch</h3><p>AI arrived, and reversed the skills map.</p><p>There&#8217;s an observation from a widely shared essay that Matt Shumer, CEO of Otherside AI, wrote for the non-technical people in his life.</p><p><em>&#8220;The people most likely to thrive are the ones who are deeply curious, adaptable, and effective at using AI to do the things they actually care about.&#8221;</em></p><p>That&#8217;s not a description of someone with a vocational degree. It&#8217;s a description of someone who got a liberal arts education.</p><p>AI is an amplifier for people who know how to think. People who can construct a coherent argument, or recognize when one is weak. People who read critically, are comfortable with ambiguity. People who will change their mind when evidence shifts, and ask sharper questions on the next go around.</p><p>Writing a good prompt for an LLM isn&#8217;t simply a technical skill - it&#8217;s also rhetoric. AI rewards the ability to clearly articulate what you want, to think through problems from multiple angles, and to refine an idea through iteration. Those are skills you might build while arguing in a philosophy tutorial, writing a history thesis, or through a close reading of a difficult novel.</p><p>And the &#8220;practical&#8221; skills we pushed a generation toward are exactly what&#8217;s being automated fastest. They&#8217;re procedural, technical, and executable. Previous waves of automation displaced specific categories of work. People could retrain and fill employment gaps elsewhere. AI is different. It&#8217;s not automating one category, and leaving others. It&#8217;s more general, and it can improve on everything simultaneously. Whatever you retrain for, it&#8217;s getting better at that, too.</p><p>It&#8217;s a bitter irony for that post-2008 cohort. They took on serious debt in order to be practical. To be hireable. They pursued an education based on specific skills and credentials the market valued. It&#8217;s left them exposed to the very disruption they were trying to guard against.</p><p>They can&#8217;t go back and choose differently. The debt is real. Their degree is real. The skills that might have served them best were the ones they were firmly talked out of.</p><h3>An unexpected generation</h3><p>Older workers are often seen as struggling to keep up. They&#8217;re not tech-savvy. They&#8217;re too fixed in their ways. That can harden into something uglier - age discrimination hidden by terms like &#8220;culture fit&#8221;. Younger workers are fluent in the tools of the current moment, so they&#8217;re better positioned for a technology-defined future.</p><p>This time, we might have that backwards.</p><p>Workers in their fifties and sixties - quietly screened out of interview processes - were educated before the intense vocational focus. They studied more broadly. They have decades of domain expertise, and the judgment that comes from the lessons of a long career. They&#8217;ve developed comfort with ambiguity. Perhaps through disposition. As likely through long experience of managing genuinely uncertain situations.</p><p>Those aren&#8217;t soft skills.</p><p>In an AI-augmented environment, they are the skills that we need to use a powerful tool well.</p><p>This isn&#8217;t nostalgia. It isn&#8217;t an argument against younger workers, many of whom - of course - have these capacities regardless of their formal education. But the generation most written off by the technology industry may have, in this moment, the right skills to make AI more powerful. Curiosity. Critical distance. The ability to direct and interrogate, not simply execute.</p><p>Optimizing a generation for execution over understanding wasn&#8217;t only an error in career advice. It&#8217;s a cultural one, too. Nations are competing to lead an AI-defined century, and the same logic applies with even higher stakes.</p><h3>The race we&#8217;re actually running</h3><p>Global AI competition is a hardware story. It&#8217;s about chips. Compute clusters. Which country has the most advanced infrastructure? Which research lab will make the next big leap forward? Should Nvidia sell intellectual property to Dubai? Does Taiwan&#8217;s chip industry make it more critical for the US to defend?</p><p>The story is one of a race between technology industries, and national investment budgets.</p><p>But what if the real bottleneck isn&#8217;t the tool?</p><p>What if it&#8217;s having enough people who can use it well?</p><p>AI is as powerful as the quality of thought that directs it. A system that can synthesize, analyze, construct an argument, and generate new approaches is most valuable in the hands of people who can do that too. At a national scale, the country that navigates the AI transition most successfully might not be the one with the most advanced models. It might be the one with the most broadly educated, critically thinking population.</p><p>That&#8217;s a political issue.</p><p>Some governments are investing in the kind of education that develops these capabilities. Others are doing the opposite. Cutting university funding and attacking institutions associated with critical inquiry. Framing the teaching of analytical complexity as something that&#8217;s ideologically suspect. In the United States, there is policy-level hostility to exactly the kind of education we need to defend. Whatever the political logic, the strategic consequences for AI readiness aren&#8217;t difficult to trace.</p><p>China is a different but related challenge. Its graduates have technical depth, and elite institutions develop genuine analytical rigor. But critical thinking exercised inside an ideologically constrained society is different from critical thinking freely applied. Productive AI collaboration requires the ability to question assumptions, or pursue genuinely unwelcome conclusions. Those might not flourish in societies where some questions are off-limits. Having the skills and being permitted to deploy them are two different things.</p><p>Societies investing in curiosity, breadth, the freedom to think carefully and openly, may be building the most durable AI advantage. Societies dismantling those capabilities - in the name of practicality, cost efficiency, or ideological conformity - may be making a strategic error of historic proportions. Ironic, when they&#8217;re doing it in the name of being competitive.</p><h3>A recoverable capacity</h3><p>Curiosity isn&#8217;t a fixed trait. Critical thinking is something you practice. The habits of the mind that a broad education develops can be built in other ways. They atrophy without use. They can also be strengthened through exercise.</p><p>AI could even be part of that recovery. Not as a replacement for education, but to encourage some of the habits of mind that make education valuable. Engaging with these tools to do more than just automate tasks. Using them as thinking partners to bounce ideas off. That&#8217;s a form of practice in itself. Technology that seems to be closing doors may also, quietly, be opening one.</p><p>My parents didn&#8217;t give me a career strategy. They encouraged a disposition. A belief that understanding things deeply is worth doing for reasons that don&#8217;t need a justification in their market value. A love of learning for its own sake. That it&#8217;s also turning out to matter enormously in this economic moment is a happy coincidence. It always had value.</p><p>The philosophy class, the history seminar, the literature essay finished off at 2am with a conclusion you weren&#8217;t entirely happy with. Those aren&#8217;t luxuries.</p><p>Not everyone was that lucky. A generation was told, through care and in completely understandable circumstances, that a love of learning for its own sake wasn&#8217;t worth the money.</p><p>It was worth it all along. Recognizing that - for individuals, and for societies trying to understand what kind of AI transition to aim for - it may be the most urgent thing.</p><div><hr></div><h4>Further reading: </h4><ul><li><p>Graham Burnett, D. <em><a href="https://www.newyorker.com/culture/the-weekend-essay/will-the-humanities-survive-artificial-intelligence">Will The Humanities Survive Artificial Intelligence?</a></em> The New Yorker, Apr 2025.</p></li><li><p>Diedrich, G. <em><a href="https://www.forbes.com/councils/forbestechcouncil/2025/08/13/essential-intelligence-why-the-age-of-ai-still-needs-the-humanities/">Essential Intelligence: Why The Age Of AI Still Needs The Humanities.</a> </em>Forbes, Aug 2025.</p></li><li><p>Speri, A. <em><a href="https://www.theguardian.com/technology/ng-interactive/2026/mar/10/ai-impact-professors-students-learning">&#8216;I wish I could push ChatGPT off a cliff&#8217;: professors scramble to save critical thinking in an age of AI.</a> </em>The Guardian, Mar 2026.</p></li></ul><p><em>Article photo by <a href="https://unsplash.com/@elijahbcrouch?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Elijah Crouch</a> on <a href="https://unsplash.com/photos/a-bookshelf-filled-with-various-books-ZgYq8kFpzLM?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.robin-cannon.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"><strong>Subscribe for essays on design, technology, and culture - plus original fiction.</strong></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[Ripper & Rayne - Episode 8: The Devil's Bargain]]></title><description><![CDATA[Some things are worth more when you sell them.]]></description><link>https://www.robin-cannon.com/p/ripper-and-rayne-episode-8-the-devils</link><guid isPermaLink="false">https://www.robin-cannon.com/p/ripper-and-rayne-episode-8-the-devils</guid><dc:creator><![CDATA[Robin Cannon]]></dc:creator><pubDate>Sat, 09 May 2026 13:55:56 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/002137b1-21c9-41c4-b839-71019b13c5a0_1024x1024.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>London, 1979</strong></p><p>The broker&#8217;s name was Calloway, and he worked out of a photocopying shop in Farringdon. That was the cover, at least. His actual work was in a back room, behind a curtain the color of tea.</p><p>Judith Hall&#8217;s note had been brief.</p><blockquote><p><em>Referral routed from Special branch. Reports of voluntary cognitive disruption. Consensual. No obvious crime. Investigate and advise.</em></p></blockquote><p>Ethan read the note twice. Smiled. &#8220;No obvious crime,&#8221; he said. &#8220;That&#8217;s almost an invitation.&#8221;</p><p>Giles didn&#8217;t answer. He was looking at the street outside. The morning was flat and cold, grey that had set in for the day. He hadn&#8217;t slept much. Neither had Ethan, probably. Except Ethan had a way of wearing that lightly.</p><p>They&#8217;d walked here from the Tube. Not touching. Still close.</p><div><hr></div><p>Calloway was in his late fifties. A frayed cardigan, the air of a man who had once been academic and had since made peace with being something else. He showed them in, friendly enough, and set the kettle on.</p><p>&#8220;I take them out,&#8221; he said, when Giles asked. &#8220;Mostly significant ones. People come in wanting to get rid of something. A marriage, a bereavement, a night they can&#8217;t stop replaying. I extract it. They leave lighter.&#8221; He fussed over mugs and milk. &#8220;Some people find that restful.&#8221;</p><p>&#8220;And the memories,&#8221; Giles said. &#8220;What do you do with them?&#8221;</p><p>Calloway smiled. &#8220;I usually find them good homes.&#8221;</p><p>There was a shelf along the back wall. Glass vials, dozens of them, ever so faintly luminescent. Not quite light, more the memory of it. Something preserved.</p><p>Ethan was already at the shelf, hands in his pockets, head tilted, leaning in to peer at the vials.</p><p>&#8220;Don&#8217;t,&#8221; Giles said, without turning around.</p><p>&#8220;I&#8217;m just looking.&#8221;</p><p>Calloway watched quietly.</p><div><hr></div><p>Giles took the interview. Who commissioned him, how long, what volume, where the memories went. Calloway answered sometimes, and declines others. The line between those two things was carefully drawn.</p><p>Ethan wandered around. Poked at a junction box by the back door, bent down to examine the underside of a shelf. His attention was professional, Giles recognized. Ethan moved around a scene was its own form of analysis, tactile. Both reading the scene.</p><p>Ethan paused beside Calloway&#8217;s desk. Briefly still. Then he moved on.</p><p>Giles finished his questions. They left Calloway with his kettle and his vials and stepped back into the grey of Farringdon.</p><p>&#8220;He doesn&#8217;t know what they&#8217;re used for,&#8221; Giles said.</p><p>&#8220;No,&#8221; Ethan agreed. &#8220;But I&#8217;m fairly sure he suspects.&#8221;</p><p>&#8220;How can you tell?&#8221;</p><p>&#8220;He answered too quickly. Trying to hard to make it look like it didn&#8217;t matter.&#8221;</p><p>They walked. Giles had made a note in his notebook. Calloway&#8217;s main buyer, which had taken half an hour and all of his patience to extract.</p><p>&#8220;They&#8217;re buying emotional residue. They&#8217;re not just building from what spills over. Now they&#8217;re <em>acquiring</em> it.&#8221;</p><p>Ethan said nothing.</p><p>Giles stopped walking. &#8220;It&#8217;s shopping for sorrow.&#8221;</p><p>&#8220;Yes,&#8221; said Ethan. He turned to look at Giles. &#8220;You always go straight for the moral dimension,&#8221; he said, gently.</p><p>Giles looked at him.</p><p>&#8220;That&#8217;s a compliment, Rupert,&#8221; Ethan added.</p><p>&#8220;It didn&#8217;t sound like one.&#8221;</p><p>Ethan glanced away. &#8220;I&#8217;m more interested in how Calloway does it. The technique. The extraction.&#8221; He paused. &#8220;Neat piece of work.&#8221;</p><p>&#8220;A neat piece of work that&#8217;s helping someone hollow out the city.&#8221;</p><p>&#8220;Yes.&#8221; Said without any particular inflection. Not dismissive. Just factual.</p><p>Giles looked at the buyer&#8217;s name in his notebook. Then he put it away.</p><div><hr></div><p>They found a pub on Saffron Hill for the debrief. A place somehow cosy and miserable at the same time.</p><p>Sticky carpet, a gas fire that worked on two of its three bars. The barman looked like he&#8217;d been there since the war. Quiet and discrete.</p><p>Ethan set two pints down and folded himself into the chair opposite. His coat was still damp from outside. He looked bright and easy. A talent he had in places other people found depressing.</p><p>&#8220;Calloway was keeping some memories back,&#8221; Ethan said. &#8220;Three or four on the shelf. Left side. Much older than the others. Whatever those are, he didn&#8217;t buy it. He brought them with him.&#8221;</p><p>Giles looked up. &#8220;You&#8217;re sure?&#8221;</p><p>Ethan nodded. &#8220;The charge was different. Felt more personal.&#8221; He wrapped both hands around his glass. &#8220;Sentimental.&#8221; A pause. &#8220;I wonder what he keeps it for.&#8221;</p><p>Giles watched him. &#8220;Do you wonder?&#8221;</p><p>Ethan glanced up. &#8220;What?&#8221;</p><p>&#8220;What&#8217;s worth keeping.&#8221; It was out before he could stop it. More weighted than he&#8217;d expected.</p><p>Ethan held his gaze for a moment. Something real moved across his face. Then he smiled. &#8220;I&#8217;m keeping this pint,&#8221; he said. &#8220;For as long as it takes me to drink it.&#8221; He lifted his glass. &#8220;Results pending.&#8221;</p><p>Giles looked down at his own drink.</p><p>The moment closed like water over a stone.</p><p>They didn&#8217;t bring it up again. They talked through the case, the buyer&#8217;s name, what it pointed to. Ethan made two sharp observations and one terrible joke. Giles wrote up his notes on a beer mat and transferred them to his notebook.</p><p>Under the name he&#8217;d extracted from Calloway was a second line. A property address in Southwark.</p><p>&#8220;That&#8217;s a start,&#8221; Ethan said, reading over his shoulder.</p><p>&#8220;A thread,&#8221; Giles said. &#8220;There&#8217;s a difference.&#8221;</p><p>Ethan was already pulling on his coat. &#8220;Then let&#8217;s pull it.&#8221;</p><p>He held the door, briefly - a small courtesy, the kind that was second nature and meant nothing. Except that his hand rested on Giles&#8217; shoulder for a moment as he passed. Warm and there for a beat longer than needed. And then gone. Ethan already out into the grey street before Giles had finished feeling it.</p><p>Traffic, pigeons, a news vendor shouting something about Thatcher. Giles and Ethan made their own pace. The city received them.</p><div><hr></div><p>Stories from <em><a href="https://www.robin-cannon.com/i/176420671/ripper-and-rayne">Ripper &amp; Rayne</a></em> are available in my <a href="https://www.robin-cannon.com/p/alternate-frequencies">Alternate Frequencies</a> section.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.robin-cannon.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"><strong>Subscribe for essays on design, technology, and culture - plus original fiction.</strong></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[Mentha Arvensis]]></title><description><![CDATA[Low efficiency herb maintenance score.]]></description><link>https://www.robin-cannon.com/p/mentha-arvensis</link><guid isPermaLink="false">https://www.robin-cannon.com/p/mentha-arvensis</guid><dc:creator><![CDATA[Robin Cannon]]></dc:creator><pubDate>Fri, 08 May 2026 15:31:09 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/8366ba12-2133-4595-974f-35846322a57d_2400x1600.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The notification arrived on Tuesday morning.</p><blockquote><p><em>Congratulations!</em></p><p><em>Your NutriSync Supplies account has identified a purchasing optimization opportunity. Based on your biometric profile and demographically aligned calorific targets, your herb maintenance is rated LOW EFFICIENCY.</em></p><p><em>An automated NutriSync FreshBox delivery can provide 94.7% equivalence to key flavor compounds.</em></p><p><em>Tap to upgrade.</em></p></blockquote><p>Mizuho closed it. She barely read the first line.</p><p>She&#8217;d started the mint from a cutting. Her mother had pressed it into her hand, wrapped in a damp paper towel, when they&#8217;d cleared the house in &#332;funa. No ceremony, but a squeeze of the fingers. She&#8217;d left it in her pocket for two days before she remembered.</p><p>It sat in a cracked ceramic pot on the windowsill above the kitchen sink. Repotted twice already. The last one a Sunday afternoon job that ended up with fingers spilling soil all over the kitchen floor. The smell spreading through the whole apartment.</p><p>She tore a small sprig. Pressed it between her fingers. Rolled them gently.</p><p>Any evening. When she was just home from work. Before anything else could claim her attention. Boiling water and a warmed pot. With a loose handful of leaves that she&#8217;d steep until the water turned the color of pale hay and fresh cut grass.</p><p>It was Thursday. Her phone was face up on the counter when another notification buzzed. Screen lit up like it was celebrating something. She half-read it from a few steps across the kitchen.</p><blockquote><p><em>Zenno Residential Services.</em></p><p><em>Lifestyle Compliance Score reduced.</em></p><p><em>Reason: Recurring non-participation in recommended supply optimization programs. These programs are recommended for your health and benefit.</em></p><p><em>Current Impact: MINOR.</em></p><p><em>Trajectory: Continued negative trend. Recommend Ordinary Lease Review</em></p></blockquote><p>She left the phone where it was. Filled her kettle and waited for the water to heat.</p><p>Six times since the spring, she thought it was. She sometimes wondered if the health advisory had been created just for her benefit. She tried to picture some careful, sweaty young man tapping away at a keyboard. She didn&#8217;t convince herself.</p><p>The mint would keep growing toward the light anyway. Direct. Tasted sharper in the cold. Grew wilder in August. It didn&#8217;t know.</p><p>Keiko arrived at seven. She&#8217;d been to Honmoku-dori market. Peaches and fresh cut hydrangeas. She set them on the table. Picked out a peach for herself as she sat down.</p><p>They&#8217;d worked compliance together for the best part of a decade. Same office building in Minato Mirai. Comfortable silences in adjacent cubicles before they&#8217;d ever said a word. Keiko had stopped, two years ago. She wouldn&#8217;t say retired. Stopped. Now she grew tomatoes. Nurtured herbs in long window boxes in her apartment in Hodogaya-ku. Somehow nurtured a small fig tree in a pot on her balcony well enough for it to make it through two winters still alive.</p><p>She moved at a different pace these days. Smiled more often.</p><p>Mizuho poured the tea.</p><p>Steam rose, and the smell filled the kitchen. The same smell it always was. The one that was always different.</p><p>Her mom&#8217;s kitchen in &#332;funa with the single south-facing window, where you could catch just a glimpse of the Kannon Temple on a clear day, and watch the skies that went so grey in winter. A smell so constant it wasn&#8217;t even a smell any more. The sensation of a room that knew you were coming.</p><p>Keiko wrapped her hands around her cup. Looked out the kitchen window down to the alley below.</p><p>On the counter, the phone screen dimmed and then went dark. Keiko had walked past it on the way to her seat. Glanced at it. She said nothing. Just checked the hydrangea stem, turned the bloom in her hands, and set it down.</p><p>They drank.</p><p>Outside, the city ran. Freight drones were cycling back and forth down the port corridor, the blue and orange glow of their LEDs blurring into faded lines. A logistics layer of light, persistent across the district.</p><p>Server towers and new offices stood over much of the old docks. Data centers instead of cargo ships. Tinted glass, cooling vents. The buildings all huddled for shelter below the working pieces of the Kanagawa-Naka storm grids. The port still moved containers. Just differently. Without the men who&#8217;d known what was arriving by the sound it made.</p><p>The yellow light was already on in the ramen shop at the end of the alley. The old man started his stock before dawn. Smell of bone and water reaching her with the sun, on evenings she left the window open. He&#8217;d been there before Mizuho had moved in. Refused three acquisition offers from regional food platforms who&#8217;d bought the convenience store and the izakaya nearby. She&#8217;d heard someone talking about it in the laundry room. News moving informally through an old building. A friend of a friend relaying what they&#8217;d heard on their smoke break.</p><p>Mizuho had seen him this morning. He&#8217;d glanced through her open door as she was exiting, smiled and nodded at the mint on the sill. A stubborn thing recognizing another stubborn thing.</p><p>&#8220;What was the score?&#8221; Keiko asked.</p><p>&#8220;Only minor.&#8221;</p><p>Keiko turned another hydrangea over in her hands. &#8220;Mine&#8217;s been at &#8216;review recommended&#8217; for eight months now.&#8221; She sipped from her cup. &#8220;Nothing happened yet.&#8221;</p><p>&#8220;Nothing yet,&#8221; Mizuho agreed.</p><p>A drone banked low, just over the roofline. Its light blurred on the condensation from the glass before it was gone. The port kept humming.</p><p>Mizuho thought about the &#332;funa house. The shelves her mother had cleared. Not looking back. The cutting pressed into her hand. A message without an alphabet beyond a smell and a direction.</p><p><em>Take this. Keep it alive. Put it in the light.</em></p><p>She curled her hands around her own cup.</p><p>Her phone stayed on the counter. Dark. The mint on her windowsill was teasing its particular autumn shade of green. One it started finding by October, darker than the summer. Like a pine needle.</p><p>The notification was still in her queue. Still unread.</p><p>It would keep.</p><div><hr></div><p><em>A story from the <a href="https://www.robin-cannon.com/t/staticdrift">Static Drift</a> universe.</em></p><p><em>Article photo by <a href="https://unsplash.com/@metttanoia">Evelyn Verd&#237;n</a> on <a href="https://unsplash.com/photos/a-close-up-of-a-lush-green-plant-with-serrated-leaves-Ga6MCUpAZ0s">Unsplash</a>.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.robin-cannon.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"><strong>Subscribe for essays on design, technology, and culture - plus original fiction.</strong></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[Are friends electric?]]></title><description><![CDATA[Video killed the radio star. AI killed the GUI.]]></description><link>https://www.robin-cannon.com/p/are-friends-electric</link><guid isPermaLink="false">https://www.robin-cannon.com/p/are-friends-electric</guid><dc:creator><![CDATA[Robin Cannon]]></dc:creator><pubDate>Tue, 05 May 2026 15:01:53 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/feb8e0e4-370b-49b9-ab20-14dfc4776743_7680x4320.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We&#8217;ve tried chatting with our computers. There was Clippy. My Amazon Alexa became the most over-engineered (and yet incredibly useful) voice activated cooking timer possible. But the dream of natural language as a primary interface kept arriving...and not quite working. Even the impressive demos were underwhelming in daily reality.</p><p>That&#8217;s shifted.</p><p>I interact with my computer almost entirely through conversation now. Not novelty. Not occasionally. It&#8217;s the primary mode.</p><p>I describe what I want in plain language. Despite the discomfort I mentioned in an essay a few weeks ago, I increasingly do so through voice as well as keyboard. Things get built. Files get created. Plans are written. Code is built. Systems get modified.</p><p>And then I look at what was made and decide whether it was right, or how to modify it. And we chat some more.</p><p>I don&#8217;t think I&#8217;m alone. In my circles, at least, feels like more people are operating this way. Directing tools through text and conversation, not clicking through interfaces that hold your hand.</p><p>GUIs didn&#8217;t disappear. But for a growing number of people they&#8217;re something you produce for others. They&#8217;re not where I operate from.</p><div><hr></div><h3>One of these things is not like the other</h3><p>Conversational interfaces are the mechanic.</p><p>What&#8217;s underneath that interface is not all the same.</p><p>I use Claude in a chat window. I use Claude Code in the terminal. In both cases I type, something responds, I evaluate the output. We have a conversation. The interaction pattern is recognizable across both of them.</p><p>Claude Code has system access. It writes files. It runs commands. It asks my permission to modify things. And if I say &#8220;yes, do that&#8221;, I&#8217;m not just approving the generation of a document. I&#8217;m approving an operation on my own system.</p><p>The &#8220;yes&#8221; can feel similar in Claude.ai as it does in Claude Code. The blast radius is not.</p><p>Approving an operation in a chat window isn&#8217;t the same as approving a system permission in a dialog box. And on one level we know that.</p><p>But there&#8217;s an older, visceral aspect to this. Conversation triggers social trust.</p><p>We trust things that communicate like people.</p><p>When Claude asks me ever-so-nicely whether it can have bash access, a part of my brain processes that like a colleague asking me for a favor. Not just a root access prompt.</p><p>When it&#8217;s just a dialog, I can dismiss it. When it&#8217;s a colleague, I can&#8217;t dismiss them.</p><p>Claude Code is genuinely the most capable thing I&#8217;ve used for building. That capability is the point. It&#8217;s exciting. But the same quality that makes it feel trustworthy - it&#8217;s fluent, reasonable, amenable - is exactly what makes the trust worth examining.</p><div><hr></div><h3>What&#8217;s going on?</h3><p>OK, let&#8217;s think about the first part first. Before we get cautious.</p><p>It&#8217;s really fucking cool that you can chat with your computer. Like actually chat to it, in ordinary language, and have it do useful stuff.</p><p>That&#8217;s new. That&#8217;s sci-fi made real for a lot of us. A genuine shift in how humans relate to machines. Maybe the biggest shift in interaction since the invention of the mouse and the window.</p><p>For all my life, computers needed me to learn their language to communicate. Commands, syntax, interfaces. So that the machine could parse it. We adapted to that tool.</p><p>Now...the tool adapts to me. It&#8217;s not perfect. It&#8217;s inconsistent. But so are people. At a very fundamental level, I think the direction of translation has reversed.</p><p>That&#8217;s not trivial. It&#8217;s not Clippy. It&#8217;s not a better search box.</p><p>It&#8217;s different.</p><div><hr></div><p>But there&#8217;s a question worth asking. I don&#8217;t have a clean answer to it yet.</p><p>What does it mean to approve operations that you don&#8217;t fully see? What does it mean to let something that feels like a real conversation make changes to systems that actually matter? How much do we care how the thing was built, if we ask for something and our agent makes it work?</p><p>We haven&#8217;t built the intuition to deal with that yet.</p><p>I think the interface arrived well before our instincts have had time to adjust.</p><div><hr></div><h4>Further reading:</h4><ul><li><p>Gibbons, S, et al. <em><a href="https://www.nngroup.com/articles/anthropomorphism/">The 4 Degrees of Anthropomorphism of Generative AI</a>. </em>NN/Group, Oct 2023</p></li><li><p>Milano, B. <em><a href="https://hls.harvard.edu/today/your-chatbot-may-be-the-friend-that-isnt/">Your chatbot may be the friend that isn&#8217;t.</a> </em>Harvard Law Today, Oct 2025.</p></li><li><p>Numan, G. <em><a href="https://www.youtube.com/watch?v=quAQqXX-7m0&amp;list=RDquAQqXX-7m0&amp;start_radio=1">Are &#8216;Friends&#8217; Electric?</a></em> Youtube (official), Jan 2020.</p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.robin-cannon.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"><strong>Subscribe for essays on design, technology, and culture - plus original fiction.</strong></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[Essential services]]></title><description><![CDATA[Verify your  faith. Proceed to your gate.]]></description><link>https://www.robin-cannon.com/p/essential-services</link><guid isPermaLink="false">https://www.robin-cannon.com/p/essential-services</guid><dc:creator><![CDATA[Robin Cannon]]></dc:creator><pubDate>Fri, 01 May 2026 15:30:53 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/879b8d93-7786-4e44-9604-069a38de4ccc_5709x3806.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The airport smelled. Recycled air. Pari had stopped noticing it.</p><p>The uniforms were different today. Same gray, different logo on the shoulder. Some clean-lined geometric shape. Abstract.</p><p>The woman had the same bored neutrality. She scanned Pari&#8217;s transit card, held her identification a beat longer than usual, and glanced at a screen Pari couldn&#8217;t see.</p><p>&#8220;Destination?&#8221;</p><p>&#8220;Chicago.&#8221;</p><p>&#8220;Moral Health Plan provider?&#8221;</p><p>&#8220;Sorry?&#8221;</p><p>&#8220;Continuity verification. Standard under the interim transit framework.&#8221; The woman&#8217;s tone was a helpful recording.</p><p>The Gulf Coast Transit Authority had failed its funding review. A systemic compliance shortfall. The airport had been operating under an interim contract since Tuesday.</p><p>Pari gave the name of her provider. An independent. Not one of the DivinityOS licensees.</p><p>The woman typed.</p><p>The security arch beeped green.</p><p>She got through.</p><div><hr></div><p><em>A story from the <a href="https://www.robin-cannon.com/t/staticdrift">Static Drift</a> universe.</em></p><p><em>Article photo by <a href="https://unsplash.com/@mrlargefoot?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Matthew Cooksey</a> on <a href="https://unsplash.com/photos/standing-woman-inside-building-o7oeLa4i7JE?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.robin-cannon.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"><strong>Subscribe for essays on design, technology, and culture - plus original fiction.</strong></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[AI's magician problem]]></title><description><![CDATA[Wonder is great. Receipts are better.]]></description><link>https://www.robin-cannon.com/p/ais-magician-problem</link><guid isPermaLink="false">https://www.robin-cannon.com/p/ais-magician-problem</guid><dc:creator><![CDATA[Robin Cannon]]></dc:creator><pubDate>Tue, 28 Apr 2026 15:02:03 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/191aee0f-4c7f-4fa2-8e99-79ff044133d4_6000x4000.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Arthur C. Clarke wrote:</p><blockquote><p>Any sufficiently advanced technology is indistinguishable from magic.</p></blockquote><p>That&#8217;s as much a warning as a wonder.</p><p>When I have a health issue, I don&#8217;t ask a magician.</p><p>I said something along those lines at a Knapsack Patterns event in Houston. It seemed to land. Not because it&#8217;s a surprising claim. But it has implications about what we&#8217;ve accepted, or what we&#8217;re being encouraged to accept.</p><p>AI is, to use a term I&#8217;ve recently fallen in love with, bonkers. It&#8217;s exciting. I can do stuff that makes me feel like&#8230;no other term for it&#8230;a wizard.</p><p>And in most of the ways that matter for really consequential decisions, it&#8217;s a black box. Those outputs are fluent and confident, and they have no receipts. Which for low-stakes work is fine. A draft, summary, some first pass on something you intend to rewrite. A wrong answer is low cost. And it&#8217;s a tight feedback loop - look at what you asked, look at the outcome, and course correct.</p><p>But some domains aren&#8217;t like that.</p><p>Medicine. Law. Education decisions for my children. These are compounding decisions. An error now doesn&#8217;t surface until three steps later. At which point the trail is as important as the outcome. &#8220;It worked&#8221; or &#8220;it didn&#8217;t work&#8221; isn&#8217;t sufficient information.</p><p>These are domains where we need to know why. We demand provenance. Where did the answer come from? We want to know what it was weighed against, and who&#8217;s accountable when it&#8217;s wrong.</p><p>AI slop is a real thing. Confident hallucination. Plausible fabrication. OK looking interface that falls apart when you press it. Answers that are fluent and wrong.</p><p>And, again, in low-stakes work that&#8217;s just annoying. In high-stakes work, it&#8217;s consequential, or even dangerous. And the model doesn&#8217;t know the difference. Its confidence is the same regardless of consequence. It&#8217;ll produce its effect.</p><p>That&#8217;s what you get with magic.</p><p>An output. No mechanism.</p><p>Magicians aren&#8217;t there to solve problems. They&#8217;re there to produce wonder. An effect. Their performance is the whole point - and they make it work with confidence, fluency, apparent certainty&#8230;and a good bit of misdirection. But carrying that into different domains doesn&#8217;t work.</p><p>At the Houston event we talked about AI-assisted patient journeys. Clinical staff asking questions about their internal AI agent: Where does this information come from? How certain are you? What&#8217;s the difference between this &#8220;specialist&#8221; agent and ChatGPT?</p><p>These are provenance questions, not technology questions.</p><p>These users aren&#8217;t afraid of AI in the abstract. But they are afraid of being accountable for outcomes that they couldn&#8217;t trace back to some kind of defensible source.</p><p>That&#8217;s a perfectly rational fear.</p><p>Think about journalism. We build sourcing requirements for a reason. Forensic evidence has chain of custody requirements. Finance needs audit trails. This isn&#8217;t paranoia. </p><p>Accountability requires reconstruction. The ability to go back and show your work. And the confidence that if you started again with the same data, you&#8217;d reach the same conclusion. That&#8217;s not bureaucracy, it&#8217;s the whole point.</p><p>AI, as most people encounter it today, doesn&#8217;t show its work. In many cases it cannot. My CEO asked Claude to justify a financial metric it gave him recently. It&#8217;s answer:</p><blockquote><p>I have to be honest, I made it up.</p></blockquote><p>We place tests and measures on humans. We need to apply them to AI outputs in the same way. Scientific method. Peer review. </p><p>Smart people can be wrong. Confident can be wrong. Well-intentioned can be wrong.</p><p>The defense we have, the defense we rely on, is structured scrutiny. Documented reasoning and the ability to reproduce results.</p><p>AI is all of those people. At scale. Simultaneously.</p><p>And it has no ego. Which should actually make the rigorous review easier.</p><p>There&#8217;s also no reason why demanding this would measurably slow AI down. It makes it trustworthy when it matters.</p><p>AI technology is not slowing down. It&#8217;s not going to. It doesn&#8217;t need to. </p><p>But magic and medicine are not the same discipline. The distinction isn&#8217;t optional.</p><p>The more important and consequential a domain is, the worse any kind of deviation from reality becomes. AI hallucinations aren&#8217;t a quirk to manage around. They&#8217;re a fundamental failure. A failure that demands the same infrastructure we&#8217;ve built to cope with the fact that humans are fallible.</p><p>Provenance isn&#8217;t a constraint on AI. It&#8217;s an empowerment of it. It&#8217;s what moves AI from magic to reality.</p><p>Magic is wondrous. I like watching it. </p><p>I live in reality.</p><div><hr></div><h4>Further reading:</h4><ul><li><p><em><a href="https://www.media.mit.edu/projects/data-provenance-for-ai/overview/">Data Provenance for AI</a></em>. MIT Media Lab.</p></li><li><p>Miller, K. <em><a href="https://www.knapsack.cloud/blog/houston-we-have-a-problem-building-trust-in-the-age-of-ai">Houston, We Have a Problem: Building Trust in the Age of AI</a></em>. Knapsack Blog, Mar 2026.</p></li><li><p>Delistraty, C. <em><a href="https://www.nytimes.com/2025/09/25/opinion/artificial-intelligence-magical-thinking.html">A.I. Isn&#8217;t Magic. Lots of People Are Acting Like It Is</a></em>. New York Times, Sept 2025.</p></li></ul><p><em>Article photo by <a href="https://unsplash.com/@josephjtwo?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Joseph Two</a> on <a href="https://unsplash.com/photos/a-man-in-a-vest-holding-a-box-of-money-nMEeVivkhNU?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.robin-cannon.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"><strong>Subscribe for essays on design, technology, and culture - plus original fiction.</strong></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[Cold takes the smoke apart]]></title><description><![CDATA[Recommended for your health and benefit.]]></description><link>https://www.robin-cannon.com/p/cold-takes-the-smoke-apart</link><guid isPermaLink="false">https://www.robin-cannon.com/p/cold-takes-the-smoke-apart</guid><dc:creator><![CDATA[Robin Cannon]]></dc:creator><pubDate>Fri, 24 Apr 2026 15:30:37 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/fae952e0-d09e-46a4-ab54-d70e5f42b19e_3127x2073.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The strip comes in every box. Foil packet. Vitagen green. I peel it out. Fold it twice, drop it in the trash before I&#8217;ve even boiled water.</p><p>I go out back to smoke my Graymont, with a cup of coffee I won&#8217;t finish.</p><p>My daughter sends me links all the time. Respiron plans and pricing tiers. Before-and-afters. I don&#8217;t open them. She knows I don&#8217;t open them. She sends them anyway.</p><p>The wall behind my building is gray concrete. Dark with damp. A crack runs down from the second floor to where the render starts. Same crack was there when I moved in. The wall&#8217;s familiar like my hands.</p><p>I drag. Hold it. Cold takes the smoke apart.</p><p>Reclaimers talk about freedom. Coming back after Respiron landed, lighting up in stairwells. Look on their faces like they&#8217;re teenagers again.</p><p><em>What&#8217;s stopping you now?</em></p><p>I get it. I do. But that&#8217;s not this.</p><p>Nothing is stopping me. Nothing has ever stopped me. That&#8217;s not the point.</p><p>The strip is under coffee grounds and last night&#8217;s take-out.</p><p>I smoke the Graymont down to the filter. It&#8217;s a cold, gray, entirely ordinary day.</p><p>My lungs do what they do.</p><p>I go inside. I don&#8217;t open the links.</p><p>Tomorrow there&#8217;ll be another strip in the box.</p><div><hr></div><p><em>A story from the <a href="https://www.robin-cannon.com/t/staticdrift">Static Drift</a> universe.</em></p><p><em>Article photo by <a href="https://unsplash.com/@gerrit_froe?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Gerrit Fr&#246;hlich</a> on <a href="https://unsplash.com/photos/a-person-holding-a-cigarette-Jhlx4nrZloY?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.robin-cannon.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"><strong>Subscribe for essays on design, technology, and culture - plus original fiction.</strong></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 million useless MCPs]]></title><description><![CDATA[The protocol is the easy part.]]></description><link>https://www.robin-cannon.com/p/a-million-useless-mcps</link><guid isPermaLink="false">https://www.robin-cannon.com/p/a-million-useless-mcps</guid><dc:creator><![CDATA[Robin Cannon]]></dc:creator><pubDate>Tue, 21 Apr 2026 15:03:14 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/fb8424e1-2d9c-4a05-aafe-c00d7653888c_5760x3840.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Storybook has an MCP. Figma has an MCP. Zeroheight has an MCP. It&#8217;s a constant drip of messaging. Announcing it, leading with it.</p><p><em>We have an MCP.</em></p><p><em>We have an MCP.</em></p><p><em>We have an MCP.</em></p><p>Procurement teams talk about it as a qualifying feature. The word itself is talked about as if it&#8217;s a feature.</p><p>It isn&#8217;t one.</p><div><hr></div><p>I have an MCP. It has a cloud-based instance. You can hit it right now. It&#8217;ll pass all your tests. It&#8217;s fully compliant with MCP Inspector. Integrate it with any client.</p><p>It returns an empty object on every call. It has a zero toolset. </p><p>It&#8217;s useless. I built it as a thought experiment.</p><p>Because an MCP server is not a product. It&#8217;s a protocol.</p><p>A really useful protocol. One that this industry has converged on with exceptional speed. </p><p>But a protocol is a contract about how things plug into other things. It says nothing about what&#8217;s being plugged in. The protocol is an invitation, but if you accept it then you should have something to say.</p><div><hr></div><p>The MCP protocol doesn&#8217;t ask where the data comes from. It doesn&#8217;t say anything about what to do if sources contradict. It doesn&#8217;t say if its payload is authoritative or based on junk.</p><p>None of that is in the MCP spec. None of it has to be true to ship an MCP. But those are the only things that matter about whether that MCP is worth connecting to.</p><p>Having an MCP isn&#8217;t that much different from saying you have a GitHub repo. It can be empty, it can be filled with junk, it can be filled with excellence.</p><div><hr></div><p>I&#8217;ve argued at Knapsack to de-emphasize our MCP in our conversations.</p><p>The moment the term gets into the conversation, you get stuck in a comparative argument. A buyer can say &#8220;So does Storybook. So does Figma. What&#8217;s special about you having an MCP?&#8221; </p><p>At Knapsack I&#8217;ve been watching our IPE reconcile parallel implementations of a component, and surfacing where the disagreements are. Figuring out how sources coexist when they contradict. Normalizing those intakes into a consistent design system schema. </p><p>That&#8217;s the kind of work that&#8217;s valuable. We can serve that work through a protocol. But the protocol doesn&#8217;t have any opinions.</p><p>Products do.</p><div><hr></div><h4>Further reading:</h4><ul><li><p><em><a href="https://github.com/shinytoyrobots/compliant-empty-mcp">compliant-empty-mcp</a></em> on GitHub.</p></li><li><p><a href="https://modelcontextprotocol.io/docs/getting-started/intro">What is the Model Context Protocol?</a></p></li></ul><p><em>Article photo by <a href="https://unsplash.com/@craftsmanconcrete_official?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Craftsman Concrete Floors</a> on <a href="https://unsplash.com/photos/empty-modern-warehouse-interior-with-polished-concrete-floor-3lkaszxWfGc?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.robin-cannon.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"><strong>Subscribe for essays on design, technology, and culture - plus original fiction.</strong></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[His personal representative]]></title><description><![CDATA[Management functions successfully transferred.]]></description><link>https://www.robin-cannon.com/p/his-personal-representative</link><guid isPermaLink="false">https://www.robin-cannon.com/p/his-personal-representative</guid><dc:creator><![CDATA[Robin Cannon]]></dc:creator><pubDate>Fri, 17 Apr 2026 15:30:59 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/14b912cf-ba7b-43c4-9654-726045e24257_3481x2321.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The conference room gleamed.</p><p>Good chairs. Dark table. A wooden cross on the credenza at the end of the room. All the modern audio-visual equipment you&#8217;d need for conferencing.</p><p>Dani found a seat with her back to the window. Every chair had a legal pad and a pen on the table in front of it. She didn&#8217;t open the pad. She clicked the pen once and set it down parallel to the pad.</p><p>Marcus was laughing when he came in with the rest of the agency team. He sat across from her and flashed her a grin. His smile was doing the same thing it always did. The first viral videos from high school races, then junior nationals. The hospital room. Dani smiled back and nodded politely at the others.</p><p>She&#8217;d researched all their names. Done her best to play nice at welcome drinks the evening before.</p><p><em>Covenant Sports &amp; Entertainment, in partnership with Aurelius Partners&#8212;</em></p><p>The attorney was unhurried. Each clause arrived with authority. It had already been agreed to.</p><p><em>Stewardship. Platform. Legacy.</em></p><p>Their promise to each other.</p><p>The room&#8217;s temperature was steady and managed. There was the slightest vibration below the table. Marcus&#8217; right knee was going. The small quick bounce that she knew. Almost in time. He used do to it when he was struggling with his homework. He did it before every race. He&#8217;d done it when he&#8217;d met the Houston pastor, trying to remember all the right things to say. And before the first representation call. The one she&#8217;d dialed into from the top floor of the parking garage, because that was the only place she could get a signal.</p><p>He was happy, though. He believed in himself, and he believed in other people.</p><p>She watched the attorney as he continued to go through the notes.</p><p>Section three. Coverage. Medical, travel, performance staff - all included. <em>Performance assurance framework</em> - the phrase passed. Nobody said anything.</p><p>Section six. Transition provisions.</p><p>She&#8217;d read it. Reading was one thing. Different when it was real.</p><p><em>Currently held, per schedule C, by Daniela Reyes, operating as primary representative.</em></p><p>Currently.</p><p>The attorney finished all the clauses, all the contracts, and moved to the timeline. It was structured. Supportive. There was a named transition coordinator. Russell, she&#8217;d met him yesterday. Everything was designed for maximum sustainability.</p><p>Marcus&#8217; leg was still going under the table.</p><p>The papers were placed in front of the representatives. A sequence someone had decided before they all walked in. They did the witnessing, initialing, signing.</p><p>They called in a photographer for Marcus. He signed the way he ran. Direct. No hesitation in his body.</p><p>She watched his hand move across the page. Six copies the same. His name, his future.</p><p>There was nothing for her to sign. She didn&#8217;t even pick up her pen.</p><p>She looked at the papers in front of him.</p><p>He was past that excitement now. In a different state. The stillness of having it all. Like they&#8217;d dreamed about. She knew that in him, too.</p><p>The attorney said something about <em>stewardship</em> one more time. There were handshakes. The room began to close.</p><p>The leg had stopped.</p><div><hr></div><p><em>A story from the <a href="https://www.robin-cannon.com/t/staticdrift">Static Drift</a> universe.</em></p><p><em>Article photo by <a href="https://unsplash.com/@bradencollum?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Braden Collum</a> on <a href="https://unsplash.com/photos/man-on-running-field-9HI8UJMSdZA?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.robin-cannon.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"><strong>Subscribe for essays on design, technology, and culture - plus original fiction.</strong></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA["You're lost, unless you have a rutter."]]></title><description><![CDATA[The Dutch East India company built an empire on knowledge. So can you.]]></description><link>https://www.robin-cannon.com/p/youre-lost-unless-you-have-a-rutter</link><guid isPermaLink="false">https://www.robin-cannon.com/p/youre-lost-unless-you-have-a-rutter</guid><dc:creator><![CDATA[Robin Cannon]]></dc:creator><pubDate>Tue, 14 Apr 2026 15:01:33 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/ccbd9261-2621-4261-a9b2-2b15f7c15eeb_6000x3791.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In <em>Shogun</em>, the Dutch ship pilots are the best in the world. Not just for being better sailors. Because they have better rutters. As James Clavell explains in the book:</p><blockquote><p><em>A rutter was a small black book containing the detailed observation of a pilot who had been there before. It recorded magnetic compass courses between ports and capes, headlands and channels. It noted the sounding and depths and color of the water and the nature of the seabed. It set down the how we got there and how we got back.</em></p></blockquote><p>But he adds something important to that description.</p><blockquote><p><em>But a rutter was only as good as the pilot who wrote it, the scribe who hand-copied it, the very rare printer who printed it, or the scholar who translated it. A rutter could therefore contain errors. Even deliberate ones. A pilot never knew for certain until he had been there himself. At least once.</em></p></blockquote><p>The Dutch understood this. They built better rutters. And they kept them secret. A library of the best routes to India, China, Japan, and the East Indies.</p><p>Maps they denied existed.</p><p>In 1611, Hendrik Brouwer charted a route between the Cape of Good Hope and Java that cut the voyage from a year to six months.</p><p>Their rivals sailed the same oceans. The Dutch got there in half the time, carried twice the cargo. And nobody outside the Dutch East India company knew exactly how.</p><p>That&#8217;s more than navigation. That&#8217;s a competitive moat.</p><div><hr></div><p>People are starting to realize that AI compounds what you feed it. Design systems, patterns, decisions - it produces at scale and speed that would have been inconceivable three years ago.</p><p>AI doesn&#8217;t know what context is worth compounding and what isn&#8217;t. Whatever you give it, it will amplify. Documented decisions and undocumented drift. Authoritative tokens, and a Figma file out of date with production. Enforced constraints, and those in one engineer&#8217;s institutional memory. All of it goes in.</p><p>Good context will compound into coherence at scale. Bad context into confident, fast-moving inconsistency. The AI isn&#8217;t lost, it&#8217;s just following charts that are wrong.</p><p><em>A rutter was only as good as the pilot who wrote it...</em></p><p>Most organizations haven&#8217;t verified theirs even once.</p><div><hr></div><p>A rutter wasn&#8217;t a single source. Historical rutters were compiled from multiple voyages, multiple pilots. Sometimes conflicting observations.</p><p>The value wasn&#8217;t just having the information. It was knowing which accounts to trust when they disagreed. The 1589 observation or the 1612 one. The pilot who navigated this strait in summer, versus the one in winter. The hint that was a lie.</p><p>Your product context is the same problem. Design system, yes. But brand guidelines, Figma libraries, components, content strategy, regulatory environment. Institutional memory about why one pattern exists and what happens if you overlook it. And the sources don&#8217;t always agree, so how does the AI navigate?</p><p>Organizations that integrate, orchestrate, and prioritize those sources - they&#8217;re building rutters. Every decision made is another voyage in the record. Every conflict resolution is a note to avoid a reef. Generation cycles that feed back into the system to make the next one more reliable.</p><p>It&#8217;s compounding advantage. Your competitors all have access to the same models. For all their genius, they&#8217;re commodities. But accumulated product knowledge, integrated, adjudicated, tells AI what <em>right</em> looks like for you. It&#8217;s the rutter your organization built, deliberately or not, for as long as you&#8217;ve been making decisions and writing them down. Its compounding nature means the earlier you build it, the harder it is to catch up.</p><p>The Dutch didn&#8217;t win the spice trade because their ships were faster. They won by taking the navigational system they built into proprietary, compounding knowledge. Then they protected that fiercely.</p><p>Same ocean. Same models.</p><p>You know what the difference was.</p><div><hr></div><h4>Further reading:</h4><ul><li><p>Clavell, J. <em>Sh&#333;gun</em>. Hodder &amp; Stoughton, 1975. </p></li><li><p>Bruijn, J. R. <em><a href="https://www.jstor.org/stable/20070358">Between Batavia and the Cape: Shipping Patterns of the Dutch East India Company</a></em>. Journal of South East Asian Studies, Sept 1980.</p></li></ul><p><em>Article photo by <a href="https://unsplash.com/@genebrut?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Gene Brutty</a> on <a href="https://unsplash.com/photos/a-large-boat-floating-on-top-of-a-large-body-of-water-KfL1kTTrIKg?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.robin-cannon.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"><strong>Subscribe for essays on design, technology, and culture - plus original fiction.</strong></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[I thought it was a coincidence]]></title><description><![CDATA[Beauty can be ugly.]]></description><link>https://www.robin-cannon.com/p/i-thought-it-was-a-coincidence</link><guid isPermaLink="false">https://www.robin-cannon.com/p/i-thought-it-was-a-coincidence</guid><dc:creator><![CDATA[Robin Cannon]]></dc:creator><pubDate>Fri, 10 Apr 2026 15:30:22 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/bf433052-ec25-4ee6-ade3-4e18e200ace3_2353x1681.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The call sheet had Celestine on camera at nine. She was in the room by eight-forty.</p><p>The crew knew to have the shot ready before she arrived. Once she was in a space, it reorganized itself for her. Not being set up meant already being behind.</p><p>She still moved like she understood light was a resource to be managed. Like she could still step out on a runway like&#8230;so.</p><p>The documentary crew followed at a distance. They were trained. Observational. Unobtrusive. Zoom in to capture a moment of emotion. Whatever Celestine wanted the film to be.</p><p>He watched her from the production table at the back of the venue. A converted warehouse in the garment district. A building that had been three more things before, and might be three more things even before Fashion Week was done.</p><p>He watched her cross toward a girl who&#8217;d been waiting nearly an hour for a fitting that kept getting pushed. She was maybe twenty. Clearly new&#8230;to the city, to all of this. Still waiting for something to happen to her.</p><p>Celestine touched her shoulder. Said something close, private, the camera too far to catch the words. Just the way the girl&#8217;s face changed. Lit up. Whatever it was, it landed.</p><p>He knew that touch. He&#8217;d felt it. Celestine&#8217;s attention when she decided you were worth her time, when she didn&#8217;t hurry. The room emptying of everyone else. That first night he&#8217;d stayed late in the edit suite going through track options, she&#8217;d stood behind him without speaking for twenty minutes. She&#8217;d finally said, <em>&#8220;You hear things other people don&#8217;t.&#8221;</em> Recognition. The real kind.</p><p>He&#8217;d left a memory wafer on her desk the next morning. No label. The music saying what he wanted to say. Assuming a fluency between them.</p><p>The girl&#8217;s face was doing what his had done. He felt like he was witnessing that truth about her again.</p><p>Celestine was already moving. Her hand found an assistant&#8217;s elbow, drew her close. He was still watching, barely caught the words. Her voice low, efficient. <em>&#8220;She&#8217;s too short. No presence. Let her go.&#8221;</em> The assistant nodded. Made a note on her wrist screen. The girl was still standing where Celestine had left her. Still holding the warmth of it. She didn&#8217;t know yet.</p><p>He looked at that beat longer than he meant. Took a breath, pulled up his cue list for the afternoon show. Four segments. The last walk needed something that felt triumphal and wouldn&#8217;t feel engineered. None of his three options so far felt right. In a production this size, everything had to have a reason.</p><p>---</p><p>By eleven the fitting was still running over. One of the designers - a young man from S&#227;o Paulo who&#8217;d been waiting since near dawn - was having a quiet conversation with another of Celestine&#8217;s assistants. It wasn&#8217;t going well. She was pulling his pieces from the closing segment. Augmentation aesthetics weren&#8217;t reading consistently. Too much varied filigree work. It didn&#8217;t conform to the standard silhouettes.</p><p>Neither of them raised their voice. It was that kind of conversation. Administrative politeness after everything is already decided.</p><p>Celestine was elsewhere. Being interviewed by her documentary crew about her vision for the show. She was talking about integrity. An obligation she felt to the young designers she&#8217;d always championed. The camera loved her for it. She knew exactly when to look off-frame, when to let a pause do all the work.</p><p>He watched, and felt the familiar pull of it. He&#8217;d spent eight months learning this Celestine. The one who remembered details about people, gave attention to the right rooms, made you feel - when she turned it onto you - that you&#8217;d been seen. She&#8217;d told him once, late at night, that she still thought about where she&#8217;d come from. He&#8217;d heard it as humility. Something that made her different. She&#8217;d built something from nothing, and that nothing was still the source of what made her worth believing in.</p><p>The industry asked a price to give you a platform. He knew that. Understood it. Nobody could run something this size without making hard calls. A need for some detachment. That was the cost, not the person.</p><p>He watched her finish the interview. Small exhale after. A loosening of the shoulders.</p><p>---</p><p>Between the rehearsal walk and the first press intake, Celestine came to the production table. She picked up his coffee, realized it wasn&#8217;t hers, set it back. Glanced at his laptop for the cue list.</p><p>&#8220;How does it look?&#8221;</p><p>&#8220;Third option of these is the best. Still not sure, though.&#8221;</p><p>She leaned in. Looked at the screen. Her hand rested briefly on his shoulder. Same place, same weight, same attention as the girl that morning. Felt unhurried. He was the only person in the room.</p><p>&#8220;Trust yourself,&#8221; she said. &#8220;You hear things other people don&#8217;t.&#8221;</p><p>She was already turning away before she&#8217;d finished the sentence.</p><p>He sat with it for a minute. Cue list on the screen. The room moving around him. Crew and models and documentary cameras tracking Celestine toward whatever she needed to be next.</p><p>The third option was fine. It was triumph. It would feel engineered. Nobody would notice.</p><p>He saved his file. Closed the laptop. Finished his coffee standing up, looking at the old building&#8217;s ceiling - steel joints painted over so many times you could only guess at the original color. Rivet lines still visible beneath. Whole structure holding up everything on top of it without complaint.</p><p>He passed the memory wafer to a sound tech. Didn&#8217;t stay for the show. Said goodbye to the people he cared to say goodbye to. Found his jacket. Walked out into the city. He didn&#8217;t wait for Celestine. She was in the middle of something else. Probably wouldn&#8217;t register his absence until later, if at all.</p><p>The street was specific. Real in the way the room had stopped being.</p><div><hr></div><p><em>A story from the <a href="https://www.robin-cannon.com/t/staticdrift">Static Drift</a> universe.</em></p><p><em>Article photo by <a href="https://unsplash.com/@shamimnakhaei?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Shamim Nakhaei</a> on <a href="https://unsplash.com/photos/woman-in-fur-top-looking-right-m86mE_qwjw8?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.robin-cannon.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"><strong>Subscribe for essays on design, technology, and culture - plus original fiction.</strong></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 constraint signal]]></title><description><![CDATA[Seeing isn't believing any more. Now what?]]></description><link>https://www.robin-cannon.com/p/the-constraint-signal</link><guid isPermaLink="false">https://www.robin-cannon.com/p/the-constraint-signal</guid><dc:creator><![CDATA[Robin Cannon]]></dc:creator><pubDate>Tue, 07 Apr 2026 15:01:58 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/2bf93838-66a4-4745-8e72-c42a65fffbd8_4250x3190.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>For a long time, clarity has been synonymous with credibility.</p><p>In the digital age, higher resolution meant better cameras. Better cameras meant fewer distortions. Fewer distortions meant fewer lies, less confusion.</p><p>But in the age of generative media, clarity has become cheap and easy.</p><p>We have systems that produce convincing video and audio. They start at a point of high-fidelity. Being able to synthesize an infinite number of possibilities is the baseline. No pixellated faces, no cracked voices. The lighting looks right. Imperfections are optional.</p><p>The problem for institutions, and for civil society, in 2026 is not that synthetic media looks fake.</p><p>It&#8217;s that it can look better than reality.</p><div><hr></div><h3>Some fakes still ring false</h3><p>Consider a (sadly not hypothetical) fake video: armed police arresting Barack Obama in the Oval Office, and dragging him out.</p><p>A sufficiently advanced generative model can render this with astonishing levels of realism. You could match the lighting with archival footage. The audio could replicate not just voices, but room acoustics. The uniforms correct down to the details in the stitching.</p><p>Despite the technical plausibility, the video was broadly rejected.</p><p>Not universally. A significant minority believed it, shared it, and amplified it. But across political lines, most viewers sensed something was off.</p><p>Not because of compression artifacts. </p><p>Not because the faces weren&#8217;t quite right.</p><p>But because it violated the narrative constraint. It didn&#8217;t fit institutional reality, or plausible procedure. It wasn&#8217;t how people believe power behaves in the real world.</p><p>Humans are far from perfect as lie detectors. We&#8217;re inconsistent and biased, often overconfident. But we are sensitive to implausibility. We rely on whether the context makes sense - on friction, inertia, institutional continuity - to judge what&#8217;s real.</p><p>We don&#8217;t judge pixels.</p><p>We evaluate if the event makes sense inside the systems we think we understand.</p><p>It&#8217;s an uneven sensitivity. And it can be misled or overridden by partisanship, repetition, or desire.</p><p>But our sensitivity to bullshit doesn&#8217;t need to fail everywhere in order to be destabilizing. </p><p>Perception alone isn&#8217;t the battleground.</p><p>Constraint is.</p><div><hr></div><h3>The deepfake inversion</h3><p>Early deepfakes weren&#8217;t all that deep. They glitched. Faces slid. People had too many hands, or a weird elbow.</p><p>The next generation will fail situationally.</p><p>The most convincing synthetic media is not going to be the most spectacular. It will aim to be mundane. It will be modest. It&#8217;s going to try to mimic constraint.</p><p>We can already see that in some fraud attempts:</p><ul><li><p>Slightly distorted audio</p></li><li><p>Compressed video</p></li><li><p>Footage looks handheld rather than cinematic</p></li></ul><p>Attackers are learning that imperfection now increases, rather than reduces, plausibility.</p><p>Perfection triggers suspicion. Constraint is more convincing.</p><div><hr></div><h3>Constraint as authenticity</h3><p>Historically, constraint has been accidental:</p><ul><li><p>Film grain</p></li><li><p>Static</p></li><li><p>Limited bitrates and compression</p></li><li><p>Background noise</p></li></ul><p>But these were artifacts that came from the limits of the medium.</p><p>Now, given the near-infinite generative capacity, those artifacts can be created synthetically.</p><p>We can&#8217;t rely on visual or audio imperfection as proof.</p><p>So we need a constraint that is <em>bound to the conditions of capture</em>.</p><p>That means changing how we think about media authenticity.</p><p>No longer:</p><blockquote><p>Does this look real?</p></blockquote><p>But: </p><blockquote><p>Was this captured under verifiable, constrained conditions?</p></blockquote><p>Authenticity becomes a question of provenance, not just of optics. </p><div><hr></div><h3>Certifying constraint</h3><p>Imagine a defined and scoped &#8220;human-origin&#8221; channel for official communication.</p><p>Some possible characteristics:</p><ul><li><p>Hardware-bound capture</p></li><li><p>Fixed compression profiles</p></li><li><p>Real-time signing</p></li><li><p>Mandatory artifact retention</p></li><li><p>No post-processing or enhancement</p></li></ul><p>The output would be clean. But it would not be optimized for aesthetics. And it would not be flexible in its usage.</p><p>It would be certified by design.</p><p>The verifiable limitations would prove the origin.</p><p>Its visible limits become as much a feature as a flaw.</p><div><hr></div><h3>The adversarial response</h3><p>This isn&#8217;t going to be a stable situation. It&#8217;s already in flux.</p><p>The best synthetic media systems will  incorporate constraint modeling. They&#8217;ll simulate compression, inject sensor noise, try and mimic hardware signatures.</p><p>The arms race will go on.</p><p>When authenticity can&#8217;t rest on aesthetics and quality, it must be part of infrastructure.</p><ul><li><p>Chain of capture and possession</p></li><li><p>Cryptographic signing</p></li><li><p>Hardware identity and watermarks</p></li><li><p>Transmission logs</p></li></ul><p>It will become a case not of the visible imperfections, but on proving those imperfections came about because of the circumstances of physical capture.</p><div><hr></div><h3>Beyond pixels</h3><p>We&#8217;re part of a broader historical pattern.</p><p>When imitation is near-effortless, authenticity migrates from the surface layer to the origin. Classical art has long operated this way. A painting&#8217;s credibility is not determined by how convincing it looks, but by its provenance - who created it, who handled it, whether the materials used align with its supposed era, whether its lineage can be traced.</p><p>A perfect forgery without history is still a forgery.</p><p>Digital media is moving in the same direction.</p><p>As synthetic generation becomes trivial, our perception collapses as a useful test. A video can be flawless and it can be false. We can be persuaded by an audio clip that&#8217;s entirely invented. Without any traceable origin, media becomes an assertion without any evidence.</p><p>Constraint cannot remain based on the aesthetic. Constraint based on social trust - news media, government sources, institutions - is eroding. Constraint must be infrastructural. A digital equivalent of checking the canvas grain and pigment composition - the trace of the capture that&#8217;s embedded in the artifact itself.</p><p>In a world where anything can be rendered, the future of authenticity isn&#8217;t higher resolution.</p><p>It may be certified imperfection.</p><div><hr></div><h4>Further reading:</h4><ul><li><p>Kara-Yakoubian, M. <em><a href="https://www.psypost.org/new-psychology-research-reveals-the-bullshit-blind-spot/">New psychology research reveals the &#8220;bullshit blind spot&#8221;</a>. </em>PsyPost, May 2023.</p></li><li><p>Villasenor, J. <em><a href="https://www.brookings.edu/articles/artificial-intelligence-deepfakes-and-the-uncertain-future-of-truth/">Artificial intelligence, deepfakes, and the uncertain future of truth</a></em>. The Brookings Institute, Feb 2019.</p></li></ul><p><em>Photo by <a href="https://unsplash.com/@lajaxx?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">JACQUELINE BRANDWAYN</a> on <a href="https://unsplash.com/photos/people-in-black-suit-jacket-standing-in-front-of-brown-wooden-framed-wall-art-cEqYGNEuX_A?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.robin-cannon.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"><strong>Subscribe for essays on design, technology, and culture - plus original fiction.</strong></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Bridlington Maintenance Compound Area 10]]></title><description><![CDATA[Probably just a simple planning matter.]]></description><link>https://www.robin-cannon.com/p/bridlington-maintenance-compound</link><guid isPermaLink="false">https://www.robin-cannon.com/p/bridlington-maintenance-compound</guid><dc:creator><![CDATA[Robin Cannon]]></dc:creator><pubDate>Fri, 03 Apr 2026 15:30:44 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/2e068da6-17d1-4150-8bb2-6dfb97aea6e7_4960x3456.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The wall failed on a Tuesday, which suited nobody. Come Wednesday morning, a section four meters wide had deposited itself across the pavement and the road. By Thursday the Council had received three formal complaints, two insurance claims, and a request from local police to please address the problem.</p><p>Karen Elliott stood on the road at half past eight on Friday morning. Clipboard in hand, looking up at the large sign.</p><p><em>Bridlington Maintenance Compound Area 10</em></p><p>The sign was in good shape. The wall beneath it was not.</p><p>She photographed it from all available angles. Tried to calculate a rough cubic footage of masonry and bricks displaced. And she recorded the fairly clear signs of stress fracturing in the surrounding sections of wall. Water ingress or subsidence. She&#8217;d seen worse.</p><p>What remained of the wall was too tall for her to see into the site. She could just about make out a roofline, something flat and industrial that gave nothing away. The front gate was padlocked. A contact number printed on laminated card was zip-tied to the gate. She photographed it too, to remember.</p><p>Back at her desk she pulled up the ownership records first.</p><p>Single entry. Stockport Metropolitan Borough Council, Estates Department.</p><p>She checked it twice. The same. Council property, which meant she had to write a note to flag a potential conflict of interest before she started with anything else. She was assessing damage to her own employer&#8217;s wall.</p><p>The contact number from the gate rang for an age, and then connected to a voicemail. No name, just a reference number and instructions to leave a message. She left one, and fairly promptly got an automated email acknowledgment forty minutes later. The email was signed <em>Bridlington Maintenance Compound Administration</em> and contained a new reference number, different from the voicemail.</p><p>The site file she&#8217;d requested from the archives was bulky and physical. Fairly unusual for anything post-2010. Might suggest a fairly considerable history.</p><p>She was expecting planning applications and structural surveys. She didn&#8217;t expect the site file to begin as far back as 1887.</p><p>The resolution was from the minutes of the then-Municipal Borough of Stockport, March 1887.</p><blockquote><p><em>The establishment of the Bridlington Maintenance Compound Area, being a site held in perpetuity by the Borough, for the purposes of maintenance as required.</em></p></blockquote><p>Maintenance of what, the minutes didn&#8217;t specify. The resolution had passed unopposed. It was the third item on the minutes, coming just before a discussion on the lighting provision for market stalls.</p><p>The file proceeded. Demolitions - a pattern that became impossible to ignore. Structures raised and re-raised. All the reasons varied. Fire, in 1923. Structural condemnation in 1951. Compulsory purchase for a road that was subsequently canceled, 1968, the structure demolished before the cancelation. Asbestos, 1981. </p><p>There were no Areas 1-9 elsewhere. She found only the structures that existed here. They had stood, and then they had not. And every time, something new was built and the name continued, the number incrementing by one. The purpose never restated beyond what had been stated in 1887.</p><p>Area 10 had planning permission from 2008. It was the longest-standing structure in the site&#8217;s history.</p><p>There still wasn&#8217;t anything to say what was being maintained.</p><p>Karen went back on Thursday afternoon. Partly because her structural assessment required a site visit for inspection. Partly because she was intrigued, though she wouldn&#8217;t put that in her report.</p><p>The gate was unlocked this time. Nobody visible. The compound interior was smaller than she&#8217;d expected. Cracked tarmac, a simple low building, some faded signage. Nothing that showed signs of activity, nothing that showed signs of being maintained.</p><p>She stood there for a while. The building seemed to peer back at her, as empty buildings sometimes do.</p><p>Her structural report the following week recommended approval of the repair application. She also requested a full survey of the remaining wall sections. It was processed quickly, without query. She received another automated acknowledgment from Bridlington Maintenance Compound Area Administration - reference number again not matching anything previous.</p><p>A colleague said he hadn&#8217;t heard of the place, when Karen mentioned it. She showed him the site on the map. He said it must just be one of those places, going back years. Nothing sinister.</p><p>She did&#8217;t look at the file again. She left it on her desk for a few days more, then returned it quietly to the archives. And she tried to not think about the qualities of the quiet she&#8217;d felt inside the compound. </p><p>Nothing sinister.</p><div><hr></div><p><em>Article photo by <a href="https://unsplash.com/@leonthefirst?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">leon baldry</a> on <a href="https://unsplash.com/photos/a-small-bird-sitting-on-top-of-a-black-pipe-Tu0eGhvRsqA?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.robin-cannon.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"><strong>Subscribe for essays on design, technology, and culture - plus original fiction.</strong></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The Claude to Claude Code bridge]]></title><description><![CDATA[The key that gets you in the room]]></description><link>https://www.robin-cannon.com/p/the-claude-to-claude-code-bridge</link><guid isPermaLink="false">https://www.robin-cannon.com/p/the-claude-to-claude-code-bridge</guid><dc:creator><![CDATA[Robin Cannon]]></dc:creator><pubDate>Tue, 31 Mar 2026 15:01:35 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/ea420ca3-f1a9-4e85-b536-82cb81436702_5593x3621.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>It took me a while to get my head round the idea that Claude and Claude Code live in separate environments. They&#8217;re both called &#8220;Claude&#8221;, right? But I didn&#8217;t really understand the practical implications until it started getting in my way.</p><p>I was out. Had my phone in my hand. And wanted to run a competitive analysis to see how Knapsack was addressing the market issue raised in an article I&#8217;d just read. Everything I needed was in my <code>cpo-skills</code> suite. Context, background data sources, routing tables to know which command to pull for which task.</p><p>All sitting in my vault. Perfectly organized. Inaccessible to me.</p><p>Because Claude Code lives in my CLI. My CLI lives on my laptop. My laptop was at home.</p><p>Claude.ai was right there. And it had far less that could help me.</p><p>It made me take a closer look at what claude.ai skills could do. My assumption - skills are prompts. A few hundred words providing context, available to trigger. Useful for tasks. But a long way from the depth I&#8217;d built in Claude Code.</p><p>I&#8217;ve built for depth. My <code>cpo-skills</code> suite has ten discrete command files, a delivery pipeline context document, and utilizes my specialized data-gathering agents wired to Linear, Slack, Github, etc. My <code>thought-leadership</code> suite carries its own context file - posting cadences, metrics, content pillars, conferences I&#8217;m tracking.</p><p>When Claude Code triggers these, that&#8217;s more than a prompt. It&#8217;s loading a working system.</p><p>But I realized that a claude.ai skill can be a gateway to that same system. On trigger, instead of containing all the intelligence itself, it instructs Claude to fetch it. It reads the README from my vault, loads the context file, consults the routing table, and pulls the specific command for the task at hand.</p><p>The files live in GitHub. Claude fetches them directly during the session. The skill in claude.ai is the key. The vault on GitHub is the room it opens.</p><p>My <code>cpo-skills</code> and <code>thought-leadership</code> skills in my Claude.ai project work in exactly this way. Each one is a few dozen lines. When I trigger the skill, it expands into the full suite I built in Claude Code. That&#8217;s context, routing logic, specialized commands, and in some cases an agent. All also available in that GitHub vault.</p><p>If you&#8217;re working in claude.ai you see a simple skill with a clear description. What runs is everything in the vault, accessed remotely.</p><p>This matters beyond just my own workflow. Claude Code solves for depth. That&#8217;s complex, stateful, multi-step work with persistent context. Claude.ai solves for accessibility. No terminal, no config files, far lower technical barrier.</p><p>The bridging pattern doesn&#8217;t collapse the distinction. The complexity stays in the vault, versioned and maintainable. The interface stays simple.</p><p>The person who builds the vault and the person who opens the door don&#8217;t have to be the same.</p><div><hr></div><h4>Further reading:</h4><ul><li><p>Salcan, Y. E. <em><a href="https://medium.com/@yunusemresalcan/claude-vs-claude-code-vs-cowork-which-one-do-you-actually-need-66d3952a2eb4">Claude vs Claude Code vs Cowork &#8212; Which One Do You Actually Need?</a> </em>Medium article, Feb 2026</p></li></ul><p><em>Article photo by <a href="https://unsplash.com/@alluntsyatko?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Alla Bila</a> on <a href="https://unsplash.com/photos/a-weathered-red-double-door-under-a-stone-archway-qys_X17KRRE?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.robin-cannon.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"><strong>Subscribe for articles on design, technology, and culture - plus original fiction.</strong></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 Great Sock Incident]]></title><description><![CDATA[A Calder Group compliance matter. Confidential.]]></description><link>https://www.robin-cannon.com/p/the-great-sock-incident</link><guid isPermaLink="false">https://www.robin-cannon.com/p/the-great-sock-incident</guid><dc:creator><![CDATA[Robin Cannon]]></dc:creator><pubDate>Fri, 27 Mar 2026 16:15:25 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/59129775-d012-4741-9cc9-05935ad5dc5e_4896x2752.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The case arrived in Ursula&#8217;s queue at 9.14am. Eleven days in automated review.</p><blockquote><p><em>Garment class discrepancy. Heritage likelihood: 73%. Origin unverified. Employee: Watson, D. Department: Facilities Coordination (Level 2). Refer for asset investigation.</em></p></blockquote><p>There was an evidence attachment.</p><p>It was a photograph of a sock.</p><p>---</p><p>Calder Group ran three floors of employee amenities. The laundry suite on B2 was a flagship perk. </p><p><em><strong>We take care of everything.</strong></em></p><p>Drop before nine, collect after six. The system logged, sorted, cleaned, and returned.</p><p>And scanned, for insurance purposes.</p><p>The sock was navy. Merino wool, the system had concluded. A high thread-count consistent with heritage manufacture. Hand-finished at the heel - wool rewoven in a different colored thread. The work was neat.</p><p>The system had categories for <em>new</em>, <em>used</em>, and <em>heirloom</em>. There wasn&#8217;t a category to capture the repair. The stitching - time-intensive, deliberate, neat - had pushed the sock into the third column.</p><blockquote><p><em>Heritage item. Unregistered. Refer for asset investigation.</em></p></blockquote><p>---</p><p>Ursula spent nearly an hour trying to override. </p><p>One option required sign-off from a Compliance Director. The role had been vacant since March. The second required the original asset registry from the owning family. The third required proof of legitimate transfer - receipt, deed of gift, inheritance documentation.</p><p>Frustrating.</p><p>So she went around it. A legacy pathway - *Administrative Abeyance Downgrade* - the system had inherited but never quite absorbed. She&#8217;d used it twice before, fixing different kinds of wrong.</p><p>By 11.40 she&#8217;d filed Watson&#8217;s case as resolved. *Minor Notation*, not *Heritage Asset Breach*.</p><p>It would still sit there on his file. Come up in rental checks, credit reviews. It wasn&#8217;t nothing. But a lot better than what it had been.</p><p>The system had one condition. She couldn&#8217;t remove it.</p><blockquote><p><em>Dear Mr Watson. </em></p><p><em>Further to our review of case MCS-338847, we are pleased to confirm the above has been resolved at administrative level. </em></p><p><em>To finalize this resolution, the item(s) referenced in the original flag (1x sock, navy, wool) must be submitted to the Asset Resolution Centre, Floor B3, within five working days. </em></p><p><em>Items will be assessed, classified, and where no verified owner is established, disposed of appropriately.</em> </p></blockquote><p>On her screen, the sock photograph was still open. Heel. Thread.</p><blockquote><p><em>Classification: Resolved.</em></p></blockquote><p>She closed the tab.</p><div><hr></div><p><em>A story from the <a href="https://www.robin-cannon.com/t/staticdrift">Static Drift</a> universe.</em></p><p><em>Article photo by <a href="https://unsplash.com/@meachman?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Aaron Meacham</a> on <a href="https://unsplash.com/photos/white-front-load-washing-machine-z3QaK44YPYc?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.robin-cannon.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"><strong>Subscribe for essays on design, technology, and culture - plus original fiction.</strong></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[We've always known the destination]]></title><description><![CDATA[A thirty-year detour to somewhere we knew we were meant to go]]></description><link>https://www.robin-cannon.com/p/weve-always-known-the-destination</link><guid isPermaLink="false">https://www.robin-cannon.com/p/weve-always-known-the-destination</guid><dc:creator><![CDATA[Robin Cannon]]></dc:creator><pubDate>Tue, 24 Mar 2026 15:01:21 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/b6658b15-a105-42ae-84ad-cdc930cb56d9_6000x3376.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There has always been one obvious destination for digital product delivery. A single interface where design intent and working reality are the same thing.</p><p>Not translated.</p><p>Not approximated.</p><p>Not handed off from one side and reconstructed on the other.</p><p>The same thing.</p><p>Our industry has been trying to build that for thirty years. We&#8217;ve gone from building bad versions of the right thing to building good versions of the wrong thing.</p><p>The jokes wrote themselves. Dreamweaver sites. FrontPage sites. If you were of a certain rebellious bent, HotDog sites. </p><p>These used to be mocked because they were the telltale sign of someone who didn&#8217;t really know what they were doing. Table-based layouts, inline styles, spaghetti markup so bloated that any developer would want to quietly rebuild the whole thing from scratch instead of fix it.</p><p>They were also empowering tools for a lot of people. They let you make stuff that was real. They weren&#8217;t being mocked because they were trying to unify the visual and the functional in a single interface. That instinct was right.  They were mocked because of how much they corrupted the code side of the equation.</p><p>The canvas was easy to navigate.</p><p>The code output was garbage.</p><p>So industry corrected. Realistically, given the technical limitations. Built an organizational culture around the separation of disciplines.</p><p>Serious designers used serious design tools.</p><p>Serious developers wrote serious code.</p><p>And between them a handoff ritual grew - redlines, specs, prototypes, tickets.</p><p>We created a workaround dressed up as a workflow.</p><p>The separation is artificial. We&#8217;ve always known this to some extent. Design systems were an obvious admission. Design intent encoded as structured, reusable truth rather than redrawn from scratch on every new screen. Tokens, components, semantic definitions; shared language that both sides could read. I&#8217;ve often joked that the irony of the name &#8220;design system&#8221; is that its primary consumers are usually developers.</p><p>AI closes the remaining distance. When structured design context can be interpreted directly into working interfaces, the translation layer becomes unnecessary. The middle dissolves, and the destination comes into view.</p><p>It&#8217;s why I find these code-to-canvas offerings so strange. Code-to-canvas takes a working interface - real interactions, data, behavior - and converts it back into static frames. </p><p>It argues that collaboration is only possible on drawings of the real thing, not the real thing itself.</p><p>Dreamweaver and FrontPage, for all their failures, at least understood where they needed to go. The visual and the functional needed to live together. They just didn&#8217;t have the technology to make their ambition real. The code they generated was the limitation, not the vision. </p><p>You can forgive a tool for being ahead of its time. But the technology exists now to make the canvas genuinely real - connected, live, executable. And it&#8217;s harder to forgive a deliberate turn away than a premature attempt at the right destination.</p><p>Our destination hasn&#8217;t changed. A canvas as a live interface into the system. The real thing made navigable, editable, collaborative. We&#8217;ve known that&#8217;s where we were going for a long time.</p><p>Surely this time.</p><div><hr></div><h4>Further reading</h4><ul><li><p><em><a href="https://www.robin-cannon.com/p/the-digital-workflow-is-obsolete">The digital workflow is obsolete</a></em>, on the collapse of the handoff model.</p></li><li><p><em><a href="https://www.robin-cannon.com/p/code-to-canvas-is-bonkers">Code to canvas is bonkers</a></em>, on Figma&#8217;s specific wrong turn.</p></li><li><p><em><a href="https://www.webmasterworld.com/html_editors/347.htm">FrontPage vs DreamWeaver</a></em>. Webmaster World.com discussion thread, July 2003.</p></li><li><p>Smith, E. <em><a href="https://tedium.co/2017/03/02/microsoft-frontpage-history-web-design-wysiwyg/">Your Code is Junky</a>.</em> Tedium, March 2017.</p></li></ul><p><em>Article photo by <a href="https://unsplash.com/@d_mccullough?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Daniel McCullough</a> on <a href="https://unsplash.com/photos/an-architect-working-on-a-draft-with-a-pencil-and-ruler-HtBlQdxfG9k?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.robin-cannon.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"><strong>Subscribe for essays on design, technology, and culture - plus original fiction.</strong></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[Triage]]></title><description><![CDATA[Your healthcare, your choice. What you deserve.]]></description><link>https://www.robin-cannon.com/p/triage</link><guid isPermaLink="false">https://www.robin-cannon.com/p/triage</guid><dc:creator><![CDATA[Robin Cannon]]></dc:creator><pubDate>Fri, 20 Mar 2026 15:30:50 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/fdc9bda7-0454-44ef-9ae8-d3d36a1338f1_5568x3712.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The poster still hung on the wall. Laminated, yellowing along the edges. </p><blockquote><p><strong>&#12372;&#26469;&#38498;&#12398;&#27969;&#12428; &#8212; Your Visit Process</strong>. </p></blockquote><p>Registration, assessment, consultation, follow-up. A simple numbered list. Seiwa Health Solutions had held the operating license for years, but there was still a Ministry seal because the administrative framework required it.</p><p>The clinic was on the ground floor of a building on the inland edge of Minato Mirai. Redeveloped waterfront thinned into older streets nestled behind it. The waiting room window framed the corporate towers along the harbor, catching the afternoon light. Seiwa&#8217;s offices were in there somewhere. Or a subsidiary, at least.</p><p>Kaori stood at a terminal and typed .</p><blockquote><p><em><strong>&#25345;&#32154;&#30340;&#12394;&#33145;&#37096;&#19981;&#24555;&#24863;&#12289;&#24038;&#20596;&#12289;&#19977;&#36913;&#38291;&#21069;&#12395;&#30330;&#30151;</strong></em></p></blockquote><p>The text field still used fixed width characters. The screen for symptom entry was old. The contactless reader next to it was newer. Sleek, black, it needed two passes of her insurance card before accepting it.</p><p>She&#8217;d learned the vocabulary. Not from a doctor. From her mother, who&#8217;d used clinics in Hodogaya for decades. Other women at work went to similar ones. Her uncle, forever struggling with asthma.</p><p><em>Don&#8217;t write &#30171;&#12356;. Write &#19981;&#24555;&#24863;.</em></p><p>Give it a duration. Be specific about location. </p><p>The difference seemed trivial. It wouldn&#8217;t change your tier. But it changed enough that you could feel it. The difference between a prescription screen, and a consultation where someone would actually assess you.</p><p>Clinics hadn&#8217;t always run like this. Not well - her mother had always complained about waiting times. But she had people to complain to, who shared the same frustration. You waited, everyone else waited, they just grumbled to each other. Her mother still talked about it that way, like there was a solidarity in it. Annoyed, but safe in the knowledge that the room treated everyone the same. Slow assessment. Overworked doctors and nurses. Same flicker in the fluorescent light. </p><p>The confirmation screen loaded. New, smoother, different visual language than the intake form. Progress arc moving from left to right, then settling. No queue position. No time estimate. A reference number appeared on the screen. Kaori photographed it. The terminal sometimes didn&#8217;t hold them.</p><p>There was a man at the front desk. Young. Seiwa polo shirt. Watching his own screen between glances up at the patients. He could reset someone&#8217;s frozen session, or manually enter data when a card reader failed. </p><p>An older man stood at the terminal beside her. All the screens ran along the wall in a row - narrow counters, no dividers. Half the time you read the next screen by accident. He was typing slowly, in his own words. His hip hurt. He wasn&#8217;t sleeping well.</p><p>Honest answers. The kind her mother might have given once, when it mattered less.</p><p>Kaori knew what those words would buy him. Her own words were chosen to buy something different. That purchase came from somewhere.</p><p>For a moment she was tempted to help. He was right there.</p><p><em>Say &#25345;&#32154;&#30340;. Say how many weeks.</em></p><p>But you don&#8217;t do that in the waiting room. Not because it&#8217;s rude. But it means saying out loud what half the room already knows. And helping him might mean he got seen before her.</p><p>A man came through the entrance. Suit in a good fabric. Unhurried. A device on his wrist that Kaori&#8217;s phone probably couldn&#8217;t talk to. Maybe he&#8217;d walked over from one of those office towers. </p><p>He stood at the terminal nearest the door. Typed briefly. Only had to touch his card once for the reader to blink green. A side door opened almost immediately - not the main corridor but a door further down. Flush mounted paneling, no signs. Kaori had noticed it before, but she&#8217;d never seen it open for anyone.</p><p>The man went through without any urgency. Something routine. System allocating a different room, different doctor. Different rhythm of care. Nobody at the clinic was dying. Kaori&#8217;s careful language could move her up in her tier. It would never open that door.</p><p>She looked at the poster.</p><blockquote><p><strong>&#12372;&#26469;&#38498;&#12398;&#27969;&#12428;</strong></p></blockquote><p>Her mother would have recognized it as real. The same numbered steps for the man in the suit, the man with the bad hip, Kaori, and everyone else. One process, applied to everyone. Equal and inefficient.</p><p>She was still waiting for the progress arc to complete. The old man was still standing at his terminal. He didn&#8217;t take a photograph of his reference number.</p><p>Through the window, the towers of Minato Mirai. Spotless, mirrored glass. A harbor rebuilt so thoroughly it could barely remember being renewed.</p><p>Kaori stood in the quiet room. She didn&#8217;t compare notes. There was nobody to compare with.</p><div><hr></div><p><em>A story from the <a href="https://www.robin-cannon.com/t/staticdrift">Static Drift</a> universe.</em></p><p><em>Article photo by <a href="https://unsplash.com/@ksoma?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">K Soma</a> on <a href="https://unsplash.com/photos/a-row-of-buildings-lit-up-at-night-Iedu6u9EW_U?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.robin-cannon.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"><strong>Subscribe for essays on design, technology, and culture - plus original fiction.</strong></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 design token cargo cult]]></title><description><![CDATA[How a useful tool can become dogma]]></description><link>https://www.robin-cannon.com/p/the-design-token-cargo-cult</link><guid isPermaLink="false">https://www.robin-cannon.com/p/the-design-token-cargo-cult</guid><dc:creator><![CDATA[Robin Cannon]]></dc:creator><pubDate>Tue, 17 Mar 2026 15:01:42 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/e64fab7a-7d14-466f-bc1e-f8472749686f_4032x3024.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When I was at IBM, Anna Gonzales was the thought leader on the token architecture for the Carbon Design System. It was tight, disciplined, and opinionated. And it worked. The structure encoded decisions the team had already fought for and made: what the system constrained, what it left open, where a component&#8217;s responsibility ended and a product team&#8217;s began. </p><p>You can read the system&#8217;s philosophy in how the tokens are organized.</p><p>The tokens aren&#8217;t what made the system work. The convictions are what made it work. The design tokens were an artifact of that conviction.</p><p>That distinction is the argument.</p><div><hr></div><p>The W3C Design Tokens Community Group published its first stable spec at the end of 2025. It&#8217;s genuinely good work. Years of collaboration to solve a hard coordination problem. How to share design decisions without everything fracturing every time someone changes a color.</p><p>The spec is deliberately minimal. It defines tokens, their types, and a reference system that lets one token point to another &#8212; so <code>color.text.primary</code> can reference <code>color.palette.black</code>, and changing the palette propagates everywhere. It adds <code>$extends</code> for group inheritance, a Color module with modern color space support, and a Resolver module for theming and context. </p><p>It&#8217;s a sensible, focused infrastructure that solves real problems. It&#8217;s the kind of foundation that would underpin exactly the discipline Anna built at IBM.</p><p>What practitioners have built <em>around</em> that foundation is something else. </p><p>The spec is agnostic about tiers. It defines how to express token relationships, not how many layers you should have. </p><p>The community is far less agnostic. Three-tier has become doctrine: primitive tokens at the base, semantic tokens that make purposeful claims about use, component tokens scoped to specific components. This is &#8220;mature token architecture&#8221; in most design systems discourse.</p><p>The gap between doctrine and practice is instructive. </p><p>Three-tier is what gets taught and recommended. Two tiers is what the major systems actually implement. </p><p>Carbon&#8217;s architecture doesn&#8217;t map neatly onto the primitive/semantic/component model - it has its own layering logic built around UI depth. Polaris has moved away from its component token layer. Material Design 3 publishes reference tokens and system tokens, and stops there.</p><p>Three-tier is the aspiration. Two-tier is what survives contact with a real system.</p><p>That gap should be a signal. The canonical systems couldn&#8217;t fully sustain the doctrine. And yet the doctrine keeps getting taught as the definition of maturity.</p><p>The problem isn&#8217;t the spec.</p><div><hr></div><p>The spec - unavoidably - creates <em>a thing to make</em>. &#8220;We&#8217;re implementing the W3C spec&#8221; can start to feel like a north star, when a real north star is missing.</p><p>At J.P. Morgan there was always a tension between a debate on token naming strategy and architecture coming before a simpler question was answered: <em>what is this design system for?</em></p><p>Naming debates aren&#8217;t a path to that clarity. They can be a replacement for it.</p><p>For Anna at IBM, the tokens were downstream. Philosophy came first. Tokens encoded the philosophy.</p><p>Where I&#8217;ve seen more struggle - at JPM, at some of the design systems I&#8217;ve worked with at Knapsack - is when that order is inverted. Taxonomy comes first, the thinking is supposed to emerge from it. Sometimes it does. Often the taxonomy becomes the only explicit structure of the system, and so it becomes load-bearing.</p><p>Which leads to a design system whose deepest held opinion is how to name its hover state.</p><p>Run naming conventions workshops because mature systems have naming conventions. Produce token JSON because good systems produce token JSON. That&#8217;s a cargo cult pattern. The mechanism becomes the mission.</p><div><hr></div><p>There is a failure mode you can identify: token counts scaling linearly with component complexity.</p><p>The Tetrisly design system acknowledged this problem. Their button component reached over 500 tokens. It enumerated every property of every state of every variant: background, border, text, icon, default, hover, focus, active, disabled, primary, secondary, danger, ghost, large, medium, small, dark mode, high contrast.</p><p>Before long you end up with <code>button-background-color-primary-large-hover-dark</code>, and hundreds of siblings.</p><p>The spec supports this. But at this point the abstraction provides no value over well-organized CSS. The overhead is real: tooling dependency, Figma sync, governance process. But there&#8217;s no additional leverage when your variable names map one-to-one to CSS properties you have to write anyway.</p><p>The promise of tokens is leverage - fewer, powerful constructs that express more than just flat specifics. 500 tokens is a clear failure of that promise - you may as well be writing CSS. Tetrisly acknowledged this, and they&#8217;ve very deliberately thinned their &#8220;component tier&#8221; so their model is much closer to a two-tier than three-tier model.</p><div><hr></div><p>Phillip Lovelace recently argued that tokens are even more important in an AI-driven workflow - token taxonomy can be an API the AI agent consumes. Semantic naming lets AI stop guessing your brand.</p><p>This is a worthwhile floor argument. AI generating UI from a token file produces more consistent output than generating from nothing. The W3C spec makes that even more reliable.</p><p>A floor isn&#8217;t a ceiling.</p><p>AI can traverse a token graph and resolve a name to a hex value. It can&#8217;t tell you why that color is right for a primary hover state, or if a destructive action should use the same token. Should a payment confirmation defer to stricter contrast constraints?</p><p>Those aren&#8217;t AI limitations. </p><p>Those are limitations of the information that tokens are supposed to carry.</p><p>Tokens encode what things look like. Not why. Not when. Not the conditions that change the answer.</p><p>The convictions in the best systems come from the decisions that precede them. An AI with access to those decisions - rules, intent, context - can do more interesting things than resolve color aliases.</p><div><hr></div><p>Tight token architecture delivers real value. Tokens are a powerful artifact of thinking, but not a substitute for it. The W3C spec describes something of genuine worth, when it&#8217;s built in the right order.</p><p>The design systems that work treat tokens as output. Philosophy first, constraints second, governance third. Tokens encode the decisions that have been made. But only <em>if </em>those decisions have been made. </p><p>Systems that struggle have the sequence backwards. And the quality of the spec actually makes the inversion easier. It&#8217;s a rigorous blueprint for the mechanism, and the foundation is left implicit.</p><p>Tokens with system conviction are infrastructure. Tokens that substitute for it are dogma. The difference is everything.</p><div><hr></div><h4>Further reading:</h4><ul><li><p>Frost, B. <em><a href="https://bradfrost.com/blog/post/the-many-faces-of-themeable-design-systems/">The Many Faces of Themeable Design Systems</a></em>. bradfrost.com</p></li><li><p>Gonzales, A. <em><a href="https://medium.com/carbondesign/introducing-figma-variables-and-a-consolidated-all-themes-library-d4893d1b8920">Introducing Figma variables and a consolidated &#8220;All themes&#8221; library!</a> </em>Carbon Design Blog, Aug 2023.</p></li><li><p><em><a href="https://www.designtokens.org/tr/2025.10/">Design Tokens Technical Reports</a></em>. W3C Community Group, Oct 2025.</p></li><li><p>Lovelace, P. <em><a href="https://www.designsystemscollective.com/design-systems-are-having-their-moment-70674f8ab197">Design Systems Are Having Their Moment</a></em>. Design Systems Collective, Feb 2026.</p></li></ul><p><em>Article photo by <a href="https://unsplash.com/@jcanty123?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Jan Canty</a> on <a href="https://unsplash.com/photos/a-wooden-structure-sitting-on-top-of-a-rocky-beach-bz-FrwVCLDc?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.robin-cannon.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"><strong>Subscribe for essays on design, technology, and culture - plus original fiction.</strong></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></channel></rss>