<?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[Khoshnaz Kazemian]]></title><description><![CDATA[Khoshnaz Kazemian]]></description><link>https://khoshnazkazemian.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!LHx8!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2d70b2f-5344-45e8-a382-b6b95b2d0683_1085x1085.png</url><title>Khoshnaz Kazemian</title><link>https://khoshnazkazemian.substack.com</link></image><generator>Substack</generator><lastBuildDate>Tue, 16 Jun 2026 03:53:19 GMT</lastBuildDate><atom:link href="https://khoshnazkazemian.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Khoshnaz Kazemian]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[khoshnazkazemian@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[khoshnazkazemian@substack.com]]></itunes:email><itunes:name><![CDATA[Khoshnaz Kazemian]]></itunes:name></itunes:owner><itunes:author><![CDATA[Khoshnaz Kazemian]]></itunes:author><googleplay:owner><![CDATA[khoshnazkazemian@substack.com]]></googleplay:owner><googleplay:email><![CDATA[khoshnazkazemian@substack.com]]></googleplay:email><googleplay:author><![CDATA[Khoshnaz Kazemian]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Claude Fable 5 🦋: the practical truth after watching the first wave of hype !]]></title><description><![CDATA[I watched the first wave of demos, hype, and hot takes, here&#8217;s what actually seems useful.]]></description><link>https://khoshnazkazemian.substack.com/p/claude-fable-5-the-practical-truth</link><guid isPermaLink="false">https://khoshnazkazemian.substack.com/p/claude-fable-5-the-practical-truth</guid><dc:creator><![CDATA[Khoshnaz Kazemian]]></dc:creator><pubDate>Mon, 15 Jun 2026 07:45:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qZlY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205a23bb-da15-4c6b-9060-1c218095b5e5_1672x941.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qZlY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205a23bb-da15-4c6b-9060-1c218095b5e5_1672x941.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qZlY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205a23bb-da15-4c6b-9060-1c218095b5e5_1672x941.heic 424w, https://substackcdn.com/image/fetch/$s_!qZlY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205a23bb-da15-4c6b-9060-1c218095b5e5_1672x941.heic 848w, https://substackcdn.com/image/fetch/$s_!qZlY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205a23bb-da15-4c6b-9060-1c218095b5e5_1672x941.heic 1272w, https://substackcdn.com/image/fetch/$s_!qZlY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205a23bb-da15-4c6b-9060-1c218095b5e5_1672x941.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qZlY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205a23bb-da15-4c6b-9060-1c218095b5e5_1672x941.heic" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/205a23bb-da15-4c6b-9060-1c218095b5e5_1672x941.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:319711,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://khoshnazkazemian.substack.com/i/201889653?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205a23bb-da15-4c6b-9060-1c218095b5e5_1672x941.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qZlY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205a23bb-da15-4c6b-9060-1c218095b5e5_1672x941.heic 424w, https://substackcdn.com/image/fetch/$s_!qZlY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205a23bb-da15-4c6b-9060-1c218095b5e5_1672x941.heic 848w, https://substackcdn.com/image/fetch/$s_!qZlY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205a23bb-da15-4c6b-9060-1c218095b5e5_1672x941.heic 1272w, https://substackcdn.com/image/fetch/$s_!qZlY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F205a23bb-da15-4c6b-9060-1c218095b5e5_1672x941.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h1>I don&#8217;t think Claude Fable 5 is just &#8220;better Claude&#8221; &#128064;</h1><h2>I think it changes how we should use AI.</h2><p>There&#8217;s a type of AI launch that creates more noise than clarity.</p><p>Claude Fable 5 is definitely one of those.</p><p>Everyone is excited.<br>Demos are everywhere.<br>People are throwing around words like <em>Mythos</em>, <em>agentic</em>, <em>autonomous</em>, <em>bigger than Opus</em>, <em>best model yet</em>.</p><p>And honestly&#8230; after a while, it all starts sounding a little too shiny.</p><p>So I tried to ignore the noise for a second and ask a much simpler question:</p><p><strong>What actually changes in real work if we use Fable 5 well?</strong></p><p>Not in benchmark land.<br>Not in demo land.<br>In actual work.</p><p>After sitting with it, my honest take is this: </p><p>&#129419; <strong>Fable 5 is not most interesting because it gives better answers.</strong><br><strong>It&#8217;s interesting because it seems able to carry more of the work END TO END.</strong></p><p>And I know that sounds subtle.</p><p>But I think that&#8217;s kind of the whole story.</p><div><hr></div><h3 style="text-align: center;">&#128140; Tiny pause</h3><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://khoshnazkazemian.substack.com/p/claude-fable-5-the-practical-truth?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption"> If this saves you from watching five hours of AI YouTube chaos, feel free to share it with another curious human.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://khoshnazkazemian.substack.com/p/claude-fable-5-the-practical-truth?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://khoshnazkazemian.substack.com/p/claude-fable-5-the-practical-truth?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><div><hr></div><h2>&#127909; <strong>More of a watch/listen person?</strong></h2><p>Totally fair. Some days we read. Some days we let someone else talk while we pretend to be productive &#128516;<br><br>Here&#8217;s the YouTube version of this article.</p><p>That I answered these 10 questions:</p><ol><li><p>What is Claude Fable 5?</p></li><li><p>Why this launch feels different</p></li><li><p>What people are actually using Fable 5 for</p></li><li><p>Why people may actually use it in real life</p></li><li><p>Where Fable feels different from older models</p></li><li><p>Is coding where Fable 5 is strongest?</p></li><li><p>What still feels overhyped or limited</p></li><li><p>How to use Fable 5 without wasting it</p></li><li><p>Why everyone cares about the June 22 deadline</p></li><li><p>Who should actually care about Fable 5?</p></li></ol><div id="youtube2-UlY2n2rzb4Y" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;UlY2n2rzb4Y&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/UlY2n2rzb4Y?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><h2>Most people will misunderstand Fable 5 if they use it like a chatbot &#129419;</h2><p>This is the first thing I&#8217;d tell anyone trying it.</p><p>If you open Fable 5 and use it the same way you use a normal chat model, random questions, quick rewrites, tiny one-off prompts, you may walk away thinking:</p><blockquote><p><em>Okay&#8230; sure. Maybe it&#8217;s better. But what&#8217;s the big deal?</em></p></blockquote><p>And honestly, fair.</p><p>Because I don&#8217;t think that&#8217;s where this model earns its reputation.</p><p>The shift shows up when the task is bigger than one answer.</p><p>Something like:</p><ul><li><p>Build this thing.</p></li><li><p>Improve this thing.</p></li><li><p>Fix this properly.</p></li><li><p>Turn this rough material into something usable.</p></li><li><p>Keep going until the work is actually in a better state.</p></li></ul><p>That&#8217;s where Fable 5 starts to make more sense.</p><p>So for me, the first practical takeaway is not &#8220;write better prompts.&#8221;</p><p>It&#8217;s simpler than that:</p><p><strong>Give Fable a real job. Not a clever little request.</strong></p><p>That one shift changes the whole relationship.</p><div><hr></div><h3>The real value is not &#8220;wow, it made something&#8221;</h3><p>This is where I think a lot of AI conversations go a bit wrong.</p><p>People get distracted by the output type.</p><p>It made a game.<br>It made a dashboard.<br>It made an interactive website.<br>It made a workflow.<br>It made a shiny little thing with a purple gradient, because of course it did. &#128517;</p><p>But the better question is:</p><p>&#10055;&#65039; <strong>How much further did it get before I had to take over?</strong></p><p>That&#8217;s the question that matters in real work.</p><p>Because the pain of using AI is usually not getting a first draft.</p><p>The pain is what happens after the first draft.</p><p>You know the pattern.</p><p>&#127798; The output is almost right.<br>&#127798; Then you fix one thing.<br>&#127798; Then something else breaks.<br>&#127798; Then the model forgets the original intention.<br>&#127798; Then you repeat the context.<br>&#127798; Then it confidently solves a slightly different problem.<br>&#127798; Then you sit there wondering if you&#8217;re still the designer, or now just the AI&#8217;s exhausted project manager.</p><p>That&#8217;s where time disappears.</p><p>What seems promising about Fable 5 is that, in the stronger examples, it appears to reduce some of that drag.</p><p>Because it seems a bit better at staying with the task.</p><p>So I wouldn&#8217;t evaluate Fable 5 by asking:</p><p><em>Can it do X?</em></p><p>I would ask:</p><p><strong>Does it let me stay in flow longer before the cleanup work begins?</strong></p><p>That&#8217;s a much better test.</p><p>And honestly, a much more honest one.</p><div><hr></div><h3 style="text-align: center;">&#9749; Quick note</h3><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://khoshnazkazemian.substack.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">I write about AI from a designer&#8217;s point of view, not just &#8220;look what the tool can do,&#8221; but what it changes in our actual workflow.</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 style="text-align: center;">Subscribe if you want the human side of AI tools &#10024;</p><div><hr></div><h2>If you want to know whether Fable 5 is worth it for you, test it in one of these three ways</h2><p>This is probably the most practical thing I can offer.</p><p>If you want to understand whether Fable 5 matters for your work, don&#8217;t give it a cute little prompt and judge the whole model from that.</p><p>Test it in one of these three situations.</p><h3>1. Give it something with moving parts</h3><p>A task where design, logic, structure, and interaction all matter at once.</p><p>For example:</p><blockquote><p>A small app.</p><p>A dashboard from real data.</p><p>A page that also needs interaction.</p><p>A workflow with multiple steps.</p><p>A feature that needs both UI and logic.</p><p>A playable game from start to finish.</p><p>A small 3D simulation where movement, physics, and visual feedback all need to work together.</p></blockquote><p>This kind of task tells you much more than a simple prompt.</p><p>Because weaker models often look good at the beginning.<br>Then the moment the task has dependencies, they start quietly falling apart.</p><p>That is where you can actually feel the difference.</p><h3>2. Give it references, not a blank page</h3><p>This one is big.</p><p>Real work almost never starts from nothing.</p><p>It starts from screenshots.<br>Messy notes.<br>Old flows.<br>Competitor examples.<br>Half-finished drafts.<br>Stakeholder comments.<br>A Figma file with twelve versions of the same screen and emotional damage attached to each one.</p><p>So instead of asking Fable to invent from zero, ask it to transform something.</p><blockquote><p>Recreate this.<br>Improve this.<br>Compare these.<br>Turn this into that.<br>Make this rough thing usable.</p></blockquote><p>I think this is one of the most promising ways to use Fable.</p><p>Not as a magic generator.</p><p>More like a bridge between <strong>what you already have</strong> and <strong>what you need next</strong>.</p><p>And that feels much closer to actual product work.</p><h3>3. Give it a task you&#8217;ve been postponing because it&#8217;s annoying</h3><p>This might be my favorite test.</p><p>Not because it&#8217;s glamorous, but because it&#8217;s real.</p><p>The annoying one.</p><p>A repetitive task.<br>A multi-step task.<br>Something boring enough that you keep pushing it to &#8220;tomorrow,&#8221; which is basically the graveyard of tasks.</p><p>That kind of work reveals a lot.</p><p>Because if a model can reduce friction in the work you avoid doing, that is genuinely valuable.</p><p>More valuable, in my opinion, than making one impressive demo that you never use again.</p><p>This is where Fable starts feeling less like content&#8230;</p><p>and more like leverage.</p><div><hr></div><h3>&#128073; The biggest mindset shift: stop narrating every step</h3><p>If I had to give one practical piece of advice for using Fable 5 better, it would be this:</p><p><strong>Don&#8217;t over-direct it.</strong></p><p>A lot of us are used to managing AI in tiny steps.</p><blockquote><p>Do this.<br>Now do this.<br>Now change this.<br>No, not like that.<br>Try again.<br>Please don&#8217;t invent another button style.<br>Why are there three primary CTAs? &#128557;</p></blockquote><p>That approach makes sense when models are fragile.</p><p>But with a stronger model, it can actually get in the way.</p><p>With Fable, the better move seems to be:</p><p>&#10055;&#65039; Explain the real goal.<br>&#10055;&#65039; Define what &#8220;good&#8221; looks like.<br>&#10055;&#65039; Give the important constraints.<br>&#10055;&#65039; Then let it work toward that.</p><p>In other words:</p><p>&#10055;&#65039; <strong>Be clear about the destination, not obsessive about the route.</strong></p><p>That&#8217;s not just better prompting.</p><p>It&#8217;s a different working relationship.</p><p>Less micromanaging.<br>More directing.</p><p>And I think this shift is a big part of why people are reacting to Fable 5 so strongly.</p><div><hr></div><h3 style="text-align: center;">&#128064; Small question</h3><p style="text-align: center;">Are you already testing Fable 5, or are you still in &#8220;watching everyone else test it first&#8221; mode? Leave a comment, I&#8217;m genuinely curious</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://khoshnazkazemian.substack.com/p/claude-fable-5-the-practical-truth/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://khoshnazkazemian.substack.com/p/claude-fable-5-the-practical-truth/comments"><span>Leave a comment</span></a></p><div><hr></div><h2>Don&#8217;t confuse polished output with good judgment</h2><p>Now, the caution part.</p><p>One thing I would be careful about with Fable 5 is assuming that stronger output means stronger taste.</p><p>Those are not the same thing.</p><p>A model can absolutely produce something cleaner, more functional, and more complete than before&#8230; while still making choices that feel generic, overly polished, or a bit obviously AI-generated.</p><p>So yes, Fable may get you further.<br>But no, I wouldn&#8217;t outsource judgment to it.</p><p>This matters especially for:</p><p>Design.<br>Messaging.<br>Brand tone.<br>Product taste.<br>Prioritization.</p><p>In other words: let it carry more work, but don&#8217;t let it make all the calls.</p><p>That&#8217;s a very important difference.</p><div><hr></div><h2>Where Fable 5 may save the most time</h2><p>If I had to guess where Fable 5 will matter most, I wouldn&#8217;t say &#8220;the coolest demos.&#8221;</p><p>I would say:</p><blockquote><p>Longer coding sessions.<br>Implementation-heavy tasks.<br>Turning references into usable outputs.<br>Repetitive multi-step workflows.<br>Messy tasks that require too much coordination.</p></blockquote><p>Because these are the places where being <strong>10&#8211;20% better at holding context and carrying work</strong> can create a very noticeable change in actual effort.</p><p>Not because it suddenly does everything perfectly.</p><p>But because it keeps you moving.</p><p>And in real work, that matters a lot.</p><p>Sometimes the biggest productivity gain is not &#8220;AI did the whole thing.&#8221;</p><p>Sometimes it is:</p><p>&#8220;I didn&#8217;t get stuck for two hours in the middle.&#8221;</p><p>That&#8217;s less viral.</p><p>But much more useful.</p><div><hr></div><h2>My honest view: Fable 5 is probably more important than it is clear</h2><p>That&#8217;s the cleanest way I can say it.</p><p>I think Fable 5 is more important than a casual first impression suggests.</p><p>But also less obvious than the hype makes it sound.</p><p>Calling it &#8220;the best new model&#8221; feels too shallow to me.</p><p>The more interesting thing is that it seems to reward a more serious style of AI use.</p><blockquote><p>Clearer goals.<br>Bigger tasks.<br>More trust.<br>Less babysitting.<br>More reviewing.<br>Less &#8220;answer this.&#8221;<br>More &#8220;help me move this work forward.&#8221;</p></blockquote><p>And if that&#8217;s true, then Fable 5 doesn&#8217;t just improve outputs.</p><p>It changes the shape of the work.</p><p>That&#8217;s why I think it&#8217;s worth paying attention to.</p><p>Not because it wins a benchmark.<br>Not because it made a cool game.<br>Not because the internet got emotional again, although it absolutely did. &#128516;</p><p>But because it may quietly push more people from:</p><p><strong>asking AI for help</strong></p><p>to</p><p><strong>assigning AI meaningful work</strong></p><p>And that is a much bigger shift.</p><p>I think we&#8217;re only at the beginning of understanding what that means.</p><div><hr></div><h3 style="text-align: center;">&#128156; Before you go</h3><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://khoshnazkazemian.substack.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">If you like practical AI reflections without the tech-bro fog, subscribe here. I&#8217;m exploring how AI is changing design work, creative workflows, and honestly&#8230; our brains a little bit too.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://buymeacoffee.com/khoshnaz" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0V8V!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5023c2-bd0a-4a50-bf8d-732785ecde47_1090x306.heic 424w, https://substackcdn.com/image/fetch/$s_!0V8V!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5023c2-bd0a-4a50-bf8d-732785ecde47_1090x306.heic 848w, https://substackcdn.com/image/fetch/$s_!0V8V!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5023c2-bd0a-4a50-bf8d-732785ecde47_1090x306.heic 1272w, https://substackcdn.com/image/fetch/$s_!0V8V!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5023c2-bd0a-4a50-bf8d-732785ecde47_1090x306.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0V8V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5023c2-bd0a-4a50-bf8d-732785ecde47_1090x306.heic" width="1090" height="306" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8a5023c2-bd0a-4a50-bf8d-732785ecde47_1090x306.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:306,&quot;width&quot;:1090,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:23690,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:&quot;https://buymeacoffee.com/khoshnaz&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://khoshnazkazemian.substack.com/i/201889653?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5023c2-bd0a-4a50-bf8d-732785ecde47_1090x306.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0V8V!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5023c2-bd0a-4a50-bf8d-732785ecde47_1090x306.heic 424w, https://substackcdn.com/image/fetch/$s_!0V8V!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5023c2-bd0a-4a50-bf8d-732785ecde47_1090x306.heic 848w, https://substackcdn.com/image/fetch/$s_!0V8V!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5023c2-bd0a-4a50-bf8d-732785ecde47_1090x306.heic 1272w, https://substackcdn.com/image/fetch/$s_!0V8V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a5023c2-bd0a-4a50-bf8d-732785ecde47_1090x306.heic 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div>]]></content:encoded></item><item><title><![CDATA[Relax, AI Won’t Replace Designers. It’ll Just Give Us More Work 😅]]></title><description><![CDATA[AI removed some boring tasks. Cute. Then it handed designers a new to-do list around trust, context, workflows, and decision-making.]]></description><link>https://khoshnazkazemian.substack.com/p/relax-ai-wont-replace-designers-itll</link><guid isPermaLink="false">https://khoshnazkazemian.substack.com/p/relax-ai-wont-replace-designers-itll</guid><dc:creator><![CDATA[Khoshnaz Kazemian]]></dc:creator><pubDate>Tue, 09 Jun 2026 08:08:37 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!cPbR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57dd18bc-5f54-4fff-8646-3418c80cd3ce_1920x1080.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cPbR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57dd18bc-5f54-4fff-8646-3418c80cd3ce_1920x1080.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cPbR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57dd18bc-5f54-4fff-8646-3418c80cd3ce_1920x1080.heic 424w, https://substackcdn.com/image/fetch/$s_!cPbR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57dd18bc-5f54-4fff-8646-3418c80cd3ce_1920x1080.heic 848w, https://substackcdn.com/image/fetch/$s_!cPbR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57dd18bc-5f54-4fff-8646-3418c80cd3ce_1920x1080.heic 1272w, https://substackcdn.com/image/fetch/$s_!cPbR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57dd18bc-5f54-4fff-8646-3418c80cd3ce_1920x1080.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cPbR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57dd18bc-5f54-4fff-8646-3418c80cd3ce_1920x1080.heic" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/57dd18bc-5f54-4fff-8646-3418c80cd3ce_1920x1080.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:248035,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://khoshnazkazemian.substack.com/i/200789984?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57dd18bc-5f54-4fff-8646-3418c80cd3ce_1920x1080.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!cPbR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57dd18bc-5f54-4fff-8646-3418c80cd3ce_1920x1080.heic 424w, https://substackcdn.com/image/fetch/$s_!cPbR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57dd18bc-5f54-4fff-8646-3418c80cd3ce_1920x1080.heic 848w, https://substackcdn.com/image/fetch/$s_!cPbR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57dd18bc-5f54-4fff-8646-3418c80cd3ce_1920x1080.heic 1272w, https://substackcdn.com/image/fetch/$s_!cPbR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57dd18bc-5f54-4fff-8646-3418c80cd3ce_1920x1080.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I keep seeing this sentence everywhere:</p><blockquote><p><strong>&#8220;AI will replace designers.&#8221;</strong></p></blockquote><p>And honestly&#8230; I get why people say it.</p><p>Because yes, AI can do a lot of things that used to take us hours.</p><p>It can generate ten layout ideas in a few seconds.<br>It can write a first draft of a product requirement document.<br>It can resize things.<br>It can create basic UI components.<br>It can turn a rough idea into a clickable prototype.<br>It can write placeholder copy.<br>It can clean up boring documentation.<br>It can even help generate code.</p><p>So if we define design as &#8220;making screens,&#8221; then yes, AI looks scary. &#128518;</p><p>But the more I use AI, and the more I see teams trying to bring AI into their workflows, the more I feel the opposite.</p><p><strong>AI is not removing designers.</strong></p><p>It is removing some of the repetitive parts of design.</p><p>But then it creates a lot of new work around the parts that are harder to automate:</p><p><strong>judgment, context, trust, quality, systems, team workflow, and knowing what should not be automated at all.</strong></p><p>So maybe the honest version is not:</p><p>&#8220;AI will replace designers.&#8221;</p><p>Maybe it is:</p><p>&#8220;AI will replace some design tasks, and then create five new responsibilities designers didn&#8217;t have before.&#8221;</p><p><strong>Cute. Exhausting. Very 2026. &#128517;</strong></p><div><hr></div><h2>&#127909; <strong>More of a watch/listen person?</strong></h2><p>Totally fair. Some days we read. Some days we let someone else talk while we pretend to be productive &#128516;<br>Here&#8217;s the YouTube version of this article.</p><div id="youtube2-7KNzHn725eg" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;7KNzHn725eg&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/7KNzHn725eg?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p></p><div class="callout-block" data-callout="true"><h2>Prefer reading quietly with your coffee? &#9749;</h2><h4>Lovely. Let&#8217;s get into the written version.</h4></div><p></p><h2>First, let&#8217;s be honest. AI did take some things off our plate &#127869;&#65039;</h2><p>I don&#8217;t want to pretend AI has changed nothing.</p><p>It has.</p><p>Some tasks are definitely easier now.</p><p>And that part is good.</p><p>I don&#8217;t think designers should be romantic about pixel-pushing forever.</p><p>If AI can help me generate first ideas, summarize messy notes, or create a quick prototype so I can test the logic earlier, I&#8217;m happy. &#128522;&#129309;</p><div class="pullquote"><p>That&#8217;s not the problem.</p><p> The problem starts when people confuse</p><p>&#10004;&#65039; &#8220;AI can generate something&#8221; </p><p>with</p><p> &#10006;&#65039;&#8220;AI understood the problem.&#8221;</p><p>Because those are very different things.</p></div><p><mark data-color="#d9ead3" style="background-color: rgb(217, 234, 211); color: rgb(0, 0, 0);">&#10004;&#65039; AI can generate a screen.</mark></p><p><mark data-color="#f4cccc" style="background-color: rgb(244, 204, 204); color: rgb(0, 0, 0);">&#10006;&#65039; But does it know if this screen is solving the right problem?</mark></p><p><mark data-color="#d9ead3" style="background-color: rgb(217, 234, 211); color: rgb(0, 0, 0);">&#10004;&#65039; AI can generate twenty variations.</mark></p><p><mark data-color="#f4cccc" style="background-color: rgb(244, 204, 204); color: rgb(0, 0, 0);">&#10006;&#65039; But does it know which one actually supports the user?</mark></p><p><mark data-color="#d9ead3" style="background-color: rgb(217, 234, 211); color: rgb(0, 0, 0);">&#10004;&#65039; AI can suggest a workflow.</mark></p><p><mark data-color="#f4cccc" style="background-color: rgb(244, 204, 204); color: rgb(0, 0, 0);">&#10006;&#65039; But does it understand the team&#8217;s culture, the product constraints, the business risk, the edge cases, the design system, the legal concerns, the emotional state of the user?</mark></p><p>Usually&#8230; no.</p><p>Or at least, not unless someone gives it the right context and checks the output carefully.</p><p><strong>And that &#8220;someone&#8221; is often still the designer. &#128526;</strong></p><p>So yes, AI washes some of the dishes.</p><p>But someone still has to decide what we are cooking, whether the food is good, who is coming to dinner, and why the kitchen is on fire. &#128293;</p><div><hr></div><h2>The new responsibilities AI created for designers &#129504;</h2><p>So yes, AI took away some repetitive work.</p><p><strong>But then it quietly opened a much bigger box of new responsibilities.</strong></p><p>And I think this is the part we don&#8217;t talk about enough.</p><div><hr></div><h2>1. Context engineering: giving AI the right brain before asking it to work &#129504;</h2><p>This is one of the biggest new responsibilities.</p><p>AI does not magically understand your product.</p><blockquote><p><strong>It does not know </strong></p><p>your users, </p><p>your design principles, </p><p>your business constraints, </p><p>your edge cases, </p><p>your old decisions,</p><p> or your &#8220;please never do this again&#8221; rules.</p></blockquote><p>So designers now need to prepare the context before the work starts.</p><p>For example, if I ask AI to redesign an onboarding flow, I don&#8217;t just want to say:</p><p>&#8220;Make this better.&#8221;</p><p>That&#8217;s too vague.</p><p>I need to give it the product goal, user pain points, drop-off data, design system rules, accessibility needs, tone of voice, technical constraints, and maybe even examples of what &#8220;good&#8221; looks like in this product.</p><p>That is context engineering.</p><p>It is not just writing a prompt.</p><p>It is designing the information AI needs so it can actually help instead of guessing.</p><div class="callout-block" data-callout="true"><p>I&#8217;ll probably write about context engineering in more detail in another article soon. &#128519;</p></div><div><hr></div><h2>2. Skill writing: turning repeated team work into reusable AI instructions &#9997;&#65039;</h2><p>This is another new responsibility that did not really exist before.</p><p>A lot of teams keep repeating the same work.</p><ul><li><p>The same product critique.</p></li><li><p>The same UX review.</p></li><li><p>The same design-system check.</p></li><li><p>The same research summary.</p></li><li><p>The same &#8220;does this flow match our patterns?&#8221; conversation.</p></li></ul><p>Instead of prompting from zero every time, designers can now create reusable AI skills or Markdown instruction files.</p><p>For example:</p><ul><li><p>A UX review skill that checks clarity, friction, accessibility, and edge cases.</p></li><li><p>A design-system skill that checks whether a screen uses the right components.</p></li><li><p>A case-study skill that writes in your portfolio voice.</p></li><li><p>A research synthesis skill that always looks for user needs, contradictions, and product opportunities.</p></li></ul><p>This is not &#8220;nice documentation.&#8221;</p><p><strong>This is reusable design intelligence in Markdown format.</strong></p><div class="callout-block" data-callout="true"><p><strong>A good skill tells AI:</strong></p><p>Here is how we think.<br>Here is what we care about.<br>Here is how to review this kind of work.<br>Here is what good output should look like.</p></div><p>And the important part is: these skills need to evolve.</p><p>When the team learns something new, the skill should get better too.</p><div><hr></div><p>Thanks for reading! Subscribe for free to receive new posts and support my work.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://khoshnazkazemian.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://khoshnazkazemian.substack.com/subscribe?"><span>Subscribe now</span></a></p><div><hr></div><h2>3. AI-ready design systems: teaching AI how your product should behave &#127899;&#65039;</h2><p>Design systems used to be mostly for designers and engineers.</p><p>Now they also need to be readable by AI.</p><p>Because if AI is generating screens, flows, or components, it needs to know the rules.</p><ul><li><p>Should it use this component here?</p></li><li><p>Which variant should it choose?</p></li><li><p>What content belongs inside?</p></li><li><p>What spacing rules apply?</p></li><li><p>When should it not use this pattern?</p></li></ul><p>If we don&#8217;t answer these questions, AI guesses.</p><p>And AI guessing inside a design system is where things get messy very fast. &#128517;</p><p>&#128680; It might invent components.<br>&#128680; Mix patterns.<br>&#128680;Use the wrong button.<br>&#128680; Ignore accessibility.<br>&#128680; Create something that looks polished but does not belong to the product.</p><p>So designers now need to make design systems more than component libraries.</p><p>They need to become AI-readable governance layers.</p><p>Not just:</p><p>&#8220;Here is our button.&#8221;</p><p>But:</p><p>&#8220;Here is when this button should be used, when it should not be used, what variant belongs to which context, and what mistakes AI should avoid.&#8221;</p><p>That is a new layer of design-system work.</p><div class="pullquote"><p>If you&#8217;re curious how this looks in practice, I wrote a full guide on making design systems ready for AI agents, not just in theory, but with practical steps you can start using today.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://open.substack.com/pub/khoshnazkazemian/p/beyond-vibe-coding-how-to-build-a?r=s004o&amp;utm_campaign=post-expanded-share&amp;utm_medium=post%20viewer&quot;,&quot;text&quot;:&quot;Next read&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://open.substack.com/pub/khoshnazkazemian/p/beyond-vibe-coding-how-to-build-a?r=s004o&amp;utm_campaign=post-expanded-share&amp;utm_medium=post%20viewer"><span>Next read</span></a></p></div><h2>4. AI quality filtering: stopping &#8220;variant theater&#8221; before it wastes everyone&#8217;s time &#128269;</h2><p>AI can generate a lot.</p><p>Sometimes too much.</p><p>At first, it feels productive.</p><p>But then you realize many of those options are just surface-level changes.</p><p>This is what I think of as &#8220;variant theater.&#8221;</p><p>The team feels like they explored a lot, but actually they only looked at different versions of the same weak idea.</p><p>The card moved.<br>The color changed.<br>The font got bigger.<br>But the real user problem is still untouched.</p><p><strong>So designers now need to become stronger quality filters. </strong>&#128270;</p><p>Someone has to say:</p><p>&#8220;This looks nice, but it misses the problem.&#8221;<br>&#8220;This version is not worth exploring.&#8221;<br>&#8220;This one breaks our design system.&#8221;<br>&#8220;This one is visually different, but strategically the same.&#8221;<br>&#8220;This one is actually interesting because it changes the user decision.&#8221;</p><p>When AI makes output cheap, judgment becomes expensive.</p><p>And that judgment is still very much a designer&#8217;s job.</p><div><hr></div><h2>5. Trust and control design: helping people understand, check, and override AI &#129309;</h2><p>AI recommendations need trust around them.</p><p>Not blind trust.</p><p>Designed trust.</p><p>Imagine an AI says:</p><p>&#8220;This workflow will save your team three hours.&#8221;</p><p>Okay&#8230; but why?</p><p>Based on what?<br>How sure is it?<br>What did it consider?<br>What are the trade-offs?<br>Can I check it?<br>Can I change it?<br>Can I say no?</p><p>This is a new design responsibility.</p><p>Designers need to create the TRUST layer around AI decisions.</p><p>That means showing confidence levels, explanations, trade-offs, review steps, undo options, and clear &#8220;I&#8217;ll do it myself&#8221; paths.</p><p>Because users should not feel trapped inside AI decisions.</p><p>They should feel supported by AI, but still in control.</p><p>Trust does not happen just because the AI is smart.</p><p><strong>Trust has to be designed. </strong>&#128396;&#128397;&#128395;</p><div><hr></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://khoshnazkazemian.substack.com/p/relax-ai-wont-replace-designers-itll?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">If this made you think, &#8220;wait&#8230; AI gave me more work too&#8221;, send it to a designer friend who needs to hear it &#128517;&#10024;</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://khoshnazkazemian.substack.com/p/relax-ai-wont-replace-designers-itll?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://khoshnazkazemian.substack.com/p/relax-ai-wont-replace-designers-itll?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><div><hr></div><h2>6. Workflow and tool orchestration: designing how the team works with AI &#128736;&#65039;</h2><p>AI does not only change the product.</p><p>It changes the team workflow too.</p><p>And this creates a new responsibility for designers.</p><p>Designers now need to look at the team and ask:</p><ul><li><p>Where do we repeat work?</p></li><li><p>Where does context get lost?</p></li><li><p>Where do product, design, and engineering misunderstand each other?</p></li><li><p>Where are decisions hidden in Slack, Figma, Jira, Notion, or random meetings</p></li><li><p>Where could AI help, and where would it just create more noise?</p></li></ul><p>For example, maybe the team does not need another AI design tool.</p><p>&#10004;&#65039; Maybe they need a shared knowledge base.<br>&#10004;&#65039; Or a reusable UX review skill.<br>&#10004;&#65039; Or a better way to connect design decisions to GitHub.<br>&#10004;&#65039; Or an AI assistant that checks whether new flows match the design system.</p><p>This is workflow orchestration.</p><p>It is not about using every shiny tool.</p><p>It is about understanding the team&#8217;s gaps and designing a workflow where AI actually fits.</p><div><hr></div><h2>7. AI tool and model evaluation: testing tools with real work, not shiny demos &#129514;</h2><p>This part is honestly exhausting. &#128555;</p><p>Every week there is a new AI tool.</p><p>A new model.<br>A new plugin.<br>A new &#8220;this changes everything&#8221; post.</p><p>But teams cannot change their workflow every two weeks.</p><p>So designers need to test tools with real scenarios.</p><blockquote><p>Can this tool solve our actual problem?<br>Can it work with our current stack?<br>Does it integrate with Figma, GitHub, Jira, Storybook, or Notion?<br>Can the team adopt it?<br>Does it respect privacy and security?<br>Will it survive for the next two years?<br>Does it improve quality or just create faster noise?</p></blockquote><p>Choosing AI tools is becoming part of design judgment.</p><p>Because tools shape how teams think, collaborate, communicate, and ship.</p><div><hr></div><h2>8. Designer-builder mindset: moving closer to code and real product behavior &#128105;&#127995;&#8205;&#128187;</h2><p>AI is also blurring the gap between design and implementation.</p><p>This does not mean every designer needs to become a full engineer.</p><p>But it does mean designers can move closer to building.</p><p>They can create coded prototypes.<br>Test real interaction logic.<br>Explore edge cases earlier.<br>Work closer to GitHub.<br>Understand how a design behaves beyond the static screen.</p><p>This changes the old handoff model.</p><p>Before, it was often:</p><p>Designer designs. &#128556;<br>Engineer builds. &#128556;&#128556;<br>Designer reviews. &#128556;&#128556;&#128556;<br>Engineer fixes. &#128556;&#128556;&#128556;&#128556;<br>Everyone gets tired. &#128556;&#128556;&#128556;&#128556;&#128517;</p><p>Now, a designer can come to the conversation with something more concrete:</p><blockquote><p>&#8220;I tested this interaction.&#8221;<br>&#8220;Here is where the logic breaks.&#8221;<br>&#8220;Here is the edge case I noticed.&#8221;<br>&#8220;Here is a working version of the idea.&#8221;<br>&#8220;Now I need your engineering brain to make it production-ready.&#8221;</p></blockquote><p>That creates a better partnership with engineering. &#128589;&#127995;&#8205;&#9792;&#65039;&#129309;&#128590;&#127995;&#8205;&#9794;&#65039;</p><p>Not because designers replace engineers.</p><p>But because designers become stronger builders.</p><div><hr></div><h2>9. Thinking infrastructure: documenting decisions so AI doesn&#8217;t undo them later &#128203;</h2><p>Before AI, many design decisions lived in messy places.</p><p>&#127798; Figma comments.<br>&#127798; Slack threads.<br>&#127798; Meeting notes.<br>&#127798; Someone&#8217;s memory.<br>&#127798; A random old ticket.</p><p>It was not perfect, but teams could survive.</p><p>With AI, this becomes riskier.</p><p>Because if the reasoning behind a decision is not written down, AI may undo it later.</p><blockquote><p>For example:</p><p>Why did we choose this navigation pattern?<br>Why did we reject the simpler flow?<br>Why does this warning appear before the action?<br>Why do we use this component only in specific cases?</p></blockquote><p>If AI does not know the reason, it may &#8220;improve&#8221; the design by removing the exact thing that made it safe, clear, or consistent.</p><p>&#128073; <strong>So designers now need to document decisions in a more structured way.</strong></p><p>Not heavy documentation for the sake of documentation.</p><p>More like a living thinking layer.</p><p>A place where both humans and AI can understand why the product is the way it is.</p><div><hr></div><h2>10. Human judgment protection: knowing when not to outsource the thinking &#128737;&#65039;</h2><p>This might be the most important responsibility.</p><p>AI can help us think.</p><p>But it should not replace our thinking.</p><p>It is very tempting to open the tool too early.</p><p>&#127798; Before reading the research.<br>&#127798; Before noticing the contradictions.<br>&#127798; Before forming a hypothesis.<br>&#127798; Before understanding the user problem.<br>&#127798; Before developing your own point of view.</p><p>Then AI gives a polished answer, and it feels convincing.</p><p>But polished does not mean true.</p><p>So designers need to protect the human parts of the work.</p><p>&#129293; Research.<br>&#129293; Empathy.<br>&#129293; Taste.<br>&#129293; Contradiction.<br>&#129293; Ethics.<br>&#129293; Judgment.<br>&#129293; Point of view.</p><div class="pullquote"><p>The rule I keep coming back to is simple:</p><p>Form your own point of view first.<br>Then use AI to stress-test it.</p></div><p>Use AI to sharpen your thinking, not replace it.</p><p>That is probably one of the biggest survival skills for designers in the AI age.</p><div><hr></div><h2>So what should designers invest in now? &#127793;</h2><p>I don&#8217;t think the answer is &#8220;learn every AI tool.&#8221;</p><p>That is impossible.</p><p>And honestly, very stressful.</p><p>I think the better answer is to invest in the abilities that make you valuable across tools.</p><blockquote><p>Things like:</p><p>Context building.<br>Writing clear instructions.<br>Understanding systems.<br>Designing trust.<br>Evaluating outputs.<br>Asking better questions.<br>Knowing when AI should stop.<br>Working closer to code.<br>Documenting decisions.<br>Building reusable knowledge.<br>Understanding team workflows.<br>Testing tools with real scenarios.<br>Protecting user needs when everyone gets excited by speed.</p></blockquote><p>Because the tools will change.</p><p>The models will change.</p><p>The hype will definitely change.</p><p>But these responsibilities will stay.</p><p>The future designer is not just the person who can make screens faster.</p><p>The future designer is the person who can help a team think better, work better, decide better, and use AI without losing quality.</p><div><hr></div><h2>So no, I don&#8217;t think AI is killing designers</h2><p>I think AI is killing the lazy definition of design.</p><p>The version where design is only screens.<br>Only layout.<br>Only handoff.<br>Only making things pretty.<br>Only producing more options.</p><p>That version is getting weaker.</p><p>But the deeper version of design is becoming more important.</p><blockquote><p>AI can generate more.</p><p>&#10004;&#65039; But designers still need to decide what is worth generating.</p><p>AI can make things faster.</p><p>&#10004;&#65039; But designers still need to ask if faster is actually better.</p><p>AI can create options.</p><p>&#10004;&#65039; But designers still need to know which option makes sense.</p><p>AI can support the work.</p><p>&#10004;&#65039; But designers still need to protect the meaning of the work.</p></blockquote><p></p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.linkedin.com/in/khoshnaz-kazemian-32785a152/&quot;,&quot;text&quot;:&quot;Come &amp; join me on LinkedIn. &#9749;&#65039;&#10024;&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://www.linkedin.com/in/khoshnaz-kazemian-32785a152/"><span>Come &amp; join me on LinkedIn. &#9749;&#65039;&#10024;</span></a></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://khoshnazkazemian.substack.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">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Beyond Vibe Coding: How to Build a Design System for the Agentic Age?]]></title><description><![CDATA[Your design system was built for humans. Now AI agents are using it too, and they need a very different kind of context.]]></description><link>https://khoshnazkazemian.substack.com/p/beyond-vibe-coding-how-to-build-a</link><guid isPermaLink="false">https://khoshnazkazemian.substack.com/p/beyond-vibe-coding-how-to-build-a</guid><dc:creator><![CDATA[Khoshnaz Kazemian]]></dc:creator><pubDate>Tue, 02 Jun 2026 13:05:05 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!MKSm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb644150-7e82-4922-84fa-8b4ffe63ee60_1672x941.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MKSm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb644150-7e82-4922-84fa-8b4ffe63ee60_1672x941.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MKSm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb644150-7e82-4922-84fa-8b4ffe63ee60_1672x941.heic 424w, https://substackcdn.com/image/fetch/$s_!MKSm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb644150-7e82-4922-84fa-8b4ffe63ee60_1672x941.heic 848w, https://substackcdn.com/image/fetch/$s_!MKSm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb644150-7e82-4922-84fa-8b4ffe63ee60_1672x941.heic 1272w, https://substackcdn.com/image/fetch/$s_!MKSm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb644150-7e82-4922-84fa-8b4ffe63ee60_1672x941.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MKSm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb644150-7e82-4922-84fa-8b4ffe63ee60_1672x941.heic" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/db644150-7e82-4922-84fa-8b4ffe63ee60_1672x941.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:130801,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://khoshnazkazemian.substack.com/i/200121720?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb644150-7e82-4922-84fa-8b4ffe63ee60_1672x941.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MKSm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb644150-7e82-4922-84fa-8b4ffe63ee60_1672x941.heic 424w, https://substackcdn.com/image/fetch/$s_!MKSm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb644150-7e82-4922-84fa-8b4ffe63ee60_1672x941.heic 848w, https://substackcdn.com/image/fetch/$s_!MKSm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb644150-7e82-4922-84fa-8b4ffe63ee60_1672x941.heic 1272w, https://substackcdn.com/image/fetch/$s_!MKSm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdb644150-7e82-4922-84fa-8b4ffe63ee60_1672x941.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>I&#8217;ve been spending a lot of time lately in what I call the <strong>&#8220;Vibe Coding&#8221; trap</strong>. </p><p>You know the feeling? &#9785;&#65039;</p><p>You start a fresh AI session to prototype a new feature, and the first few components look surprisingly good.</p><p>The layout works.<br>The button is there.<br>The card looks clean.<br>For a moment, you think: okay, this is magic.</p><p>But by the second hour, or the next day, things start to drift.</p><p>&#128530; The AI chooses a slightly different blue. <br>&#128547; It guesses <code>12px</code> padding where your system uses <code>16px</code>. <br>&#128534; It adds a border radius that looks modern, but not quite yours. <br>&#128548; It uses a modal where the real product would usually use an inline message.</p><p>Nothing looks obviously broken.</p><p>But by session five, your prototype starts to feel like it was built by three different teams who haven&#8217;t spoken in years. &#128513;</p><div><hr></div><h2><strong>The Problem: Why your current system is &#8220;invisible&#8221; to AI</strong></h2><p>AI did not break design systems.</p><p>It exposed what was already fragile.</p><p>Most design systems were built for HUMANS. And humans are very good at reading between the lines.</p><ul><li><p>We know that a primary button does not mean &#8220;use primary everywhere.&#8221;</p></li><li><p>We understand that a modal is not always the answer.</p></li><li><p>We remember the conversation where the team decided to stop using a certain pattern.</p></li><li><p>We know which components are technically available but strategically discouraged.</p></li></ul><p>AI agents do not have that context. For an LLM, they are a black box. &#11035;&#65039;&#9899;&#65039;</p><p></p><h4>And this is where the trouble begins. &#9888;&#65039;</h4><ul><li><p><strong>LLMs don&#8217;t have memory:</strong> Every new session starts from zero. The AI doesn&#8217;t remember that yesterday it picked <code>#2563EB</code> for links; it just picks a &#8220;plausible&#8221; blue today.</p></li><li><p><strong>They can&#8217;t read &#8220;Design Intent&#8221;:</strong> An AI can see a <code>Button</code> component in your code, but it doesn&#8217;t know <em>when</em> to use a Modal vs. an Inline Message, or <em>why</em> you never put two primary buttons next to each other.</p></li><li><p><strong>Fabrication is the default:</strong> If the AI doesn&#8217;t find a token named <code>--space-200</code>, it will just write <code>padding: 12px</code> because it looks &#8220;right&#8221;.</p></li></ul><p>That is the real risk of AI-generated UI.</p><p>Not bad design.</p><p>&#128123; <strong>Uncontrolled design. </strong>&#128123;</p><p>AI is guessing where our systems are still implicit.</p><p>So if we want to move toward an agentic workflow, where AI agents actually help us build complex, consistent UIs, we have to stop treating the model like a human designer reading documentation.</p><p>We need to treat it like what it is:</p><p>&#128073; <strong>a machine that needs structured scaffolding, clear rules, reusable context, and guardrails.</strong></p><div><hr></div><h2>The problem is not vibe coding. The problem is vibe coding without infrastructure.</h2><p>I actually like vibe coding. &#128519;</p><p>&#128156; I like the speed.<br>&#128156;&#129655; I like the experimentation.<br>&#128156;&#129655;&#10084;&#65039; I like being able to move from idea to working prototype without waiting for the perfect handoff moment.</p><p><strong>&#129768; But the more the agent has to invent, the more hidden judgment turns into hallucination. &#129768;</strong></p><p>The future of AI-native design work is not &#8220;better prompts.&#8221;</p><p>It is better context.</p><p>The question is not:</p><blockquote><p>How do we ask AI to design better?</p></blockquote><p>The better question is:</p><blockquote><p>How do we make our design system explicit enough that AI does not have to guess?</p></blockquote><p>That is the shift.</p><p><strong>From prompt engineering to context engineering. </strong></p><div class="callout-block" data-callout="true"><p><em>I&#8217;ll probably write about context engineering in more detail in another article soon. &#128519;</em></p></div><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.linkedin.com/in/khoshnaz-kazemian-32785a152/&quot;,&quot;text&quot;:&quot;Come &amp; join me on LinkedIn. &#9749;&#65039;&#10024;&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://www.linkedin.com/in/khoshnaz-kazemian-32785a152/"><span>Come &amp; join me on LinkedIn. &#9749;&#65039;&#10024;</span></a></p><div><hr></div><h2>So What I mean by an agentic design system?</h2><p>My practical definition:</p><blockquote><p>An agentic design system is a design system that AI agents can read, use, generate from, and be checked against.</p></blockquote><p>It is not just documentation.</p><p>It is a structured environment made of:</p><ul><li><p>machine-readable specs,</p></li><li><p>semantic tokens,</p></li><li><p>component metadata,</p></li><li><p>usage rules,</p></li><li><p>anti-patterns,</p></li><li><p>templates,</p></li><li><p>recipes,</p></li><li><p>guardrails,</p></li><li><p>audits,</p></li><li><p>and feedback loops.</p></li></ul><p>A normal design system says:</p><blockquote><p>Here is our Button component.</p></blockquote><p>An agentic design system says:</p><blockquote><p>Use Button for actions that submit, save, confirm, or move a workflow forward. Use only one primary button per decision area. Do not use Button for navigation links. Use Danger only for destructive actions. Icon-only buttons require accessible labels. If you need a new variant, stop and ask.</p></blockquote><p>That is the level of clarity AI needs.</p><p>Not because AI is stupid.</p><p>Because ambiguity at machine speed becomes inconsistency at product scale.</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://khoshnazkazemian.substack.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">If you like thoughtful notes on AI, product design, and the messy little experiments in between, come sit with me here. &#9749;&#65039;&#10024;</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><h2>The 7 practical layers that make your design system machine-readable </h2><p>The layers below are the practical pieces that make it happen.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ERe4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f90b196-1854-4a0f-95d5-64ec256bb0cc_1672x941.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ERe4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f90b196-1854-4a0f-95d5-64ec256bb0cc_1672x941.heic 424w, https://substackcdn.com/image/fetch/$s_!ERe4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f90b196-1854-4a0f-95d5-64ec256bb0cc_1672x941.heic 848w, https://substackcdn.com/image/fetch/$s_!ERe4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f90b196-1854-4a0f-95d5-64ec256bb0cc_1672x941.heic 1272w, https://substackcdn.com/image/fetch/$s_!ERe4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f90b196-1854-4a0f-95d5-64ec256bb0cc_1672x941.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ERe4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f90b196-1854-4a0f-95d5-64ec256bb0cc_1672x941.heic" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3f90b196-1854-4a0f-95d5-64ec256bb0cc_1672x941.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:248434,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://khoshnazkazemian.substack.com/i/200121720?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f90b196-1854-4a0f-95d5-64ec256bb0cc_1672x941.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ERe4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f90b196-1854-4a0f-95d5-64ec256bb0cc_1672x941.heic 424w, https://substackcdn.com/image/fetch/$s_!ERe4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f90b196-1854-4a0f-95d5-64ec256bb0cc_1672x941.heic 848w, https://substackcdn.com/image/fetch/$s_!ERe4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f90b196-1854-4a0f-95d5-64ec256bb0cc_1672x941.heic 1272w, https://substackcdn.com/image/fetch/$s_!ERe4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3f90b196-1854-4a0f-95d5-64ec256bb0cc_1672x941.heic 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Layer 1: Create a spec layer agents can actually read</h3><p>The first thing I would create is a <code>specs/</code> layer.</p><p>A structured set of Markdown files that tells the agent how the system works before it starts generating UI.</p><div><hr></div><p><strong>This is already starting to happen in public design systems. </strong></p><ul><li><p>&#128279; <a href="https://atlassian.design/llms.txt?mc_cid=32b8e4d820&amp;mc_eid=b91deee71e">Atlassian publishes an </a><code>llms.txt</code><a href="https://atlassian.design/llms.txt?mc_cid=32b8e4d820&amp;mc_eid=b91deee71e"> for its design system. </a></p></li><li><p>&#128279; <a href="https://design.cms.gov/llms.txt?mc_cid=32b8e4d820&amp;mc_eid=b91deee71e">CMS does too. </a></p></li><li><p>&#128279; <a href="https://carbondesignsystem.com/llms.txt?mc_cid=32b8e4d820&amp;mc_eid=b91deee71e">Carbon does too. </a></p></li><li><p>&#128279; <a href="https://nordhealth.design/ai/?mc_cid=32b8e4d820&amp;mc_eid=b91deee71e">Nord Design System does too.</a></p></li></ul><p>What I find interesting is that they are not only pointing to components. They expose foundations, tokens, packages, patterns, accessibility guidance, and documentation in a way an LLM can navigate.</p><div><hr></div><p>That is the shift.</p><p>The design system becomes something the agent can look up.</p><p>I like the hierarchy<a href="https://hvpandya.com/llm-design-systems?mc_cid=32b8e4d820&amp;mc_eid=b91deee71e#we-tried-this-with-atlassians-design-system"> Hardik Pandya</a> uses in <em>Expose your design system to LLMs</em>:</p><pre><code><code>specs/
  foundations/
  tokens/
  atoms/
  molecules/
  organisms/
  patterns/</code></code></pre><p>Each part answers a different kind of question.</p><ul><li><p><strong>Foundations</strong> define the primitives: color, spacing, typography, radius, motion, accessibility.</p></li><li><p><strong>Tokens</strong> map every CSS variable and when to use it.</p></li><li><p><strong>Atoms</strong> cover single-purpose components like Button, Input, Link, Badge.</p></li><li><p><strong>Molecules</strong> <strong>and organisms</strong> cover composed components and product-specific assemblies.</p></li><li><p><strong>Patterns</strong> cover layout rules, content flow, spacing between sections, and composition decisions.</p></li></ul><div><hr></div><h4>Every spec file should follow the same structure. &#9997;&#65039;</h4><p>Something like:</p><pre><code><code># Button

## Metadata
Name: Button
Category: Atom
Status: Stable

## Overview
Use for actions that submit, save, confirm, or progress a workflow.

Do not use for navigation. Use Link instead.

## Anatomy
- Container
- Label
- Optional icon
- Loading indicator

## Tokens
- --color-action-primary-bg
- --color-action-primary-text
- --space-200
- --radius-medium

## Props / API
- appearance: primary | secondary | ghost | danger
- size: sm | md | lg
- state: default | hover | focus | disabled | loading

## States
Default, hover, focus, disabled, loading.

## Code example

&lt;Button appearance="primary" size="md"&gt;
  Save changes
&lt;/Button&gt;

## Cross-references
Uses:
- tokens/color-tokens.md
- tokens/spacing-tokens.md

Related:
- atoms/link.md
- molecules/form.md
- molecules/modal-dialog.md</code></code></pre><p>This is where the hidden design logic becomes visible.</p><blockquote><p><em>When should the agent use a button?<br>When should it use a link instead?<br>Which tokens belong to it?<br>Which components does it relate to?<br>Which state should it support?</em></p></blockquote><p>Source code shows what was built.</p><p>Specs explain how to build the next thing correctly.</p><p>That is the gap we need to close. &#128581;&#8205;&#9792;&#65039;</p><div><hr></div><h2>Layer 2: Create named tokens for every visual value</h2><p>The next layer is the token system.</p><p>This is where I would stop AI from inventing visual decisions that only look correct.</p><p>A blue that is close enough.<br>A spacing value that feels normal.<br>A border radius that looks modern.</p><p>None of that is enough.</p><p>The product does not need a reasonable blue.</p><p><strong>It needs your blue. &#129781;</strong></p><p>So the agent should NOT write raw values.</p><p>I would use a closed token layer with three levels:</p><div class="callout-block" data-callout="true"><p>source &#8594; meaning &#8594; usage</p></div><p>1&#65039;&#8419; First, upstream tokens define the raw source of truth from the design system:</p><pre><code><code>--ds-text: #292A2E;
--ds-link: #1868DB;
--ds-space-100: 8px;
--ds-space-200: 12px;
--ds-radius-200: 8px;</code></code></pre><p>2&#65039;&#8419; Then the product creates aliases. This is the semantic layer. It translates raw design system values into product meaning:</p><pre><code><code>--color-text: var(--ds-text, #292A2E);
--color-link: var(--ds-link, #1868DB);
--space-100: var(--ds-space-100, 8px);
--space-200: var(--ds-space-200, 12px);
--radius-medium: var(--ds-radius-200, 8px);</code></code></pre><p>3&#65039;&#8419; Components only reference the alias:</p><pre><code><code>.button {
  color: var(--color-text);
  padding: var(--space-200);
  border-radius: var(--radius-medium);
}</code></code></pre><p>That alias layer is what protects the system.</p><blockquote><p>The upstream token says: <em>&#8220;This is the value.&#8221;</em></p><p>The alias says: <em>&#8220;This is what the value means.&#8221;</em></p><p>The component says: <em>&#8220;This is where I use it.&#8221;</em></p></blockquote><p>If the design system changes later, you update the alias once. Components do not need to be rewritten.</p><p>And the agent does not get to choose a new blue because it felt plausible.</p><p>It has to use the named value.</p><p>That is why semantic tokens matter.</p><div class="callout-block" data-callout="true"><p><code>--color-link</code> is better than <code>--blue-2</code>.</p><p><code>--color-surface-muted</code> is better than <code>--gray-100</code>.</p><p><code>--color-danger-bg</code> is better than <code>--red-3</code>.</p></div><p>The agent should not be deciding:</p><p>&#8220;What color looks right here?&#8221;</p><p>It should be deciding:</p><p>&#8220;Is this a link, a warning, a disabled state, a muted surface, or an emphasized action?&#8221;</p><p>Then the token system handles the visual decision.</p><div><hr></div><h2>Layer 3: Add metadata to components, not just props</h2><p>Specs give the agent the system map.</p><p>Tokens give it the allowed visual values.</p><p>The next step is to put component intent close to the actual component.</p><p>For important components, I would add a small metadata file next to the implementation:</p><pre><code><code>button/
  Button.tsx
  Button.meta.ts
  Button.stories.tsx
  Button.test.tsx</code></code></pre><p>The metadata should be boring and explicit.</p><p>That is the point.</p><pre><code><code>export const buttonMeta = {
  name: "Button",
  category: "atom",
  status: "stable",

  purpose: "Trigger actions that submit, save, confirm, or progress a workflow.",

  useFor: [
    "submit form",
    "save changes",
    "confirm step",
    "apply settings"
  ],

  avoidFor: [
    "navigation between routes",
    "low-emphasis text links",
    "destructive actions without confirmation"
  ],

  variants: {
    appearance: ["primary", "secondary", "ghost", "danger"],
    size: ["sm", "md", "lg"],
    state: ["default", "hover", "focus", "disabled", "loading"]
  },

  rules: [
    "Use only one primary button per decision area",
    "Use Link for navigation",
    "Use danger only for destructive actions"
  ],

  accessibility: [
    "Must have a visible label",
    "Must include focus state",
    "Icon-only buttons need accessible labels",
    "Loading state should prevent duplicate submission"
  ],

};</code></code></pre><p>Props tell the agent what is possible.</p><p>This tells it what is appropriate.</p><p>That matters because most AI mistakes are not syntax mistakes.</p><p><strong>They are judgment mistakes.</strong></p><blockquote><p>A modal exists, so the agent uses a modal.</p><p>A danger button exists, so the agent uses it too freely.</p><p>A table exists, so the agent turns every dataset into a table.</p><p><strong>The component metadata should make those decisions less open-ended.</strong></p></blockquote><p>This is the part humans often infer.</p><p>Agents need it written down.</p><div><hr></div><h2>Layer 4: Document patterns, not only components</h2><p>A lot of product quality does not live inside components.</p><p>It lives between them.</p><blockquote><p>Spacing between sections.<br>Hierarchy on dense pages.<br>How filters relate to tables.<br>How errors recover.<br>How empty states guide action.<br>How assistant panels sit beside core workflows.<br>How complex dashboards reveal information gradually.</p></blockquote><p><strong>This is especially important in B2B and enterprise products. &#128064;</strong></p><p>AI can generate a table.</p><p>But can it understand when the table should be dense, when actions should be visible, when filtering should be persistent, or when the user needs decision support instead of more data?</p><p><strong>Not unless the pattern is documented.</strong></p><p>A pattern spec could look like this:</p><pre><code><code># Filterable table pattern

## Use when
The user needs to compare, scan, filter, and act on multiple records.

## Structure
- Page header
- Optional summary metrics
- Filter bar
- Table
- Pagination
- Empty state
- Error state

## Rules
- Keep filters visible after results update.
- Do not hide primary row actions only on hover.
- Use bulk actions only when multi-select is enabled.
- Show active filters clearly.
- Empty states should explain how to recover.

## Do not use when
- The user is completing a linear task.
- The content has fewer than three comparable items.</code></code></pre><p>This is where design systems become more than UI kits.</p><p>They become product thinking infrastructure.</p><div><hr></div><h2>Layer 5: Use templates where AI should not improvise</h2><p>Some parts of the interface should not be regenerated every time.</p><blockquote><p>Top navigation.<br>Side navigation.<br>Brand assets.<br>App shell.<br>Theme setup.<br>Permission-sensitive areas.<br>Product-level layout.</p></blockquote><p>These are not places where we need AI creativity.</p><p>We need consistency.</p><p>&#128073; The practical solution is to pre-build these parts as reusable templates in your codebase.</p><p>Think of them as production-ready starting points that AI can reuse instead of recreating from scratch every time.</p><p>For example:</p><pre><code><code>templates/
  dashboard-shell/
  settings-layout/
  admin-layout/
  analytics-page/</code></code></pre><p>These templates should live in your repository and be documented in your AI tooling structure so agents know they exist and when to use them.</p><p>And each template should have a short spec explaining:</p><pre><code><code># Dashboard Shell

## Purpose
Standard dashboard structure for authenticated users.

## Includes
- Top navigation
- Side navigation
- Theme setup
- Responsive layout
- Notification area

## AI instructions
- Do not modify navigation structure.
- Do not replace theme tokens.
- Generate only page-specific content.
- Use approved dashboard patterns.</code></code></pre><p>This is important because many teams currently ask AI to regenerate the same dashboard, settings page, or application shell <strong>over and over again.</strong> &#128556;</p><p>That creates unnecessary variation.</p><p>Instead, pre-code the stable parts once, document them, and tell the agent to build on top of them.</p><p>So instead of asking:</p><blockquote><p>Generate a dashboard using our design system.</p></blockquote><p>A better instruction is:</p><blockquote><p>Use the existing dashboard template. Do not modify navigation, logo, theme, or shell. Generate only the main content area using the table, filter, and empty-state specs.</p></blockquote><p>This changes the agent&#8217;s job.</p><p>It no longer has to invent the whole product environment.</p><p>It works inside a stable frame that already exists in code.</p><p>My rule:</p><blockquote><p>Pre-code what should stay stable. Let AI explore where flexibility is useful.</p></blockquote><div><hr></div><h2>Layer 6: Turn repeated prompts into recipes</h2><p>If a team keeps asking AI to do the same thing, that should become a recipe.</p><p>Not everyone should have to remember the perfect prompt.</p><p>Recipes are reusable instructions for common tasks, such as:</p><ul><li><p>add an assistant panel,</p></li><li><p>create an empty state,</p></li><li><p>generate a filterable table,</p></li><li><p>switch to dark mode,</p></li><li><p>create a settings page,</p></li><li><p>convert a screenshot into a prototype,</p></li><li><p>add responsive behavior.</p></li></ul><p>Example:</p><pre><code><code># Recipe: Add assistant panel

## Use when
The user needs contextual AI help beside an existing workflow.

## Rules
- Do not replace the main workflow.
- Place the panel on the right side on desktop.
- Collapse into a drawer on smaller screens.
- Show uncertainty when the assistant makes recommendations.
- Keep the primary product action outside the assistant panel.

## Do not
- Do not auto-submit user input.
- Do not hide core workflow actions.
- Do not present AI output as final when confidence is low.</code></code></pre><p>This is small but powerful.</p><p>It reduces prompt variability.</p><p>It also makes AI workflows easier for <strong>non-technical teammates.</strong></p><p>Good AI adoption is not just about tools.</p><p>It is about making the right behavior easy. &#128526;&#128170;</p><div><hr></div><h2>Layer 7: Add guardrails and audits</h2><p>This is the layer that turns AI from &#8220;helpful but unpredictable&#8221; into something teams can actually trust. &#129782;</p><p>I think about it in two parts:</p><p>&#128073; <strong>Guardrails happen before AI generates.</strong><br>They tell the agent what it is allowed to do.</p><p>&#128073; <strong>Audits happen after AI generates.</strong><br>They check whether the output respected the system.</p><p>Both are needed.</p><div><hr></div><h4>Guardrails: tell the agent where the boundaries are</h4><p>Guardrails should live in places the agent reads before touching UI, like:</p><pre><code><code>design.md
CLAUDE.md
.cursorrules
llms.txt
component specs
pattern specs
recipes</code></code></pre><p>They should be direct and practical.</p><p>For example:</p><pre><code><code>Before modifying UI:
- Read the relevant component and pattern specs.
- Use existing components before creating anything new.
- Use only tokens from token-reference.md.
- Do not create new variants unless explicitly asked.
- Do not modify global navigation, theme, or brand assets.
- Ask for human review if the flow involves payment, privacy, permissions, or destructive actions.</code></code></pre><p>This gives the agent a working frame.</p><p>Not just &#8220;make it nice.&#8221;</p><p>More like:</p><blockquote><p>Here is what you can touch.<br>Here is what you cannot touch.<br>Here is when you need to stop.</p></blockquote><p>That is much safer.</p><div><hr></div><h4>Audits: check the boring mistakes automatically</h4><p>Audits are the system&#8217;s safety net.</p><p>They catch the things humans should not have to manually inspect every time.</p><p>For example:</p><ul><li><p>Did the agent use raw hex colors?</p></li><li><p>Did it add random spacing values?</p></li><li><p>Did it invent a component variant?</p></li><li><p>Did it break accessibility rules?</p></li><li><p>Did it change the app shell?</p></li><li><p>Did it ignore the documented pattern?</p></li><li><p>Did it introduce a new UI pattern without adding a spec?</p></li></ul><p>A simple token audit could scan the code and flag:</p><pre><code><code>src/components/Card.css
x Line 42: Hardcoded color #2563EB. Use var(--color-link).
x Line 57: Raw spacing 12px. Use var(--space-150).
x Line 73: Raw border-radius 10px. Use an approved radius token.
</code></code></pre><p>This is the point where the design system stops being passive documentation.</p><p>It becomes enforceable.</p><p><strong>A simple setup can be enough</strong></p><p>You do not need a huge governance machine to start.</p><p>A practical first version could include:</p><pre><code><code>scripts/
  token-audit.js
  accessibility-check.js

checklists/
  ai-generated-ui-review.md
</code></code></pre><p>And your AI instruction file could say:</p><pre><code><code>Before completing the task:
- Run token-audit.
- Run accessibility checks.
- Confirm no new components or variants were created.
- List which specs were used.
- List any assumptions.
- Flag any missing design system guidance.</code></code></pre><p></p><h4>The goal is not to remove human review</h4><p>The goal is to make human review more valuable.</p><p>I do not want designers spending their review time catching random <code>px</code> values, broken focus states, or invented colors.</p><p>The system should catch those.</p><p>Designers should spend their attention on judgment:</p><ul><li><p>Is this the right pattern?</p></li><li><p>Does this support the user&#8217;s task?</p></li><li><p>Is the hierarchy clear?</p></li><li><p>Is this interaction appropriate for the risk level?</p></li><li><p>Does this feel like our product?</p></li></ul><p><strong>&#10055;&#65039; That is the real value of guardrails and audits.</strong></p><p>They do not make AI perfect.</p><p>They make AI output easier to trust, easier to review, and easier to improve. &#128526;</p><div><hr></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://khoshnazkazemian.substack.com/p/beyond-vibe-coding-how-to-build-a?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">If your team is also trying to make AI-generated UI less chaotic and more trustworthy, feel free to share this. I have a feeling we&#8217;re all figuring this out together. &#128516;&#10024;</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://khoshnazkazemian.substack.com/p/beyond-vibe-coding-how-to-build-a?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://khoshnazkazemian.substack.com/p/beyond-vibe-coding-how-to-build-a?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><div><hr></div><h2>Where these layers actually sit in a real repo?</h2><p>At some point, all of this has to become more than a nice diagram.</p><p>&#127968; The specs need a home.<br>&#127968; The tokens need a home.<br>&#127968; The agent instructions need a home.<br>&#127968; The templates and recipes need a home too.</p><p>A structure I really like comes from <a href="https://hvpandya.com/llm-design-systems?mc_cid=32b8e4d820&amp;mc_eid=b91deee71e#we-tried-this-with-atlassians-design-system">Hardik Pandya&#8217;s article.</a> He tested this setup with Atlassian&#8217;s design system and organized the documentation around a very clear hierarchy.</p><p>I would use that as the backbone.</p><p>Then I would add the few layers I think are missing for agentic workflows: templates, recipes, tool-specific guidelines, and agent instruction files.</p><p>So the ideal final structure could look like this:</p><pre><code><code>your-project/
&#9500;&#9472;&#9472; specs/
&#9474;   &#9500;&#9472;&#9472; foundations/              # Tier 1: Visual primitives
&#9474;   &#9474;   &#9500;&#9472;&#9472; color.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; typography.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; spacing.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; radius.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; elevation.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; motion.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; z-index.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; iconography.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; accessibility.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; breakpoints.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; grid.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; borders.md
&#9474;   &#9474;   &#9492;&#9472;&#9472; opacity.md
&#9474;   &#9474;
&#9474;   &#9500;&#9472;&#9472; tokens/                   # Tier 1: CSS variable reference
&#9474;   &#9474;   &#9500;&#9472;&#9472; token-reference.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; color-tokens.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; spacing-tokens.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; typography-tokens.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; elevation-tokens.md
&#9474;   &#9474;   &#9492;&#9472;&#9472; motion-tokens.md
&#9474;   &#9474;
&#9474;   &#9500;&#9472;&#9472; atoms/                    # Tier 2: Single-purpose components
&#9474;   &#9474;   &#9500;&#9472;&#9472; button.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; icon-button.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; input.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; textarea.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; checkbox.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; radio.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; toggle.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; avatar.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; badge.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; lozenge.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; tag.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; spinner.md
&#9474;   &#9474;   &#9492;&#9472;&#9472; link.md
&#9474;   &#9474;
&#9474;   &#9500;&#9472;&#9472; molecules/                # Tier 2: Composed components
&#9474;   &#9474;   &#9500;&#9472;&#9472; tabs.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; breadcrumbs.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; dropdown-menu.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; modal-dialog.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; banner.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; flag.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; inline-message.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; tooltip.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; form.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; select.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; date-picker.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; pagination.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; inline-edit.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; search.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; popup.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; progress-bar.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; side-navigation.md
&#9474;   &#9474;   &#9492;&#9472;&#9472; empty-state.md
&#9474;   &#9474;
&#9474;   &#9500;&#9472;&#9472; organisms/                # Tier 2: Product-specific assemblies
&#9474;   &#9474;   &#9500;&#9472;&#9472; table.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; navigation.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; page-header.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; content-panel.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; chat-panel.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; dashboard-card.md
&#9474;   &#9474;   &#9492;&#9472;&#9472; work-item-header.md
&#9474;   &#9474;
&#9474;   &#9492;&#9472;&#9472; patterns/                 # Tier 3: Layout and composition rules
&#9474;       &#9500;&#9472;&#9472; canvas-content-flow.md
&#9474;       &#9500;&#9472;&#9472; three-column-layout.md
&#9474;       &#9500;&#9472;&#9472; responsive-grid.md
&#9474;       &#9500;&#9472;&#9472; panel-expand-collapse.md
&#9474;       &#9500;&#9472;&#9472; form-layout.md
&#9474;       &#9500;&#9472;&#9472; list-detail.md
&#9474;       &#9492;&#9472;&#9472; error-handling.md
&#9474;
&#9500;&#9472;&#9472; tokens.css                    # Every CSS variable, with layered token logic
&#9474;
&#9500;&#9472;&#9472; checks/
&#9474;   &#9500;&#9472;&#9472; token-audit.js             # Catches hardcoded visual values
&#9474;   &#9492;&#9472;&#9472; design-system-drift.js     # Flags stale specs when the system changes
&#9474;
&#9500;&#9472;&#9472; ai-tooling/
&#9474;   &#9500;&#9472;&#9472; templates/                 # Things AI should not invent from scratch
&#9474;   &#9474;   &#9500;&#9472;&#9472; base-template/
&#9474;   &#9474;   &#9500;&#9472;&#9472; figma-make-template/
&#9474;   &#9474;   &#9492;&#9472;&#9472; replit-template/
&#9474;   &#9474;
&#9474;   &#9500;&#9472;&#9472; guidelines/                # Short guidance for AI prototyping
&#9474;   &#9474;   &#9500;&#9472;&#9472; prototyping-guidelines.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; figma-make-guidelines.md
&#9474;   &#9474;   &#9492;&#9472;&#9472; replit-guidelines.md
&#9474;   &#9474;
&#9474;   &#9492;&#9472;&#9472; recipes/                   # Repeatable safe actions
&#9474;       &#9500;&#9472;&#9472; dark-mode.md
&#9474;       &#9500;&#9472;&#9472; chat-panel.md
&#9474;       &#9500;&#9472;&#9472; logo-swap.md
&#9474;       &#9492;&#9472;&#9472; side-panel.md
&#9474;
&#9500;&#9472;&#9472; CLAUDE.md                      # Claude reads this before touching UI
&#9492;&#9472;&#9472; AGENTS.md                      # Optional shared rules for other agents
</code></code></pre><p>&#10055;&#65039; This is the ideal direction.</p><p>&#11093;&#65039; Not the day-one checklist.</p><p>I would not expect a team to create all of this in one sprint. Actually, I would be suspicious if they tried.</p><p>The point is to let the structure grow with the product.</p><ul><li><p>When a new component becomes important, write its spec.</p></li><li><p>When a pattern keeps showing up in reviews, document it.</p></li><li><p>When AI keeps breaking the same shell, create a template.</p></li><li><p>When people keep asking for the same change, turn it into a recipe.</p></li><li><p>When raw values keep slipping into code, add a check.</p></li></ul><p>That is how the system becomes agentic over time.</p><p>Not through one big documentation marathon. &#128517;</p><p>Through repeated decisions becoming reusable infrastructure.</p><div><hr></div><h3>Start small. Please do not turn this into a six-month initiative. &#129320;</h3><p>Small does not mean weak.</p><p>And it definitely does not mean giving the agent half of the foundation and hoping it figures out the rest.</p><p>For the first version, I would still make the foundation layer complete enough to be useful.</p><p>That is the part AI needs before it can make even basic UI decisions.</p><p>Where I would stay small is the component and pattern coverage.</p><p>So the first shippable version could look like this:</p><pre><code><code>your-project/
&#9500;&#9472;&#9472; specs/
&#9474;   &#9500;&#9472;&#9472; foundations/
&#9474;   &#9474;   &#9500;&#9472;&#9472; color.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; typography.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; spacing.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; radius.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; elevation.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; motion.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; z-index.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; iconography.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; accessibility.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; breakpoints.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; grid.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; borders.md
&#9474;   &#9474;   &#9492;&#9472;&#9472; opacity.md
&#9474;   &#9474;
&#9474;   &#9500;&#9472;&#9472; tokens/
&#9474;   &#9474;   &#9500;&#9472;&#9472; token-reference.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; color-tokens.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; spacing-tokens.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; typography-tokens.md
&#9474;   &#9474;   &#9500;&#9472;&#9472; elevation-tokens.md
&#9474;   &#9474;   &#9492;&#9472;&#9472; motion-tokens.md
&#9474;   &#9474;
&#9474;   &#9500;&#9472;&#9472; atoms/
&#9474;   &#9474;   &#9492;&#9472;&#9472; button.md
&#9474;   &#9474;
&#9474;   &#9492;&#9472;&#9472; patterns/
&#9474;       &#9492;&#9472;&#9472; form-layout.md
&#9474;
&#9500;&#9472;&#9472; tokens.css
&#9474;
&#9500;&#9472;&#9472; checks/
&#9474;   &#9492;&#9472;&#9472; token-audit.js
&#9474;
&#9500;&#9472;&#9472; ai-tooling/
&#9474;   &#9500;&#9472;&#9472; templates/
&#9474;   &#9474;   &#9492;&#9472;&#9472; base-template/
&#9474;   &#9474;
&#9474;   &#9500;&#9472;&#9472; guidelines/
&#9474;   &#9474;   &#9492;&#9472;&#9472; prototyping-guidelines.md
&#9474;   &#9474;
&#9474;   &#9492;&#9472;&#9472; recipes/
&#9474;       &#9492;&#9472;&#9472; dark-mode.md
&#9474;
&#9492;&#9472;&#9472; CLAUDE.md
</code></code></pre><p>This is small, but not fragile.</p><p>That is the version I would ship first.</p><p>Not a complete agentic design system.</p><p>But a complete-enough foundation with a narrow, testable slice of real usage.</p><div><hr></div><h3>A starter prompt to get moving</h3><p>If you already have a product repo, you do not need to start from zero.</p><p>I would use a prompt close to the one Hardik Pandya shared.</p><p>Paste this into Claude Code, Cursor, or another AI coding agent at the root of your project:</p><pre><code><code>Audit this project and make the design system LLM-readable.

Step 1: Audit
Scan every CSS/SCSS file. List every hardcoded visual value:
hex colors, rgb/rgba colors, pixel spacing, raw font sizes,
font weights, border radii, z-index values, box shadows,
and transition durations. Group them by category. Count totals.
Report which files have the most hardcoded values.

Step 2: Token layer
Create a tokens.css file with three layers:
- Layer 1: upstream design system tokens (use existing ones
  if the project already uses a design system, otherwise
  derive sensible primitives from the audit)
- Layer 2: project aliases that reference Layer 1 with
  fallbacks, e.g. --color-text: var(--ds-text, #292A2E)
- Layer 3 is the components themselves &#8212; they only ever
  reference Layer 2 aliases, never raw values

Include tokens for: colors (text, background, link, border,
interactive states), spacing (at least 8 steps), typography
(font families, sizes, weights, line heights), border radius,
elevation/shadow, z-index, and motion/transitions.

Step 3: Spec files
Create a specs/ directory. Write structured markdown specs:
- specs/foundations/ &#8212; color.md, spacing.md, typography.md,
  radius.md, elevation.md, motion.md, accessibility.md
- specs/tokens/ &#8212; token-reference.md (master map of every
  CSS variable, its value, and when to use it)
- specs/atoms/ &#8212; one file per single-purpose component
  such as button, input, link, badge
- specs/molecules/ &#8212; one file per composed component
  such as form, modal-dialog, dropdown-menu, empty-state
- specs/organisms/ &#8212; one file per product-specific assembly
  such as navigation, table, page-header, content-panel
- specs/patterns/ &#8212; layout and composition rules
  such as form-layout, responsive-grid, error-handling

Each spec follows this template:
1. Metadata (name, category, status)
2. Overview (when to use, when not to use)
3. Anatomy (parts of the component or pattern)
4. Tokens used (which CSS variables it references)
5. Props/API (if applicable)
6. States (default, hover, active, focus, disabled, error)
7. Code example
8. Cross-references (related components or patterns)

Only spec components and patterns that actually exist in this project.

Step 4: Audit script
Create checks/token-audit.js (or .sh) that:
- Scans all CSS files for hardcoded values
- Suggests the correct token for each violation
- Prints file, line number, violation, and suggestion
- Returns exit code 1 if any errors are found (CI-ready)
- Distinguishes errors (hardcoded colors, spacing) from
  warnings (raw durations, uncommon values)

Step 5: Replace hardcoded values
Go through every CSS file and replace hardcoded values with
the tokens from Step 2. Every color:, background:, padding:,
margin:, gap:, border-radius:, font-size:, font-weight:,
box-shadow:, z-index:, and transition: should reference a
var(--token). No raw values should remain.

Step 6: Project instructions
Add a section to the project's AI instruction file (CLAUDE.md,
AGENTS.md, .cursorrules, or equivalent) that says:

"Before writing or modifying any UI code, read the relevant
spec file in specs/. Use only tokens from tokens.css. Run the
token audit script before committing. Zero errors required."

Run the audit script at the end and confirm zero violations.
</code></code></pre><p>What I like about this prompt is that it does not ask AI to magically &#8220;make the design system better.&#8221;</p><p>It asks for specific outputs:</p><blockquote><p>a token layer,<br>structured specs,<br>an audit script,<br>cleaned-up hardcoded values,<br>and project instructions for future AI sessions.</p></blockquote><p>That is a much better starting point than another abstract design system discussion.</p><div><hr></div><h2>The real team habit: capture decisions when they happen</h2><p>The best AI-ready design systems will not be built by one big documentation sprint.</p><p>They will be built through better habits.</p><ul><li><p>When a designer says, &#8220;We do not use modals for this,&#8221; add it to the pattern spec.</p></li><li><p>When an engineer says, &#8220;This generated layout breaks our shell,&#8221; update the template.</p></li><li><p>When accessibility feedback repeats, add it to the component metadata.</p></li><li><p>When AI invents a token, add an audit rule.</p></li><li><p>When a product team introduces a new recurring workflow, create a recipe.</p></li></ul><p>This is the practice:</p><blockquote><p>Every repeated correction is missing system knowledge.</p></blockquote><p>Capture it once.</p><p>Then let the system reuse it.</p><div><hr></div><h2>The goal is not to make AI more creative</h2><p>This might sound strange, but I do not want AI to be creative everywhere.</p><p>&#128314; I do not want AI inventing new spacing.<br>&#128314; I do not want AI improvising button hierarchy.<br>&#128314; I do not want AI creating a new modal pattern because it &#8220;looks modern.&#8221;<br>&#128314; I do not want AI guessing brand colors from memory.</p><p>I want AI to be constrained where consistency matters.</p><p>And useful where exploration matters.</p><p>&#10006;&#65039; Strict with tokens.<br>&#10006;&#65039; Strict with accessibility.<br>&#10006;&#65039; Strict with core components.<br>&#10006;&#65039; Strict with product shell.<br>&#10004;&#65039; Flexible with concepts.<br>&#10004;&#65039; Flexible with layout exploration.<br>&#10004;&#65039; Flexible with content alternatives.<br>&#10004;&#65039; Flexible with early prototypes.</p><p>That balance is the work.</p><p>Not full control.</p><p>Not full freedom.</p><p>Designed freedom.</p><div><hr></div><h2>Why this matters now</h2><p>AI is pushing design systems into a new role.</p><p>They are no longer only a place to store reusable UI.</p><div class="pullquote"><p>They are becoming the shared context layer between </p><p>&#128373;&#8205;&#9792;&#65039; design, </p><p>&#129489;&#8205;&#128187; engineering, </p><p>&#129489;&#8205;&#128188; product, and </p><p>&#129302; AI agents.</p></div><p>That means design system work becomes more strategic.</p><p>&#128312; Less about documenting what already exists.</p><p>&#128310; More about encoding how the product should be built.</p><p>&#128312; Less &#8220;Here are our components.&#8221;</p><p>&#128310; More &#8220;Here is how our product thinks.&#8221;</p><p>And for me, that is the interesting part.</p><p>Because the teams that benefit most from AI will not be the ones who generate the most screens.</p><p><strong>They will be the ones who build the strongest context.</strong></p><p>So maybe the real question is not:</p><blockquote><p>Is our design system ready for AI?</p></blockquote><p>Maybe it is:</p><blockquote><p>How much of our design judgment is still trapped in people&#8217;s heads? &#129504;</p></blockquote><p>That is where I would start.</p><p></p><p>Start by writing down the decisions AI keeps guessing.</p><ul><li><p>Turn them into specs.</p></li><li><p>Connect them to tokens.</p></li><li><p>Package repeated tasks into recipes.</p></li><li><p>Use templates for stable structure.</p></li><li><p>Add audits where consistency matters.</p></li><li><p>Teach the team how to use it.</p></li></ul><p>That is how a design system becomes ready for the agentic age.</p><p>Not by becoming bigger.</p><p><strong>By becoming clearer.</strong></p><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.linkedin.com/in/khoshnaz-kazemian-32785a152/&quot;,&quot;text&quot;:&quot;Come &amp; join me on LinkedIn. &#9749;&#65039;&#10024;&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.linkedin.com/in/khoshnaz-kazemian-32785a152/"><span>Come &amp; join me on LinkedIn. &#9749;&#65039;&#10024;</span></a></p><div><hr></div>]]></content:encoded></item><item><title><![CDATA[I Started Building the Missing Layer in AI-Native Product Design]]></title><description><![CDATA[How I&#8217;m turning scattered AI UX decisions into a reusable system for designing human&#8211;AI interaction patterns.]]></description><link>https://khoshnazkazemian.substack.com/p/i-started-building-the-missing-layer</link><guid isPermaLink="false">https://khoshnazkazemian.substack.com/p/i-started-building-the-missing-layer</guid><dc:creator><![CDATA[Khoshnaz Kazemian]]></dc:creator><pubDate>Mon, 11 May 2026 07:23:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qCnk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56daa1b1-35cf-400a-99b6-e38afab73057_3250x2066.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qCnk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56daa1b1-35cf-400a-99b6-e38afab73057_3250x2066.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qCnk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56daa1b1-35cf-400a-99b6-e38afab73057_3250x2066.heic 424w, https://substackcdn.com/image/fetch/$s_!qCnk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56daa1b1-35cf-400a-99b6-e38afab73057_3250x2066.heic 848w, https://substackcdn.com/image/fetch/$s_!qCnk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56daa1b1-35cf-400a-99b6-e38afab73057_3250x2066.heic 1272w, https://substackcdn.com/image/fetch/$s_!qCnk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56daa1b1-35cf-400a-99b6-e38afab73057_3250x2066.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qCnk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56daa1b1-35cf-400a-99b6-e38afab73057_3250x2066.heic" width="1456" height="926" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/56daa1b1-35cf-400a-99b6-e38afab73057_3250x2066.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:926,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:354358,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://khoshnazkazemian.substack.com/i/196889764?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56daa1b1-35cf-400a-99b6-e38afab73057_3250x2066.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qCnk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56daa1b1-35cf-400a-99b6-e38afab73057_3250x2066.heic 424w, https://substackcdn.com/image/fetch/$s_!qCnk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56daa1b1-35cf-400a-99b6-e38afab73057_3250x2066.heic 848w, https://substackcdn.com/image/fetch/$s_!qCnk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56daa1b1-35cf-400a-99b6-e38afab73057_3250x2066.heic 1272w, https://substackcdn.com/image/fetch/$s_!qCnk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56daa1b1-35cf-400a-99b6-e38afab73057_3250x2066.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>A few weeks ago, I kept thinking about a strange gap in how we design AI products.</p><p>Not only the big &#8220;ChatGPT-style&#8221; products.<br>I mean the smaller AI moments that are now showing up inside everyday tools:</p><blockquote><p>a smart suggestion,<br>an AI-powered workflow,<br>a generated summary,<br>an agentic action,<br>or simply one moment where a human and AI need to work together.</p></blockquote><p>And this is where I started seeing the problem. &#9888;&#65039;&#8265;&#65039;</p><p></p><p><strong>Currently, when teams design an AI-native feature, they often move from:</strong></p><pre><code><strong>1&#65039;&#8419; AI-native design need</strong>
A new feature, or a specific moment where human&#8211;AI collaboration needs to happen.</code></pre><p>to:</p><pre><code><strong>2&#65039;&#8419; Visual design system</strong>
Components, tokens, layouts, UI states, accessibility, and all the interface rules we already know how to reuse.</code></pre><p>to:</p><pre><code><strong>3&#65039;&#8419; Product experience</strong>
The final AI-powered feature people actually use.</code></pre><p><strong>But something is missing in the middle. &#128064;</strong></p><div><hr></div><h2><strong>The missing step was not visual. It was behavioral.</strong></h2><p>Before we decide how the interface should look, we need to decide <strong>how the AI and the human should work together.</strong></p><p></p><blockquote><p>Should the AI suggest, ask, or act?<br>When should a human approve something?<br>How should uncertainty be shown?<br>What happens when the AI gets something wrong?<br>How much control should the user have?<br>Who is responsible for the final decision?</p></blockquote><p></p><p>These are not visual design system questions.</p><p><strong>They are behavior questions.</strong>&#129302;&#128105;</p><div><hr></div><h2><strong>That&#8217;s where messy AI experiences quietly start</strong></h2><p>If every team answers them from scratch, feature by feature, things can quietly become messy.</p><ul><li><p>&#128314;&#128314;&#128314;</p></li><li><p>One AI feature asks for confirmation.<br>Another acts automatically.</p></li><li><p>One explains uncertainty.<br>Another hides it.</p></li><li><p>One gives users a way to recover.<br>Another leaves them stuck.</p></li></ul><div class="pullquote"><p><strong>None of these decisions may look dramatic on their own.<br>But together, they shape whether a product feels trustworthy, understandable, and safe to use.</strong></p><p>&#129293;&#128519;&#10004;&#65039;</p></div><p>So this became the question for me. &#128071;&#128071;&#128071;</p><p><strong>What if AI products need a behavior layer before the visual design layer?</strong></p><p></p><h2>That was the starting point for my <strong>Behavioral Design System</strong>. &#129302;&#10024;</h2><blockquote><p>A source of truth for designing, documenting, and reusing human&#8211;AI interaction patterns before UI decisions.</p></blockquote><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qCnk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56daa1b1-35cf-400a-99b6-e38afab73057_3250x2066.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qCnk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56daa1b1-35cf-400a-99b6-e38afab73057_3250x2066.heic 424w, https://substackcdn.com/image/fetch/$s_!qCnk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56daa1b1-35cf-400a-99b6-e38afab73057_3250x2066.heic 848w, https://substackcdn.com/image/fetch/$s_!qCnk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56daa1b1-35cf-400a-99b6-e38afab73057_3250x2066.heic 1272w, https://substackcdn.com/image/fetch/$s_!qCnk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56daa1b1-35cf-400a-99b6-e38afab73057_3250x2066.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qCnk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56daa1b1-35cf-400a-99b6-e38afab73057_3250x2066.heic" width="1456" height="926" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/56daa1b1-35cf-400a-99b6-e38afab73057_3250x2066.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:926,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:354358,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://khoshnazkazemian.substack.com/i/196889764?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56daa1b1-35cf-400a-99b6-e38afab73057_3250x2066.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!qCnk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56daa1b1-35cf-400a-99b6-e38afab73057_3250x2066.heic 424w, https://substackcdn.com/image/fetch/$s_!qCnk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56daa1b1-35cf-400a-99b6-e38afab73057_3250x2066.heic 848w, https://substackcdn.com/image/fetch/$s_!qCnk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56daa1b1-35cf-400a-99b6-e38afab73057_3250x2066.heic 1272w, https://substackcdn.com/image/fetch/$s_!qCnk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F56daa1b1-35cf-400a-99b6-e38afab73057_3250x2066.heic 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The visual above is the simplest way I currently explain it:</p><div class="pullquote"><p>AI-native design need</p><p>&#128071;<br> &#10004;&#65039; <strong>Behavioral Design System</strong></p><p>&#128071;<br> Visual Design System</p><p><strong>&#129008;<br></strong>AI-native product experience</p></div><p>The Behavioral Design System does not replace the visual design system.</p><p>It sits before it.</p><p>It helps teams define the collaboration first, so the final product is not only visually consistent, but behaviorally consistent too.</p><p></p><div><hr></div><p></p><h2>What I mean by a Behavioral Design System</h2><p></p><p>&#127912; A traditional design system helps teams reuse interface decisions.</p><p>&#10055;&#65039;A Behavioral Design System helps teams reuse <strong>human&#8211;AI collaboration decisions</strong>.</p><p>&#127912; In a visual design system, the reusable unit is often a component.</p><p>&#10055;&#65039;In a Behavioral Design System, the reusable unit is an interaction pattern.</p><p></p><p>Not just:</p><p><strong>What should this look like?</strong></p><p>But:</p><p><strong>How should this moment work?</strong></p><p></p><p>For example, if an AI assistant is about to take an action:</p><ul><li><p>Should it ask first?</p></li><li><p>Should it show a preview?</p></li><li><p>Should it explain why it chose that action?</p></li><li><p>Should the user be able to edit before confirming?</p></li><li><p>Should there be an undo path?</p></li></ul><p>These are not just interface details.</p><p></p><p><strong>They are behavior decisions.</strong>&#10004;&#65039;</p><blockquote><p>And if those decisions repeat across the product, they deserve to be documented as patterns.</p></blockquote><p>Not a component library.<br>Not another AI UX checklist.<br><strong>More like a shared place for the moments where humans and AI need to coordinate.</strong></p><p></p><div><hr></div><p></p><h2><strong>Then I gave each interaction pattern its own DNA</strong></h2><p>One thing I wanted to avoid was turning this into a random list of AI UX ideas.</p><p>Because AI interaction patterns can get messy very quickly.</p><blockquote><p>A pattern can support trust.<br>It can happen before an AI output.<br>It can appear inside a chat interface.<br>It can belong to an assistive AI model.</p></blockquote><p><strong>So each pattern is classified in four lenses.</strong></p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Xa_u!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16186e56-cd05-4933-9250-5631190b0658_1536x1024.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Xa_u!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16186e56-cd05-4933-9250-5631190b0658_1536x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!Xa_u!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16186e56-cd05-4933-9250-5631190b0658_1536x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!Xa_u!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16186e56-cd05-4933-9250-5631190b0658_1536x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!Xa_u!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16186e56-cd05-4933-9250-5631190b0658_1536x1024.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Xa_u!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16186e56-cd05-4933-9250-5631190b0658_1536x1024.heic" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/16186e56-cd05-4933-9250-5631190b0658_1536x1024.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:123600,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://khoshnazkazemian.substack.com/i/196889764?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16186e56-cd05-4933-9250-5631190b0658_1536x1024.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Xa_u!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16186e56-cd05-4933-9250-5631190b0658_1536x1024.heic 424w, https://substackcdn.com/image/fetch/$s_!Xa_u!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16186e56-cd05-4933-9250-5631190b0658_1536x1024.heic 848w, https://substackcdn.com/image/fetch/$s_!Xa_u!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16186e56-cd05-4933-9250-5631190b0658_1536x1024.heic 1272w, https://substackcdn.com/image/fetch/$s_!Xa_u!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16186e56-cd05-4933-9250-5631190b0658_1536x1024.heic 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h3>1. The first lens: Behavior Principle </h3><p>This describes the experience quality the pattern supports.</p><div class="callout-block" data-callout="true"><ul><li><p><strong>Make capabilities clear: </strong>Help users understand what the AI can do, cannot do, and when human judgment is needed.</p></li><li><p><strong>Preserve human control: </strong>Let users approve, edit, stop, undo, or override AI behavior.</p></li><li><p><strong>Calibrate trust: </strong>Prevent both overtrust and undertrust by matching AI behavior with evidence, confidence, and context.</p></li><li><p><strong>Explain uncertainty: </strong>Make confidence, reasoning, sources, limitations, and missing information visible when the AI output may be incomplete or uncertain.</p></li><li><p><strong>Scale automation gradually: </strong>Increase AI autonomy only when the task, risk level, and user confidence support it.</p></li><li><p><strong>Recover gracefully: </strong>Help users retry, correct, reverse, or escalate when the AI is wrong, blocked, or incomplete.</p></li><li><p><strong>Support adaptation: </strong>Let the system learn from user feedback, preferences, corrections, and repeated behavior without becoming opaque.</p></li><li><p><strong>Enable accountability: </strong>Make actions, responsibility, ownership, and history traceable across human and AI decisions.</p></li></ul></div><p>This helps teams understand the purpose behind the pattern.</p><p></p><h3>2. The second lens: AI Collaboration Model</h3><p>This describes the relationship between the human and the AI in that moment.</p><div class="callout-block" data-callout="true"><ul><li><p><strong>Assistive AI: </strong>AI supports a user-led task with suggestions, drafting, shortcuts, or small actions. The human stays in charge of the goal, decision, and final action.</p></li><li><p><strong>Embedded AI: </strong>AI is built into an existing product flow. It improves a specific step without becoming the main experience.</p></li><li><p><strong>Immersive AI: </strong>AI becomes the primary workspace or active collaborator. The user works with it through ongoing back-and-forth interaction.</p></li><li><p><strong>Decision Support AI: </strong>AI analyzes information, compares options, or highlights risks so the human can make a better decision. The AI informs; the human decides.</p></li><li><p><strong>Autonomous Agent: </strong>AI can take action across steps or systems within defined boundaries. The human sets the goal, permissions, and oversight conditions.</p></li></ul></div><p>This matters because the same pattern may behave differently depending on how much agency the AI has.</p><p></p><h3>3. The third lens: Task Moment</h3><p>This describes where the pattern sits in the interaction timeline.</p><div class="callout-block" data-callout="true"><ul><li><p><strong>Before output</strong>Before AI generates, acts, or executes.</p></li><li><p><strong>During output</strong>While AI is generating, suggesting, or working.</p></li><li><p><strong>After output</strong>After AI gives a result and the user reviews it.</p></li><li><p><strong>Failure</strong>When AI is wrong, uncertain, blocked, or out of scope.</p></li></ul></div><p>Timing matters a lot in AI interaction. A clarification before output feels very different from a recovery option after a wrong result.</p><p></p><h3>4. The fourth lens: Surface</h3><p>This describes the product context where the pattern appears.</p><div class="callout-block" data-callout="true"><ul><li><p><strong>Chat</strong>Conversational interaction.</p></li><li><p><strong>Inline</strong>Contextual suggestions inside an existing UI.</p></li><li><p><strong>Canvas</strong>Co-creation or workspace surface.</p></li><li><p><strong>Workflow</strong>Structured multi-step process.</p></li><li><p><strong>Dashboard</strong>Monitoring, insights, summaries, and decision views.</p></li></ul></div><p>This structure makes the library easier to browse, but also more honest.</p><p>Because the same AI pattern can behave very differently depending on where it appears, how much control the user has, and what risk is attached to the task.</p><blockquote><p>Together, these classifications help people browse the library, but also think more clearly when documenting new patterns.</p></blockquote><p></p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://khoshnazkazemian.substack.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">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p></p><h2><strong>Then I turned it into something people can actually use | </strong> a Notion system</h2><p>I&#8217;m building this as a Notion-based Behavioral Design System.</p><p>The goal is not to make a huge academic library.<br>The goal is to create something practical enough that designers, PMs, engineers, and AI builders can actually use it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hBwH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfbeaadc-0d35-479a-86ec-9a9c617ad9f6_4316x2862.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hBwH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfbeaadc-0d35-479a-86ec-9a9c617ad9f6_4316x2862.png 424w, https://substackcdn.com/image/fetch/$s_!hBwH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfbeaadc-0d35-479a-86ec-9a9c617ad9f6_4316x2862.png 848w, https://substackcdn.com/image/fetch/$s_!hBwH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfbeaadc-0d35-479a-86ec-9a9c617ad9f6_4316x2862.png 1272w, https://substackcdn.com/image/fetch/$s_!hBwH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfbeaadc-0d35-479a-86ec-9a9c617ad9f6_4316x2862.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hBwH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfbeaadc-0d35-479a-86ec-9a9c617ad9f6_4316x2862.png" width="1456" height="965" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cfbeaadc-0d35-479a-86ec-9a9c617ad9f6_4316x2862.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:965,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2843232,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://khoshnazkazemian.substack.com/i/196889764?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfbeaadc-0d35-479a-86ec-9a9c617ad9f6_4316x2862.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hBwH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfbeaadc-0d35-479a-86ec-9a9c617ad9f6_4316x2862.png 424w, https://substackcdn.com/image/fetch/$s_!hBwH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfbeaadc-0d35-479a-86ec-9a9c617ad9f6_4316x2862.png 848w, https://substackcdn.com/image/fetch/$s_!hBwH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfbeaadc-0d35-479a-86ec-9a9c617ad9f6_4316x2862.png 1272w, https://substackcdn.com/image/fetch/$s_!hBwH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfbeaadc-0d35-479a-86ec-9a9c617ad9f6_4316x2862.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h2><strong>I kept the Notion structure simple on purpose</strong></h2><p><strong>The system currently has four main areas.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LOzA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350acf39-1773-4a97-9b67-3fa3e2c10b08_3808x2112.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LOzA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350acf39-1773-4a97-9b67-3fa3e2c10b08_3808x2112.png 424w, https://substackcdn.com/image/fetch/$s_!LOzA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350acf39-1773-4a97-9b67-3fa3e2c10b08_3808x2112.png 848w, https://substackcdn.com/image/fetch/$s_!LOzA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350acf39-1773-4a97-9b67-3fa3e2c10b08_3808x2112.png 1272w, https://substackcdn.com/image/fetch/$s_!LOzA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350acf39-1773-4a97-9b67-3fa3e2c10b08_3808x2112.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LOzA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350acf39-1773-4a97-9b67-3fa3e2c10b08_3808x2112.png" width="1456" height="808" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/350acf39-1773-4a97-9b67-3fa3e2c10b08_3808x2112.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:808,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:295238,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://khoshnazkazemian.substack.com/i/196889764?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350acf39-1773-4a97-9b67-3fa3e2c10b08_3808x2112.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!LOzA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350acf39-1773-4a97-9b67-3fa3e2c10b08_3808x2112.png 424w, https://substackcdn.com/image/fetch/$s_!LOzA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350acf39-1773-4a97-9b67-3fa3e2c10b08_3808x2112.png 848w, https://substackcdn.com/image/fetch/$s_!LOzA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350acf39-1773-4a97-9b67-3fa3e2c10b08_3808x2112.png 1272w, https://substackcdn.com/image/fetch/$s_!LOzA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F350acf39-1773-4a97-9b67-3fa3e2c10b08_3808x2112.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h3>&#128075; Start Here</h3><p>This is the onboarding layer.</p><p>It explains how the system works, how patterns are organized, and how someone can add a new pattern.</p><p>Because if a system needs a long explanation before people can use it, it is already too heavy.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1naS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f5d6421-853d-4a9d-b82b-38c02b56b008_2400x1588.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1naS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f5d6421-853d-4a9d-b82b-38c02b56b008_2400x1588.png 424w, https://substackcdn.com/image/fetch/$s_!1naS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f5d6421-853d-4a9d-b82b-38c02b56b008_2400x1588.png 848w, https://substackcdn.com/image/fetch/$s_!1naS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f5d6421-853d-4a9d-b82b-38c02b56b008_2400x1588.png 1272w, https://substackcdn.com/image/fetch/$s_!1naS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f5d6421-853d-4a9d-b82b-38c02b56b008_2400x1588.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1naS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f5d6421-853d-4a9d-b82b-38c02b56b008_2400x1588.png" width="1456" height="963" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7f5d6421-853d-4a9d-b82b-38c02b56b008_2400x1588.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:963,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:518862,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://khoshnazkazemian.substack.com/i/196889764?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f5d6421-853d-4a9d-b82b-38c02b56b008_2400x1588.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1naS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f5d6421-853d-4a9d-b82b-38c02b56b008_2400x1588.png 424w, https://substackcdn.com/image/fetch/$s_!1naS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f5d6421-853d-4a9d-b82b-38c02b56b008_2400x1588.png 848w, https://substackcdn.com/image/fetch/$s_!1naS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f5d6421-853d-4a9d-b82b-38c02b56b008_2400x1588.png 1272w, https://substackcdn.com/image/fetch/$s_!1naS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f5d6421-853d-4a9d-b82b-38c02b56b008_2400x1588.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p></p><h3>&#127922; Pattern Playground</h3><p>This is the more exploratory way into the library.</p><p>Instead of starting from a big database, you can begin from what you are designing:</p><p>a behavior principle,<br>a task moment,<br>an AI collaboration model,<br>or a product surface.</p><p>It is meant to help people find relevant patterns faster, especially when they do not yet know the exact pattern name.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!enev!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fead4f0a8-4633-4116-82e5-5171e54b1ad3_2400x2550.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!enev!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fead4f0a8-4633-4116-82e5-5171e54b1ad3_2400x2550.png 424w, https://substackcdn.com/image/fetch/$s_!enev!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fead4f0a8-4633-4116-82e5-5171e54b1ad3_2400x2550.png 848w, https://substackcdn.com/image/fetch/$s_!enev!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fead4f0a8-4633-4116-82e5-5171e54b1ad3_2400x2550.png 1272w, https://substackcdn.com/image/fetch/$s_!enev!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fead4f0a8-4633-4116-82e5-5171e54b1ad3_2400x2550.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!enev!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fead4f0a8-4633-4116-82e5-5171e54b1ad3_2400x2550.png" width="1456" height="1547" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ead4f0a8-4633-4116-82e5-5171e54b1ad3_2400x2550.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1547,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:679288,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://khoshnazkazemian.substack.com/i/196889764?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fead4f0a8-4633-4116-82e5-5171e54b1ad3_2400x2550.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!enev!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fead4f0a8-4633-4116-82e5-5171e54b1ad3_2400x2550.png 424w, https://substackcdn.com/image/fetch/$s_!enev!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fead4f0a8-4633-4116-82e5-5171e54b1ad3_2400x2550.png 848w, https://substackcdn.com/image/fetch/$s_!enev!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fead4f0a8-4633-4116-82e5-5171e54b1ad3_2400x2550.png 1272w, https://substackcdn.com/image/fetch/$s_!enev!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fead4f0a8-4633-4116-82e5-5171e54b1ad3_2400x2550.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p></p><h3>&#128142; Interaction Pattern Library</h3><p>This is the main database.</p><p>It is where all the human&#8211;AI interaction patterns live.</p><p>Each pattern has metadata, status, documentation, examples, and implementation notes. The idea is to make patterns easy to filter, compare, reuse, and evolve.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!K7j6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60791e26-5b5a-4ac0-b90f-c1ec403d38fa_2400x1590.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!K7j6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60791e26-5b5a-4ac0-b90f-c1ec403d38fa_2400x1590.png 424w, https://substackcdn.com/image/fetch/$s_!K7j6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60791e26-5b5a-4ac0-b90f-c1ec403d38fa_2400x1590.png 848w, https://substackcdn.com/image/fetch/$s_!K7j6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60791e26-5b5a-4ac0-b90f-c1ec403d38fa_2400x1590.png 1272w, https://substackcdn.com/image/fetch/$s_!K7j6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60791e26-5b5a-4ac0-b90f-c1ec403d38fa_2400x1590.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!K7j6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60791e26-5b5a-4ac0-b90f-c1ec403d38fa_2400x1590.png" width="1456" height="965" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/60791e26-5b5a-4ac0-b90f-c1ec403d38fa_2400x1590.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:965,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:747120,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://khoshnazkazemian.substack.com/i/196889764?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60791e26-5b5a-4ac0-b90f-c1ec403d38fa_2400x1590.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!K7j6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60791e26-5b5a-4ac0-b90f-c1ec403d38fa_2400x1590.png 424w, https://substackcdn.com/image/fetch/$s_!K7j6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60791e26-5b5a-4ac0-b90f-c1ec403d38fa_2400x1590.png 848w, https://substackcdn.com/image/fetch/$s_!K7j6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60791e26-5b5a-4ac0-b90f-c1ec403d38fa_2400x1590.png 1272w, https://substackcdn.com/image/fetch/$s_!K7j6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60791e26-5b5a-4ac0-b90f-c1ec403d38fa_2400x1590.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p></p><h3>&#129504; Governance</h3><p>This is the maintenance layer.</p><p>Because a pattern library should not just grow forever.</p><p>Some patterns should be reviewed.<br>Some should be improved.<br>Some should be merged.<br>Some should be retired.</p><p>The goal is not to make the system bigger.<br>The goal is to keep it useful.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!w8wU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98ec6320-ea1f-4b9f-9848-689f3f92623e_2400x1588.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!w8wU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98ec6320-ea1f-4b9f-9848-689f3f92623e_2400x1588.png 424w, https://substackcdn.com/image/fetch/$s_!w8wU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98ec6320-ea1f-4b9f-9848-689f3f92623e_2400x1588.png 848w, https://substackcdn.com/image/fetch/$s_!w8wU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98ec6320-ea1f-4b9f-9848-689f3f92623e_2400x1588.png 1272w, https://substackcdn.com/image/fetch/$s_!w8wU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98ec6320-ea1f-4b9f-9848-689f3f92623e_2400x1588.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!w8wU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98ec6320-ea1f-4b9f-9848-689f3f92623e_2400x1588.png" width="1456" height="963" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/98ec6320-ea1f-4b9f-9848-689f3f92623e_2400x1588.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:963,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:504207,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://khoshnazkazemian.substack.com/i/196889764?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98ec6320-ea1f-4b9f-9848-689f3f92623e_2400x1588.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!w8wU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98ec6320-ea1f-4b9f-9848-689f3f92623e_2400x1588.png 424w, https://substackcdn.com/image/fetch/$s_!w8wU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98ec6320-ea1f-4b9f-9848-689f3f92623e_2400x1588.png 848w, https://substackcdn.com/image/fetch/$s_!w8wU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98ec6320-ea1f-4b9f-9848-689f3f92623e_2400x1588.png 1272w, https://substackcdn.com/image/fetch/$s_!w8wU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F98ec6320-ea1f-4b9f-9848-689f3f92623e_2400x1588.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div class="pullquote"><p><strong>The first public version of my Behavioral Design System in Notion.</strong></p><p>You can explore the evolving Notion system here:</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://lively-planarian-f5a.notion.site/Behavioral-Design-System-353c19558084817fb724ef994f871030?source=copy_link&quot;,&quot;text&quot;:&quot;Behavioral Design System in Notion&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://lively-planarian-f5a.notion.site/Behavioral-Design-System-353c19558084817fb724ef994f871030?source=copy_link"><span>Behavioral Design System in Notion</span></a></p><p></p></div><p></p><h2>Then I started adding real patterns</h2><p>I started by documenting patterns from existing AI products and AI UX references, then translating them into my own structure.</p><p>Not as final &#8220;rules.&#8221;<br>More like reusable starting points.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!P0Bu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2df1ebdd-0cd1-43c5-9d8d-6b7d02fbd329_2400x1680.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!P0Bu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2df1ebdd-0cd1-43c5-9d8d-6b7d02fbd329_2400x1680.png 424w, https://substackcdn.com/image/fetch/$s_!P0Bu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2df1ebdd-0cd1-43c5-9d8d-6b7d02fbd329_2400x1680.png 848w, https://substackcdn.com/image/fetch/$s_!P0Bu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2df1ebdd-0cd1-43c5-9d8d-6b7d02fbd329_2400x1680.png 1272w, https://substackcdn.com/image/fetch/$s_!P0Bu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2df1ebdd-0cd1-43c5-9d8d-6b7d02fbd329_2400x1680.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!P0Bu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2df1ebdd-0cd1-43c5-9d8d-6b7d02fbd329_2400x1680.png" width="1456" height="1019" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2df1ebdd-0cd1-43c5-9d8d-6b7d02fbd329_2400x1680.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1019,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:778025,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://khoshnazkazemian.substack.com/i/196889764?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2df1ebdd-0cd1-43c5-9d8d-6b7d02fbd329_2400x1680.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!P0Bu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2df1ebdd-0cd1-43c5-9d8d-6b7d02fbd329_2400x1680.png 424w, https://substackcdn.com/image/fetch/$s_!P0Bu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2df1ebdd-0cd1-43c5-9d8d-6b7d02fbd329_2400x1680.png 848w, https://substackcdn.com/image/fetch/$s_!P0Bu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2df1ebdd-0cd1-43c5-9d8d-6b7d02fbd329_2400x1680.png 1272w, https://substackcdn.com/image/fetch/$s_!P0Bu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2df1ebdd-0cd1-43c5-9d8d-6b7d02fbd329_2400x1680.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Each pattern can be opened as its own documentation page with examples, notes, and implementation references.</p><p>And this is where the Notion system becomes useful: the patterns are not just floating ideas. They are organized, searchable, and ready to connect back to design work.</p><div class="pullquote"><p><strong>You can explore, question, adapt, and evolve these reusable human&#8211;AI interaction patterns  for your own products and workflows.</strong></p><p><em>If you&#8217;re curious, you can browse the current Interaction Pattern Library here:</em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://lively-planarian-f5a.notion.site/356c195580848017b441d97e674f8641?v=356c1955808481e6947d000c0814c145&quot;,&quot;text&quot;:&quot;Interaction Pattern Library&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://lively-planarian-f5a.notion.site/356c195580848017b441d97e674f8641?v=356c1955808481e6947d000c0814c145"><span>Interaction Pattern Library</span></a></p></div><p></p><h2><strong>And just to be clear, this is not a rulebook</strong></h2><p>I do not see this as a fixed framework.</p><p>It is not meant to be the final answer to AI interaction design.</p><p>It is also not meant to replace judgment.</p><p>A pattern can guide a team, but it cannot decide everything for them. Context still matters. Risk still matters. The product&#8217;s role still matters. The user&#8217;s mental model still matters.</p><p>For me, the value of this system is not that it removes thinking.</p><p><strong>It creates a better starting point for thinking.</strong></p><blockquote><p><strong>Instead of asking every team to begin from a blank page, it gives them a shared language. </strong>&#10004;&#65039;</p><p>Here is the pattern.<br>Here is when it helps.<br>Here is what can go wrong.<br>Here is how we usually handle it.<br>Here is the design reference.<br>Now let&#8217;s decide if it fits this product moment.</p><p>That is the kind of design system I want for AI.</p></blockquote><p></p><div><hr></div><p></p><h2>Why I&#8217;m sharing it</h2><p>I&#8217;m sharing this because I think many teams are about to face the same problem.</p><blockquote><p>&#128107;&#128108;&#128555;&#128560;&#128561;&#128531;&#129489;&#8205;&#129309;&#8205;&#129489;&#128109;</p><p>AI features are moving fast.<br>Teams are experimenting.<br>Patterns are emerging.<br>But the way we document and reuse those patterns is still immature.</p></blockquote><p>A lot of AI design knowledge is scattered across articles, product teardowns, internal decisions, and individual designer judgment.</p><p></p><p><strong>I wanted to start turning that scattered knowledge into something more structured.</strong></p><blockquote><p>&#128107;&#128108;&#129303;&#128519;&#128522;&#129394;&#129489;&#8205;&#129309;&#8205;&#129489;&#128109;</p><p>Something teams can browse.<br>Question.<br>Reuse.<br>Improve.<br>Connect to design files.<br>And eventually govern.</p></blockquote><p>It is still early.<br>It will evolve.</p><p>But I believe this kind of behavioral layer will become more important as AI products become more agentic, more embedded, and more capable of acting on behalf of users.</p><p><strong>The more agency AI has, the more carefully we need to design the moments around it.</strong></p><p>Not just the interface.<br>The behavior.</p><p></p><div><hr></div><p></p><h2><strong>For me, the bigger idea is this</strong></h2><p>For years, design systems helped us create visual consistency.</p><p>Now AI products need behavioral consistency too.</p><p>&#128308; Because the experience is no longer only about what users see on the screen.</p><p>&#128994; It is also about what the system does, when it acts, how it explains itself, how it asks for permission, how it handles uncertainty, and how it gives control back to the human.</p><div class="pullquote"><p><strong>That is the space I&#8217;m exploring with the Behavioral Design System.</strong></p><p><strong>A source of truth for designing human&#8211;AI interaction patterns.</strong></p><p><strong>And hopefully, a small step toward making AI products feel less like unpredictable magic&#8230;</strong></p><p><strong>and more like thoughtful collaboration.</strong></p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://khoshnazkazemian.substack.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">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[I Built a Tool to Fix the Most Embarrassing Moment in Design]]></title><description><![CDATA[The one that happens right after you hand off.]]></description><link>https://khoshnazkazemian.substack.com/p/i-built-a-tool-to-fix-the-most-embarrassing</link><guid isPermaLink="false">https://khoshnazkazemian.substack.com/p/i-built-a-tool-to-fix-the-most-embarrassing</guid><dc:creator><![CDATA[Khoshnaz Kazemian]]></dc:creator><pubDate>Thu, 07 May 2026 10:57:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!YtPt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1903eef5-4e7c-4e96-a09a-5b0072d42979_1691x930.heic" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!YtPt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1903eef5-4e7c-4e96-a09a-5b0072d42979_1691x930.heic" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!YtPt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1903eef5-4e7c-4e96-a09a-5b0072d42979_1691x930.heic 424w, https://substackcdn.com/image/fetch/$s_!YtPt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1903eef5-4e7c-4e96-a09a-5b0072d42979_1691x930.heic 848w, https://substackcdn.com/image/fetch/$s_!YtPt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1903eef5-4e7c-4e96-a09a-5b0072d42979_1691x930.heic 1272w, https://substackcdn.com/image/fetch/$s_!YtPt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1903eef5-4e7c-4e96-a09a-5b0072d42979_1691x930.heic 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!YtPt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1903eef5-4e7c-4e96-a09a-5b0072d42979_1691x930.heic" width="1456" height="801" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1903eef5-4e7c-4e96-a09a-5b0072d42979_1691x930.heic&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:801,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:115081,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/heic&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://khoshnazkazemian.substack.com/i/196761407?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1903eef5-4e7c-4e96-a09a-5b0072d42979_1691x930.heic&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!YtPt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1903eef5-4e7c-4e96-a09a-5b0072d42979_1691x930.heic 424w, https://substackcdn.com/image/fetch/$s_!YtPt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1903eef5-4e7c-4e96-a09a-5b0072d42979_1691x930.heic 848w, https://substackcdn.com/image/fetch/$s_!YtPt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1903eef5-4e7c-4e96-a09a-5b0072d42979_1691x930.heic 1272w, https://substackcdn.com/image/fetch/$s_!YtPt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1903eef5-4e7c-4e96-a09a-5b0072d42979_1691x930.heic 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p>There&#8217;s a moment every product designer knows but nobody really talks about.</p><p>You&#8217;ve spent weeks on a feature. The Figma file is clean. The components are organised. The flows make sense. You feel good about it. You hand it off.</p><p>And then &#8212; sometimes hours later, sometimes days &#8212; an engineer sends you a message.</p><div class="callout-block" data-callout="true"><p><em>&#8220;Hey, what happens when the user has no internet connection here?&#8221;</em></p><p><em>&#8220;What if the list is empty?&#8221;</em></p><p><em>&#8220;What if they hit this screen without completing the previous step?&#8221;</em></p></div><p>And you sit there, staring at your design, realising you never thought about that. Not because you&#8217;re a bad designer. But because nobody ever gave you a structured moment to think about it before the build started.</p><p><strong>That moment &#8212; that quiet, slightly embarrassing pause &#8212; is what Edgely is about.</strong></p><div><hr></div><h2>The problem nobody admits</h2><p>I&#8217;ve been a product designer long enough to know that edge cases are the part of the job that falls through the cracks most consistently.</p><p>Not because designers are lazy. Not because engineers are unreasonable. But because the tools we use &#8212; Figma, Notion, Jira &#8212; are built around the happy path. They&#8217;re optimised for showing what should happen, not for systematically thinking through what could go wrong.</p><p>So the edge case thinking happens in the worst possible moments:</p><ul><li><p>In the middle of a design review, </p></li><li><p>when someone asks a question you haven&#8217;t prepared for. </p></li><li><p>During a sprint, </p></li><li><p>when an engineer is halfway through building and discovers a state you haven&#8217;t designed. </p></li><li><p>After launch, when a real user hits a scenario nobody anticipated.</p></li></ul><p>I kept watching this pattern repeat. In my own work. In teams I worked with. The same conversation, the same awkward pause, the same scramble to design something quickly that should have been thought through weeks earlier.</p><p><strong>And I kept thinking &#8212; there should be a tool for this. A small one. Focused. That forces you to think about edge cases before you hand off, not after.</strong></p><div><hr></div><h2>Why I built it myself</h2><p>I looked for that tool. It didn&#8217;t really exist.</p><p>There are frameworks and checklists scattered across design blogs. There are sections in some design systems documentation. But there was no dedicated, focused place to actually do this thinking &#8212; visually, quickly, before a handoff.</p><p><strong>So I built it.</strong>&#129299;&#128105;&#8205;&#128187;</p><p>Not because I&#8217;m a developer &#8212; I&#8217;m not, really. But because I&#8217;ve started to believe that designers who can ship small tools have a kind of superpower. You stop waiting for someone else to solve your problem. You just solve it.</p><p><strong>Edgely is what came out of that belief.</strong></p><div><hr></div><h2>What it actually is</h2><p>It&#8217;s a single-page web app. No account. No backend. No price.</p><p>You get a two-axis canvas &#8212; <strong>likelihood</strong> on one axis, <strong>impact</strong> on the other &#8212; and you drag your edge cases into four quadrants:</p><ul><li><p><strong>Ship now</strong> &#8212; critical and likely. Must be designed before handoff.</p></li><li><p><strong>Next release</strong> &#8212; critical but unlikely. Plan it soon.</p></li><li><p><strong>Nice to have</strong> &#8212; low impact but common. Address when you can.</p></li><li><p><strong>Backlog</strong> &#8212; low impact and rare. Documented, but deferred.</p></li></ul><p>You can click anywhere on the canvas to add a card. You can upload a markdown file and it parses your existing notes into draggable cards. When you&#8217;re done, you copy a structured markdown output &#8212; ready to paste into a Figma annotation, a Jira ticket, or a PR description.</p><p>&#128073;<a href="http://edgely-teal.vercel.app">edgely</a>&#128072;</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;d69e13d0-3aaf-428c-b717-c2dabf1a1050&quot;,&quot;duration&quot;:null}"></div><p>The whole interaction takes about three minutes for a component you might have been designing for days.</p><p>That&#8217;s the point. Not a big process. Not a workshop. Just a quiet, structured moment of honest thinking before you say &#8220;it&#8217;s ready.&#8221;</p><div><hr></div><h2>What I learned building it</h2><p>I designed and built Edgely entirely with the help of AI &#8212; specifically <strong>Claude</strong>, which I used as a development partner throughout the process.</p><p>I want to be honest about that, because I think there&#8217;s still a weird stigma around it.</p><p>Using AI to build didn&#8217;t make this less mine. Every product decision &#8212; the interaction model, the naming, the colour system, the animation timing, the way cards snap into quadrants &#8212; those were all deliberate choices I made, iterated on, and changed my mind about dozens of times.</p><p>What AI did was collapse the distance between having an idea and having a working version of it. For a designer who thinks in products but doesn&#8217;t think in code, that distance used to be enormous. Now it isn&#8217;t.</p><p>That changes something fundamental about what designers can build. And I think we&#8217;re only at the very beginning of understanding what that means.</p><div><hr></div><h2>Try it</h2><p>Edgely is free. Open source. No account. No cookies.</p><p>&#128073; <a href="https://edgely-teal.vercel.app/">edgely-teal.vercel.app</a> </p><p>&#128279; <a href="https://github.com/KhoshnazKazemian/edgely">github.com/KhoshnazKazemian/edgely</a></p><p>If you&#8217;re a designer or engineer who&#8217;s ever been caught off-guard by an edge case you should have caught earlier &#8212; this is for you.</p><p>And if you use it and have thoughts, I&#8217;d genuinely love to hear them. This is the first of what I hope are many small tools. Each one designed to solve one real problem in product work, extremely well.</p><p><em>&#8212; KK </em></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://khoshnazkazemian.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://khoshnazkazemian.substack.com/subscribe?"><span>Subscribe now</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.linkedin.com/in/khoshnaz-kazemian-32785a152/&quot;,&quot;text&quot;:&quot;&#128075; Come and say Hi in LinkedIn&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.linkedin.com/in/khoshnaz-kazemian-32785a152/"><span>&#128075; Come and say Hi in LinkedIn</span></a></p><div><hr></div><p><em>Edgely is part of a series of focused product tools built by KK. Design for what hasn&#8217;t happened yet.</em></p>]]></content:encoded></item></channel></rss>